Compare commits

..

465 Commits

Author SHA1 Message Date
Richard Purdie
012ad10a89 build-appliance-image: Update to dunfell head revision
(From OE-Core rev: b39bda4cc62db12c0edfbe489d5a7f5988ede6a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-23 14:39:42 +01:00
Richard Purdie
5ad5949578 scripts/oe-build-perf-report: Use python3 from the environment
This means ot matches the rest of the system rather than causing confusing errors
where multiple python versions are mixed.

(From OE-Core rev: 95d5005828b0d32d610874986fcc298b12347079)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-23 12:47:59 +01:00
Richard Purdie
9f4dbd6437 build-appliance-image: Update to dunfell head revision
(From OE-Core rev: d652b2aaa02a8aa9ff8f0ad84ca7762a6f950640)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:51 +01:00
Steve Sakoman
bb24db8e6b Revert "kernel.bbclass: run do_symlink_kernsrc before do_patch"
This reverts commit 914d8a00e34a8edf75a349da6f5978e4ed60e6d5.

Due to bug introduced for externalsrc

https://bugzilla.yoctoproject.org/show_bug.cgi?id=14044

(From OE-Core rev: a6a9913575aab96f4347bdf979e26115aa0fd716)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Khem Raj
2f63316394 populate_sdk_ext: Do not assume local.conf will always exist
Some distros may not have local.conf, and use auto.conf or site.conf
alone to describe distro config metadata, therefore make code robust
to not fail eSDK builds for such setups

(From OE-Core rev: 554dba802108c91b79acf81c046e6a47815404fb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6379f951ba92b2b86a55de5fc267bacf8c6095d2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Michael Gloff
a509a6301e sysvinit: Remove ${B} assignment
The VERSION variable is not set unless the
top level Makefile is used as the version is
derived from the Changelog.
If VERSION is not set, none of the binaries built
in the sysvinit recipe will have a valid version
output.
Before:
INIT: version  booting
After:
INIT: version 2.96 booting

Using the top level Makefile does not cause any
additional builds to occur.

(From OE-Core rev: c8ad554db100b9fd16097fc8616b2af5390772e7)

Signed-off-by: Michael Gloff <mgloff@emacinc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 10992ad4f343d0f92d9d6246cc2e58effd3f3eeb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Pierre-Jean Texier
86814b7354 libubootenv: upgrade 0.3 -> 0.3.1
This is a bugfix release which includes the following changes:

824551a Prepare 0.3.1
ca6aaa1 Fix file reading/writing when the environment is in EEPROM
a031dea Fix regression in UBI volume support
c91c150 Define SOVERSION to indicate API version

(From OE-Core rev: 2e646f0aca9a0af7e308590117c220c940996d86)

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 447eb941ef43cd5af19aed650fb7da718cedda61)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Christophe GUIBOUT
fe87efd920 initramfs-framework: support kernel cmdline with double quotes
It avoids init to crash when kernel cmdline contains a string with
spaces inside, like that:
dyndbg="file drivers/usb/core/hub.c +pltf"

(From OE-Core rev: 16bad6260a6a25b2ec25c7eb0dfe526db56f166e)

Signed-off-by: Christophe Guibout <christophe.guibout@st.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 88b8b94bd2d052bca29d27bd5cd00eddb0f5999d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Geoff Parker
99d2fe8638 systemd-serialgetty: Replace sed quoting using ' with " to allow var expansion
A recent commit added single quotes around the sed regex's. This prevented the
expansion of $default_baudrate in do_install(), and ended up with systemd's'
serial-getty@.service file having a literal $default_baudrate.

This broke the serial console getty service.

serial-getty@.service was getting a line which looked like this:

  ExecStart=-/sbin/agetty -8 -L %I $default_baudrate $TERM

Rather than:

  ExecStart=-/sbin/agetty -8 -L %I 115200 $TERM

Fixed by repacing the single quotes with double quotes in the sed expressions.

(From OE-Core rev: 1cc94a6b9b6a9d12f782471053448ad9795944bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 80b721bfa4fe300a2f52f233f44fa2835426d304)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Rahul Kumar
2cc334afbf systemd-serialgetty: Fix sed expression quoting
Fix sed: -e expression #1, char 13: unterminated `s' command

Error Message:
| NOTE: Installed into sysroot: []
| NOTE: Skipping as already exists in sysroot: ['pseudo-native', 'glibc', 'patch-native', 'quilt-native', 'gcc-cross-arm', 'gcc-runtime', 'linux-libc-headers', 'libgcc', 'flex-native', 'xz-native', 'libtool-native', 'automake-native', 'binutils-cross-arm', 'zlib-native', 'mpfr-native', 'texinfo-dummy-native', 'autoconf-native', 'libmpc-native', 'gnu-config-native', 'gmp-native', 'attr-native', 'm4-native', 'gettext-minimal-native']
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_install
| sed: -e expression #1, char 13: unterminated `s' command
| WARNING: exit code 1 from a shell command.
| ERROR: Execution of '/opt/Projects/poky/build/tmp/work/qemux86_64-poky-linux/systemd-serialgetty/1.0-r5/temp/run.do_install.11228' failed with exit code 1:
| sed: -e expression #1, char 13: unterminated `s' command
| WARNING: exit code 1 from a shell command.
|

To Fix this Issue using the strong (single quote) character in sed command.
It is recommend to use quotes. If we have meta-characters in the command, quotes are necessary.

(From OE-Core rev: edaecac74210ae201dc5eea5758bcf4e85cb14cb)

Signed-off-by: Rahul Kumar <rahulk@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e2fea05e150dcfec4b7dfbd8edddb53897026bf9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-22 23:34:40 +01:00
Richard Purdie
44ab5a8477 bitbake: tests/fetch: Move away from problematic freedesktop.org urls
We're either hitting rate limiting with freedesktop.org or the
servers have intermittent network connections. Use our own mirror
of these repositories instead.

(Bitbake rev: 18e1957337fd9f06bc673d28dd4f8277321d07bc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a1b7ab5c9d5e64969f5ca0e41c0ac13c723e3761)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-18 19:14:26 +01:00
Steve Sakoman
3a31d9ff80 poky.conf: Bump version for 3.1.3 release
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-18 06:46:21 +01:00
Bruce Ashfield
826662534f yocto-bsp: update to v5.4.58
(From meta-yocto rev: d46b40c0e1387ac0d7883659a88b9842f5b7350a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cb67b9bcbd18a612a6e5e5bf6acfe1614aca990a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-18 06:46:21 +01:00
Bruce Ashfield
57933737b9 yocto-bsp: update to v5.4.56
(From meta-yocto rev: 22e4ca42b749c8947837bd7bb93cde6fd448fde3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 34dfaf81b03789054d58716d43c9fc447d8bd69b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-18 06:46:21 +01:00
Bruce Ashfield
954ed426af yocto-bsps: update reference BSPs to 5.4.54
(From meta-yocto rev: 4780bd63af07fe694a071640cf9942ba3bfc3824)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cc10c1589b4a4c9471bd5c847ef2f8ccc4e8a58f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-18 06:46:21 +01:00
Chris Laplante
cf0d81d6bf cve-check: avoid FileNotFoundError if no do_cve_check task has run
For example, if you just run 'bitbake cve-update-db-native' in a clean
build system, |cve_tmp_file| won't exist yet.

(From OE-Core rev: b98e50f08b2bcf61fbc75ea1b0ad83a17c0a736a)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dd4473f3d8e1c1a587b6de660775e4b46ddc5fad)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Chris Laplante
738fe904c7 cve-update-db-native: use context manager for cve_f
(From OE-Core rev: c8c307c4b28d93938887ecb1d87f6024e916c0f9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ff422652e1b5db62205fafc75ce56bb5951d478d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Chris Laplante
ed69955083 cve-check/cve-update-db-native: use lockfile to fix usage under multiconfig
Previously CVE_CHECK_DB_FILE / CVE_CHECK_DB_DIR was the same across
multiconfigs which led to a race condition wherein multiple
cve-update-db-native:do_populate_cve_db tasks could attempt to write to
the same sqlite database. This led to the following task failure:

    Error executing a python function in exec_python_func() autogenerated:

    The stack trace of python calls that resulted in this exception/failure was:
    File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
         0001:
     *** 0002:do_populate_cve_db(d)
         0003:
    File: '/mnt/data/agent/work/74f119cccb44f133/yocto/sources/poky/meta/recipes-core/meta/cve-update-db-native.bb', lineno: 103, function: do_populate_cve_db
         0099:        if year == date.today().year:
         0100:            cve_f.write('CVE database update : %s\n\n' % date.today())
         0101:
         0102:    cve_f.close()
     *** 0103:    conn.commit()
         0104:    conn.close()
         0105:}
         0106:
         0107:def initialize_db(c):
    Exception: sqlite3.OperationalError: disk I/O error

Use a lockfile to ensure multiple tasks don't step over each other.

(From OE-Core rev: f08604d27ecacfd37bd37bfaf4c76f17b8f65604)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 24e9380643a2ae3fcae193519cb64aedaf682153)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Chris Laplante
5d97a53f1e cve-update-db-native: add progress handler
(From OE-Core rev: 694f5107388c5301b82581007ff5fe96dfa8769d)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 79ae2e82b8ec11578177f428060b568d6c7d44ca)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
akuster
ed79212913 cve-check.bbclass: always save cve report
The cve-check file should be saved always, it has good info.

Put a copy in the log dir as cve-summary with symlinks to latest run.

[Yocto #13974]

(From OE-Core rev: 4dab2610a35a998ee0bf5309a0b399ee0d54b4a8)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 859849c7b594d844819ad8c3f7d8325388d94b93)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ovidiu Panait
f2422aad3b libxml2: Fix CVE-2020-24977
GNOME project libxml2 v2.9.10 and earlier have a global Buffer Overflow
vulnerability in xmlEncodeEntitiesInternal at libxml2/entities.c. The issue has
been fixed in commit 8e7c20a1 (20910-GITv2.9.10-103-g8e7c20a1).

Reference:
https://gitlab.gnome.org/GNOME/libxml2/-/issues/178

Upstream patch:
50f06b3efb

(From OE-Core rev: d5406b389fcae8fb0f5fc9cc7dbf7ee819c04bc8)

Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 92dc02b8f03f3586de0a2ec1463b189a3918e303)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ross Burton
c68c4aa22c cmake: whitelist CVE-2016-10642
This CVE is specific to the npm package that can install cmake, so isn't
relevant to our cmake recipe.

(From OE-Core rev: ad11e4a9afea5a4c9dd34a7fa37b82efd61952a4)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8e74ed809ec4c1f61264ecf5be4bc319e5e07766)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ross Burton
6110dcd60f curl: add vendors to CVE_PRODUCT to exclude false positives
To avoid false positives (such as CVE-2010-0734, rubygems:curl), expand
the CVE_PRODUCT list to include all the vendors that have been used.

(From OE-Core rev: 3c0029c9cf22b6983020edf9ce2aeb7b326d8c12)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bb265122cccea9466405fdd924ad10ce8cda0dec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Oleksandr Kravchuk
59b9e3c0ef ell: update to 0.33
Changelog
- Fix issue with uintset and number of bytes copied.
- Fix issue with overflow in DHCP lease T2 computation.
- Fix issue with side channel leak in l_ecc_scalar_new.
- Fix issue with missing MSG_MORE in l_cipher_set_iv.
- Add support for DHCP v6 client implementation.

(From OE-Core rev: deb77c59b9c11738a93fc80c1b256b3df8e14827)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3ad8ca257d40f5041b3ec167e4117c687da448a9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Zhixiong Chi
7bd5cf65a6 gnutls: CVE-2020-24659
Backport the CVE patch from the usptream:
https://gitlab.com/gnutls/gnutls.git
commit 29ee67c205855e848a0a26e6d0e4f65b6b943e0a

(From OE-Core rev: fe3eebd129409fd8ed3ad1705a87eced5a61b33e)

Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 84b1bc500e318657cb7a8a189b59cc63bc91dca3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Richard Purdie
dc0673760d oeqa/concurrencytest: Improve builddir path manipulations
Its possible some patterns may cause problems with the current path
manipulations, make a small tweak to try and avoid potential pathname
overlap issues.

(From OE-Core rev: b90c8e041a9a2daa9472ed37630d8e0fdec18d36)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 889005dc17d3e3b8eadee907ee2c05b8ff613285)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Richard Purdie
a4ced5e157 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: 3be3740d0239f2eb198ccd2b75597cdccbdd1efc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fcd0a9683af1a9155eabbd9056e3b46d4a931b2e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Adrian Freihofer
98905dd827 oe-publish-sdk: fix layers init via ssh
Escaping does not work in my use case. It must be escaped for
python, ssh and shell as well as for different versions of echo.
Let's try it a little less elegant, but hopefully more reliable.

(From OE-Core rev: cdbc9bf63b3e1354800032d0dd530949bafb7032)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5cc1ae332eb6b05d83802c8d64ab2767c7079412)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Matt Madison
15531ddeb0 image.bbclass: fix REPRODUCIBLE_TIMESTAMP_ROOTFS reference
Commit 97b439469a45a089431ca9c31893288c855045f4 added a fallback
mechanism for getting the rootfs timestamp. However, it uses curly
braces around the variable name, which causes bitbake resolve the
variable reference, rather than the shell, so the git timestamp
never gets used. Fix the reference to restore the intent of
making it a fallback for when there is no git timestamp to
retrieve.

(From OE-Core rev: 21d7ab8ce10f6d6a56875244c09dcfebae457b22)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fbcf2c1c255b0c61a795c032cf7b67f5db41baa8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Richard Purdie
54ef7e8750 runqemu: Add a hook to allow it to renice
We have an issue where qemu is being starved of resources on our autobuilders.
We can't raise its priority without special capacilties, therefore add a hook
which if present can allow this to happen using an executable
"~/runqemu-renice".

(From OE-Core rev: 829443b3fafa000e330c06ebb144641bd2d20ad1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 141a3c9ce93bc3d526303021ecf0460c6e9fea8a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ross Burton
52ede1bca7 autoconf: consolidate DEPENDS
Depending on nativesdk- varients in a nativesdk build isn't correct, so
just collapse the DEPENDS down and let bitbake do the right thing (which
is leaving them as -native).

(From OE-Core rev: 32902a2763a7557d52bf27f3717b8f9b27275284)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4864167ad4ed4c57e49f2aa5e7c58383bddb052b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ross Burton
7724cd224a insane: only load real files as ELF
The file path checks are passed an ELF object if the file is an ELF. It
doesn't make a lot of sense to load symlinks to ELFs as if they're in
the same package then the real file will be checked too.

This should speed up do_package_qa slightly as libraries won't be
scanned repeatedly.

(From OE-Core rev: 0b6f03752e6581a15e5fb900a8de7aef78709ef6)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c63af30d3b6350361daff94a59d4f14d7c5395e1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Ross Burton
b06a1c090a gdk-pixbuf: add tests PACKAGECONFIG
Convert the installed-tests toggle from simply respecting PTEST_ENABLED
to a PACKAGECONFIG, so that it can be turned on/off in the usual manner.

(From OE-Core rev: 02a1d8edc42961a4d97e6cd8d6e7cc573e1c1486)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 08e61ffae6056055b56f93678bcbb9fd71f3303e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Khem Raj
fef0b3bcdf rpcbind: Use update-alternatives for rpcinfo
rpcinfo is also provided vy netkit in meta-networking

(From OE-Core rev: 177a82f0e9f9c7fa12dd39cbbdd2ac64d920699d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 28183dfd7446de9113773ab89edd0afb4ab82f7e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Lee Chee Yang
94b6af19ef libx11 : fix CVE-2020-14344
fix CVE-2020-14344 with squashed patch.
squashed patch include below patch,
1703b9f343
1a566c9e00
2fcfcc49f3
388b303c62

also include fix to issue introduced in above patch
(388b303c62aa35a245f1704211a023440ad2c488)
93fce3f4e7

(From OE-Core rev: b68ded7dee5e6e8b8f23840e3118edcdee7e5c7e)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Lee Chee Yang
a063c1c630 qemu: fix CVE-2020-14364 CVE-2020-14415
(From OE-Core rev: 1a150f0df36892283686e3e1afb30a7742c8e252)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Lee Chee Yang
cf2f611fcb xserver-xorg: fix CVE-2020-14347
(From OE-Core rev: 02484c21042fcbd31d2982fc1cf60d565ae035e4)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Khem Raj
773eae6f59 uninative: Upgrade to 2.9
This supports glibc upto 2.32 which is now rolling into distributions

(From OE-Core rev: 0f01fb2286335dd0da0c7be3f56c36a0fced3e42)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5cda8c7d642cfb72242c95f450e3391bd6537709)
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:51:24 +01:00
Richard Purdie
23ec5b5087 bitbake: fetch2: Drop cups.org from wget status checks
Its becomming clear the upstream server doesn't like this, drop these
two urls from the test, not sure we need them here anyway.

(Bitbake rev: 16774d4d41f2011e8db7d2986a1a701df123dfc1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ab2ef942dc21f9639793c972f2e546edf9444783)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:29:50 +01:00
Jean-Francois Dagenais
2acfd66c9c bitbake: siggen: clean_basepath: remove recipe full path when virtual:xyz present
Before this fix, this example basepath (a):
virtual:native:/full/path/to/recipes-example/helloworld/helloworld_1.2.3.bb:do_compile
would get incorrectly "cleaned" into:
helloworld/helloworld_1.2.3.bb:do_compile:virtual:native:/full/path/to/recipes-example/helloworld/helloworld_1.2.3.bb

When searching backwards in `a` trying to isolate the 'virtual:xyz' to add
it to the end of the string, we need to consider `a` still has the recipe
path and taskname. So stoping the rsplit after only 1 split is not enough.
We want to reach the second ':' from the end.

This way, we obtain:
helloworld/helloworld_1.2.3.bb:do_compile:virtual:native

reviewed-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com>
(Bitbake rev: befc11acd25a9d9a2d44c20a0e33ada740407af7)

Signed-off-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d193d93422a0ad62aa35b5d4ca5da8d422f72180)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-17 12:29:50 +01:00
Steve Sakoman
f2ae38a055 Documenation: Prepared for the 3.1.3 release
(From yocto-docs rev: 1a69e2c029a3cc755734c8c18584141cc3309695)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-16 18:16:16 +01:00
Yann Dirson
87c9d29635 package: get_package_mapping: avoid dependency mapping if renamed package provides original name
Packages with a runtime dependency on a target package whose name is
changed by the PKG_* mechanism must rebuild when that mapping changes,
but we have no way of tracking this today, so
eg. packagegroup-machine-base ends up with a relationship on a
versioned kernel-image, and does not get rebuilt when that version
changes, leading to unsatisfiable dependency and reproducibility
issue.

OTOH there is no reason for the dependency to get rewritten if the
renamed package already has a RPROVIDES on the non-rewritten package
name, and if the dependency relationship is an unversionned one.  This
is what this patch prevents.

Note that this may not cover all cases of rewritten package names.

Notably I had to let the rewrite be done in the case of versionned
dependencies, as package managers usually can follow "Provides" in
such case; this includes many dependencies against shared-lib packages
renamed to their soname, and those at least are OK, since the
dependent recipe should explicitly depend on the target recipe.

(From OE-Core rev: 920beaaeef62b558e046f32c8ef0332250969ef1)

(From OE-Core rev: 210ebed1e9c2285d6e457bf03d1f1a1f3ddc7fda)

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Nicolas Dechesne
7666bf96cd linux-libc-headers: kernel headers are installed in STAGING_KERNEL_BUILDDIR
Since 'fido', kernel headers are installed in STAGING_KERNEL_BUILDDIR,
not STAGING_KERNEL_DIR. So this message in the linux-libc-headers
recipe is slightly misleading.

(From OE-Core rev: 83b74458783aac5d1d5a3ea8a31ccb79de3719bc)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bdd06f8ed58ed1c4983f8188e98f1a132da91e3d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Khem Raj
5e210cc9c3 json-glib: Backport a build fix with clang
(From OE-Core rev: 09bc151f577cbdcb194bb999ada0b7aec7e7aba7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a654c916853f6ead4268282e15dc8c9ef962446e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Richard Purdie
09ca4f0292 selftest/prservice: Improve test failure message
When failing, give more information about why exactly a failure is
happening such as the PR values in question.

(From OE-Core rev: 86eb281069334020c5fd93ba6fce69c67d7c8056)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bdd3abcc210e8f58b7b411da6bbd9c5314819908)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Michael Tretter
dfd88e61b2 devtool: deploy-target: Fix size calculation for hard links
If a package contains hard links to a file, the file size is added for
each hard link instead of once for the file. Therefore, the calculated
size may be much larger than the actual package size.

For example, the mesa-megadriver package contains several hard links to
the same library.

Keep track of the inode numbers when listing the files that are
installed and use the actual size only for the first occurrence of an
inode. All further hard links to the same inode are added to the file
list, but accounted with size 0.

All file names need to be added to the file list, because the list is
used for preserving the files/hard links on the target.

(From OE-Core rev: 85b1e835572d184cfff86a87fced8673d1d40a7c)

Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 17e92572278980d1a7f06de9d72c68baf57698f1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Ross Burton
936d5e0aa5 insane: improve gnu-hash-style warning
Instead of showing a filename under packages-split, show the package
name and filename inside the package.

(From OE-Core rev: 60b474320e2dd36bff9f0ef5f1dc491cbe734919)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4f78fc65bb0c9bff05651d9e543bab3d75998f79)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Sumit Garg
572cfbabc2 insane: fix gnu-hash-style check
Fix gnu-hash-style check that always returned True after commit [1]
leading to false positive presence of "GNU_HASH" in objdump output.

Fixes: 9ff90bf04a4c ("mips: Enable gnu-hash-style on glibc") [1]
(From OE-Core rev: af265eca8c95ba92718b37e62b5b4eeb2f17668c)

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 996010f1b9ca98592e2c87e1adcb0c79b86517b7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Joshua Watt
1f42bb0cb0 oeqa: sdk: Capture stderr output
Redirect stderr to stdout when running subcommands while doing the SDK
tests. The tests will show stdout when CalledProcessError is raised,
but any output to stderr was lost.

(From OE-Core rev: cf6cab12ca7ff40ac484cdaf27ea91ed49b901b0)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7cb4e9ab8c1596281060e94a216966060103956e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Khem Raj
2d2836527c util-linux: Allow update alternatives for additional apps
mcookie/prlimit/uuidgen are also provided by toybox

(From OE-Core rev: 497d883c0f4b31790152bdc7f4f212b2fa1d8424)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b6135777799de531e2cb4017e91a8c41749d1fd5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Anibal Limon
b71ca75c2c recipes-kernel: linux-firmware add qcom-venus-{5.2,5.4} packages
(From OE-Core rev: ecfc52630fb28ca2288c3319aea6a017d5878cc7)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e20c1e07a807f66f028104d8491d974a36734192)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Vijai Kumar K
5e01f32330 wic: misc: Add /bin to the list of searchpaths
/bin is also a valid path where one can find executables. Add
that to the search path.

(From OE-Core rev: 2427c872baf1be5ab9e9fcc0a17ee3b267db0edd)

Signed-off-by: Vijai Kumar K <vijaikumar.kanagarajan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ca0a6025351cb2135e87cecf828633cf12aa34c6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
hongxu
554f1c8124 sysstat: fix installed-vs-shipped QA Issue in systemd
While enabling systemd, there is QA issue:
...
|ERROR: sysstat-12.4.0-r0 do_package: QA Issue: sysstat: Files/directories
were installed but not shipped in any package:
|  /lib/systemd/system-sleep
|  /lib/systemd/system-sleep/sysstat.sleep
...

https://www.freedesktop.org/software/systemd/man/systemd-sleep.html
says the files should be dropped into /usr/lib/systemd/system-sleep
(that would be /lib/systemd/system-sleep in our configuration).  By
moving the files to another directory they'll be packaged but not
loaded by systemd.

Suggested-by Ross Burton <ross@burtonini.com>

(From OE-Core rev: 89cb403fce24c853be49e4190d2020c6911b6a31)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3bdd40ea09e50067f11c12290ab465a9ef229fc4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Steve Sakoman
d78ac04233 sanity.conf: update BB_MIN_VERSION to 1.46.0
npm changes were merged that require bitbake 1.46.0,
you can't do a recipetool newappend on dunfell otherwise

(From OE-Core rev: 5d8b81fd0f1a25fab6de6e23223e46ec54a8cf66)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Rasmus Villemoes
b118808d5c cml1: Move find_cfgs() helper to cml1.bbclass
u-boot.inc and busybox.inc contain identical copies of this little
helper. They both inherit the cml1 class and use cml1_do_configure
right after having used this helper, and other recipes that want to
write similar logic for doing Kconfig via fragments will also need it
or something equivalent.

(From OE-Core rev: b0fb7f18f9091db50204ef1ebd5248739ddcd6c2)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit af687c9137a3e8efe48afa6fd12866cf656ae913)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Khem Raj
bda47d47df json-c: Fix CVE-2020-12762
(From OE-Core rev: d26c5882ee5dbdb41d5c8903b0e470f2291512a5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Bruce Ashfield
4ffc34f49c kernel-yocto: checksum all modifications to available kernel fragments directories
This is based on the patch from Zhaolong Zhang <zhangzl2013@126.com>
[kernel-yocto: checksum indirect cfg and scc files]

While the recommended manner to share/reuse feature fragments is to
maintain them in a kernel-meta repository and track the changes via the
standard SRCREV fetcher mechanism, that method is not always practical
for small sets of features or for quick testing of changes.

These other flows use .scc files on the SRC_URI. It has been noted that
config fragments or other features indirectly included by those .scc
files will not trigger the kernel meta-data to be re-run and hence a
build can continue with stale data (or not be triggered at all).

To solve this issue, we can collect the directories that are searchable
via FILESEXTRAPATHS and add them to the do_kernel_metadata task
checksum.

This allows modifications, additions and removals from the potential
kernel feature directories to trigger a re-execution of the meta data
task.

(From OE-Core rev: e397859ceac42d926134d5cb7828526d8d649c95)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 09f4db415fb6a1398e9e9b359630043c833f6118)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Martin Jansa
fb739bf016 devtool: expand SRC_URI when guessing recipe update mode
* I have recipes which use variable inside SRC_URI, e.g.:
  ROS_BRANCH ?= "branch=release/melodic/swri_nodelet"
  SRC_URI = "git://github.com/swri-robotics-gbp/marti_common-release;${ROS_BRANCH};protocol=https"

  and devtool modify works fine, but devtool finish fails with:

  $ devtool finish --force-patch-refresh swri-nodelet meta-ros/meta-ros1-melodic/
  ...
  Traceback (most recent call last):
    File "/OE/openembedded-core/scripts/devtool", line 334, in <module>
      ret = main()
    File "/OE/openembedded-core/scripts/devtool", line 321, in main
      ret = args.func(args, config, basepath, workspace)
    File "/OE/openembedded-core/scripts/lib/devtool/standard.py", line 2082, in finish
      updated, appendfile, removed = _update_recipe(args.recipename, workspace, rd, args.mode, appendlayerdir, wildcard_version=True, no_remove=False, no_report_remove=removing_original, initial_rev=args.initial_rev, dry_run_outdir=dry_run_outdir, no_overrides=args.no_overrides, force_patch_refresh=args.force_patch_refresh)
    File "/OE/openembedded-core/scripts/lib/devtool/standard.py", line 1737, in _update_recipe
      mode = _guess_recipe_update_mode(srctree, rd)
    File "/OE/openembedded-core/scripts/lib/devtool/standard.py", line 1721, in _guess_recipe_update_mode
      params = bb.fetch.decodeurl(uri)[5]
    File "/OE/bitbake/lib/bb/fetch2/__init__.py", line 390, in decodeurl
      raise MalformedUrl(url, "The URL: '%s' is invalid: parameter %s does not specify a value (missing '=')" % (url, s))
  bb.fetch2.MalformedUrl: The URL: 'git://github.com/swri-robotics-gbp/marti_common-release;${ROS_BRANCH};protocol=https' is invalid: parameter ${ROS_BRANCH} does not specify a value (missing '=')

  let it expand the SRC_URI before trying to decode it.

(From OE-Core rev: 2de84e6e767d4c3e517d7413a37700bf1991a460)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3535cfdbf3d77f550b804276f957acf859da484f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Ross Burton
43bd93ff8b package.bbclass: explode the RPROVIDES so we don't think the versions are provides
emit_pkgdata() creates symlinks for each of the RPROVIDES in
pkgdata/MACHINE/runtime-rprovides.  However this string can contain
versions which results in directories called (=2.32), so pass the
RPROVIDES string through bb.utils.explode_deps() to strip the versions
out.

Helps mitigate - but not solve - #13999.

(From OE-Core rev: be88ca5c4bd0dd98d172a53727c7104d46349fdd)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6a5395dec34192db233bfb2a060e5ccc99708f03)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-10 19:07:40 +01:00
Alexander Kanavin
35cc7fef84 linux-firmware: update 20200721 -> 20200817
(From OE-Core rev: 0d4d0df6084cce3c3d9051db88f3199a030d3352)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 16f2e190ef55e349512b8f70fe437b46ef1dc142)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:38 +01:00
Alexander Kanavin
668989f686 linux-firmware: upgrade 20200619 -> 20200721
License-Update: firmware versions/filenames
(From OE-Core rev: 9580d83f5ce5f854b596a2c9a6b125595115591d)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6c1ee3b8a02cd8c5b4219e06c2d71dac1edf4fdf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Rasmus Villemoes
70f3451b26 kernel.bbclass: run do_symlink_kernsrc before do_patch
There's a race between do_symlink_kernsrc and do_populate_lic, since
the latter is ordered "after do_patch"; so the two may run in
parallel. In some cases, that actually causes do_populate_lic to fail
if it happens to look for a license file somewhere under ${S} in the
short window after shutil.move and before the symlink has been
created.

Fix that by simply ordering symlink_kernsrc before do_patch. Any task
that pokes around in ${S} looking for files should be ordered after
do_patch, so this should also fix similar latent races with other ad
hoc tasks.

(From OE-Core rev: 914d8a00e34a8edf75a349da6f5978e4ed60e6d5)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c5dfc2586b4135cc86e91bb04fed837daf505676)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Bruce Ashfield
f18af9dc89 linux-yocto/5.4: update to v5.4.61
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    6576d69aac94 Linux 5.4.61
    d316d52742c4 KVM: arm64: Only reschedule if MMU_NOTIFIER_RANGE_BLOCKABLE is not set
    e1818ffcca0e KVM: Pass MMU notifier range flags to kvm_unmap_hva_range()
    744fde53ec32 xen: don't reschedule in preemption off sections
    d6bca2a8f064 mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
    42694912aaf1 do_epoll_ctl(): clean the failure exits up a bit
    b158e91610c7 epoll: Keep a reference on files added to the check list
    5167f194da69 efi: add missed destroy_workqueue when efisubsys_init fails
    13b1fc60ecb0 powerpc/pseries: Do not initiate shutdown when system is running on UPS
    dafae068886a net: dsa: b53: check for timeout
    83236e697f79 hv_netvsc: Fix the queue_mapping in netvsc_vf_xmit()
    2dd00ae408a9 net: gemini: Fix missing free_netdev() in error path of gemini_ethernet_port_probe()
    f4adc6430d74 net: ena: Prevent reset after device destruction
    f4ed9ede3441 bonding: fix active-backup failover for current ARP slave
    542a493c8c5e ARM64: vdso32: Install vdso32 from vdso_install
    278eb88ab206 afs: Fix NULL deref in afs_dynroot_depopulate()
    140ac9370b16 RDMA/bnxt_re: Do not add user qps to flushlist
    dc0d58e281a6 Fix build error when CONFIG_ACPI is not set/enabled:
    7cc9812be1c7 efi: avoid error message when booting under Xen
    d3ca317cf62a kconfig: qconf: fix signal connection to invalid slots
    51d85e70e3ad kconfig: qconf: do not limit the pop-up menu to the first row
    da1069e4e727 Revert "scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe"
    6e2aa034d777 kvm: x86: Toggling CR4.PKE does not load PDPTEs in PAE mode
    46713f3d61b3 kvm: x86: Toggling CR4.SMAP does not load PDPTEs in PAE mode
    667a59aa55fb vfio/type1: Add proper error unwind for vfio_iommu_replay()
    503176f5dc07 ASoC: intel: Fix memleak in sst_media_open
    8aeb112d58c0 ASoC: msm8916-wcd-analog: fix register Interrupt offset
    e9849a60facb s390/ptrace: fix storage key handling
    d35f24bc566d s390/runtime_instrumentation: fix storage key handling
    cc215d206881 bonding: fix a potential double-unregister
    8a49739f58f5 can: j1939: add rxtimer for multipacket broadcast session
    d7ab964b6ba9 can: j1939: abort multipacket broadcast session when timeout occurs
    d0dc3d2c71e2 can: j1939: cancel rxtimer on multipacket broadcast session complete
    5159a0a5164b can: j1939: fix support for multipacket broadcast message
    5dc0c1c12094 bonding: show saner speed for broadcast mode
    1b9dee25ad25 net: fec: correct the error path for regulator disable in probe
    c0e04d08e544 i40e: Fix crash during removing i40e driver
    e2a8d4423640 i40e: Set RX_ONLY mode for unicast promiscuous on VLAN
    154ccf69feca can: j1939: transport: add j1939_session_skb_find_by_offset() function
    3bfd1398de6a can: j1939: transport: j1939_simple_recv(): ignore local J1939 messages send not by J1939 stack
    ff723ef6b7b6 can: j1939: fix kernel-infoleak in j1939_sk_sock2sockaddr_can()
    6e0bc946cbee bpf: sock_ops sk access may stomp registers when dst_reg = src_reg
    ece9ca5840e0 ASoC: q6routing: add dummy register read/write function
    aaa6e691b983 ASoC: q6afe-dai: mark all widgets registers as SND_SOC_NOPM
    233d6f2ab120 spi: stm32: fixes suspend/resume management
    666d1d1a0584 netfilter: nf_tables: nft_exthdr: the presence return value should be little-endian
    3473fa198178 ext4: don't allow overlapping system zones
    ea54176e5821 ext4: fix potential negative array index in do_split()
    2585402c5799 fs/signalfd.c: fix inconsistent return codes for signalfd4
    e4f952b031c1 alpha: fix annotation of io{read,write}{16,32}be()
    538c74a9cb26 xfs: Fix UBSAN null-ptr-deref in xfs_sysfs_init
    4591461ea9f2 tools/testing/selftests/cgroup/cgroup_util.c: cg_read_strcmp: fix null pointer dereference
    10b2bb101f06 media: camss: fix memory leaks on error handling paths in probe
    05724341d9db virtio_ring: Avoid loop when vq is broken in virtqueue_poll
    34f8368f6634 scsi: libfc: Free skb in fc_disc_gpn_id_resp() for valid cases
    28850b8043cc cpufreq: intel_pstate: Fix cpuinfo_max_freq when MSR_TURBO_RATIO_LIMIT is 0
    cca58a166920 swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses
    2bd8ba398fad ceph: fix use-after-free for fsc->mdsc
    2524bb04d81b jffs2: fix UAF problem
    04aeb884e8a5 drm/ttm: fix offset in VMAs with a pg_offs in ttm_bo_vm_access
    711f5688bb97 xfs: fix inode quota reservation checks
    8fe5e38acbe7 svcrdma: Fix another Receive buffer leak
    7aca2f7d1710 m68knommu: fix overwriting of bits in ColdFire V3 cache control
    1a718d4caa1a MIPS: Fix unable to reserve memory for Crash kernel
    5594a54c520b Input: psmouse - add a newline when printing 'proto' by sysfs
    06d4d9acd7d8 media: vpss: clean up resources in init
    f948f1d02237 rtc: goldfish: Enable interrupt in set_alarm() when necessary
    85ad0d5f3d69 media: budget-core: Improve exception handling in budget_register()
    62b8c76d061f scsi: target: tcmu: Fix crash in tcmu_flush_dcache_range on ARM
    59d587cc3640 scsi: ufs: Add DELAY_BEFORE_LPM quirk for Micron devices
    10e99c3003d5 opp: Enable resources again if they were disabled earlier
    52d322f91954 kthread: Do not preempt current task if it is going to call schedule()
    504fe0ab2412 drm/amd/display: fix pow() crashing when given base 0
    1f3cfa9338c3 drm/amd/display: Fix EDID parsing after resume from suspend
    6f3bff30f1cb drm/amdgpu/display: use GFP_ATOMIC in dcn20_validate_bandwidth_internal
    f45ab6e7d957 scsi: zfcp: Fix use-after-free in request timeout handlers
    b4062a49ad4a jbd2: add the missing unlock_buffer() in the error path of jbd2_write_superblock()
    2bc54ba65fdc ext4: fix checking of directory entry validity for inline directories
    59af0759bd46 RDMA/hfi1: Correct an interlock issue for TID RDMA WRITE request
    0cfb9320d00c mm, page_alloc: fix core hung in free_pcppages_bulk()
    5663159e2930 mm: include CMA pages in lowmem_reserve at boot
    e9e3ec03e6ae uprobes: __replace_page() avoid BUG in munlock_vma_page()
    fa2e0d4e4a4c kernel/relay.c: fix memleak on destroy relay channel
    19a77c937a19 romfs: fix uninitialized memory leak in romfs_dev_read()
    3e538c536f01 spi: Prevent adding devices below an unregistering controller
    143df6b3584a can: j1939: socket: j1939_sk_bind(): make sure ml_priv is allocated
    60be1488a3ae can: j1939: transport: j1939_session_tx_dat(): fix use-after-free read in j1939_tp_txtimer()
    055c65c7e7dd ALSA: hda/realtek: Add quirk for Samsung Galaxy Book Ion
    4fe52a85eeb4 ALSA: hda/realtek: Add quirk for Samsung Galaxy Flex Book
    84bfb4b10d6f btrfs: add wrapper for transaction abort predicate
    745148367b04 btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
    de88b7e2f02f btrfs: don't show full path of bind mounts in subvol=
    038580b1f58b btrfs: export helpers for subvolume name/id resolution
    b40753984979 bcache: avoid nr_stripes overflow in bcache_device_init()
    9f4f7c08d50b khugepaged: adjust VM_BUG_ON_MM() in __khugepaged_enter()
    9a05b774af30 khugepaged: khugepaged_test_exit() check mmget_still_valid()
    8043d5ee9168 perf probe: Fix memory leakage when the probe point is not found
    888d9b829c25 gfs2: Never call gfs2_block_zero_range with an open transaction
    18a640d3b570 gfs2: Improve mmap write vs. punch_hole consistency
    e42c75ef3477 drm/vgem: Replace opencoded version of drm_gem_dumb_map_offset()
    62353048e2d4 kbuild: support LLVM=1 to switch the default tools to Clang/LLVM
    c7d8f67db126 kbuild: replace AS=clang with LLVM_IAS=1
    244d9026768d kbuild: remove AS variable
    fed06097acce kbuild: remove PYTHON2 variable
    fa84d9f31599 x86/boot: kbuild: allow readelf executable to be specified
    c173511a12e4 net: wan: wanxl: use $(M68KCC) instead of $(M68KAS) for rebuilding firmware
    c7c239c947be net: wan: wanxl: use allow to pass CROSS_COMPILE_M68k for rebuilding firmware
    f781285d09a9 Documentation/llvm: fix the name of llvm-size
    97eab9af0036 Documentation/llvm: add documentation on building w/ Clang/LLVM

(From OE-Core rev: c5d9e41382e200aad51ba7869f5db931b7eaced5)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0c67ef9397da5dacaba557956a33c0c457684032)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Bruce Ashfield
b2d0bdeb52 linux-yocto/5.4: update to v5.4.60
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    77fcb48939fc Linux 5.4.60
    53a856c5a6af drm/amd/display: dchubbub p-state warning during surface planes switch
    4287c18a7d8f drm/amdgpu: Fix bug where DPM is not enabled after hibernate and resume
    915ad46bdd4a drm: fix drm_dp_mst_port refcount leaks in drm_dp_mst_allocate_vcpi
    f9f53b7c6a81 drm: Added orientation quirk for ASUS tablet model T103HAF
    aeec14061d53 drm/panfrost: Use kvfree() to free bo->sgts
    a202b42b94bc arm64: dts: marvell: espressobin: add ethernet alias
    0f1c938ef82d khugepaged: retract_page_tables() remember to test exit
    e47e00559893 sh: landisk: Add missing initialization of sh_io_port_base
    64d358a9adb5 perf/x86/rapl: Fix missing psys sysfs attributes
    5c90739d36ce tools build feature: Quote CC and CXX for their arguments
    45989801d7cf perf bench mem: Always memset source before memcpy
    306df54b5b8a ALSA: echoaudio: Fix potential Oops in snd_echo_resume()
    8bc48c35a983 crypto: algif_aead - fix uninitialized ctx->init
    a23269976109 mfd: dln2: Run event handler loop under spinlock
    315b5cbe1aee i2c: iproc: fix race between client unreg and isr
    8620d18575af test_kmod: avoid potential double free in trigger_config_run_type()
    3457ba1acec2 fs/ufs: avoid potential u32 multiplication overflow
    ba40d33e36b2 fs/minix: remove expected error message in block_to_path()
    d91005b645d1 fs/minix: fix block limit check for V1 filesystems
    6def476496a5 fs/minix: set s_maxbytes correctly
    75cf7f895f56 nfs: Fix getxattr kernel panic and memory overflow
    d09d6dca89e9 net: qcom/emac: add missed clk_disable_unprepare in error path of emac_clks_phase1_init
    35b5e689abd9 drm/vmwgfx: Fix two list_for_each loop exit tests
    95922cdab4ad drm/vmwgfx: Use correct vmw_legacy_display_unit pointer
    1d8dce52a008 recordmcount: Fix build failure on non arm64
    f41600c55789 Input: sentelic - fix error return when fsp_reg_write fails
    8d7633b5aff9 x86/tsr: Fix tsc frequency enumeration bug on Lightning Mountain SoC
    8645225c7180 md-cluster: Fix potential error pointer dereference in resize_bitmaps()
    3fcd24040f55 watchdog: initialize device before misc_register
    9340d8bfec94 nfs: nfs_file_write() should check for writeback errors
    da14c05ad875 scsi: lpfc: nvmet: Avoid hang / use-after-free again when destroying targetport
    c9220ff3b9cc openrisc: Fix oops caused when dumping stack
    a6d5c5a398d6 libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
    dfb5d727d721 libnvdimm/security: fix a typo
    0c51d8f5c83e clk: bcm2835: Do not use prediv with bcm2711's PLLs
    1896dfc97c90 ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
    7dccbf1111bf nfs: ensure correct writeback errors are returned on close()
    9153e0d43710 i2c: rcar: avoid race when unregistering slave
    4f69483568d6 tools build feature: Use CC and CXX from parent
    3d0808f3c7d9 pwm: bcm-iproc: handle clk_get_rate() return
    ba2c4d0e720b clk: clk-atlas6: fix return value check in atlas6_clk_init()
    c7bd131f4335 clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk
    422a01fc23d2 i2c: rcar: slave: only send STOP event when we have been addressed
    043bc80399a8 iommu/vt-d: Enforce PASID devTLB field mask
    99d1472ba802 clk: qcom: clk-alpha-pll: remove unused/incorrect PLL_CAL_VAL
    f66d0154ed2f clk: qcom: gcc: fix sm8150 GPU and NPU clocks
    a31ac4101981 iommu/omap: Check for failure of a call to omap_iommu_dump_ctx
    34c920e2c858 selftests/powerpc: ptrace-pkey: Don't update expected UAMOR value
    cf5078181528 selftests/powerpc: ptrace-pkey: Update the test to mark an invalid pkey correctly
    e4a6919c9908 selftests/powerpc: ptrace-pkey: Rename variables to make it easier to follow code
    ea777df6b8b9 clk: actions: Fix h_clk for Actions S500 SoC
    0e0a146f978e dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
    386f82040c84 gpu: ipu-v3: image-convert: Wait for all EOFs before completing a tile
    0f77e95efd75 gpu: ipu-v3: image-convert: Combine rotate/no-rotate irq handlers
    e0a684edf6d7 crypto: caam - Remove broken arc4 support
    64563d1dca80 mmc: renesas_sdhi_internal_dmac: clean up the code for dma complete
    b638533ec6fa RDMA/counter: Allow manually bind QPs with different pids to same counter
    e5a9bb4f1243 RDMA/counter: Only bind user QPs in auto mode
    cf304df99fac devres: keep both device name and resource name in pretty name
    ddd3934f7b39 crypto: af_alg - Fix regression on empty requests
    9705f53eb01a USB: serial: ftdi_sio: clean up receive processing
    aeefe7d15cf1 USB: serial: ftdi_sio: make process-packet buffer unsigned
    8cab023c03aa selftests/bpf: test_progs use another shell exit on non-actions
    de624fbac3eb selftests/bpf: Test_progs indicate to shell on non-actions
    95c736a29105 IB/uverbs: Set IOVA on IB MR in uverbs layer
    ea1cdb1bb80b media: rockchip: rga: Only set output CSC mode for RGB input
    5f51ca677cd2 media: rockchip: rga: Introduce color fmt macros and refactor CSC mode logic
    0f334b668455 RDMA/ipoib: Fix ABBA deadlock with ipoib_reap_ah()
    5412efa6285a RDMA/ipoib: Return void from ipoib_ib_dev_stop()
    ab67471562ad platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
    617da16f5ab9 mtd: rawnand: fsl_upm: Remove unused mtd var
    e1f2606892f2 octeontx2-af: change (struct qmem)->entry_sz from u8 to u16
    368caae37037 mfd: arizona: Ensure 32k clock is put on driver unbind and error
    cf368b876f44 crypto: algif_aead - Only wake up when ctx->more is zero
    bb0bba78d365 pinctrl: ingenic: Properly detect GPIO direction when configured for IRQ
    974ca069d531 orangefs: get rid of knob code...
    1752ab50e825 drm/imx: imx-ldb: Disable both channels for split mode in enc->disable()
    988fcef346a3 remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
    babd6a4c3336 remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
    73ba6991e981 remoteproc: qcom: q6v5: Update running state before requesting stop
    55052ac61cb8 perf intel-pt: Fix duplicate branch after CBR
    8214e74b662d perf intel-pt: Fix FUP packet state
    169015f464d0 module: Correctly truncate sysfs sections output
    54f44e3af24b pseries: Fix 64 bit logical memory block panic
    37e3a1c08e2d ceph: handle zero-length feature mask in session messages
    8953e8cb0d6a ceph: set sec_context xattr on symlink creation
    12badd382453 watchdog: f71808e_wdt: clear watchdog timeout occurred flag
    0f35915a0feb watchdog: f71808e_wdt: remove use of wrong watchdog_info option
    4699d95a715b watchdog: f71808e_wdt: indicate WDIOF_CARDRESET support in watchdog_info.options
    43e172e31bad tracing: Move pipe reference to trace array instead of current_tracer
    9aab8b2b0f8f tracing: Use trace_sched_process_free() instead of exit() for pid tracing
    bd23940da2d1 tracing/hwlat: Honor the tracing_cpumask
    1424f0aa18dc kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
    3a1208574658 ftrace: Setup correct FTRACE_FL_REGS flags for module
    b47215b3749a mm/memory_hotplug: fix unpaired mem_hotplug_begin/done
    aeeddba9b498 mm/page_counter.c: fix protection usage propagation
    bd99ff4dc92b ocfs2: change slot number type s16 to u16
    a6b238cac6d3 khugepaged: collapse_pte_mapped_thp() protect the pmd lock
    687d366d0db1 khugepaged: collapse_pte_mapped_thp() flush the right range
    8cdf68355312 ext2: fix missing percpu_counter_inc
    6c7b42c8f01d MIPS: qi_lb60: Fix routing to audio amplifier
    59909e23020f MIPS: CPU#0 is not hotpluggable
    d3c9e815006e driver core: Avoid binding drivers to dead devices
    0cf746d8b052 mac80211: fix misplaced while instead of if
    c573e8673dc1 bcache: fix overflow in offset_to_stripe()
    42dd8cc9e499 bcache: allocate meta data pages as compound pages
    391b5d39faea md/raid5: Fix Force reconstruct-write io stuck in degraded raid5
    28163868530b net/compat: Add missing sock updates for SCM_RIGHTS
    6ea125ec644b net: stmmac: dwmac1000: provide multicast filter fallback
    e92a02e47e16 net: ethernet: stmmac: Disable hardware multicast filter
    eca5084aabdf media: vsp1: dl: Fix NULL pointer dereference on unbind
    28bbbc45054c pinctrl: ingenic: Enhance support for IRQ_TYPE_EDGE_BOTH
    9ba5f37fa353 powerpc: Fix circular dependency between percpu.h and mmu.h
    9de20a6c4dd6 powerpc: Allow 4224 bytes of stack expansion for the signal frame
    2150c25b76fb powerpc/ptdump: Fix build failure in hashpagetable.c
    7a991df9e5cb cifs: Fix leak when handling lease break for cached root fid
    545771537ec4 xtensa: fix xtensa_pmu_setup prototype
    d1e2ec2e0b7d xtensa: add missing exclusive access state management
    5efb3f91403c iio: dac: ad5592r: fix unbalanced mutex unlocks in ad5592r_read_raw()
    1a5e5b3b7571 dt-bindings: iio: io-channel-mux: Fix compatible string in example code
    ab58cc033124 arm64: perf: Correct the event index in sysfs
    8c1431221374 btrfs: fix return value mixup in btrfs_get_extent
    d256992d5105 btrfs: make sure SB_I_VERSION doesn't get unset by remount
    5bed3387c8a1 btrfs: fix memory leaks after failure to lookup checksums during inode logging
    f1d21b2688d9 btrfs: inode: fix NULL pointer dereference if inode doesn't need compression
    7bbf647dbb5a btrfs: only search for left_info if there is no right_info in try_merge_free_space
    38c8255af7d7 btrfs: fix messages after changing compression level by remount
    242747612209 btrfs: fix race between page release and a fast fsync
    ee6373070108 btrfs: don't WARN if we abort a transaction with EROFS
    d8848f4c2555 btrfs: sysfs: use NOFS for device creation
    e0e51f4fc488 btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on relocation tree
    2f29a31f394e btrfs: add missing check for nocow and compression inode flags
    38ab14b1e27c btrfs: relocation: review the call sites which can be interrupted by signal
    ae3f93cafd6f btrfs: move the chunk_mutex in btrfs_read_chunk_tree
    98f55cd49671 btrfs: open device without device_list_mutex
    3d3452920cac btrfs: don't traverse into the seed devices in show_devname
    8bc3a5d8c2ae btrfs: remove no longer needed use of log_writers for the log root tree
    938051408905 btrfs: stop incremening log_batch for the log root tree when syncing log
    0ddf373adb42 btrfs: ref-verify: fix memory leak in add_block_entry
    c16ba06f5204 btrfs: don't allocate anonymous block device for user invisible roots
    d2731ac13ca5 btrfs: free anon block device right after subvolume deletion
    207659ef151c btrfs: allow use of global block reserve for balance item deletion
    7a6fc7c21962 PCI: qcom: Add support for tx term offset for rev 2.1.0
    5956d3847502 PCI: qcom: Define some PARF params needed for ipq8064 SoC
    588d5cbf4de7 PCI: Add device even if driver attach failed
    d7caf80700f2 PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken
    ae86233204ba PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
    72ba9d544e60 genirq/PM: Always unlock IRQ descriptor in rearm_wake_irq()
    a11f42496ac8 genirq/affinity: Make affinity setting if activated opt-in
    582ee2cb6f90 smb3: warn on confusing error scenario with sec=krb5

(From OE-Core rev: 5e40a4bcffbd89ff173c2ef95dfa56f79e4b4d14)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 05ed88405bdcb0bec513bfd5aaeb652d0fa035fb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Bruce Ashfield
3ab79dd2a4 linux-yocto/5.4: update to v5.4.59
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    f61e1c3638dd Linux 5.4.59
    5de0b5247cba io_uring: Fix NULL pointer dereference in loop_rw_iter()
    4db28111b2a3 s390/gmap: improve THP splitting
    756a70b6dcc3 s390/dasd: fix inability to use DASD with DIAG driver
    dccc66daeba5 xen/gntdev: Fix dmabuf import with non-zero sgt offset
    8e41ac0bfdfd xen/balloon: make the balloon wait interruptible
    ee4c180d93d0 xen/balloon: fix accounting in alloc_xenballooned_pages error path
    db1f4c745a91 fs/minix: reject too-large maximum file size
    8c7e720a165b fs/minix: don't allow getting deleted inodes
    a5305f119907 fs/minix: check return value of sb_getblk()
    5be9072b8121 bitfield.h: don't compile-time validate _val in FIELD_FIT
    3e95a74f4c27 crypto: cpt - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
    28bd8f392f4a crypto: ccp - Fix use of merged scatterlists
    3c660aa47304 crypto: qat - fix double free in qat_uclo_create_batch_init_list
    d9add5d7d94b crypto: hisilicon - don't sleep of CRYPTO_TFM_REQ_MAY_SLEEP was not specified
    17f9ba7229c4 pstore: Fix linking when crypto API disabled
    1a2e558c8b30 tpm: Unify the mismatching TPM space buffer sizes
    169d55c486f8 ALSA: usb-audio: add quirk for Pioneer DDJ-RB
    a3ec61c84d85 irqdomain/treewide: Free firmware node after domain removal
    35e1338bddcd ARM: 8992/1: Fix unwind_frame for clang-built kernels
    cd17453fa96f parisc: mask out enable and reserved bits from sba imask
    0d3897a7f527 parisc: Implement __smp_store_release and __smp_load_acquire barriers
    8dfab4662001 parisc: Do not use an ordered store in pa_tlb_lock()
    638e45c39f30 Revert "parisc: Revert "Release spinlocks using ordered store""
    431d999bd098 Revert "parisc: Use ldcw instruction for SMP spinlock release barrier"
    7612ce180e30 Revert "parisc: Drop LDCW barrier in CAS code when running UP"
    15f7b186916d erofs: fix extended inode could cross boundary
    a8e9efb55323 mtd: rawnand: qcom: avoid write to unavailable register
    7ebb8fd40256 spi: spidev: Align buffers for DMA
    e02c77edd9b0 include/asm-generic/vmlinux.lds.h: align ro_after_init
    7e270e86b1b3 cpufreq: dt: fix oops on armada37xx
    613a374f3fd6 cpufreq: Fix locking issues with governors
    6d1e56826ea8 NFS: Don't return layout segments that are in use
    046922d3248d NFS: Don't move layouts to plh_return_segs list while in use
    3c512bd3dbbb io_uring: set ctx sq/cq entry count earlier
    c6d2ddf1a30d drm/ttm/nouveau: don't call tt destroy callback on alloc failure.
    86f95b631490 media: media-request: Fix crash if memory allocation fails
    06d8ba514949 9p: Fix memory leak in v9fs_mount
    10de419977bf ALSA: usb-audio: work around streaming quirk for MacroSilicon MS2109
    1d2c4954e82b ALSA: usb-audio: fix overeager device match for MacroSilicon MS2109
    d5f647e3a72a ALSA: usb-audio: Creative USB X-Fi Pro SB1095 volume knob support
    8555fd99c111 ALSA: hda - fix the micmute led status for Lenovo ThinkCentre AIO
    1f0e0ad76eae USB: serial: cp210x: enable usb generic throttle/unthrottle
    3a8d1ca7204e USB: serial: cp210x: re-enable auto-RTS on open
    378737e1eee2 net: initialize fastreuse on inet_inherit_port
    dcedddbc7b20 net: refactor bind_bucket fastreuse into helper
    8a337428a5af vmxnet3: use correct tcp hdr length when packet is encapsulated
    e07d0ccd7fde tcp: correct read of TFO keys on big endian systems
    49a5b473bc66 net/tls: Fix kmap usage
    7bedf1d86298 net: Set fput_needed iff FDPUT_FPUT is set
    47f873ac267b net: phy: fix memory leak in device-create error path
    0b305f259ca9 net/nfc/rawsock.c: add CAP_NET_RAW check.
    02618095ab45 net: Fix potential memory leak in proto_register()
    f6c5d9f3361a drivers/net/wan/lapbether: Added needed_headroom and a skb->len check
    de236de3df57 af_packet: TPACKET_V3: fix fill status rwlock imbalance
    5ef739b7a5be crypto: aesni - add compatibility with IAS
    c44efee6e432 x86/fsgsbase/64: Fix NULL deref in 86_fsgsbase_read_task
    18d1bb497364 SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
    789be9705ed1 svcrdma: Fix page leak in svc_rdma_recv_read_chunk()
    fa6bd08869c5 pinctrl-single: fix pcs_parse_pinconf() return value
    50abf1b9ad10 ocfs2: fix unbalanced locking
    ba8a72193346 dlm: Fix kobject memleak
    41e8b5afde8e net: thunderx: initialize VF's mailbox mutex before first usage
    3084ecb02357 fsl/fman: fix eth hash table allocation
    2997cea07f9e fsl/fman: check dereferencing null pointer
    158ccb4f03b5 fsl/fman: fix unreachable code
    a405fb3ffdab fsl/fman: fix dereference null return value
    e9b3249a3df6 fsl/fman: use 32-bit unsigned integer
    8c68da19fd02 net: spider_net: Fix the size used in a 'dma_free_coherent()' call
    dc66a35ffee6 liquidio: Fix wrong return value in cn23xx_get_pf_num()
    eb4afeaf861f net: ethernet: aquantia: Fix wrong return value
    fe8571b4d5ac net/mlx5: Delete extra dump stack that gives nothing
    87a43dac39c2 net/mlx5: DR, Change push vlan action sequence
    a4301de4be41 tools, bpftool: Fix wrong return value in do_dump()
    94bc0ab6043f tools, build: Propagate build failures from tools/build/Makefile.build
    2684577dd9bc wl1251: fix always return 0 error
    3bec3e41db0d rtw88: coex: only skip coex triggered by BT info
    1b7546010b01 rtw88: fix short GI capability based on current bandwidth
    ff1ecaf751d7 rtw88: fix LDPC field for RA info
    fef9f09078b0 ice: Graceful error handling in HW table calloc failure
    2fd47ea1e063 s390/qeth: don't process empty bridge port events
    b8ae2bf5ccc6 ASoC: fsl_sai: Fix value of FSL_SAI_CR1_RFW_MASK
    115da6e650ab ASoC: meson: axg-tdm-formatters: fix sclk inversion
    0cc88bf69411 ASoC: meson: axg-tdmin: fix g12a skew
    a9d54ebf8db0 ASoC: meson: axg-tdm-interface: fix link fmt setup
    5299edbfc19a selftests/powerpc: Fix online CPU selection
    5412751327e8 cpufreq: ap806: fix cpufreq driver needs ap cpu clk
    0df3fad9c17f PCI: Release IVRS table in AMD ACS quirk
    07783db29f89 RDMA/netlink: Remove CAP_NET_RAW check when dump a raw QP
    04cf65b784d2 selftests/powerpc: Fix CPU affinity for child process
    3e95f258a143 powerpc/boot: Fix CONFIG_PPC_MPC52XX references
    69a797a04517 powerpc/32s: Fix CONFIG_BOOK3S_601 uses
    09c2050239fb selftests/powerpc: Squash spurious errors due to device removal
    5f56aa0b1fec xfs: fix inode allocation block res calculation precedence
    5c0fd1e61b5a net: dsa: rtl8366: Fix VLAN set-up
    8cd2a4878787 net: dsa: rtl8366: Fix VLAN semantics
    495b9d0dd071 Bluetooth: hci_serdev: Only unregister device if it was registered
    ba5c28f78461 Bluetooth: hci_h5: Set HCI_UART_RESET_ON_INIT to correct flags
    8d91c73c13f1 power: supply: check if calc_soc succeeded in pm860x_init_battery
    b2b8438ed831 Smack: prevent underflow in smk_set_cipso()
    674992659a97 Smack: fix another vsscanf out of bounds
    3a2cd06a3d93 RDMA/core: Fix return error value in _ib_modify_qp() to negative
    16416a158743 PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
    845601756341 macintosh/via-macii: Access autopoll_devs when inside lock
    a88f86763cbc net: dsa: mv88e6xxx: MV88E6097 does not support jumbo configuration
    f6f75b1756f7 scsi: mesh: Fix panic after host or bus reset
    b41e8798f288 scsi: megaraid_sas: Clear affinity hint
    1d7e19cf79f4 usb: gadget: f_uac2: fix AC Interface Header Descriptor wTotalLength
    b2c2b88b0496 usb: dwc2: Fix error path in gadget registration
    b8f3c361ca2c MIPS: OCTEON: add missing put_device() call in dwc3_octeon_device_init()
    db2eabff57cc phy: armada-38x: fix NETA lockup when repeatedly switching speeds
    2bf9418b7b11 mt76: mt7615: fix potential memory leak in mcu message handler
    54c9afe415dc powerpc/perf: Fix missing is_sier_aviable() during build
    53eeba79c152 coresight: tmc: Fix TMC mode read in tmc_read_unprepare_etb()
    6482f5119946 thermal: ti-soc-thermal: Fix reversed condition in ti_thermal_expose_sensor()
    c30281c4b28f usb: core: fix quirks_param_set() writing to a const pointer
    92581069807b USB: serial: iuu_phoenix: fix led-activity helpers
    278b532dfeaf spi: lantiq-ssc: Fix warning by using WQ_MEM_RECLAIM
    7e206d89e1c7 gpu: ipu-v3: Restore RGB32, BGR32
    e66ffe919ed4 drm/imx: tve: fix regulator_disable error path
    1a279871012d drm/imx: fix use after free
    44ae76d01d95 powerpc/book3s64/pkeys: Use PVR check instead of cpu feature
    6112c341ba3a phy: renesas: rcar-gen3-usb2: move irq registration to init
    e82e9db82faf PCI/ASPM: Add missing newline in sysfs 'policy'
    c537bd0732ea ASoC: meson: fixes the missed kfree() for axg_card_add_tdm_loopback
    2698fab03884 staging: rtl8192u: fix a dubious looking mask before a shift
    209207562934 ima: Have the LSM free its audit rule
    7ecfbee3b9c3 RDMA/rxe: Prevent access to wr->next ptr afrer wr is posted to send queue
    4cf66d70b5ef RDMA/qedr: SRQ's bug fixes
    978bef91cad7 powerpc/vdso: Fix vdso cpu truncation
    7beea356fabb powerpc/rtas: don't online CPUs for partition suspend
    936e927ece9b kernfs: do not call fsnotify() with name without a parent
    b7fc8591cae4 mwifiex: Prevent memory corruption handling keys
    0c0d30eaf31c scsi: scsi_debug: Add check for sdebug_max_queue during module init
    6a292c4bc027 drm/bridge: sil_sii8620: initialize return of sii8620_readb
    8ffa0cf2b662 phy: exynos5-usbdrd: Calibrating makes sense only for USB2.0 PHY
    36f9ed95ec52 drm: panel: simple: Fix bpc for LG LB070WV8 panel
    d25c81232007 leds: core: Flush scheduled work for system suspend
    adbb26e2d44e kobject: Avoid premature parent object freeing in kobject_cleanup()
    59f69f1edb56 drm/stm: repair runtime power management
    cc5f55c46a71 PCI: Fix pci_cfg_wait queue locking problem
    8fbefed6c3a0 RDMA/rxe: Skip dgid check in loopback mode
    6093eae667d6 xfs: fix reflink quota reservation accounting error
    2c5170b451b7 xfs: don't eat an EIO/ENOSPC writeback error when scrubbing data fork
    deaf69f5b028 media: cros-ec-cec: do not bail on device_init_wakeup failure
    951a21261577 media: exynos4-is: Add missed check for pinctrl_lookup_state()
    210ab36cdaa9 media: firewire: Using uninitialized values in node_probe()
    0c122fc90d02 ipvs: allow connection reuse for unconfirmed conntrack
    45a769a10126 scsi: eesox: Fix different dev_id between request_irq() and free_irq()
    76189426da56 scsi: powertec: Fix different dev_id between request_irq() and free_irq()
    691081c0558a RDMA/core: Fix bogus WARN_ON during ib_unregister_device_queued()
    67642ac2ac0b iavf: Fix updating statistics
    8d5ce7e06ff8 iavf: fix error return code in iavf_init_get_resources()
    f27a965b042f staging: vchiq_arm: Add a matching unregister call
    87a30aa61f60 drm/radeon: fix array out-of-bounds read and write issues
    db377d8caf08 cxl: Fix kobject memleak
    835c6f7c0a94 drm/mipi: use dcs write for mipi_dsi_dcs_set_tear_scanline
    6f2b14006d44 scsi: cumana_2: Fix different dev_id between request_irq() and free_irq()
    d92cc98b7423 ASoC: Intel: bxt_rt298: add missing .owner field
    a1773c8b04a4 ASoC: SOF: nocodec: add missing .owner field
    d85cebc8656f media: omap3isp: Add missed v4l2_ctrl_handler_free() for preview_init_entities()
    8fe0119f5c63 media: marvell-ccic: Add missed v4l2_async_notifier_cleanup()
    79962a7a1dd1 media: cxusb-analog: fix V4L2 dependency
    a728697b74b7 Bluetooth: btmtksdio: fix up firmware download sequence
    ecab4ef93ce6 Bluetooth: btusb: fix up firmware download sequence
    6db3579dd3a4 leds: lm355x: avoid enum conversion warning
    cc51ca361059 clk: bcm63xx-gate: fix last clock availability
    8bfd16c687cf drm/arm: fix unintentional integer overflow on left shift
    018192e85860 drm/etnaviv: Fix error path on failure to enable bus clk
    8080ccd31233 iio: improve IIO_CONCENTRATION channel type description
    b4a09e491d38 ath10k: Acquire tx_lock in tx error paths
    d9411fcc9a48 video: pxafb: Fix the function used to balance a 'dma_alloc_coherent()' call
    703a2e85a3a8 console: newport_con: fix an issue about leak related system resources
    e95d33905a4e video: fbdev: sm712fb: fix an issue about iounmap for a wrong address
    d9e13b0c26cf btmrvl: Fix firmware filename for sd8997 chipset
    671f14a14471 btmrvl: Fix firmware filename for sd8977 chipset
    89b09156ed41 mwifiex: Fix firmware filename for sd8997 chipset
    be9903c9ebe4 mwifiex: Fix firmware filename for sd8977 chipset
    e3b04e1b5b03 agp/intel: Fix a memory leak on module initialisation failure
    7669b6beb4fd drm/bridge: ti-sn65dsi86: Clear old error bits before AUX transfers
    1a981f4d6c97 drm/gem: Fix a leak in drm_gem_objects_lookup()
    167708cbebd3 drm/msm: ratelimit crtc event overflow error
    1e8d2186551b ACPICA: Do not increment operation_region reference counts for field units
    ca6654d7da59 bcache: fix super block seq numbers comparision in register_cache_set()
    db9b14ae4b6a dyndbg: fix a BUG_ON in ddebug_describe_flags
    8fb05790b55b usb: bdc: Halt controller on suspend
    296184490e2c bdc: Fix bug causing crash after multiple disconnects
    77d7ce9ccb33 usb: gadget: net2280: fix memory leak on probe error handling paths
    7404ce0f639c mmc: sdhci-pci-o2micro: Bug fix for O2 host controller Seabird1
    d000795c9f25 ionic: update eid test for overflow
    691ae7c87ff7 gpu: host1x: debug: Fix multiple channels emitting messages simultaneously
    ff3fde9d4519 iwlegacy: Check the return value of pcie_capability_read_*()
    ef62e5411db2 platform/x86: asus-nb-wmi: add support for ASUS ROG Zephyrus G14 and G15
    ce3ae44103ca brcmfmac: set state of hanger slot to FREE when flushing PSQ
    1c53aefa2866 brcmfmac: To fix Bss Info flag definition Bug
    29dd5e5309b1 brcmfmac: keep SDIO watchdog running when console_interval is non-zero
    5908a17b247d bpf: Fix fds_example SIGSEGV error
    4360d9b560bd drm/amd/powerplay: fix compile error with ARCH=arc
    fae763f1357b drm/amdgpu/display bail early in dm_pp_get_static_clocks
    87834546ea2c mm/mmap.c: Add cond_resched() for exit_mmap() CPU stalls
    ae3033d38596 irqchip/irq-mtk-sysirq: Replace spinlock with raw_spinlock
    d17931fbe9dd drm/radeon: disable AGP by default
    238e32468e0d drm/debugfs: fix plain echo to connector "force" attribute
    df91fe834bd4 drm/msm: Fix a null pointer access in msm_gem_shrinker_count()
    fae8ff2dfd8d drm: msm: a6xx: fix gpu failure after system resume
    0e76c2ffb8f0 usb: mtu3: clear dual mode of u3port when disable device
    e633add66d17 btrfs: fix lockdep splat from btrfs_dump_space_info
    7795eb18ce7d mmc: sdhci-cadence: do not use hardware tuning for SD mode
    3b69bcd45426 drm/nouveau: fix multiple instances of reference count leaks
    db0a2e4857dd drm/nouveau: fix reference count leak in nouveau_debugfs_strap_peek
    20e7c4456069 drm/etnaviv: fix ref count leak via pm_runtime_get_sync
    274f4e9c575a arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding
    454a00e9ed83 drm/nouveau/kms/nv50-: Fix disabling dithering
    d72c0f225a2f md-cluster: fix wild pointer of unlock_all_bitmaps()
    2ac7df0910e5 bus: ti-sysc: Add missing quirk flags for usb_host_hs
    6754d2a86c43 video: fbdev: neofb: fix memory leak in neo_scan_monitor()
    9ca426693563 video: fbdev: savage: fix memory leak on error handling path in probe
    8b8d17d9ff8a crypto: aesni - Fix build with LLVM_IAS=1
    cab45cfa00b8 drm/radeon: Fix reference count leaks caused by pm_runtime_get_sync
    2f04f5bcf6d9 drm/amdgpu: avoid dereferencing a NULL pointer
    6402b231824f fs/btrfs: Add cond_resched() for try_release_extent_mapping() stalls
    a6619810135b loop: be paranoid on exit and prevent new additions / removals
    0e656b7e85c3 Bluetooth: add a mutex lock to avoid UAF in do_enale_set
    f8b0407f6a5f soc: qcom: rpmh-rsc: Set suppress_bind_attrs flag
    94fd6f72a826 drm/tilcdc: fix leak & null ref in panel_connector_get_modes
    86f305a9aca0 nvme-multipath: do not fall back to __nvme_find_path() for non-optimized paths
    f0a8c0254fde nvme-multipath: fix logic for non-optimized paths
    4e8691ba0e78 nvme-rdma: fix controller reset hang during traffic
    b98a96662a4e nvme-tcp: fix controller reset hang during traffic
    6f01de256dd0 md: raid0/linear: fix dereference before null check on pointer mddev
    0f09c88f207c seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
    7915a3c04139 irqchip/ti-sci-inta: Fix return value about devm_ioremap_resource()
    2f53a4b54e25 iocost: Fix check condition of iocg abs_vdebt
    3f4f3b350a8a ARM: socfpga: PM: add missing put_device() call in socfpga_setup_ocram_self_refresh()
    9600bdd6924a spi: rockchip: Fix error in SPI slave pio read
    0b1799662a61 io_uring: fix sq array offset calculation
    afa16b50e2aa regulator: fix memory leak on error path of regulator_register()
    80242590651c recordmcount: only record relocation of type R_AARCH64_CALL26 on arm64.
    3a17c7bfe705 tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
    b1fe27d227c6 spi: lantiq: fix: Rx overflow error in full duplex mode
    e22730350d9e ARM: dts: sunxi: bananapi-m2-plus-v1.2: Fix CPU supply voltages
    acbe4a1dc54c ARM: dts: sunxi: bananapi-m2-plus-v1.2: Add regulator supply to all CPU cores
    cd9f5d2b3999 ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
    1b3cb69fd559 ARM: dts: gose: Fix ports node name for adv7612
    e21665164e99 ARM: dts: gose: Fix ports node name for adv7180
    4361bec62bda platform/x86: intel-vbtn: Fix return value check in check_acpi_dev()
    ed48a02d4cbd platform/x86: intel-hid: Fix return value check in check_acpi_dev()
    78448034fafb m68k: mac: Fix IOP status/control register writes
    b8ad79dde63f m68k: mac: Don't send IOP message until channel is idle
    38702b9081c9 clk: scmi: Fix min and max rate when registering clocks with discrete rates
    047187eb0a3f sched/uclamp: Fix initialization of struct uclamp_rq
    4d7115d29201 arm64: dts: exynos: Fix silent hang after boot on Espresso
    420acbfdd64b firmware: arm_scmi: Fix SCMI genpd domain probing
    0155cd348be2 ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
    489ee1f21993 crypto: ccree - fix resource leak on error path
    6a291f9c21e4 blktrace: fix debugfs use after free
    34108464f808 arm64: dts: qcom: msm8916: Replace invalid bias-pull-none property
    f2b639b2aa21 crc-t10dif: Fix potential crypto notify dead-lock
    c73eec04e666 EDAC: Fix reference count leaks
    192b8516c99c arm64: dts: rockchip: fix rk3399-puma gmac reset gpio
    da9dfd06dbaa arm64: dts: rockchip: fix rk3399-puma vcc5v0-host gpio
    066f85458d9c arm64: dts: rockchip: fix rk3368-lion gmac reset gpio
    e8eb09e542c1 sched: correct SD_flags returned by tl->sd_flags()
    b8d9908c9d3d sched/fair: Fix NOHZ next idle balance
    072d1300f1ce x86/mce/inject: Fix a wrong assignment of i_mce.status
    a36ff7a40d11 clk: qcom: clk-rpmh: Wait for completion when enabling clocks
    a02df82a59c3 fs/io_uring.c: Fix uninitialized variable is referenced in io_submit_sqe
    bd1584865c12 nvme: add a Identify Namespace Identification Descriptor list quirk
    039b66468fc4 HID: input: Fix devices that return multiple bytes in battery report
    16d2fb138f98 tracepoint: Mark __tracepoint_string's __used

(From OE-Core rev: c0918ffbcce3d5d05dba8ced1f5d6f451c7a81dc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d1e62066f50aaac6e1064e381c8440d45d9322b5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Ming Liu
97117d41f5 libubootenv: inherit uboot-config
This mainly aims to involve in the sanity check of UBOOT_CONFIG and
UBOOT_MACHINE, it will throw a error message at recipe parsing time if
neither of them is set, and libubootenv would be skipped.

(From OE-Core rev: 1231b05d149a1a4091a16f3364c12a6547a17f63)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 10aa1291979fb90bed1beb49be4d406ed0e1e4d5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Ming Liu
022affe459 libubootenv: uprev to v0.3
Update libubootenv to the latest 0.3 release, which comprises the
following commits:

```
1efed83 Increase max length for device name
6f4fc1c uboot_env: Use canonicalized pathname when reading device
23b3086 Fix bug introduced by commit 52a70114
ed1a53e Dont store to device if no value changes
4a0a466 Merge pull request #7 from TomzBench/cmake-fix
6117831 Added Coverity badge
49372a1 Fix coverity #293496
69a6819 Fix coverity #293503 and #293507
258bf52 Fix coverity #293501
aa52e61 Fix coverity #293505
52a7011 Fix coverity #293504 and #293506
e822218 Fix coverity #293495 and #293497
23b305f Fix coverity #293499
25ef1f6 Add coverity setup for Travis
41b5188 fixed install for static target, fixed BUILD_DOC acknowledgement
86bd30a Restore ability to feed script file via stdin, using `-s -`.
c91dcca ubi, write: fix invalid envsize ptr to UBI_IOCVOLUP
f4b9cde Allow negative offsets
45bf92a Detect sector size if not found in config
9f59db6 uboot_env: remove unused variables
65d243e README: libubootenv is now in oe-core
ba952d0 BUG: variable lists not released in close()
690f868 Variables are not removed when loading from file
9e3586a Make sure there's no file descriptor leakage in case of error
03647c4 Check config file defines a non-zero Sector size
3b2d4f1 Check environment size from fw_env.config
879c073 Do not hardcode path for install
d9c639b libubootenv: add pkg-config support
cc628ee libuboot: wrap libuboot in extern "C" for C++
```

Also add u-boot-default-env to RRECOMMENDS since
/etc/u-boot-initial-env is being referred in libubootenv source, and
turns libubootenv's PACKAGE_ARCH to be MACHINE_ARCH since
u-boot-default-env is a machine-arch package.

(From OE-Core rev: 921d063aa3d818b163c64899c1e725773adabf30)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 02d55cd35aac15095fc44f0cf8f9e7a71638f485)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Ming Liu
f5c93075b6 multilib.conf: add u-boot to NON_MULTILIB_RECIPES
u-boot should be a non multilib recipe, add it in NON_MULTILIB_RECIPES.

(From OE-Core rev: 7d9a8ee200fe3439885de9a9ba55def84b2f316b)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5e7dc0d68efb2d43bbd5b1be9e6d555fc4456fb6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Ming Liu
de39277824 conf/machine: set UBOOT_MACHINE for qemumips and qemumips64
These machines support booting U-Boot, so set the machine appropriately.

(From OE-Core rev: 259653b67810da4085fa78e8e6538651dc19ff3b)

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b812fad85aed6cb9e433c689f3b14425488dfc68)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Peter A. Bigot
bc5c367f09 bluez5: fix builds that require ell support
Shortly after the recipe was updated to add ell as a mesh dependency
the way ell was integrated into bluez5 was changed.  BlueZ requires
ell only for mesh and for btpclient (external test programs).  It will
be ignored unless either mesh or btpclient are selected.

ell can be supplied externally, or it can be copied into the bluez
build directory from an existing sibling source directory.  Since
bitbake builds do not provide a sibling source directory tell bluez to
look for it as an external library in the conditions where it's
required.

(From OE-Core rev: a29eac72da3579edd9eebc3358498146000a491a)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f22b4eba98b3707d7f6daa4277414cecb3e5ee6b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Armin Kuster
0a3b525ad5 bind: update to 9.11.22 ESV
Source: isc.org
MR: 105232, 105246, 105260
Type: Security Fix
Disposition: Backport from  https://www.isc.org/bind/
ChangeID: 655cfdf1e91c4107321e63a2012302e1cc184366
Description:

Bug fix only update

Three CVE fixes
CVE-2020-8622
CVE-2020-8623
CVE-2020-8624

For more information see: https://downloads.isc.org/isc/bind9/9.11.22/RELEASE-NOTES-bind-9.11.22.pdf

(From OE-Core rev: 08e362ebd65816106afbc594cbbc552b9a6c32c6)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1c85f26b1bd3475699d54f18c6b5b4924bcd8eb2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Martin Jansa
3546be9915 perf: backport a fix for confusing non-fatal error
* add V=1 to make log.do_compile a bit more useful, with this it shows:
  /bin/sh '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/perf/1.0-r9/perf-1.0/tools/perf/trace/beauty/arch_errno_names.sh' x86_64-oe-linux-gcc  -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/perf/1.0-r9/recipe-sysroot /OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/perf/1.0-r9/perf-1.0/tools > /OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/perf/1.0-r9/perf-1.0/trace/beauty/generated/arch_errno_name_array.c
  find: unknown predicate `-m64/arch'
  x86_64-oe-linux-gcc: error: unrecognized command-line option '-m64/include/uapi/asm-generic/errno.h'
  x86_64-oe-linux-gcc: fatal error: no input files
  compilation terminated.
  x86_64-oe-linux-gcc: error: unrecognized command-line option '-m64/include/uapi/asm-generic/errno.h'
  x86_64-oe-linux-gcc: fatal error: no input files
  compilation terminated.

* apply e4ffd066ff
  with sed call to fix this

(From OE-Core rev: 5f41726872d751c3bfe784ca14eca9be4a4e3c4b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c603e6e13e44ae907cf1f04abf6e1babf3d7be26)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Changqing Li
16701c5367 gpgme: fix multilib header conflict
fix error:
file /usr/include/gpgme.h conflicts between attempted installs of gpgme-dev-1.13.1-r0.core2_64 and lib32-gpgme-dev-1.13.1-r0.core2_32

part of diff:
-#if 64
+#if 0
 #ifndef _FILE_OFFSET_BITS
-#error GPGME was compiled with _FILE_OFFSET_BITS = 64, please see the section "Largefile support (LFS)" in the GPGME manual.
+#error GPGME was compiled with _FILE_OFFSET_BITS = 0, please see the section "Largefile support (LFS)" in the GPGME manual.
 #else
-#if (_FILE_OFFSET_BITS) != (64)
-#error GPGME was compiled with a different value for _FILE_OFFSET_BITS, namely 64, please see the section "Largefile support (LFS)" in the GPGME manual.
+#if (_FILE_OFFSET_BITS) != (0)
+#error GPGME was compiled with a different value for _FILE_OFFSET_BITS, namely 0, please see the section "Largefile support (LFS)" in the GPGME manual.
 #endif
 #endif
 #endif

LFS support is enabled by default, and this header is generated during
build according to current configure

(From OE-Core rev: 82df23b088a4844d1f171bfa70c212ff62c3a741)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bd056f9c4c22740a4f7ede00c758a21037eae5ca)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Guillaume Champagne
2e071e6ddf weston: add missing packageconfigs
Add missing package configs to:
	- Select shell integration
	- Disable screen sharing module (independent from backend)
	- Disable jpeg image support

`PACKAGECONFIG` default value is updated to enable these configs, since
they were previously implicitly enabled.

(From OE-Core rev: 156d3e066dbac0986f4f55bef9b2d9922b18e738)

Signed-off-by: Guillaume Champagne <champagne.guillaume.c@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f883413b2bc6e7d0bd44ce8324cd36a8fe918e5f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Vijai Kumar K
eb929eef58 image_types_wic: Add ASSUME_PROVIDED to WICVARS
Add ASSUME_PROVIDED to WICVARS so that wic can use that
when running on bitbake environment.

This fixes the below build failure in do_image_wic
when --include-path is used in wks file.

(From OE-Core rev: 105f352abab0a57d6d3a6cf3d75ba4d895e3c254)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 04068ff19d2c18c3b915aab6832ad4b48affa07f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Mark Hatle
e0b6c93875 package.bbclass: Sort shlib2 output for hash equivalency
The output was unsorted, so different versions of python, different input
ordering could have have changed the files, and thus changed the hashes
making the system think the output was different, even when unmodified.

(From OE-Core rev: 07d15b83a998d6a80eba2cf8649486bfe302f94d)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 23cc846c92219c5cbe3fc6a0024579195d3cbd78)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Mark Hatle
966323d80e package_tar.bbclass: Sync to the other package_* classes
Sync up the anonymous python definition with the other package_*.bbclass
files.  This should make future maintenance easier, even though it has
no difference in behavior from what was there.

Additional, there was a missing deltask in the nopackages.bbclass related
to the package_tar which has been corrected.  This could cause problems on
native recipes when package_tar was enabled.

(From OE-Core rev: 2ac25329fd2efbfdcc2b97948cdcb3402ee497e0)

Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f87452942f6391a239b50e3f3f9fa100e74a78fa)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
TeohJayShen
0f2bb6b010 oeqa/manual/bsp-hw.json : remove X_server_can_start_up_with_runlevel_5_boot test
remove the test as graphical mode is already being validated

(From OE-Core rev: 2de541adc2dfc11be72446d3f80a9874f8be86c1)

Signed-off-by: TeohJayShen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ad5b5ca9ec1d9106911a610bb36fb98e3f17748d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
TeohJayShen
33208828ed oeqa/manual/bsp-hw.json : remove shutdown_system test
remove the test as shutdown function is already being validated

(From OE-Core rev: a0d678cd3b7b0193450abe00e58f71692a75360e)

Signed-off-by: TeohJayShen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 58281082fbed57298247c019c3d8149e688de161)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Richard Purdie
8554139871 runqemu: Show an error for conflicting graphics options
The autobuilder managed to pass the nographic option with "sdl gl" due
to a problem elsewhere. It would have been useful for runqemu to have
errored rather than passing conflicting options to qemu. Add an
error for this invalid usecase.

(From OE-Core rev: e62c8207fa47ff4e325529ea84e0d51710deaa3c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 377a6ffbcba0d3c5ede470c989756c4d1636873f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Joshua Watt
ab50d533fe oeqa: runtime_tests: Extra GPG debugging
This patch enables extra debugging for gpg to try and get more debugging
information when [YOCTO #14003] occurs

(From OE-Core rev: b1fa60c791e759f7171862db68dbad2687e83812)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f24d7be1fb863006b5414fa8f9c9a37bb48d5a6f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-09-02 16:04:37 +01:00
Vasyl Vavrychuk
4fe9a766d6 runqemu: Check gtk or sdl option is passed together with gl or gl-es options.
runqemu help reports that gtk or sdl option is needed with gl or gl-es
option. But if user forgot to add gtk or sdl option, then gl or gl-es
options were silently skipped.

(From OE-Core rev: bec0a45393d968251059f5075add2cf633aecd1a)

Signed-off-by: Vasyl Vavrychuk <vvavrychuk@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4d1e93d4bf013bb0c48032bfda43f77c5aba9ecf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Mikko Rapeli
30004e7cfb alsa-ucm-conf: use ${datadir} in do_install()
Fixes build with custom directory structure.

(From OE-Core rev: da9571716c40fd8129e8c8f24f07302458b43e31)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 710567168eca3d9a580f768a82db033f1cca3cec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Mikko Rapeli
f9f53e5d54 alsa-topology-conf: use ${datadir} in do_install()
Fixes build with custom directory structure.

(From OE-Core rev: 35b3e2365fe0a361d62c1d9abebd40de9e27af25)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9eec98b3842bb046cbd202140b9b5ccf09d20466)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Changqing Li
99d49ebc21 libffi: fix multilib header conflict
fix error:
file /usr/include/ffitarget.h conflicts between attempted installs of lib32-libffi-dev-3.3-r0.armv7vet2hf_vfp and libffi-dev-3.3-r0.cortexa57

part of diff

#ifndef LIBFFI_ASM
-typedef unsigned long          ffi_arg;
-typedef signed long            ffi_sarg;
-
-typedef enum ffi_abi {
-  FFI_FIRST_ABI = 0,
-  FFI_SYSV,
-  FFI_VFP,
-  FFI_LAST_ABI,
-#if defined(__ARM_PCS_VFP) || defined(_M_ARM)
-  FFI_DEFAULT_ABI = FFI_VFP,
+#ifdef __ILP32__
+#define FFI_SIZEOF_ARG 8
+#define FFI_SIZEOF_JAVA_RAW  4
+typedef unsigned long long ffi_arg;
+typedef signed long long ffi_sarg;
+#elif defined(_M_ARM64)
+#define FFI_SIZEOF_ARG 8
+typedef unsigned long long ffi_arg;
+typedef signed long long ffi_sarg;
 #else
-  FFI_DEFAULT_ABI = FFI_SYSV,
-#endif
-} ffi_abi;
+typedef unsigned long ffi_arg;
+typedef signed long ffi_sarg;
 #endif

-#define FFI_EXTRA_CIF_FIELDS			\
-  int vfp_used;					\
-  unsigned short vfp_reg_free, vfp_nargs;	\
-  signed char vfp_args[16]			\
-
-#define FFI_TARGET_SPECIFIC_VARIADIC
-#ifndef _M_ARM
-#define FFI_TARGET_HAS_COMPLEX_TYPE
+typedef enum ffi_abi
+  {
+    FFI_FIRST_ABI = 0,
+    FFI_SYSV,
+    FFI_LAST_ABI,
+    FFI_DEFAULT_ABI = FFI_SYSV
+  } ffi_abi;
 #endif

 /* ---- Definitions for closures ----------------------------------------- */

 #define FFI_CLOSURES 1
-#define FFI_GO_CLOSURES 1
 #define FFI_NATIVE_RAW_API 0

 #if defined (FFI_EXEC_TRAMPOLINE_TABLE) && FFI_EXEC_TRAMPOLINE_TABLE

 #ifdef __MACH__
-#define FFI_TRAMPOLINE_SIZE 12
-#define FFI_TRAMPOLINE_CLOSURE_OFFSET 8
+#define FFI_TRAMPOLINE_SIZE 16
+#define FFI_TRAMPOLINE_CLOSURE_OFFSET 16
 #else
 #error "No trampoline table implementation"
 #endif

 #else
-#ifdef _MSC_VER
-#define FFI_TRAMPOLINE_SIZE 16
-#define FFI_TRAMPOLINE_CLOSURE_FUNCTION 12
-#else
-#define FFI_TRAMPOLINE_SIZE 12
-#endif
+#define FFI_TRAMPOLINE_SIZE 24
 #define FFI_TRAMPOLINE_CLOSURE_OFFSET FFI_TRAMPOLINE_SIZE
 #endif

+#ifdef _M_ARM64
+#define FFI_EXTRA_CIF_FIELDS unsigned is_variadic
+#endif
+

(From OE-Core rev: 6392d99de30e74c41b289c43fd98601e6cbc34ab)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit efe8d76810973e7032e729beee106b8acc39b8ed)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Wang Mingyu
d518e30674 xserver-xorg: upgrade 1.20.7 -> 1.20.8
Bug fix point release for current stable branch

Adam Jackson (1):
      Revert "dri2: Don't make reference to noClientException"

Arthur Williams (1):
      dix: Check for NULL spriteInfo in GetPairedDevice

Daniel Llewellyn (1):
      os: Ignore dying client in ResetCurrentRequest

Dave Airlie (1):
      modesetting: remove unnecessary error message, fix zaphod leases

David Seifert (1):
      Fix building with `-fno-common`

Dor Askayo (1):
      xwayland: clear pixmaps after creation in rootless mode

Eric Anholt (1):
      glamor: Fix a compiler warning since the recent OOM fixes.

George Matsumura (1):
      Restrict 1x1 pixmap filling optimization to GXcopy

Jon Turney (2):
      Add xf86OSInputThreadInit to stub os-support as well
      Fix old-style definition warning for xf86OSInputThreadInit()

Jonas Ådahl (1):
      xwayland/glamor-gbm: Handle DRM_FORMAT_MOD_INVALID gracefully

Kenneth Graunke (1):
      configure: Define GLAMOR_HAS_EGL_QUERY_DRIVER when available

Maarten Lankhorst (1):
      modesetting: Disable atomic support by default

Matt Turner (1):
      xserver 1.20.8

Michel Dänzer (8):
      modesetting: Explicitly #include "mi.h"
      xfree86/modes: Bail from xf86RotateRedisplay if pScreen->root is NULL
      xwayland: Split up xwl_screen_post_damage into two phases
      xwayland: Call glamor_block_handler from xwl_screen_post_damage
      xwayland: Add xwl_window_create_frame_callback helper
      xwayland: Use single frame callback for Present flips and normal updates
      xwayland: Use frame callbacks for Present vblank events
      xwayland: Delete all frame_callback_list nodes in xwl_unrealize_window

Paul Kocialkowski (4):
      glamor: Propagate FBO allocation failure for picture to texture upload
      glamor: Error out on out-of-memory when allocating PBO for FBO access
      glamor: Propagate glamor_prepare_access failures in copy helpers
      glamor: Fallback to system memory for RW PBO buffer allocation

(From OE-Core rev: 55d6ba6f7635f4939e6dad0bd3f6730a23870238)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4e06262ee0eafa4aff6dfcd7bd2fdd62820d5f12)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Lee Chee Yang
c271090385 perl: fix CVE-2020-12723
Minor changes to the test cases count in the .patch file to make it
align with current version, so the fixes can be apply.
Changes apply to line:
66bbb51b93 (diff-e31ddd69cf47acf02911647c691a0283L28)

(From OE-Core rev: 43f1aa650c45a0976230c7c2f79d8efe0e6e159a)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Lee Chee Yang
060ba609bd ghostscript: update to 9.52
This is maintenance release consolidating the changes introduced
in 9.50. see :
https://www.ghostscript.com/doc/9.52/News.htm

Drop all custom objarch.h files; ghostscript nowadays generates
that with autoconf.

Freetype can no longer be disabled.

Building out of source tree is broken.

Upgrade include several CVE fixes:
CVE-2020-16287
CVE-2020-16288
CVE-2020-16289
CVE-2020-16290
CVE-2020-16291
CVE-2020-16292
CVE-2020-16293
CVE-2020-16294
CVE-2020-16295
CVE-2020-16296
CVE-2020-16297
CVE-2020-16298
CVE-2020-16299
CVE-2020-16300
CVE-2020-16301
CVE-2020-16302
CVE-2020-16303
CVE-2020-16304
CVE-2020-16305
CVE-2020-16308
CVE-2020-16309
CVE-2020-17538

(From OE-Core rev: 1cee5540ca74c38cc483b28f720e345644d6ca9b)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Bruce Ashfield
d3b9f11e19 linux-yocto/5.4: perf cs-etm: Move definition of 'traceid_list' global variable from header file
Integrating the following commit(s) to linux-yocto/5.4:

    706efec4c1e2 perf cs-etm: Move definition of 'traceid_list' global variable from header file

(From OE-Core rev: 033e4bdb9f80aed3ba009e105acd5b61a8899626)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8e1d8c2099f29b45f1e96d4349731db036fb7548)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Bruce Ashfield
4c3812b539 linux-yocto/5.4: update to v5.4.58
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    cad17feaf0d0 Linux 5.4.58
    512570b17807 nfsd: Fix NFSv4 READ on RDMA when using readv
    df6aeb5235e9 ima: move APPRAISE_BOOTPARAM dependency on ARCH_POLICY to runtime
    fb264505b395 tcp: apply a floor of 1 for RTT samples from TCP timestamps
    848e15a8c8f6 selftests/net: relax cpu affinity requirement in msg_zerocopy test
    b8f2d34f6bb5 Revert "vxlan: fix tos value before xmit"
    daff7f09f341 openvswitch: Prevent kernel-infoleak in ovs_ct_put_key()
    ba729a97ae54 net: thunderx: use spin_lock_bh in nicvf_set_rx_mode_task()
    786a9368be8c net: gre: recompute gre csum for sctp over gre tunnels
    5d791d36a49b hv_netvsc: do not use VF device if link is down
    3a82f4bfd20a dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
    5a963aa72107 appletalk: Fix atalk_proc_init() return path
    3787b5a3ac67 net: lan78xx: replace bogus endpoint lookup
    31489ed8c20c vxlan: Ensure FDB dump is performed under RCU
    106b415d5139 rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
    6f9354702ca5 net: ethernet: mtk_eth_soc: fix MTU warnings
    bd68177f26e4 ipv6: Fix nexthop refcnt leak when creating ipv6 route info
    89c12bc36262 ipv6: fix memory leaks on IPV6_ADDRFORM path
    9b37a7bcdd8a ipv4: Silence suspicious RCU usage warning
    4913f71e64ab PCI: tegra: Revert tegra124 raw_violation_fixup
    ceff42e6c1fc Revert "powerpc/kasan: Fix shadow pages allocation failure"
    11e64146dc69 xattr: break delegations in {set,remove}xattr
    6059000e145f Drivers: hv: vmbus: Ignore CHANNELMSG_TL_CONNECT_RESULT(23)
    3429579045f1 tools lib traceevent: Fix memory leak in process_dynamic_array_len
    414f10532c14 atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
    5414f27048e5 igb: reinit_locked() should be called with rtnl_lock
    7c8a863ba3cb cfg80211: check vendor command doit pointer before use
    83ea63708a29 firmware: Fix a reference count leak.
    01fdcb848611 ALSA: hda: fix NULL pointer dereference during suspend
    eb96e4f71f59 net: ethernet: mtk_eth_soc: Always call mtk_gmac0_rgmii_adjust() for mt7623
    fd601f38f59d usb: hso: check for return value in hso_serial_common_create()
    871b5a5a3be9 i2c: slave: add sanity check when unregistering
    fa0195d83a49 i2c: slave: improve sanity check when registering
    4bba72b72c36 drm/drm_fb_helper: fix fbdev with sparc64
    8e6af828a332 nvme-pci: prevent SK hynix PC400 from using Write Zeroes command
    802df1e3f40c drm/nouveau/fbcon: zero-initialise the mode_cmd2 structure
    5955ccb5a46d drm/nouveau/fbcon: fix module unload when fbcon init has failed for some reason
    e0c47a51fc62 net/9p: validate fds in p9_fd_open
    fe6402e0e66c leds: 88pm860x: fix use-after-free on unbind
    3564cddefb5b leds: lm3533: fix use-after-free on unbind
    385c1ae9ddb9 leds: da903x: fix use-after-free on unbind
    bde8f23c030c leds: lm36274: fix use-after-free on unbind
    635f8fcc2ee3 leds: wm831x-status: fix use-after-free on unbind
    9a53e8bd59d9 mtd: properly check all write ioctls for permissions
    8c3215a0426c vgacon: Fix for missing check in scrollback handling
    1ae21e97d5d3 scripts: add dummy report mode to add_namespace.cocci
    5f5fb7cea828 Smack: fix use-after-free in smk_write_relabel_self()
    c5665cafbedd binder: Prevent context manager from incrementing ref 0
    da47eae4e165 omapfb: dss: Fix max fclk divider for omap36xx
    b78763e0a247 Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_with_rssi_evt()
    70d1e884edc4 Bluetooth: Prevent out-of-bounds read in hci_inquiry_result_evt()
    c26eaaf547b7 Bluetooth: Fix slab-out-of-bounds read in hci_extended_inquiry_result_evt()
    a8b8b535c588 Staging: rtl8188eu: rtw_mlme: Fix uninitialized variable authmode
    af707d9d7f44 staging: rtl8712: handle firmware load failure
    6a7626c4798d staging: android: ashmem: Fix lockdep warning for write operation
    4d81a7bdd3b2 ALSA: seq: oss: Serialize ioctls
    3ebdc7b61906 ALSA: hda/ca0132 - Fix AE-5 microphone selection commands.
    b8ce0756b312 ALSA: hda/ca0132 - Fix ZxR Headphone gain control get value.
    87775770635a ALSA: hda/ca0132 - Add new quirk ID for Recon3D.
    1d05ad79e1dd ALSA: hda/realtek: Add alc269/alc662 pin-tables for Loongson-3 laptops
    864468a7a63b Revert "ALSA: hda: call runtime_allow() for all hda controllers"
    e8053c68337e io_uring: Fix use-after-free in io_sq_wq_submit_work()
    a4d61e66ee4a io_uring: prevent re-read of sqe->opcode
    67afa25456d0 usb: xhci: Fix ASMedia ASM1142 DMA addressing
    e7ad225ba4ef usb: xhci: define IDs for various ASMedia host controllers
    7173ac5c07bb USB: iowarrior: fix up report size handling for some devices
    68a2350376b1 perf/core: Fix endless multiplex timer
    aabba1b10075 USB: serial: qcserial: add EM7305 QDL product ID

(From OE-Core rev: c4c7de54d0e914ec2385cb0f88c2e6f391f0eb0f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 62acf5a876875bf734d53bd526b11b19e7bfcf45)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:50 +01:00
Richard Purdie
188cf0a77d selftest/tinfoil: Increase wait event timeout
We're seeing this on the autobuilder when IO load is high. Increase
the timeout to give this a better chance of working out ok since
there is no particular reason we only need to wait 5s and searching
for files is IO sensitive.

[YOCTO #14001]

(From OE-Core rev: c0292d36dc79d0b1864eccddaa48b033c183d2dc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c847ed207795bc03f791ee5a3348fa5860c53e70)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:49 +01:00
Chen Qi
75c7726a20 fribidi: extend CVE_PRODUCT to include fribidi
For example, CVE-2019-18397 uses fribidi instead gnu_fribidi.

(From OE-Core rev: e6e40f16e66e8720cd7c6f67f4328936967d3ee9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fa5d0f2c61a704436d71e5f02042fa8b2940f541)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:49 +01:00
Adrian Bunk
efb3df063d librsvg: Upgrade 2.40.20 -> 2.40.21
This fixes CVE-2019-20446.

(From OE-Core rev: 586da5f972a7cc701969fb36f2a15bd36f6dece0)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5c117379dec1e33216fcbaf49d2b6130adf54bc1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-27 08:25:49 +01:00
Bruce Ashfield
4e931b1d05 linux-yocto/5.4: update to v5.4.57
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    d9939285fc81 Linux 5.4.57
    ca7ace8fd26d bpf: sockmap: Require attach_bpf_fd when detaching a program
    9fe975acb53f selftests: bpf: Fix detach from sockmap tests
    c77610435355 ext4: fix direct I/O read error
    6330b0cb2ace arm64: Workaround circular dependency in pointer_auth.h
    f06d60ff794a random32: move the pseudo-random 32-bit definitions to prandom.h
    c131009987f2 random32: remove net_rand_state from the latent entropy gcc plugin
    7471f3228e7a random: fix circular include dependency on arm64 after addition of percpu.h
    50bf89625bba ARM: percpu.h: fix build error
    c15a77bdda2c random32: update the net random state on interrupt and activity

(From OE-Core rev: 553a96644957ca6ad0f13b75a6e3a596357d1d52)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 00ea26a7e535c70998a5b9228185403e3f440042)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Bruce Ashfield
918a181687 linux-yocto/5.4: update to v5.4.56
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    1b940bbc5c55 Linux 5.4.56
    df35e878d0a5 perf bench: Share some global variables to fix build with gcc 10
    702d1b287fd2 perf env: Do not return pointers to local variables
    73d2d6b421df perf tests bp_account: Make global variable static
    39568546706f x86/i8259: Use printk_deferred() to prevent deadlock
    01ac46c6baf0 KVM: LAPIC: Prevent setting the tscdeadline timer if the lapic is hw disabled
    fd412846a6ec KVM: arm64: Don't inherit exec permission across page-table levels
    1aff51292ee8 drivers/net/wan: lapb: Corrected the usage of skb_cow
    f88c909dc28c RISC-V: Set maximum number of mapped pages correctly
    e3043abb5baa xen-netfront: fix potential deadlock in xennet_remove()
    a7b488d65d39 cxgb4: add missing release on skb in uld_send()
    5f4e6b874b57 x86/stacktrace: Fix reliable check for empty user task stacks
    32344d2993b0 x86/unwind/orc: Fix ORC for newly forked tasks
    a14d6a9ddf33 Revert "i2c: cadence: Fix the hold bit setting"
    df366abb9c8f net: ethernet: ravb: exit if re-initialization fails in tx timeout
    ac7c3b8f34ec parisc: add support for cmpxchg on u8 pointers
    a0ba41317c89 scsi: core: Run queue in case of I/O resource contention failure
    0ac155dcf048 nfc: s3fwrn5: add missing release on skb in s3fwrn5_recv_frame
    50c5f89637bc selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support
    78c7532b80c6 qed: Disable "MFW indication via attention" SPAM every 5 minutes
    6e4620df9cbc selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion
    5b235c1d9022 usb: hso: Fix debug compile warning on sparc32
    cac2b7ad0915 vxlan: fix memleak of fdb
    1df0000b30cd perf tools: Fix record failure when mixed with ARM SPE event
    568995fb61e7 net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
    e68b7b9b03fb net: gemini: Fix missing clk_disable_unprepare() in error path of gemini_ethernet_port_probe()
    1158aa743a0b net: nixge: fix potential memory leak in nixge_probe()
    9acd96f14a49 Bluetooth: fix kernel oops in store_pending_adv_report
    3bb2f52ad9e7 arm64: csum: Fix handling of bad packets
    8a90b436a0c9 arm64/alternatives: move length validation inside the subsection
    4a50753aacb5 mac80211: mesh: Free pending skb when destroying a mpath
    3f15e3e62c80 mac80211: mesh: Free ie data when leaving mesh
    fe58e3dd6e11 bpf: Fix map leak in HASH_OF_MAPS map
    43c390b751ba ibmvnic: Fix IRQ mapping disposal in error path
    ea559138b331 mlxsw: core: Free EMAD transactions using kfree_rcu()
    57f498ced731 mlxsw: core: Increase scope of RCU read-side critical section
    0f424eda4705 mlx4: disable device on shutdown
    c3883876d3f1 rhashtable: Fix unprotected RCU dereference in __rht_ptr
    b1d629d32910 net: lan78xx: fix transfer-buffer memory leak
    9db3040eb952 net: lan78xx: add missing endpoint sanity check
    32ec4441cca1 net/mlx5e: Fix kernel crash when setting vf VLANID on a VF dev
    475cbcef491a net/mlx5e: Modify uplink state on interface up/down
    43608372b84d net/mlx5: Verify Hardware supports requested ptp function on a given pin
    8901896f69d4 net/mlx5e: Fix error path of device attach
    00bedd730d1f net/mlx5: E-switch, Destroy TSAR when fail to enable the mode
    d70f9a3cc32c net: hns3: fix aRFS FD rules leftover after add a user FD rule
    475b8d619268 net: hns3: fix a TX timeout issue
    5fc02e8d1bfd sh: Fix validation of system call number
    2f2674997dfb sh/tlb: Fix PGTABLE_LEVELS > 2
    222dbeca05fb selftests/net: so_txtime: fix clang issues for target arch PowerPC
    d817b2c8d3cf selftests/net: psock_fanout: fix clang issues for target arch PowerPC
    22f84cce9527 selftests/net: rxtimestamp: fix clang issues for target arch PowerPC
    831c904a0f68 nvme-tcp: fix possible hang waiting for icresp response
    9a1d0084cbe1 ARM: dts: armada-38x: fix NETA lockup when repeatedly switching speeds
    731e013e33b3 xfrm: Fix crash when the hold queue is used.
    a4c902887f1d ARM: dts sunxi: Relax a bit the CMA pool allocation range
    0307da686660 xfrm: policy: match with both mark and mask on user interfaces
    bbb13adb07af net/x25: Fix null-ptr-deref in x25_disconnect
    69cd304cfa5c net/x25: Fix x25_neigh refcnt leak when x25 disconnect
    c2fd34d43110 libtraceevent: Fix build with binutils 2.35
    2ec69499b758 rds: Prevent kernel-infoleak in rds_notify_queue_get()
    6a9428427da1 drm: hold gem reference until object is no longer accessed
    7eef3b463d88 drm/dbi: Fix SPI Type 1 (9-bit) transfer
    8ea180f1c7ec drm/amdgpu: Prevent kernel-infoleak in amdgpu_info_ioctl()
    f1b4bdde2bdc drm/amd/display: Clear dm_state for fast updates
    22d3202e51a7 Revert "drm/amdgpu: Fix NULL dereference in dpm sysfs handlers"
    cea6633d5382 virtio_balloon: fix up endian-ness for free cmd id
    c2f787f904e0 ARM: dts: imx6qdl-icore: Fix OTG_ID pin and sdcard detect
    b9274613114a ARM: dts: imx6sx-sdb: Fix the phy-mode on fec2
    c4738c67a569 ARM: dts: imx6sx-sabreauto: Fix the phy-mode on fec2
    3b7e4a5ba95d ARM: 8986/1: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
    b8fa0b037047 wireless: Use offsetof instead of custom macro.
    d3472f74d229 9p/trans_fd: Fix concurrency del of req_list in p9_fd_cancelled/p9_read_work
    96f105943cff vhost/scsi: fix up req type endian-ness
    951117a2079b IB/rdmavt: Fix RQ counting issues causing use of an invalid RWQE
    dc731d262811 ALSA: hda/hdmi: Fix keep_power assignment for non-component devices
    6a67b05c6f30 ALSA: hda/realtek - Fixed HP right speaker no sound
    09832a9e0b76 ALSA: hda/realtek: Fix add a "ultra_low_power" function for intel reference board (alc256)
    e9f147c937a5 ALSA: hda/realtek: typo_fix: enable headset mic of ASUS ROG Zephyrus G14(GA401) series with ALC289
    cd76d30f51fb ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G15(GA502) series with ALC289
    6d84a8cf8a02 ALSA: usb-audio: Add implicit feedback quirk for SSL2
    47e20933814f mm/filemap.c: don't bother dropping mmap_sem for zero size readahead
    140210554274 PCI/ASPM: Disable ASPM on ASMedia ASM1083/1085 PCIe-to-PCI bridge
    2ff65580d477 ath10k: enable transmit data ack RSSI for QCA9884
    98cef10fbcca sunrpc: check that domain table is empty at module unload.
    84da97713b91 media: rc: prevent memory leak in cx23888_ir_probe
    ecfa7fa198fc crypto: ccp - Release all allocated memory if sha type is invalid
    169b93899c7d Linux 5.4.55
    909dbf09cd01 Revert "dpaa_eth: fix usage as DSA master, try 3"
    4918285a6c7d PM: wakeup: Show statistics for deleted wakeup sources again
    59242fa1d2ba regmap: debugfs: check count when read regmap file
    df89c1ee034c udp: Improve load balancing for SO_REUSEPORT.
    6735c126d272 udp: Copy has_conns in reuseport_grow().
    86512c6938a9 sctp: shrink stream outq when fails to do addstream reconf
    46e7c7efc30d sctp: shrink stream outq only when new outcnt < old outcnt
    bbf6af4a938a AX.25: Prevent integer overflows in connect and sendmsg
    182ffc66456b tcp: allow at most one TLP probe per flight
    e2f904fd79a0 rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
    01c928350641 rtnetlink: Fix memory(net_device) leak when ->newlink fails
    b7d3d6df72a8 qrtr: orphan socket in qrtr_release()
    2bf797a8691a net: udp: Fix wrong clean up for IS_UDPLITE macro
    274b40b6df6c net-sysfs: add a newline when printing 'tx_timeout' by sysfs
    8d9f13dd400c ip6_gre: fix null-ptr-deref in ip6gre_init_net()
    fbcd85cd11de drivers/net/wan/x25_asy: Fix to make it work
    d109acd58052 dev: Defer free of skbs in flush_backlog
    52aeeec1a635 AX.25: Prevent out-of-bounds read in ax25_sendmsg()
    2f1624faf647 AX.25: Fix out-of-bounds read in ax25_connect()

(From OE-Core rev: 27e82a421ec4614bff2841734fa19c1ec455ae3b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a9b3ecf377a1c01979311dc7082c401c957ca6ff)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Bruce Ashfield
348dca519f linux-yocto-rt/5.4: update to rt32
Integrating the following commit(s) to linux-yocto/5.4:

    2739bdb0bfa0 Linux 5.4.54-rt32
    0124e412ea96 Linux 5.4.52-rt31
    d85676a72421 Linux 5.4.49-rt30
    72bbd8083a44 Linux 5.4.48-rt29

(From OE-Core rev: 7c4b2aa7f1b4d047a552072924fb97762d776803)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b21783c173594e5dac3c437e290b26643382c2e9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Khem Raj
cb4c1f78c1 go: Upgrade to 1.14.7
CVE_CHECK_WHITELIST += "CVE-2020-16845"

(From OE-Core rev: 787c7a2b355a06bc5d6d6fa30ccc37111c78ee00)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Li Zhou <li.zhou@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 91580c9d335e0fbee95f94be6f9b34298d3e9a48)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Khem Raj
d23f1ebdd3 go: update 1.14.4 -> 1.14.6
Includes security Fixes for CVE-2020-14039 and CVE-2020-15586

(cherry picked from commit 97d5c2d1f2dffe2518f46bbe57cb9348eb59c633)
(cherry picked from commit 6591d269792fe864d7af4e379035f1cebc4510f5)
(cherry picked from commit c9011d04eb624aeabf5d707e88de80137bcc2eb1)

(From OE-Core rev: e33d2ddaa6c8945227a5bbf4e96d63606d0fab38)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Khem Raj
6082575faf gcc-9.3.inc: Mark CVE-2019-15847 as fixed
We do not have explicit patch to mark it and cve checker gets confused,
so help it out

(From OE-Core rev: 17c654c34d59b1491f41fc328222697f407c23b1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Khem Raj
73b941cf53 glibc: Bring in CVE fixes and other bugfixes from 2.31 release branch
Drop 0016-Add-unused-attribute.patch since its fixed by Rewrite iconv
option parsing [BZ #19519] [1]

Upgrade to latest on 2.31 branch which brings following bug fixes

* 6fdf971c9db (origin/release/2.31/master) Add NEWS entry for CVE-2016-10228 (bug 19519)
* 70d585151c0 Rewrite iconv option parsing [BZ #19519]
* 1c8efe848bf powerpc: Fix incorrect cache line size load in memset (bug 26332)
* 7611339a9b5 nptl: Zero-extend arguments to SETXID syscalls [BZ #26248]
* 21b760cc2fa Disable warnings due to deprecated libselinux symbols used by nss and nscd
* 6f3459f9859 Add NEWS entry for CVE-2020-6096 (bug 25620)
* 64246fccafc arm: CVE-2020-6096: Fix multiarch memcpy for negative length [BZ #25620]
* 9bbd2b61729 arm: CVE-2020-6096: fix memcpy and memmove for negative length [BZ #25620]
* 4e8a33a9590 NEWS: Mention BZ 25933 fix
* fd15ba932d2 Fix avx2 strncmp offset compare condition check [BZ #25933]
* 3a44844c97a nss_compat: internal_end*ent may clobber errno, hiding ERANGE [BZ #25976]
* c8391752678 aarch64: fix strcpy and strnlen for big-endian [BZ #25824]
* 10947412240 aarch64: Accept PLT calls to __getauxval within libc.so
* a98b8b221cf NEWS: Mention fixes for BZ 25810/25896/25902/25966
* 4c833bbebe3 x86-64: Use RDX_LP on __x86_shared_non_temporal_threshold [BZ #25966]
* 3b9ceb33204 NEWS: Mention bug 25639 fixed in 2.31 branch
* bb44fe7711a oc_FR locale: Fix spelling of April (bug 25639)
* f2ac7920474 oc_FR locale: Fix spelling of Thursday (bug 25639)
* 18fdba553dd Add a C wrapper for prctl [BZ #25896]
* 7c9e054afdd powerpc: Rename argN to _argN in LOADARGS_N [BZ #25902]
* 9c5ae39a644 Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810]
* 63c3696a4ac Mark unsigned long arguments with U in more syscalls [BZ #25810]
* 5b9d49293b7 Add a syscall test for [BZ #25810]
* 496b5963a75 Add SYSCALL_ULONG_ARG_[12] to pass long to syscall [BZ #25810]
* 04330f85263 x32: Properly pass long to syscall [BZ #25810]
* de371d1581f Fix build with GCC 10 when long double = double.
* ece4e11d55d Add new file missed in previous hppa commit.
* 91b909315c4 Fix data race in setting function descriptors during lazy binding on hppa.
* b999c0098ae nios2: delete sysdeps/unix/sysv/linux/nios2/kernel-features.h
* 54ba2541b3a mips: Fix bracktrace result for signal frames
* 83d3eec6728 stdlib: Move tst-system to tests-container
* ad9b0037ccc support/shell-container.c: Add builtin kill
* 2448ba1d724 support/shell-container.c: Add builtin exit
* 5810e6d75ff support/shell-container.c: Return 127 if execve fails
* d39fb022c26 Add NEWS entry for CVE-2020-1751 (bug 25423)
* 46bbbd46223 posix: Fix system error return value [BZ #25715]
* 3937f6806d9 Add NEWS entry for CVE-2020-1752 (bug 25414)
* ab029a2801d Fix use-after-free in glob when expanding ~user (bug 25414)
* a3189fb15b4 Update syscall lists for Linux 5.5.
* 05c08d5aea9 NEWS: update list of bugs fixed on the 2.31 branch
* 123d48b33a5 Add NEWS entry for CVE-2020-10029 (bug 25487)
* 03f44ce0938 math/test-sinl-pseudo: Use stack protector only if available
* e85a88e00c1 sparc: Move sigreturn stub to assembly
* a9ae2062d57 arm: Fix softp-fp Implies (BZ #25635)
* da6ce60e3cb linux/sysipc: Include linux/posix_types.h for __kernel_mode_t
* 9db2970506c linux: Clear mode_t padding bits (BZ#25623)
* 44f2c26ee4f i386: Use comdat instead of .gnu.linkonce for i386 setup pic register (BZ #20543)
* f2d95cf030f Improve IFUNC check [BZ #25506]
* 9f997ceca28 Avoid ldbl-96 stack corruption from range reduction of pseudo-zero (bug 25487).

[1] https://sourceware.org/git/?p=glibc.git;a=commit;h=70d585151c03ede999bd2ad5a724243914cb5f54

(From OE-Core rev: e03433fd52af298a4b177f36314728f916dd1ac2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-21 15:25:33 +01:00
Richard Purdie
4b6faa9dad uninative: Handle PREMIRRORS generically
Currently uninative handles SOURCE_MIRROR_URL but not generic PREMIRRORS.
It can handle this better, attempt to iterate PREMIRRORS entries.

(From OE-Core rev: b95d6aeafb70765e22d2e1254e749a48f508d489)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6426c952b5ade48ea94fb647efc464e603989b97)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Alexander Kanavin
8ed6b52c64 oeqa: write @OETestTag content into json test reports for each case
This allows using these tags for classification and filtering of test results
according to various organization-specific criteria, such as teams
responsible for the test, internal test ids, feature domains and so on.

Test name itself meanwhile can stay short and human-readable.

(From OE-Core rev: 3801b126eb52cd46efe417111afcd27f05d8f72b)

(From OE-Core rev: 9eaf11657cc8304af5cb75f98decbc64cca37801)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Alexander Kanavin
d89ffa3af4 testimage: add an overall timeout setting
This is useful when tests misbehave and get stuck, or when
a significant increase in testing time is undesirable and
needs to be caught automatically.

(From OE-Core rev: d77546e910ad9048f0057f4465716d417b810065)

(From OE-Core rev: eb57207f983b454dbdf2321da330fc1ec8a8bcbf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Chen Qi
5e238f8684 grub: set CVE_PRODUCT to grub2
grub and grub-efi recipes' CVE_PRODUCT should be grub2.

(From OE-Core rev: ca39b482c4fed513e37a8b3af6b4547af78596bb)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8682f6bc7e3e8d5fcf682647526f1a8430d08768)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Lee Chee Yang
d62a7733e0 webkitgtk: fix CVE-2020-13753
(From OE-Core rev: c19c4ef4efeebe4df03c06a995a60d1a31c605d8)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Lee Chee Yang
24f6a075e5 libjpeg-turbo: fix CVE-2020-13790
(From OE-Core rev: d4662adbb34d8c4a23fe7f111c2c991b1aedeaef)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Lee Chee Yang
697e30dcb2 qemu: fix CVE-2020-15863
(From OE-Core rev: d6eb50dfe66838e6bea061cbd1a120981777b700)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:47 +01:00
Lee Chee Yang
fa2385ad96 ghostscript: fix CVE-2020-15900
(From OE-Core rev: a58aa3017925617da1eec732a0e68bfda83410a1)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Daniel Gomez
e075e02f50 allarch: Add missing allarch ttf-bitstream-vera
allarch is missing in ttf-bitstream-vera recipe. Add it and include the
recipe in the SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS list.

(From OE-Core rev: 0d4e96b444931f84f93ca08fe238b5a3b35ce7b1)

Signed-off-by: Daniel Gomez <daniel@qtec.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 31c02477a4fb91f19f8c3ef3f8bc9a20e416c859)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Matthew
481c27a227 ltp: make copyFrom scp command non-fatal
[YOCTO #13802]

Make the scp failure non-fatal so the ltp tests continue to run and
the rest of the logs will be available to see afterwards.

(From OE-Core rev: 9390846e2abdd6837094a619ba4703a1be4a04cf)

Signed-off-by: Mingde (Matthew) Zeng <matthew.zeng@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0f7d093038274f4f21f6cca39a96aac4f6c32ee3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Tyler Hicks
a93c7cd0ba kernel-devicetree: Fix intermittent build failures caused by DTB builds
Fix a build-time race condition that resulted in intermittent build
failures in the do_assemble_fitimage task. The race condition involved
the do_assemble_fitimage task reading the vmlinux file while the
do_compile_kernelmodules task was re-writing the vmlinux file.

This can be seen with an aarch64 image build that uses a 5.4 based
kernel and sets KERNEL_DEVICETREE. The problem is that the do_compile
snippet that the kernel-devicetree class appends did not specify the
full kernel build environment when building the DTB(s) from the kernel
tree. This resulted in CONFIG_CC_CAN_LINK=y being removed from the
kernel config file just before the do_compile task completed. The
CONFIG_CC_CAN_LINK=y line was then re-inserted into the kernel config
file as part of the do_compile_kernelmodules task.

In some cases, this resulted in the do_compile_kernelmodules task to
re-link vmlinux which sometimes occured at the same time that the
do_assemble_fitimage task was attempting to use vmlinux. The
do_assemble_fitimage task would fail with the following error message:

 aarch64-poky-linux-objcopy:vmlinux: file format not recognized

We can use the pine-a64-lts machine, from the meta-pine64 layer, to show
that the kernel config file was changed between do_compile and
do_compile_kernelmodules:

 $ C=tmp/work/pine_a64_lts-poky-linux/linux-pine64/5.7+gitAUTOINC+ae03bade3b-r0/linux-pine_a64_lts-standard-build/.config
 $ bitbake -c do_kernel_configcheck virtual/kernel
 ...
 $ md5sum $C; grep CC_CAN_LINK $C
 32b133cf8a749a91f698a7ca8616c84f  ...
 CONFIG_CC_CAN_LINK=y

 $ bitbake -c do_compile virtual/kernel
 ...
 $ md5sum $C; grep CC_CAN_LINK $C
 2fd2ec2a66eecc329dcb5afaf005eada  ...

 $ bitbake -c do_compile_kernelmodules virtual/kernel
 ...
 $ md5sum $C; grep CC_CAN_LINK $C
 32b133cf8a749a91f698a7ca8616c84f  ...
 CONFIG_CC_CAN_LINK=y

With this change, the do_compile snippet appended by the
kernel-devicetree class does not modify the kernel config. The kernel
config is unchanged across the do_compile and do_compile_kernelmodules
tasks and do_compile_kernelmodules will not attempt to re-link vmlinux.

(From OE-Core rev: 7c1fff00b7268d518afa87078bdc781324c63d03)

Signed-off-by: Tyler Hicks <tyhicks@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 74619de0277471f446bf7a719f4c445359c823f6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Bruce Ashfield
e054645819 linux-yocto/5.4: update to v5.4.54
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    58a12e3368db Linux 5.4.54
    c15d59b94511 ath9k: Fix regression with Atheros 9271
    e6eb815beccc ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
    6d4448ca54bc dm integrity: fix integrity recalculation that is improperly skipped
    2ca71b807383 ASoC: topology: fix tlvs in error handling for widget_dmixer
    a4fd00dd8299 ASoC: topology: fix kernel oops on route addition error
    e60e53e685d9 ASoC: qcom: Drop HAS_DMA dependency to fix link failure
    8f64dc9e1d49 ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
    697bd3e4aa4b x86, vmlinux.lds: Page-align end of ..page_aligned sections
    c89af82f64a0 parisc: Add atomic64_set_release() define to avoid CPU soft lockups
    d1bab3cf71dd drm/amd/powerplay: fix a crash when overclocking Vega M
    33ab3f2dc444 drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
    c3de96686db9 mmc: sdhci-of-aspeed: Fix clock divider calculation
    615f44e04792 io-mapping: indicate mapping failure
    40c5836b4a48 khugepaged: fix null-pointer dereference due to race
    95750e1edbcd mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
    db949f60d983 mm/memcg: fix refcount error while moving and swapping
    549bfc142706 mm/mmap.c: close race between munmap() and expand_upwards()/downwards()
    5835e6d5988f Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
    23e8b741c8a1 vt: Reject zero-sized screen buffer size.
    028b478f2231 fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
    bf331efc8ea4 /dev/mem: Add missing memory barriers for devmem_inode
    3c52751df236 serial: 8250_mtk: Fix high-speed baud rates clamping
    af811869db06 serial: 8250: fix null-ptr-deref in serial8250_start_tx()
    fb8d832978bb serial: tegra: fix CREAD handling for PIO
    c76a1dacc28d staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
    178a09b0fb0d staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
    7ee8d78bc12b staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
    747558b1c737 staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
    c9afe420c53a staging: wlan-ng: properly check endpoint types
    a44c859323c2 tty: xilinx_uartps: Really fix id assignment
    f32718cfa5db iwlwifi: mvm: don't call iwl_mvm_free_inactive_queue() under RCU
    3e84602475f7 Revert "cifs: Fix the target file was deleted when rename failed."
    86894c3797ed usb: xhci: Fix ASM2142/ASM3142 DMA addressing
    1d91547f2fc8 usb: xhci-mtk: fix the failure of bandwidth allocation
    93f1e16af4a5 binder: Don't use mmput() from shrinker function.
    35728cac176a RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
    5345ede4acde drivers/perf: Prevent forced unbinding of PMU drivers
    0821295b23cc asm-generic/mmiowb: Allow mmiowb_set_pending() when preemptible()
    90e78ec7d725 x86: math-emu: Fix up 'cmp' insn for clang ias
    679fe09188c1 arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
    7fc7942f52cf drivers/perf: Fix kernel panic when rmmod PMU modules during perf sampling
    347f735ca82b ALSA: hda/realtek - fixup for yet another Intel reference board
    30a17b51d80d hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
    76361edb5559 platform/x86: asus-wmi: allow BAT1 battery name
    41a7fdf90ce2 platform/x86: ISST: Add new PCI device ids
    ace6e8b448b9 hwmon: (nct6775) Accept PECI Calibration as temperature source for NCT6798D
    6627a265c598 drm/amdgpu: fix preemption unit test
    ffb5604d2043 drm/amdgpu/gfx10: fix race condition for kiq
    c04a48251314 hwmon: (adm1275) Make sure we are reading enough data for different chips
    a2a380bd4575 usb: cdns3: trace: fix some endian issues
    103a90ad4e64 usb: cdns3: ep0: fix some endian issues
    89fe6eba178d usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
    74ec2cc5bfff usb: dwc3: pci: add support for the Intel Jasper Lake
    c4c6363b8e68 usb: dwc3: pci: add support for the Intel Tiger Lake PCH -H variant
    4f5eb2735fa3 Input: elan_i2c - only increment wakeup count on touch
    186d3fe73e27 Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
    460c0dafea92 dmaengine: ioat setting ioat timeout as module parameter
    493aed3263ca dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
    6a3015ae35f5 hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
    01d7bd8903d8 regmap: dev_get_regmap_match(): fix string comparison
    bbc0b6e18405 spi: mediatek: use correct SPI_CFG2_REG MACRO
    126a0ab6b83b ARM: dts: n900: remove mmc1 card detect gpio
    80fed4024c39 Input: add `SW_MACHINE_COVER`
    db886ec71fe4 dmaengine: tegra210-adma: Fix runtime PM imbalance on error
    5cbe437d5968 HID: apple: Disable Fn-key key-re-mapping on clone keyboards
    2c179ece3bfb HID: steam: fixes race in handling device list.
    5d273c566f7b HID: alps: support devices with report id 2
    08696a4ac9f6 HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
    9ab9cfcc2d8f scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
    22508bc315eb scripts/decode_stacktrace: strip basepath from all paths
    1e63d569fd2d serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
    a86abef1558a geneve: fix an uninitialized value in geneve_changelink()
    89b4f204ba43 bonding: check return value of register_netdevice() in bond_newlink()
    93bb40b79e84 i2c: i2c-qcom-geni: Fix DMA transfer race
    58637b3027db i2c: rcar: always clear ICSAR to avoid side effects
    e8b86b4d87e3 enetc: Remove the mdio bus on PF probe bailout
    9f2c2928b939 nfsd4: fix NULL dereference in nfsd/clients display code
    a44625dc0bd3 Revert "PCI/PM: Assume ports without DLL Link Active train links in 100 ms"
    9e3e96aa9a2e net: ethernet: ave: Fix error returns in ave_init
    eb2c32de1ce6 ipvs: fix the connection sync failed in some cases
    592614918431 qed: suppress false-positives interrupt error messages on HW init
    641bd96bd0ac qed: suppress "don't support RoCE & iWARP" flooding on HW init
    8d416c038a91 netdevsim: fix unbalaced locking in nsim_create()
    99a5e865cbe4 net: dsa: microchip: call phy_remove_link_mode during probe
    4997b311c01e net: hns3: fix error handling for desc filling
    107ea66643bd net: ag71xx: add missed clk_disable_unprepare in error path of probe
    34e93385c416 ionic: fix up filter locks and debug msgs
    42f5c49f7bbb ionic: use offset for ethtool regs data
    eac87543368c mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
    9b52f23ad648 bonding: check error value of register_netdevice() immediately
    d11a27411c65 net: smc91x: Fix possible memory leak in smc_drv_probe()
    a2cdb4ebd84e drm: sun4i: hdmi: Fix inverted HPD result
    988e5d2179e4 ieee802154: fix one possible memleak in adf7242_probe
    7bf93c95a9b9 net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
    e2e31a0bf7a1 ASoC: Intel: bytcht_es8316: Add missed put_device()
    613e7c52aaaa RDMA/mlx5: Use xa_lock_irq when access to SRQ table
    d0d394c71604 ax88172a: fix ax88172a_unbind() failures
    ad49d766612e vsock/virtio: annotate 'the_virtio_vsock' RCU pointer
    f826efa1c381 hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
    570b1c92cb48 fpga: dfl: fix bug in port reset handshake
    c73188295841 fpga: dfl: pci: reduce the scope of variable 'ret'
    57393e695a10 bnxt_en: Fix completion ring sizing with TPA enabled.
    9cc322773b20 bnxt_en: Fix race when modifying pause settings.
    38a66f3cdab4 btrfs: fix page leaks after failure to lock page for delalloc
    b04805a7e8a5 btrfs: fix mount failure caused by race with umount
    e333df0e4ac6 btrfs: fix double free on ulist after backref resolution failure
    f668e822950d ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
    0f87dabe4415 ALSA: info: Drop WARN_ON() from buffer NULL sanity check
    aad343d571ae ALSA: hda/realtek: Fixed ALC298 sound bug by adding quirk for Samsung Notebook Pen S
    ee2f6a6b39be uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
    ee08663380ff btrfs: reloc: clear DEAD_RELOC_TREE bit for orphan roots to prevent runaway balance
    044ca910276b btrfs: reloc: fix reloc root leak and NULL pointer dereference
    cb1225707041 SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
    02140e85d8e4 drm/amd/display: Check DMCU Exists Before Loading
    722c6e954c90 dmabuf: use spinlock to access dmabuf->name
    44838b956304 ARM: dts: imx6qdl-gw551x: fix audio SSI
    593221ce16af ARM: dts: imx6qdl-gw551x: Do not use 'simple-audio-card,dai-link'
    36f735554572 irqdomain/treewide: Keep firmware node unconditionally allocated
    8676732c3337 fuse: fix weird page warning
    96002e7485be drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
    d0e40e510aa7 dm: use bio_uninit instead of bio_disassociate_blkg
    0ff9fce4abee scsi: dh: Add Fujitsu device to devinfo and dh lists
    3959567d870d scsi: mpt3sas: Fix error returns in BRM_status_show
    0c1337e94a54 drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
    fb50c5cf2105 net: sky2: initialize return of gm_phy_read
    b4397143da53 ALSA: hda/hdmi: fix failures at PCM open on Intel ICL and later
    e50116e51281 drivers/net/wan/lapbether: Fixed the value of hard_header_len
    0eced7636001 scsi: mpt3sas: Fix unlock imbalance
    0edfdefc0a9c xtensa: update *pos in cpuinfo_op.next
    df5b65f5df3e xtensa: fix __sync_fetch_and_{and,or}_4 declarations
    806ffec1a93a scsi: scsi_transport_spi: Fix function pointer check
    65c835ebe2cd mac80211: allow rx of mesh eapol frames with default rx key
    f55550d566e4 pinctrl: amd: fix npins for uart0 in kerncz_groups
    de0d953ee787 gpio: arizona: put pm_runtime in case of failure
    52083907ebfa gpio: arizona: handle pm_runtime_get_sync failure case
    4f80cb2c787f soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner

(From OE-Core rev: f32c1c92ddc1c1a921c4e46e59d6cb01a705edd5)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit de8c92604ead0ed00fb035fb0c915ec03f729537)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Bruce Ashfield
650e5937d1 linux-yocto/5.4: fix perf build with binutils 2.35
Integrating the following commit(s) to linux-yocto/5.4:

    1fe4ee7f680c libtraceevent: Fix build with binutils 2.35

(From OE-Core rev: baa5713a04a6715ddbb0be5e05f371266d943169)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 69faa62d840330f573101245e0aa3fed17984b70)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Bruce Ashfield
0fbd3c17e2 linux-yocto/5.4: update to v5.4.53
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    d811d29517d1 Linux 5.4.53
    e6c19fa5b6c6 gpio: pca953x: disable regmap locking for automatic address incrementing
    411c80267541 drm/i915/gvt: Fix two CFL MMIO handling caused by regression.
    517708c47c66 iommu/vt-d: Make Intel SVM code 64-bit only
    41389f739a5e ionic: export features for vlans to use
    5d7e2852d7e6 spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH
    1245a1e0e1c3 rxrpc: Fix trace string
    07253d24cda3 libceph: don't omit recovery_deletes in target_copy()
    d2ccad3c9ce9 block: fix get_max_segment_size() overflow on 32bit arch
    310d75f274d5 block: fix splitting segments on boundary masks
    f2e57ed2f3f8 drm/i915/gt: Ignore irq enabling on the virtual engines
    64a17e1da02a drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
    9f8d3d2f79ba genirq/affinity: Handle affinity setting on inactive interrupts correctly
    6aae92ed2c42 sched/fair: handle case of task_h_load() returning 0
    b5b774918816 sched: Fix unreliable rseq cpu_id for new tasks
    5c2450ac7c7a arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return
    ed766e740cc9 arm64: ptrace: Consistently use pseudo-singlestep exceptions
    bdb71132992b arm64: ptrace: Override SPSR.SS when single-stepping is enabled
    d3b7bacd1115 thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power
    025cec59aa17 thermal: int3403_thermal: Downgrade error message
    0ab6b541c6f8 misc: atmel-ssc: lock with mutex instead of spinlock
    746930d17d14 dmaengine: fsl-edma-common: correct DSIZE_32BYTE
    5f3fcbf5b57f dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler
    9464956544be dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
    8fd0d8536805 intel_th: Fix a NULL dereference when hub driver is not loaded
    55d7092cc8f5 intel_th: pci: Add Emmitsburg PCH support
    905f20f4946a intel_th: pci: Add Tiger Lake PCH-H support
    5c698cc5b6f4 intel_th: pci: Add Jasper Lake CPU support
    c5ce2060f487 powerpc/pseries/svm: Fix incorrect check for shared_lppaca_size
    93d1e96b98b2 powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey
    d6a76f8eee21 hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
    9125d5762590 riscv: use 16KB kernel stack on 64-bit
    c28501385945 timer: Fix wheel index calculation on last level
    6c2388e2a12b timer: Prevent base->clk from moving backward
    e9506de7b305 scsi: megaraid_sas: Remove undefined ENABLE_IRQ_POLL macro
    acd3901a62f6 uio_pdrv_genirq: fix use without device tree and no interrupt
    17268122ba5e uio_pdrv_genirq: Remove warning when irq is not specified
    97f1aecb80e9 Input: elan_i2c - add more hardware ID for Lenovo laptops
    1fb81fe5e180 Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
    62dd03054918 mei: bus: don't clean driver pointer
    72648019cd52 Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
    4dd2ad686704 fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
    e8f32a9f5aeb fuse: use ->reconfigure() instead of ->remount_fs()
    f96ce4be463a fuse: ignore 'data' argument of mount(..., MS_REMOUNT)
    09b696bd2149 ovl: fix unneeded call to ovl_change_flags()
    93f75b0f0d3b ovl: relax WARN_ON() when decoding lower directory file handle
    6270654c7de9 ovl: inode reference leak in ovl_is_inuse true case.
    4996065307c8 ovl: fix regression with re-formatted lower squashfs
    2cd065b91681 serial: mxs-auart: add missed iounmap() in probe failure and remove
    752641ba871a virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
    8f4c040f45b9 Revert "tty: xilinx_uartps: Fix missing id assignment to the console"
    1bc2c30d861c virt: vbox: Fix guest capabilities mask check
    78d85ca8300e virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
    cc894ec456c1 USB: serial: option: add Quectel EG95 LTE modem
    4eaf06c9bd35 USB: serial: option: add GosunCn GM500 series
    dcc1df3cdb04 USB: serial: ch341: add new Product ID for CH340
    dff0a4f024fc USB: serial: cypress_m8: enable Simply Automated UPB PIM
    18059e953e1f USB: serial: iuu_phoenix: fix memory corruption
    72596d0b2acd usb: gadget: function: fix missing spinlock in f_uac1_legacy
    01512075a387 usb: chipidea: core: add wakeup support for extcon
    3dd890afedbf usb: dwc2: Fix shutdown callback in platform
    4f0addeba0c0 USB: c67x00: fix use after free in c67x00_giveback_urb
    bd422c7fb477 ALSA: hda/realtek - Enable Speaker for ASUS UX563
    63d318f05e67 ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
    e7bafe0c94cc ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with ALC256
    4181b271908a ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series with ALC289
    246b9693026a ALSA: hda/realtek - change to suitable link model for ASUS platform
    71319db6f3b1 ALSA: usb-audio: Fix race against the error recovery URB submission
    25fd7ee3baeb ALSA: line6: Sync the pending work cancel at disconnection
    91a6d4049c58 ALSA: line6: Perform sanity check for each URB creation
    212425802dc6 HID: quirks: Ignore Simply Automated UPB PIM
    c0188ab5bc31 HID: quirks: Always poll Obins Anne Pro 2 keyboard
    e93ab4628452 HID: magicmouse: do not set up autorepeat
    bc94605df1f9 HID: logitech-hidpp: avoid repeated "multiplier = " log messages
    7c4e6cfd922c slimbus: core: Fix mismatch in of_node_get/put
    93b57bf835d2 clk: qcom: gcc: Add missing UFS clocks for SM8150
    cb7b7928310f clk: qcom: gcc: Add GPU and NPU clocks for SM8150
    cc490ea23f33 mtd: rawnand: oxnas: Release all devices in the _remove() path
    f8a2658d0fd7 mtd: rawnand: oxnas: Unregister all devices on error
    4682749ce329 mtd: rawnand: oxnas: Keep track of registered devices
    8463054e3d4e mtd: rawnand: brcmnand: fix CS0 layout
    ee73c81e386d mtd: rawnand: brcmnand: correctly verify erased pages
    e9f5e16f3228 mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
    f1ad0fc9de60 mtd: rawnand: marvell: Fix probe error path
    be953ad71ce9 mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
    5f59ce425f78 mtd: rawnand: marvell: Fix the condition on a return code
    eec70178983f RDMA/mlx5: Verify that QP is created with RQ or SQ
    6b1aaceb0dab soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
    e65ee5ad8903 soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
    9e56b18ca5a3 soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
    9edb7370f893 soc: qcom: rpmh: Update dirty flag only when data changes
    033f56f7d3d6 perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
    c2e29cac6d89 PCI/PM: Call .bridge_d3() hook only if non-NULL
    d950d2e79f0f habanalabs: Align protection bits configuration of all TPCs
    d79e57db4544 apparmor: ensure that dfa state tables have entries
    b7d9b78ab901 soc: qcom: socinfo: add missing soc_id sysfs entry
    8eeebe37c64e arm: dts: mt7623: add phy-mode property for gmac2
    742b79562142 copy_xstate_to_kernel: Fix typo which caused GDB regression
    319c3c7980c7 regmap: debugfs: Don't sleep while atomic for fast_io regmaps
    f62d7f91afa2 keys: asymmetric: fix error return code in software_key_query()
    c5acd9395d41 arm64: dts: spcfpga: Align GIC, NAND and UART nodenames with dtschema
    2e224b5d3149 ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
    c8a4452da9f4 xprtrdma: fix incorrect header size calculations
    a75a8aabb2f4 Revert "thermal: mediatek: fix register index error"
    cc3188b3bab2 ARM: dts: Fix dcan driver probe failed on am437x platform
    408ef501b894 fuse: don't ignore errors from fuse_writepages_fill()
    9b810684b1da NFS: Fix interrupted slots by sending a solo SEQUENCE operation
    dc92d84b371f clk: AST2600: Add mux for EMMC clock
    0392f18139aa clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER
    36e6ac265fc0 staging: comedi: verify array index is correct before using it
    62013d49bcf6 usb: gadget: udc: atmel: fix uninitialized read in debug printk
    e435865c783f spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate
    f979982feb03 dmaengine: dmatest: stop completed threads when running without set channel
    e6b46f01d995 dmaengine: dw: Initialize channel before each transfer
    a6fe5dde5343 iio: adc: ad7780: Fix a resource handling path in 'ad7780_probe()'
    28be430bbf13 bus: ti-sysc: Do not disable on suspend for no-idle
    47ba42786d14 bus: ti-sysc: Fix sleeping function called from invalid context for RTC quirk
    5a23897f7a41 bus: ti-sysc: Fix wakeirq sleeping function called from invalid context
    b2c7d6ce2d5e arm64: dts: meson-gxl-s805x: reduce initial Mali450 core frequency
    cbd8c92a8d51 arm64: dts: meson: add missing gxl rng clock
    1d08f59081e5 phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
    684a5568df11 dmaengine: sh: usb-dmac: set tx_result parameters
    f5c6ebd5146e soundwire: intel: fix memory leak with devm_kasprintf
    7005a4885a29 iio:health:afe4404 Fix timestamp alignment and prevent data leak.
    ba3788d243cf ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S
    1510d8ab7bc9 bus: ti-sysc: Use optional clocks on for enable and wait for softreset bit
    7637bba4c621 ACPI: video: Use native backlight on Acer TravelMate 5735Z
    0a330aa202c9 Input: mms114 - add extra compatible for mms345l
    75ff2767e85c ALSA: usb-audio: Add quirk for Focusrite Scarlett 2i2
    695fcb612bf1 ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
    18f2cbb28730 ACPI: video: Use native backlight on Acer Aspire 5783z
    dc1e4db658a6 ALSA: usb-audio: Rewrite registration quirk handling
    592b179fa149 mmc: sdhci: do not enable card detect interrupt for gpio cd type
    e60b02922876 doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in park mode
    54100aa32f66 ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp (0951:16d8)
    35aef79e81a1 Input: goodix - fix touch coordinates on Cube I15-TC
    9c16b5e8b5d9 ALSA: usb-audio: Add support for MOTU MicroBook IIc
    d70a6425a6e2 bus: ti-sysc: Detect EDMA and set quirk flags for tptc
    d09e12709acd arm64: dts: g12-common: add parkmode_disable_ss_quirk on DWC3 controller
    234021eaddcb bus: ti-sysc: Detect display subsystem related devices
    e7e98dd42aae bus: ti-sysc: Handle module unlock quirk needed for some RTC
    e2c37939a795 bus: ti-sysc: Consider non-existing registers too when matching quirks
    f7280837df83 bus: ti-sysc: Rename clk related quirks to pre_reset and post_reset quirks
    69fbdbb4fa0c scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
    23a609417361 drm/sun4i: tcon: Separate quirks for tcon0 and tcon1 on A20
    de6d9aa5f7c1 ARM: at91: pm: add quirk for sam9x60's ulp1
    4301497fdc68 HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
    1c96af59a904 mmc: mmci: Support any block sizes for ux500v2 and qcom variant
    cf911ee9f49d ARM: OMAP2+: use separate IOMMU pdata to fix DRA7 IPU1 boot
    3ea583b09537 ARM: OMAP2+: Add workaround for DRA7 DSP MStandby errata i879
    8d158e3453eb ARM: OMAP4+: remove pdata quirks for omap4+ iommus
    370cc95c00ae net: sfp: add some quirks for GPON modules
    17918c99abc1 net: sfp: add support for module quirks
    11a6ff1df31e Revert "usb/xhci-plat: Set PM runtime as active on resume"
    4cf55dcd4fa4 Revert "usb/ehci-platform: Set PM runtime as active on resume"
    add6b48ad376 Revert "usb/ohci-platform: Fix a warning when hibernating"
    267516d7009e net: ethernet: mvneta: Add back interface mode validation
    beee39d71e87 net: ethernet: mvneta: Do not error out in non serdes modes
    131ab7a0cdb8 net: macb: call pm_runtime_put_sync on failure path
    fefc7580af39 of: of_mdio: Correct loop scanning logic
    3f2f3edcc075 net: dsa: bcm_sf2: Fix node reference count
    cb2801017057 spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
    baf22f66c9cf iio:health:afe4403 Fix timestamp alignment and prevent data leak.
    5f8fe8ab4463 iio:pressure:ms5611 Fix buffer element alignment
    5a6378911f22 iio:humidity:hts221 Fix alignment and data leak issues
    74953efffb3d iio: pressure: zpa2326: handle pm_runtime_get_sync failure
    4ecff6ee264f iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
    b4172e024d48 iio: core: add missing IIO_MOD_H2/ETHANOL string identifiers
    ead750685280 iio: magnetometer: ak8974: Fix runtime PM imbalance on error
    0b16921edc61 iio:humidity:hdc100x Fix alignment and data leak issues
    7cc8cad2bef9 iio:magnetometer:ak8974: Fix alignment and data leak issues
    4c7924060fe0 arm64/alternatives: don't patch up internal branches
    77a181fba1e5 i2c: eg20t: Load module automatically if ID matches
    27874115b059 gfs2: read-only mounts should grab the sd_freeze_gl glock
    827139ad9db5 tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
    a8f13826f9c6 arm64/alternatives: use subsections for replacement sequences
    91e81d2262e7 cifs: prevent truncation from long to int in wait_for_free_credits
    43046f786714 dt-bindings: mailbox: zynqmp_ipi: fix unit address
    ea9d6016b1a4 m68k: mm: fix node memblock init
    560dbf34dec8 m68k: nommu: register start of the memory with memblock
    c3adbd37c054 blk-mq-debugfs: update blk_queue_flag_name[] accordingly for new flags
    9025a5589c03 thermal/drivers: imx: Fix missing of_node_put() at probe time
    c4db485dd3f2 x86/fpu: Reset MXCSR to default in kernel_fpu_begin()
    d2bfb9eb439c drm/exynos: fix ref count leak in mic_pre_enable
    f886b67c6b28 drm/exynos: Properly propagate return value in drm_iommu_attach_device()
    0885be75f1be drm/msm/dpu: allow initialization of encoder locks during encoder init
    5d6891a5a627 drm/msm: fix potential memleak in error branch
    f608a77e0cc9 arm64: arch_timer: Disable the compat vdso for cores affected by ARM64_WORKAROUND_1418040
    86e3c7c70c63 arm64: arch_timer: Allow an workaround descriptor to disable compat vdso
    71d65a3fc628 arm64: Introduce a way to disable the 32bit vdso
    36d60eba862d ip: Fix SO_MARK in RST, ACK and ICMP packets
    38b122c0af04 cgroup: Fix sock_cgroup_data on big-endian.
    94886c86e833 cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
    171644727abf tcp: md5: allow changing MD5 keys in all socket states
    8ee263bd11af tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
    30d015f5ecd9 vlan: consolidate VLAN parsing code and limit max parsing depth
    f40c3a8438fc tcp: md5: do not send silly options in SYNCOOKIES
    1c8bad567b5d tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
    f52293aefe18 tcp: make sure listeners don't initialize congestion-control state
    7eec9f331223 tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
    9b7fd81cf9b6 sched: consistently handle layer3 header accesses in the presence of VLANs
    aafe9dd13f42 net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
    edbde451bf3f net_sched: fix a memory leak in atm_tc_init()
    d55dad8b1d89 net: dsa: microchip: set the correct number of ports
    64d782212646 net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
    a70a667736ed llc: make sure applications use ARPHRD_ETHER
    73e42f4d2d13 l2tp: remove skb_dst_set() from l2tp_xmit_skb()
    f8646548ee46 ipv6: Fix use of anycast address with loopback
    75270f819666 ipv6: fib6_select_path can not use out path for nexthop objects
    1418b60e998b ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
    7b42410d3556 genetlink: remove genl_bind
    aef7a9e21aa6 bridge: mcast: Fix MLD2 Report IPv6 payload length check
    587ccf092e28 net: rmnet: fix lower interface leak
    d06c17fcd7c0 net: atlantic: fix ip dst and ipv6 address filters
    de93c1c104ac crypto: atmel - Fix build error of CRYPTO_AUTHENC
    1f21bb70d7b1 crypto: atmel - Fix selection of CRYPTO_AUTHENC
    c57b1153a58a Linux 5.4.52
    1a70857590f7 s390/maccess: add no DAT mode to kernel_write
    627d15eecb61 s390: Change s390_kernel_write() return type to match memcpy()
    d64dc6118a0f pwm: jz4740: Fix build failure
    d13a78d13d2c perf scripts python: exported-sql-viewer.py: Fix unexpanded 'Find' result
    64e8b913c30b perf scripts python: exported-sql-viewer.py: Fix zero id in call tree 'Find' result
    2038998170b0 perf scripts python: exported-sql-viewer.py: Fix zero id in call graph 'Find' result
    e51a811c242e perf scripts python: export-to-postgresql.py: Fix struct.pack() int argument
    299ffecbd530 dm writecache: reject asynchronous pmem devices
    49a7ac29f6a0 blk-mq: consider non-idle request as "inflight" in blk_mq_rq_inflight()
    2dfd182451d9 s390/mm: fix huge pte soft dirty copying
    0d62bc7e960f s390/setup: init jump labels before command line parsing
    e6de7cbbcacb ARC: elf: use right ELF_ARCH
    854827a2697a ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
    37634f502b53 mmc: meson-gx: limit segments to 1 when dram-access-quirk is needed
    b9fe45efa671 dm: use noio when sending kobject event
    ede24894e8bf drm/amdgpu: don't do soft recovery if gpu_recovery=0
    ef8164f03a86 drm/radeon: fix double free
    026f830e0ba3 btrfs: fix double put of block group with nocow
    808b2b3ea85a btrfs: fix fatal extent_buffer readahead vs releasepage race
    5a046d75acf7 Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb"
    baef8d1027b0 bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
    e5541c6347b7 kprobes: Do not expose probe addresses to non-CAP_SYSLOG
    314ac273f005 module: Do not expose section addresses to non-CAP_SYSLOG
    0d5d9413a692 module: Refactor section attr into bin attribute
    2a6c8d3d0dd0 kallsyms: Refactor kallsyms_show_value() to take cred
    79aaeec71271 KVM: arm64: Fix kvm_reset_vcpu() return code being incorrect with SVE
    a494529add3f KVM: x86: Mark CR4.TSD as being possibly owned by the guest
    d29a79fa7559 KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
    3f108b168002 KVM: x86: bit 8 of non-leaf PDPEs is not reserved
    388429498641 KVM: arm64: Annotate hyp NMI-related functions as __always_inline
    b956ec9afc2e KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
    a20aa35b839a KVM: arm64: Fix definition of PAGE_HYP_DEVICE
    9b742b6a3b78 ALSA: hda/realtek: Enable headset mic of Acer Veriton N4660G with ALC269VC
    8254cddab9a4 ALSA: hda/realtek: Enable headset mic of Acer C20-820 with ALC269VC
    c6fbfa6dd96b ALSA: hda/realtek - Enable audio jacks of Acer vCopperbox with ALC269VC
    615313fe4294 ALSA: hda/realtek - Fix Lenovo Thinkpad X1 Carbon 7th quirk subdevice id
    92b598132eec ALSA: usb-audio: Add implicit feedback quirk for RTX6001
    caead988fe61 ALSA: usb-audio: add quirk for MacroSilicon MS2109
    02b2f10e5c9f ALSA: hda - let hs_mic be picked ahead of hp_mic
    3496a18a1c3b ALSA: opl3: fix infoleak in opl3
    4a215725dec7 IB/hfi1: Do not destroy link_wq when the device is shut down
    607fbc27d75f IB/hfi1: Do not destroy hfi1_wq when the device is shut down
    6a882fb7232d mlxsw: pci: Fix use-after-free in case of failed devlink reload
    c9dcb4929ce2 mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
    f62f896a56a2 net: macb: fix call to pm_runtime in the suspend/resume functions
    ad396c483dd5 net: macb: mark device wake capable when "magic-packet" property present
    5d744ee94b49 net: macb: fix wakeup test in runtime suspend/resume routines
    15442ef56405 bnxt_en: fix NULL dereference in case SR-IOV configuration fails
    65fb9bbee611 net/mlx5e: Fix 50G per lane indication
    ce27893535ca net/mlx5: Fix eeprom support for SFP module
    f277e0be69d4 qed: Populate nvm-file attributes while reading nvm config partition.
    e89b828ae357 IB/mlx5: Fix 50G per lane indication
    97d6855ac57d cxgb4: fix all-mask IP address comparison
    2a4c5ff12f42 nbd: Fix memory leak in nbd_add_socket
    06cee3572ed5 arm64: kgdb: Fix single-step exception handling oops
    9e8f4623e292 RDMA/siw: Fix reporting vendor_part_id
    1c54d0d9c4e6 ALSA: compress: fix partial_drain completion state
    175b5aa7b964 net: hns3: fix use-after-free when doing self test
    ab8c4fd863f4 net: hns3: add a missing uninit debugfs when unload driver
    5c0192d28513 smsc95xx: avoid memory leak in smsc95xx_bind
    81ed1f9fd0b3 smsc95xx: check return value of smsc95xx_reset
    3959bf65fe48 perf intel-pt: Fix PEBS sample for XMM registers
    da4b6eff382b perf intel-pt: Fix recording PEBS-via-PT with registers
    9ca67a453273 perf report TUI: Fix segmentation fault in perf_evsel__hists_browse()
    2d15663304f5 netfilter: conntrack: refetch conntrack after nf_conntrack_update()
    d9b8206e5323 net: dsa: microchip: set the correct number of ports
    fd3a612d9828 IB/sa: Resolv use-after-free in ib_nl_make_request()
    b0259e7056b1 net: cxgb4: fix return error value in t4_prep_fw
    92002d59ecee net: mvneta: fix use of state->speed
    4f412ae89e78 netfilter: ipset: call ip_set_free() instead of kfree()
    b709a08bc4d7 bpf, sockmap: RCU dereferenced psock may be used outside RCU block
    2000bb546525 bpf, sockmap: RCU splat with redirect and strparser error or TLS
    4625f4d5e4bf drm/mediatek: Check plane visibility in atomic_update
    a062088e675f nl80211: don't return err unconditionally in nl80211_start_ap()
    d63806c30706 gpio: pca953x: Fix GPIO resource leak on Intel Galileo Gen 2
    137e7782bddd gpio: pca953x: Override IRQ for one of the expanders on Galileo Gen 2
    91f8d05b4b56 net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
    1128ed7e1dd0 sched/core: Check cpus_mask, not cpus_ptr in __set_cpus_allowed_ptr(), to fix mask corruption
    4e9631a90830 x86/entry: Increase entry_stack size to a full page
    010f93079a26 nvme-rdma: assign completion vector correctly
    074ae0cd8407 block: release bip in a right way in error path
    b1b252d8d9c5 usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
    2485b6afadd7 scsi: mptscsih: Fix read sense data size
    10533390da7c ARM: imx6: add missing put_device() call in imx6q_suspend_init()
    15fa5dfaa4e8 cifs: update ctime and mtime during truncate
    9c732cccb04b s390/kasan: fix early pgm check handler execution
    a9c816494dc2 drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
    fcab0d2f1b91 drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
    b7556e7ca381 iommu/vt-d: Don't apply gfx quirks to untrusted devices
    1a570b8faea4 powerpc/kvm/book3s64: Fix kernel crash with nested kvm & DEBUG_VIRTUAL
    4e4ddeee7aff ibmvnic: continue to init in CRQ reset returns H_CLOSED
    ce4a93b9e607 i40e: protect ring accesses with READ- and WRITE_ONCE
    2e5a3586ca27 ixgbe: protect ring accesses with READ- and WRITE_ONCE
    203cfe694e9d net: ethernet: mvneta: Add 2500BaseX support for SoCs without comphy
    996bd0778a37 net: ethernet: mvneta: Fix Serdes configuration for SoCs without comphy
    8f23c0dcd096 spi: spidev: fix a potential use-after-free in spidev_release()
    010de5718162 spi: spidev: fix a race between spidev_release and spidev_remove
    44b6e192e05f ALSA: hda: Intel: add missing PCI IDs for ICL-H, TGL-H and EKL
    04197a8184e7 ASoC: SOF: Intel: add PCI ID for CometLake-S
    b1589bb5b04e drm: mcde: Fix display initialization problem
    408ddca5c737 gpu: host1x: Detach driver on unregister
    d78a975525f3 drm/tegra: hub: Do not enable orphaned window group
    dbe5fef1c2b1 drm/ttm: Fix dma_fence refcnt leak when adding move fence
    6bfa3b616c52 ARM: dts: omap4-droid4: Fix spi configuration and increase rate
    3965fe7c0a77 perf/x86/rapl: Fix RAPL config variable bug
    5f121ba6b625 perf/x86/rapl: Move RAPL support to common x86 code
    14e8708fffee regmap: fix alignment issue
    2ec3c8329aca spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
    6b64220baf4a spi: spi-fsl-dspi: Adding shutdown hook
    eb676bef0224 KVM: s390: reduce number of IO pins to 1

(From OE-Core rev: 40ff5adaca962d66715e7ec55cec79093bdbc173)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 60fec4d1792b8467acb53949c695775c7e7ae037)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Alexander Kanavin
54aa16652f libexif: update to 0.6.22
Stability / bugfix / security release

Fixes CVE-2018-20030, CVE-2020-13114, CVE-2020-13113,
CVE-2020-13112, CVE-2020-0093, CVE-2019-9278, CVE-2020-12767,
CVE-2016-6328, CVE-2017-7544

(From OE-Core rev: 2657e0614003819c3717429c3192b2e61a160a88)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 76e8c645cb2568c2dfa014af0eeac36d8f8b60ff)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
zhengruoqin
b8c40ddf2e ruby: upgrade 2.7.0 -> 2.7.1
This release includes security fixes:

CVE-2020-10663: Unsafe Object Creation Vulnerability in JSON (Additional fix)
CVE-2020-10933: Heap exposure vulnerability in the socket library

(From OE-Core rev: 51b45ec3fcdc3c338f8a141110abf8aa5d374e5e)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8d9b48bdf25363fb115a6311b031a7e5da8e0d4d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:46 +01:00
Steve Sakoman
e629d09336 glib-2.0: update 2.62.5 to 2.62.6
Stable branch bug fix and security release.

One patch update, none deleted.

This is expected to be the final release in the 2.62.x stable series

Changes:

Fix SOCKS5 username/password authentication (#1986)
Exception handling fixes on Windows (!1373)

Bugs fixed:

1986 Socks5 Proxy: Authentication seems broken
1988 Socks5 Proxy: Wrong error returned when using no authentication
2049 Crash in g_array_copy
1378 Backport !1373 win32 exception fixes to glib-2-62
1380 Backport !1254 “giomodule: gio modules are no longer installed in bindir on MSVC” to glib-2-62
1393 Backport !1390 “garray: Fix copying an array with reserved elements” to glib-2-62
1394 Backport part of !1375 “tests: Skip g-file-info-filesystem-readonly test if bindfs fails” to glib-2-62
1411 Backport SOCKS5 fixes to glib-2-62

(From OE-Core rev: 2dc1266eb39faa29c79ab2697564072f11d3feb8)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:45 +01:00
Steve Sakoman
f4f66c0d58 glib-2.0: update 2.62.4 to 2.62.5
Stable branch bug fix and security release.

One patch updated, three removed since they are no longer needed

Changes (from release notes):

Fix potential relative read when calling g_printerr(), which could lead to a
denial of service from a setuid-root process being used to block access to the
TTY for another user (#1919)
Fix SOCKS proxy resolver sometimes not being used when resolving addresses
via Happy Eyeballs (CVE-2020-6750) (#1989)
Several other Happy Eyeballs fixes for address resolution (#1871, #1872, #1902)
Fix parsing of full Julian day range from $TZ environment variable (#1999)
Several race condition/crash fixes (!1353, !1357)

Bugs fixed:

1919 read from relative path in g_printerr() in 2.58.3
1995 Tracker issue for Happy Eyeballs regressions
1999 GTimeZone fails to accept full Julian day range when parsing the direct $TZ string format
1323 Backport !1314 “gtimezone: fix parsing of Julian day in POSIX TZ format” to glib-2-62
1331 Backport !1330 “W32: Correctly set st_ino when doing private stat()” to glib-2-62
1352 Backport !1351 “glib.supp: update g-threaded-resolver-getaddrinfo-config” to glib-2-62
1361 Backport !1353 GMainContext source reference fixes to glib-2-62
1365 Refactor g_socket_client_connect_async()
1370 Backport !1369 “build: Rework path construction to reliably add prefix” to glib-2-62
1371 Backport !1357 “gunixmounts: Make GUnixMountMonitor thread-safe” to glib-2-62

(From OE-Core rev: d1c337161f70893cd4eec15364c6c41d5040ccc6)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:45 +01:00
Khem Raj
ff84adc9d2 qemumips: Use 34Kf CPU emulation
Few years ago we switched to using mips32r2 tunings for qemumips however
the default CPU emulation still remained 24Kf which is not optimal for
mips32r2 ISA for qemu [1], therefore switch to recommended 32Kf for CPU
emulation when running qemu in system mode

Boot time to console is ~1s faster with this setting, hopefully this
should speed up qemumips in general

[1] https://www.qemu.org/docs/master/system/target-mips.html#preferred-cpu-models-for-mips-hosts

(From OE-Core rev: 6f24a70ed9323a89cb9d0e6c56bacb6a59e2c31f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e68d2afd4a5529437824b5d6b9a2077c2fefd337)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-12 10:53:45 +01:00
Steve Sakoman
09c99632ac Revert "gtk-icon-cache.bbclass: add runtime dependency"
This reverts commit e921edd27e71af00f07e3f1e973d2b0c6c777bf4 since
it breaks adwaita-icon-theme and other recipes using gtk-icon-cache

(From OE-Core rev: 257758f175cdcb99f4fe890cc0b1a60e82b5b84b)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Steve Sakoman
eee52b524e glib-networking: upgrade 2.62.3 to 2.62.4
Bug and CVE fix release

Fixes CVE-2020-13645

Details of changes at:

https://gitlab.gnome.org/GNOME/glib-networking/-/commits/glib-2-62

(From OE-Core rev: 9bf1f323a955e2e923136f4e5a9193878dee1a8d)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
zhengruoqin
857ab69bb1 gnutls: Fix krb5 code license to GPLv2.1+ to match the LICENSE file.
This was discussed and accepted upstream by the project so their license is consistent.
Please reference to https://gitlab.com/gnutls/gnutls/-/issues/1018
and https://gitlab.com/gnutls/gnutls/-/merge_requests/1285.

(From OE-Core rev: 284a8cb6c51517d07f5f21b224ffb57333f1fc27)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 267d07301c79c24969c169add05284f612c41d77)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Alexander Kanavin
ed1b6e97db gnutls: upgrade 3.6.13 -> 3.6.14
Security and bug fix release on the stable 3.6.x branch

Fixes CVE-2020-13777

Detailed list of changes at:

https://lists.gnupg.org/pipermail/gnutls-help/2020-June/004648.html

(From OE-Core rev: 79b821161275cad5d9c54078e65293109184ad65)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cd88c81804a4a52b9875f2244c9f35911539be96)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Yi Zhao
f4b6c77ac7 bind: upgrade 9.11.19 -> 9.11.21
Bug and CVE fixes only

Detailed list of changes at:
https://gitlab.isc.org/isc-projects/bind9/-/blob/v9_11_21/CHANGES

(From OE-Core rev: dc916547041b8d7636e5234f7e3150036bbbde4a)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c6749532f94f435e6771d66d3fa225e676753478)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Viktor Rosendahl
04d21a9ac5 boost: backport fix to make async_pipes work with asio
async_pipe is missing the executor_type type, which is expected by
asio in /usr/include/boost/asio/impl/read.hpp. Without this, it's
not possible to even compile code that uses constructs such as:

boost::asio::io_service foo;
boost::process::async_pipe foopipe{ boost::process::async_pipe(foo) };

This is only relevant for Dunfell because master has already moved to
boost-1.73.0 in which this bug has been fixed. The bug is also not
present in Zeus, which uses boost-1.71.0.

(From OE-Core rev: f3f6cc45b0b95cce337947df8dfaa9402251541c)

Signed-off-by: Viktor Rosendahl <Viktor.Rosendahl@bmw.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Matt Madison
aba2fdcff2 cogl-1.0: correct X11 dependencies
cogl depends on libxdamage when configured for X11 support.
A dependency was added for this in 2012 with
959a2f6d88d8fa6874fff83b7a1f0e7d4e36b887, but that addition
was lost when the recipe was reworked in 2013 with
b508fdd2b19ca30da8d09caf646897dc4cf195c8. That commit also
added a dependency on libxi, which is not actually needed.

The missing dependency doesn't cause problems in most cases,
since mesa also depends on libxdamage, but when an alternative
opengl implementation such as libglvnd is used, cogl fails
to configure.

(From OE-Core rev: 4cbfaae7f6ecdcbb67675da6cbdcf63aed0aaf61)

Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7651a63c508562caf1a3732cb49af50bccc98e8b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Konrad Weihmann
c25965e378 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: 135a6a4f55aed6148f45d01b307fadbd45be2997)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fdcbf3f28289188c5a97664d1421d4a5c4991eda)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Lee Chee Yang
75fdc94ecb checklayer: check layer in BBLAYERS before test
layer under test should absent from BBLAYERS when running
yocto-check-layer. This allow to get signatures before layer
under test. There are existing steps to add the layer under
test to BBLAYERS after getting initial signatures.

add steps to check for layer under test in BBLAYERS before
running any test, skip test for the layer if the layer under
test exist in BBLAYERS.

[YOCTO #13176]

(From OE-Core rev: a10ff925584406e563edfb4042b44c3e8ea57ce3)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit be02e8dbfb0d1decce125322f9f1e11a649756c0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Andrei Gherzan
a8b8418bae initscripts: Fix populate-volatile.sh bug when file/dir exists
The blocks which test for entry exitence (file or directory) use a
`A && B || C` syntax. This form is not behaving as a if-then-else block
even the code logic assumes that. C may run when A is true which breaks
the case where VERBOSE is 'no' but the file/directory exists.

Along with fixing these specific issues, this patch fixes the other
instances where blocks of form `A && B || C` are used as if-then-else.

(From OE-Core rev: 471094f8afa57548e9ff3fd7a99306f58b87d478)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1b9ea22acb66554925720e04cf24100664234574)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Andrei Gherzan
9b3ac3e898 initscripts: Fix various shellcheck warnings in populate-volatile.sh
(From OE-Core rev: 2c44581c3be7f1330f32870f9a9721a53a49f62b)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0a128a238f63d52aa82f8c63ee2f84ab528b3346)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-08-07 21:20:21 +01:00
Armin Kuster
856d4e9e61 glibc: Secruity fix for CVE-2020-6096
Source: glibc.org
MR: 104799
Type: Security Fix
Disposition: Backport from  beea361050728138b82c57dda0c4810402d342b9
ChangeID: 29df826fb697fdd2742c3bace33388bda962c5f1
Description:

(From OE-Core rev: 7ce425fa1295a9dca48f8474be58db3ac8aa540d)

Signed-off-by: Armin Kuster <akuster@gmvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ffa4fa35e1f6132b19788166a2b87517d9e17d95)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Lee Chee Yang
bb04831120 buildhistory: use pid for temporary txt file name
buildhistory create .txt file bh_installed_pkgs.txt and
bh_installed_pkgs_deps.txt while listing down installed package.
These file is later removed in buildhistory_get_installed().

when multiple process runs in parellal there are chances to race for
the file where one process created the file while another task remove
the file right after it.

using different file name for each process should avoid the race. So
add PID to the file name to make it unique.

[yocto #13709]

(From OE-Core rev: af8f5fe82f27702ad727b27daefd5e97d9e64efa)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 214d236d93700abffa2d586cc744a00455818fa4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Changqing Li
37657703e1 gtk-immodules-cache.bbclass: fix post install scriptlet error
package libgtk-3.0 don't install dir /usr/lib/gtk-3.0/3.0.0/ by default.
when install package gtk-immodule-xim, it is possible met below error:

/var/tmp/rpm-tmp.tlfoeo: line 17: /usr/lib/gtk-3.0/3.0.0/immodules.cache: No such file or directory
warning: %post(gtk-immodule-xim-2.24.32-r0.0.cortexa72) scriptlet failed, exit status 1

fix by create the dir when try to write to /usr/lib/gtk-3.0/3.0.0/immodules.cache

(From OE-Core rev: d22af1a7d68b59da8967179af0893003e7d8a8a1)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c689e120961d9d20386c8b822d71d778d4e6df7b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Sakib Sajal
6e1263c5f9 busybox: make hwclock compatible with glibc 2.31
settimeofday(2) has been deprecated as of glibc 2.31
which hwclock makes use of. This patch makes hwclock
compatible with glibc v2.31
See patch for more details:
  busybox/0001-hwclock-make-glibc-2.31-compatible.patch

Fixes [YOCTO #13981]

(From OE-Core rev: 92d8bba5405244ae2594abc1a012c08c74999ab4)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Ross Burton
977a4f10ff startup-notification: add time_t type mismatch patch from upstream
Backport a patch to fix issues where sizeof(time_t) != sizeof(long).

(From OE-Core rev: 0590fbf6d76e1d0c4601529884c4c171be6e27af)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9c3a6d74765e636a8038fe3aaa5dfc8b550590a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Daniel Ammann
4b3d87f149 image.bbclass: improve wording when image size exceeds the specified limit
(From OE-Core rev: faf93355614c5e5d9aec8222a7df780324868c7a)

Signed-off-by: Daniel Ammann <daniel.ammann@bytesatwork.ch>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fcaab9d686a4afe53a4693f3b30634215d682389)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Joshua Watt
9d7e7b5b57 classes/package: Use HOST_OS for runtime dependencies
The code was using TARGET_OS to try and detect what type of OS the
packages would be running on, but this is incorrect. TARGET_OS is the OS
for which the package will generate output (e.g. GCC output target or
GDB debugging target). The OS where the package will run is the HOST_OS.
Note that HOST_OS only differs from TARGET_OS when doing a
canadian cross compile, and even then in our case only when doing so for
a non-Linux host (e.g. MinGW).

Fix the code to use HOST_OS instead.

(From OE-Core rev: 2541b5be1e9c2c33ca8017130461a19f8734d883)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f284c5b2df220b520b025a59874e04ef4becd829)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Joshua Watt
aea80fa7d1 classes/cmake: Fix host detection
Fixes the class to use HOST_OS and HOST_ARCH to set the cmake SYSTEM
variables. The HOST variables should be used instead of
TARGET_OS/TARGET_ARCH because we want to control how cmake compiles for
where the package is going to run (the host), not what it will be
generating output for (the target). The distinction is only really
relevant when building canadian cross recipes.

Also fix up the host OS detection to account for MinGW by setting
CMAKE_SYSTEM_NAME to "Windows". This eliminates the need for meta-mingw
to patch this in all the cmake recipes it builds.

(From OE-Core rev: 59b8c49a54b8977ba2f3ed4f33f0fd3f7dd749d5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 01245db2893e39ffb5d4a00e4689f048d0698974)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Richard Purdie
579f1820be oeqa/qemurunner: Add priority/nice information for running processes
We're seeing failures due to system load. In theory we've set process
nice levels which should compensate for this. Add debugging so we can
find out if they're being correctly applied.

(From OE-Core rev: 693dc285164eb6cc88cc7174238fd59f0393b5c3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1e4e345bba8216b9b5623682206a7dae7cad261c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Bruce Ashfield
664d8a1f8c linux-yocto-rt/5.4: fix mmdrop stress test issues
Integrating the following commit(s) to linux-yocto/5.4:

    508b4e6ada7f sched: Remove unexpected mmdrop on RT

(From OE-Core rev: c381a58954da72c5b44b8047328c13f81f178bbf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8500665cb8da792bb92a484e286f3935cf85e2b2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Bruce Ashfield
47d224c6bc linux-yocto/5.4: update to v5.4.51
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    1c54d3c15afa Linux 5.4.51
    8ba1913cd6ba efi: Make it possible to disable efivar_ssdt entirely
    43986c32ee00 dm zoned: assign max_io_len correctly
    215e562251bb x86/resctrl: Fix memory bandwidth counter width for AMD
    d827fe702e07 mm, compaction: make capture control handling safe wrt interrupts
    64a94c550c44 mm, compaction: fully assume capture is not NULL in compact_zone_order()
    2a9278ac9c55 irqchip/gic: Atomically update affinity
    7ba23593cbc5 dma-buf: Move dma_buf_release() from fops to dentry_ops
    4ae695a05516 drm/amdgpu/atomfirmware: fix vram_info fetching for renoir
    2b8c0876bf71 drm/amdgpu: use %u rather than %d for sclk/mclk
    94de85d16b0c drm/amd/display: Only revalidate bandwidth on medium and fast updates
    032343ed6927 MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
    2e859b14da39 MIPS: lantiq: xway: sysctrl: fix the GPHY clock alias names
    71a20b798da3 cifs: Fix the target file was deleted when rename failed.
    49dae9bed7dd SMB3: Honor 'handletimeout' flag for multiuser mounts
    7ab27439fec7 SMB3: Honor lease disabling for multiuser mounts
    0d5824aea7a0 SMB3: Honor persistent/resilient handle flags for multiuser mounts
    d56787683c61 SMB3: Honor 'seal' flag for multiuser mounts
    e0ed5a36fb3a Revert "ALSA: usb-audio: Improve frames size computation"
    fe05e114d0fd nfsd: apply umask on fs without ACL support
    4ee7f1d2f1c9 spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
    9d60af5c3bb3 i2c: mlxcpld: check correct size of maximum RECV_LEN packet
    b460fc9d0525 i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
    a632f91f7a9c samples/vfs: avoid warning in statx override
    cd62eeb31512 nvme: fix a crash in nvme_mpath_add_disk
    c64141c68f72 nvme: fix identify error status silent ignore
    7d3f489e61b6 SMB3: Honor 'posix' flag for multiuser mounts
    8964c93436ad virtio-blk: free vblk-vqs in error path of virtblk_probe()
    f795a88eade5 drm: sun4i: hdmi: Remove extra HPD polling
    c84138b3c162 nfsd: fix nfsdfs inode reference count leak
    2571e1735602 nfsd4: fix nfsdfs reference count loop
    31ec38ec9cd5 thermal/drivers/rcar_gen3: Fix undefined temperature if negative
    a65bde001008 thermal/drivers/mediatek: Fix bank number settings on mt8183
    c9426817eac7 hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
    3e7bd7e10639 hwmon: (max6697) Make sure the OVERT mask is set correctly
    0465f54c5cc4 cxgb4: fix SGE queue dump destination buffer context
    6bcb00d08361 cxgb4: use correct type for all-mask IP address comparison
    f68bda772639 cxgb4: fix endian conversions for L4 ports in filters
    180fbf10a26d cxgb4: parse TC-U32 key values and masks natively
    0dc4dd433b94 cxgb4: use unaligned conversion for fetching timestamp
    8a1b8e64204e RDMA/counter: Query a counter before release
    53e9b62672f7 rxrpc: Fix afs large storage transmission performance drop
    60d7de28e0ca drm/msm/dpu: fix error return code in dpu_encoder_init
    cc0f67835302 crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
    5d6b46a94dbb tpm: Fix TIS locality timeout problems
    563e9491f0a3 selftests: tpm: Use /bin/sh instead of /bin/bash
    1f98a9ed5799 kgdb: Avoid suspicious RCU usage warning
    e6b2e3b5e16e nvme-multipath: fix bogus request queue reference put
    5e9523d7e8cd nvme-multipath: fix deadlock due to head->lock
    ad69fbe1d262 nvme-multipath: fix deadlock between ana_work and scan_work
    c4f007d3dbdd nvme-multipath: set bdi capabilities once
    8f4aa3a6de24 s390/debug: avoid kernel warning on too large number of pages
    517326aaf41e tools lib traceevent: Handle __attribute__((user)) in field names
    6f3b8c269d88 tools lib traceevent: Add append() function helper for appending strings
    3dca0a299ff4 usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
    0ff5b1b50d5c rxrpc: Fix race between incoming ACK parser and retransmitter
    fe688b144c14 mm/slub: fix stack overruns with SLUB_STATS
    f459e8fc7c69 mm/slub.c: fix corrupted freechain in deactivate_slab()
    542d541c1edd sched/debug: Make sd->flags sysctl read-only
    ab9ee18f4646 usbnet: smsc95xx: Fix use-after-free after removal
    58ab86e58b55 EDAC/amd64: Read back the scrub rate PCI register on F15h
    d0e533584a05 mm: fix swap cache node allocation mask
    1c4404efcf2c io_uring: make sure async workqueue is canceled on exit

(From OE-Core rev: aee5754b848fea174d27e2af9d88134680c4ec30)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 60ee8b2bc14af7bf5b69d00c5d6293f09125407c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Robert Yang
26bc7aed46 openssl: openssl-bin requires openssl-conf to run
Fixed:
$ dnf install openssl-bin
$ openssl req -new -x509 -keyout lighttpd.pem -out lighttpd.pem -days 365 -nodes -batch
Can't open /usr/lib/ssl-1.1/openssl.cnf for reading, No such file or directory

(From OE-Core rev: 2a4980cd8bfd829bab1ba081588eb0bdbd285b97)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e93cd3b83a255294c9ab728adc7e237eb1321dab)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Kurt Kiefer
f718d9f2aa linux-firmware: add ibt-20 package
Add the firmware packaging for Intel Bluetooth AX200, also known
as Intel CyclonePeak (CcP).

(From OE-Core rev: a53e9fd2d50d92c138c3f72aef0a9d0e59e823e6)

Signed-off-by: Kurt Kiefer <kurt.kiefer@arthrex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a701625a95ccb15a9db1a50a02143ba1ac8e6f1d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Chen Qi
1a367f80af rpm: fix nativesdk's default var location
For now, the nativesdk-rpm's %_var in /usr/lib/rpm/macros is
'/var'. This is causing error when running `rpm -qplv A.rpm'.

   error: cannot open Packages index using db5 - Permission denied (13)
   error: cannot open Packages database in /var/lib/rpm

The rpm in SDK should be using its own database. So we should remove
this configure option, letting the SDK's native sysroot prefix to be
there in %_var. In fact, '%_usr' in macros has already got the prefix.
After this change, we have in the macros file lines like below.

"""
%_usr                   /opt/windriver/wrlinux/20.29/sysroots/x86_64-wrlinuxsdk-linux/usr
%_usrsrc                %{_usr}/src
%_var                   /opt/windriver/wrlinux/20.29/sysroots/x86_64-wrlinuxsdk-linux/var
"""

(From OE-Core rev: 4e0d1bdc6e896c7dedccf615d6d0da9eb91d9b1d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 13e17930062cb3f816516ba7dbeb70d6da7174dd)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Kevin Hao
716fe312f5 wic/filemap: Fall back to standard copy when no way to get the block map
For some filesystems, such as aufs which may be used by docker container,
don't support either the SEEK_DATA/HOLE or FIEMAP to get the block
map. So add a FileNobmap class to fall back to standard copy when there
is no way to get the block map.

[Yocto #12988]

(From OE-Core rev: 66f9db48bb9d59f08492f0515bc08b6b039aa03f)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7934ed49179242f15b413c0275040a3bb6b68876)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Kevin Hao
1a24aed905 wic/filemap: Drop the unused get_unmapped_ranges()
This method is not used by any code, so drop it.

(From OE-Core rev: 19078f9540c455ccddb6f2986b96562a8186ec35)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6513fd9302b9989f97fc9d95e76e06ad5d266774)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Kevin Hao
1d0fbc64c8 wic/filemap: Drop the unused block_is_unmapped()
This method is not used by any code, so drop it.

(From OE-Core rev: 14cbfc04f4a9da5baba6267daefd54a12a04d56e)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fb62a15349597ee026c67a0bb0a6ca2cc9bfe420)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-31 22:02:52 +01:00
Richard Purdie
1bab588f4e bitbake: server/process: Account for xmlrpc connections
UI control can happen via the xmlrpc connection. Account for this when timing
out UI connections. This was causing issues for toaster on systems where it
couldn't parse the metadata within the timeout.

(Bitbake rev: 838a89141fd6a75da9f982ad2b035e823b692d2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fa85a8263971c25e67fa3b421c686a90e46acd87)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-29 00:21:40 +01:00
Richard Purdie
11009210cc bitbake: server/process: Fix UI first connection tracking
We're only meant to be doing UI connection timeouts on the first connection
but haveui changes for each connection. We need to add a specific variable
to track this correctly and get the intended behaviour.

(Bitbake rev: fda107a4a1033ac7111a3289dbe6e48cea986927)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e7c387c2e2fb2cc3ca1dc9d2029362909c326d72)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-29 00:21:40 +01:00
Bruce Ashfield
569b1f5d67 kernel-yocto: account for extracted defconfig in elements check
The test for whether or not scc should to invoked to generate a
config.queue was missing the newly created sccs_defconfig variable.
We need to test for that variable as well, or we may miss generating
the config.queue in some cases.

(From OE-Core rev: ea886d57db917a41a0d106a15e1e96c72d6407b0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3a95e171d3eaa6ab143d4f422c98a0ac7ad31761)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-23 16:51:07 +01:00
Richard Purdie
d2bbfc42b7 bitbake: cooker: Handle multiconfig name mappings correctly
"bitbake mc:arm:bash mc:arm:busybox"
works but
"bitbake multiconfig:arm:bash multiconfig:arm:busybox"
does not. The reason is the list is modified whilst iterating.
Don't do that.

[YOCTO #13607]

(Bitbake rev: cc11dfa4eb3616547a8a3909f89da0cc4f35dc57)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-23 16:51:07 +01:00
akuster
c9ecbbc87a glibc: whitelist CVE-2010-10029
The update via Commit https://git.openembedded.org/openembedded-core/commit/meta/recipes-core/glibc?id=2c7e0e0bf32eb1ed0b7d8acddb16c0d1e93f2aa1

should have added the whitelist for this CVE removed

(From OE-Core rev: e8de5271aeebd151b3fbe47d47a1c5f6969320e7)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 213ac2d345ec6d4ef0daf7a7d8237038a914c491)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:38 +01:00
Lee Chee Yang
85a5124b88 systemd : fix CVE-2020-13776
(From OE-Core rev: c23afae55758b53f34b08eb3a51ac25f0e4ce4d4)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:38 +01:00
Rahul Chauhan
e821cfe190 busybox: Security Fix For CVE-2018-1000500
CVE: CVE-2018-1000500

(From OE-Core rev: 1ff4e723ed65ff7ee2921a50ca0c004ea7bb2508)

Signed-off-by: Rahul Kumar <rahulk@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:38 +01:00
Richard Purdie
4c211b471e oeqa/utils/qemurunner: Fix missing pid file tracebacks
One element of the error message guarded against None as a value
but I missed the other, fix this.

(From OE-Core rev: 9e23163016b7a8fea0dbfe2111f9493017e5a7b2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dbce6baec68d7658453b8c44159e1d1fef746151)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:38 +01:00
Richard Purdie
cb28cbbff4 qemurunner: Add extra debug info when qemu fails to start
When qemu fails to start we're struggling to work out why. Add more debug
info which can at least confirm/rule out various things.

This code is only on the error handling path and more info shoudl help
us debug issues.

(From OE-Core rev: 797f7e0c3ff0610a4de321eaf82f84bca610624e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3001d0d8f3429e5ff0c37ea7192e85e7001cdb32)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:38 +01:00
Richard Purdie
676d10c470 qemurunner: Ensure pid location is deterministic
The pid location could vary due to changes in cwd as only a filename
is specified, not a full path. This in theory could be resulting in
some of our autobuilder failures. Whilst its difficult to know if this
is causing a problem, Using a full path removes any question of such an
issue.

(From OE-Core rev: a03c85fe0704a457bd2d92dd58cbbb4d37453f2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 55c186ff410c99570242478b99ac24ebc40aa6bd)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Alexander Kanavin
acdccda9ef babeltrace: correct the git SRC_URI
The previous one seems to be gone.

(From OE-Core rev: 5dd3d61c5c739f31cb87a3c0c924c617b432e8a9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b9995f8a8f08bbcb1e0915a7420ec7fb5623d604)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Tim Orling
abe66c9a39 scripts/lib/recipetool/create.py: fix regex strings
Python now expects regex strings to be prepended with r.
Silence pylint/autopep8 and similar warnings by identifying
these regex patterns as... regex patterns.

(From OE-Core rev: f8a5db7a6072ddb1be96405fc8b44f595275206d)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0eae98a369d80340e48dc690d09a1364cde97973)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Tim Orling
227b499306 lib/oe/recipeutils.py: add AUTHOR; BBCLASSEXTEND
If you try to create a plugin for recipetool that
adds the AUTHOR field, it is impossible to put it
in the recommended position [1] without adding to the
recipe_progression variable.

While we are at it, also add BBCLASSEXTEND at the
end, as also recommended by [1].

[1] http://www.openembedded.org/wiki/Styleguide

(From OE-Core rev: 2a1ae8c12cb0d6fd9d57c98caa97a10f3b6d3388)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d687c5b7b10b3decdd80d5c2fd61072a87f061f2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Douglas
feef514b57 nativesdk: Set the CXXFLAGS to the BUILDSDK_CXXFLAGS
... which default to the BUILDSDK_CFLAGS in any case.

(From OE-Core rev: 260a348bab64b7da33e2ade77593059287a4e308)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9b4bf667bac49131cee382f2f346fc054d5f28b9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Douglas
8aad156d3f nativesdk: clear MACHINE_FEATURES
Further to 96c20c9df7:
Try to avoid nativesdk recipes accidentally being dependent on MACHINE_FEATURES.

(From OE-Core rev: 0cbae5aa12aa8f3e0865d36d665dfd4a5853a691)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 956e5bd6862ca898143a234aa85cc83b1f2d1807)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Konrad Weihmann
4b32bd49fd ptest: append to FILES
as ptest FILES could be determined before or after the classes was
inherited, if is much safer to append to the setting of
FILES_${PN}-ptest

(From OE-Core rev: 1a52f9ec394ec2ce9899543c1b9ef95e926ebf14)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 419ad35ffe7f5199e49a246ef9854f0810ca1d6c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Khem Raj
f650f173b0 go-dep: Fix build on riscv64
Bring in only patch from meta-riscv here

(From OE-Core rev: ecd7563cc29d5b473a3c71f35c4d9c98ff4d2349)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2e6e7b0be6e5ba5ab8fe9478c1dfdd530d22123f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Khem Raj
1a6d9b1411 go: Disbale CGO for riscv64
cgo is still not available in go for riscv64, we will re-evaluate it
once we upgrade to 1.15

Fixes
| /usr/src/debug/go-runtime/1.14.4-r0/go/src/runtime/cgo/gcc_util.c:23: undefined reference to `_cgo_sys_thread_start'

[YOCTO #13966]

(From OE-Core rev: 987d29d0b0dfa19ef6564996198f22c2b08f6ff9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f512b3308ed6ee878c77f72b9235ada83d107dba)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Charlie Davies
15de675ce8 u-boot: fix condition to allow use of *.cfg
U-boot recipe supports .cfg files in SRC_URI, but bug in conditional
statement meant that the code was unreachable and the .cfg files
were never applied.

(From OE-Core rev: 4fc386279ef4616d1e103cb70facee5716d335ff)

Signed-off-by: Charlie Davies <charles.davies@whitetree.xyz>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 766f827df4c3f76b1ef06acaba3c4f160c3791aa)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Jens Rehsack
6fe120ca96 serf: extend for nativesdk
As an unconditionally dependency of subversion, extend serf recipe for
building a nativesdk variant being usable by nativesdk-subversion.

(From OE-Core rev: 3b78a39535089bbafbeb1ebd854efe180890f375)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ff731a25a49c768f04a474438efccb3bb505a898)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Jens Rehsack
0bb2615ae7 subversion: extend for nativesdk
For SDK environments where people still use subversion, let it easily being
added to buildtools-tarball to invite more developers relying on Yocto
based SDKs without much requirement to setup anything on the development
workplace.

(From OE-Core rev: 795781db8a82c9268fcabc93dd54cb6b07cbe9c8)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 586a15b76f879f49c5224116cbf506b7ccf96cd2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Richard Purdie
20ed772735 oeqa/selftest/sstatetests: Avoid polluting DL_DIR
Every selftest run is currently polluting the autobuilder DL_DIR. Avoid
this by using a temporary directory for the test which is cleaned up.

(From OE-Core rev: 3f2971c2fa94970057cd4260aa1147a165d70fa9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 002d321e02b3ce4f34c8a54211b109a5416c8a0e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Christian Eggers
c52cd7466c avahi: Fix typo in recipe
According to the PACKAGES variable, LICENSE_avahi-client is misspelled.
Additionally, the libavahi-client package actually only includes
LGPLv2.1+ software (as opposed to the global LICENSE variable).

(From OE-Core rev: 683fb53c94e63e4f5acf4c2efd04977cc10bed49)

Signed-off-by: Christian Eggers <ceggers@arri.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d8837b4735b5e96ae0f5542319e711dbda8c3849)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Lee Chee Yang
f37eab6353 bison: fix Argument list too long error
fix Argument list too long error when len(TMPDIR) = 410

(From OE-Core rev: 90c75ff2e696e984d18e33726d1d07647b140ee6)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 73f05ba58dcee57e25712f9aee97535d9a32c982)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Yongxin Liu
5fd0b97e7d linux-firmware: move ibt-misc to the end of ibt packages
After commit 3ca1d3fa1d ("linux-firmware: fix the wrong file
path for ibt-misc"), if we don't change the location of ibt-misc
in PACKAGES, ibt-misc will include all ibt files and make other
individual ibt package empty.

(From OE-Core rev: f9d24c6cfb2d167b413301b9ec853ddc181e8043)

Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3a5403a9e5d0085d7b2f97a2e44b74a54c84d3f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Yongxin Liu
1944ecf14d linux-firmware: fix the wrong file path for ibt-misc
(From OE-Core rev: 21cd2d89667a286352e70daf07129292b842aa81)

Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7c1470ea6e337dc1d1e320d33267f06584e9752d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Ross Burton
20521e2219 insane: consolidate skipping of temporary do_package files
During the course of do_package_rpm and friends the tools create a
top-level CONTROL or DEBIAN directory in the package directory.
do_package_qa needs to be aware of these files and ignore them, this was
previously done in just one check but instead should be done once when
building the file list so all the checks don't see the temporary files.

[ YOCTO #13804 ]

(From OE-Core rev: 0dbdcd305a969b67415ed74c3286af02612bd64c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4b2f45c47a5c8c800626f12c14f216a5ab923512)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-22 22:46:37 +01:00
Steve Sakoman
8ed73ebee7 poky: Add fedora32 as a supported distro
(From meta-yocto rev: 432b365f48f58ec0d9692a93607b65edd098ca1a)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-21 16:57:48 +01:00
Richard Purdie
b24605d8a4 bitbake: server/process: Fix note reference -> info
Its bb.note or logger.info, this avoids a backtrace.

(Bitbake rev: fb80389d2ce62e15e354c6ea288c9a4bbe0040f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-21 16:57:48 +01:00
Steve Sakoman
1d0206a7b2 Documenation: Prepared for the 3.1.2 release
(From yocto-docs rev: 17cc71a8f76e7b3245c9008646bb3961ad85261a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:27:24 +01:00
Steve Sakoman
b479e759cb poky.conf: Bump version for 3.1.2 release
(From meta-yocto rev: f2f87e2054766fbd92b7062819062e1a55a5031b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:26:58 +01:00
Richard Purdie
e0ef31f1d2 bitbake: server/process: Ensure UI-less servers don't sit in infinite loops
If server startup is broken for some reason (e.g. lockfile issues)
and no UI connection is made, the server will just sit inifinitely
waiting.

Add a timeout upon startup in the non-memory resident case so that
such infinite waits are avoided. In the memory resident case, the
server wouldn't have shut down in the first place or will timeout
according to configuration.

Since any race may mean the socket file is no longer present, ensure
the unlink doesn't fault upon exit, thus ensuring any hashequiv or
PRServ is removed from memory, allowing all processes to exit
cleanly in such scenarios.

(Bitbake rev: 81cad9b8c4df15218d1a419c6b8e3ac73b54600c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 39888b750df12478e8bdea6727cca112dce1df85)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Richard Purdie
2add0d0cea bitbake: server/process: Fix a rare lockfile race
We're seeing rare occasional races on the autobuilder as if two server
processes have the lockfile at the same time. We need to be extremely
careful this does not happen.

I think there is a potential race in this shutdown code since we delete
the lockfile, then call unlockfile() which also tries to delete it.

This means we may remove a lock file now held by another process if we're
unlucky. Since unlockfile removes the lockfile when it can, just rely on
that and remove any possible race window.

An example cooker-deamonlog:

 --- Starting bitbake server pid 2266 at 2020-07-11 06:17:18.210777 ---
Started bitbake server pid 2266
Entering server connection loop
Accepting [<socket.socket fd=20, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=bitbake.sock>] ([])
Processing Client
Connecting Client
Running command ['setFeatures', [2]]
Running command ['updateConfig', XXX]
Running command ['getVariable', 'BBINCLUDELOGS']
Running command ['getVariable', 'BBINCLUDELOGS_LINES']
Running command ['getSetVariable', 'BB_CONSOLELOG']
Running command ['getSetVariable', 'BB_LOGCONFIG']
Running command ['getUIHandlerNum']
Running command ['setEventMask', XXXX]
Running command ['getVariable', 'BB_DEFAULT_TASK']
Running command ['setConfig', 'cmd', 'build']
Running command ['getVariable', 'BBTARGETS']
Running command ['parseFiles']
 --- Starting bitbake server pid 8252 at 2020-07-11 06:17:28.584514 ---
Started bitbake server pid 8252
 --- Starting bitbake server pid 13278 at 2020-07-11 06:17:31.330635 ---
Started bitbake server pid 13278
Running command ['dataStoreConnectorCmd', 0, 'getVar', ('BBMULTICONFIG',), {}]
Running command ['getRecipes', '']
Running command ['clientComplete']
Processing Client
Disconnecting Client
No timeout, exiting.
Exiting

where it looks like there are two server processes running which should not be.
In that build there was a process left sitting in memory with its bitbake.sock file
missing but holding the lock (not sure why it wouldn't timeout/exit).

(Bitbake rev: de919782f488a83b80d7c40896bf5b2596f1f65f)

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

(cherry picked from commit e1a7c1821483031b224a1570bfe834da755219cc)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Konrad Weihmann
c15296aa63 bitbake: pyshyacc: allow double COMMA statements
this allows shell statements like '; ;' to pass the parser.
As it may be bad code but still valid enough to execute

(Bitbake rev: 85a499f8915dd6596d56808e6e1c536015e4eb34)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b7732b1b5085bea73e17d112e1bd9ac3d4dc34fb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Richard Purdie
ef3209ba8f 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: 6e527ea72b0816bf5f454473faf6523c365daa18)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 820ab886e79eea516560c0c008e4cf059c6e11a3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Richard Purdie
3ef26fead4 bitbake: server/process: Increase timeout for commands
We're running into this timeout on loaded autobuilders in situations
where things should otherwise succeed. Log a note in these
cases and continue to try for longer.

(Bitbake rev: 344d3006a243f5f7d8f551556bab721b2ac0a2aa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e567743e70f426786ae54dcb5ab550748d9266e4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Chris Laplante
03e20850af bitbake: ui/teamcity: don't use removed logging classes
Allows the TeamCity frontend to be used again.

(Bitbake rev: cea130b238e874bae30e13b3242a00eaff7f853b)

Signed-off-by: Chris Laplante <mostthingsweb@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c5477ba79fcad4a887808dd0df9cfe3554e2c17a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
David Khouya
62de572029 bitbake: lib/ui/taskexp: Fix missing Gtk import
Adding back gtk objects import.

Fix bug introduce when adding validation on gtk import.

(Bitbake rev: 44e24fffc568dfee054b5feff2d9b382b9ce4bb5)

Signed-off-by: David Khouya <dakhouya@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 765be5ef60668f8a1cfbcba248f4995725807196)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
David Khouya
38a756daa9 bitbake: lib/ui/taskexp: Validate gi import
When running bitbake -g -u taskexp without having gi python module or
and invalid gtk version, bitbake fails with a stack trace.

In case of import or version error, bitbake should exit with an error
message instead of a stack trace.

(Bitbake rev: 45e32f2651d35bf7a315af95cfe0b1070e038c9e)

Signed-off-by: David Khouya <dakhouya@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2a2c507f239b047f34765312df4168030e38b90d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-19 16:22:12 +01:00
Rasmus Villemoes
5a63668dbb coreutils: don't split stdbuf to own package with single-binary
Commit 992cec44 (coreutils: Move stdbuf into an own package
coreutils-stdbuf) breaks package-qa when the single-binary
PACKAGECONFIG is used:

ERROR: coreutils-8.32-r0 do_package_qa: QA Issue: /usr/bin/stdbuf contained in package coreutils-stdbuf requires /usr/bin/coreutils, but no providers found in RDEPENDS_coreutils-stdbuf? [file-rdeps]
ERROR: coreutils-8.32-r0 do_package_qa: QA run found fatal errors. Please consider fixing them.

With that PACKAGECONFIG, /usr/bin/stdbuf is just a simple "script"
containing the single line

  #!/usr/bin/coreutils --coreutils-prog-shebang=stdbuf

Since there's no point splitting stdbuf to its own package when all
the functionality is in the single big coreutils binary anyway, fix
this by not creating the separate stdbuf package for the single-binary
case. But also make sure that the coreutils-stdbuf item always exists
so recipes can always RDEPEND on coreutils-stdbuf.

(From OE-Core rev: c2ad3af9da9bb3a98c1d5d1b3d21eb8db643c189)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 74d24b5b895198898944260136d05e991a203c11)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Christian Eggers
0783727c5c libnl: Extend for native/nativesdk
libnl is required by networkmanager.

(From OE-Core rev: 30b4d8b5fd45c78f5da3706dd91c43d795de6eb0)

Signed-off-by: Christian Eggers <ceggers@arri.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3c96103a5063eeefb0c537227eab3f77616b9c0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Bjarne Michelsen
2f954473bb devtool: default to empty string, if LIC_FILES_CHKSUM is not available
[Bug 13971] https://bugzilla.yoctoproject.org/show_bug.cgi?id=13971

A recipe using LICENSE=CLOSED would normally not have LIC_FILES_CHKSUM
set.
If LIC_FILES_CHKSUM was not set, it would cause `devtool upgrade` to fail.

This fixes the issue by defaulting to an empty string if
LIC_FILES_CHKSUM is not found.

[YOCTO #13971]

(From OE-Core rev: 9c7f3281884c50dbd05e2966e2409255c127ebfa)

Signed-off-by: Bjarne Michelsen <bjarne_michelsen@hotmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 95e112f0f465868e98285509ea0d1a624a439ac2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Hannu Lounento
6782960928 openssl: move ${libdir}/[...]/openssl.cnf to ${PN}-conf
Some openssl command line operations like creating an X.509 CSR require
the file /usr/lib/ssl-1.1/openssl.cnf to exist and fail if it doesn't

    root@qemux86-64:~# openssl req -out my.csr -new -newkey rsa:2048 -nodes -keyout my.key
    Can't open /usr/lib/ssl-1.1/openssl.cnf for reading, No such file or directory
    140289168594176:error:02001002:system library:fopen:No such file or directory:../openssl-1.1.1g/crypto/bio/bss_file.c:69:fopen('/usr/lib/ssl-1.1/openssl.cnf','r')
    140289168594176:error:2006D080:BIO routines:BIO_new_file:no such file:../openssl-1.1.1g/crypto/bio/bss_file.c:76:

which is the case e.g. in core-image-minimal with just the
package openssl-bin added to the image by declaring

    IMAGE_INSTALL_append = " openssl-bin"

e.g. in local.conf.

The file did not exist in the aforementioned image / configuration
because it was packaged to the main openssl package

    FILES_${PN} =+ "${libdir}/ssl-1.1/*"

(there is no other FILES specification that would match the file either)
and

    path/to/poky/build$ rpm --query --package --list tmp/deploy/rpm/core2_64/openssl-1.1.1g-r0.core2_64.rpm
    [...]
    /usr/lib/ssl-1.1/openssl.cnf
    [...]

Hence move /usr/lib/ssl-1.1/openssl.cnf (and openssl.cnf.dist as it
seems closely related) to the ${PN}-conf package to have it installed
with ${PN}-bin, which already (indirectly) depends on ${PN}-conf.

Note that the openssl recipe has the comment

    Add the openssl.cnf file to the openssl-conf package. Make the libcrypto
    package RRECOMMENDS on this package. This will enable the configuration
    file to be installed for both the openssl-bin package and the libcrypto
    package since the openssl-bin package depends on the libcrypto package.

but openssl-conf only contained /etc/ssl/openssl.cnf

    path/to/poky/build$ rpm --query --package --list tmp/deploy/rpm/core2_64/openssl-conf-1.1.1g-r0.core2_64.rpm
    /etc
    /etc/ssl
    /etc/ssl/openssl.cnf

/usr/lib/ssl-1.1/openssl.cnf is actually only a symlink that points to
../../../etc/ssl/openssl.cnf.

Other files and directories in /usr/lib/ssl-1.1/ were considered as well
because they seem to be configuration files and / or related to
(symlinks pointing to) /etc. They were not moved though, because based
on our use case and testing moving the openssl.cnf symlink is sufficient
for fixing the immediate problem and we lack knowledge about the other
files in order to make a decision to change their packaging.

(From OE-Core rev: e5405189e6d1b3b3b236aa8fe7a577c72f6af8d8)

Signed-off-by: Hannu Lounento <hannu.lounento@vaisala.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c1632d7041fe0c18ec61abfa79a9c025af43c033)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Bruce Ashfield
458a757e3f linux-yocto/5.4: update to v5.4.50
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    e75220890bf6 Linux 5.4.50
    a160afebd779 Revert "tty: hvc: Fix data abort due to race in hvc_open"
    ffd40b7962d4 xfs: add agf freeblocks verify in xfs_agf_verify
    cc66553004f4 dm writecache: add cond_resched to loop in persistent_memory_claim()
    a51e71cbf6e6 dm writecache: correct uncommitted_block when discarding uncommitted entry
    de1d70dad6f2 xprtrdma: Fix handling of RDMA_ERROR replies
    4d35ca872ac3 NFSv4 fix CLOSE not waiting for direct IO compeletion
    02917bef8f1b pNFS/flexfiles: Fix list corruption if the mirror count changes
    7b99577ff376 SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
    c27d205baa82 sunrpc: fixed rollback in rpc_gssd_dummy_populate()
    60bdb51d44fa Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate()
    c6f88afa6ae1 drm/amdgpu: add fw release for sdma v5_0
    05124abe1fb0 drm/radeon: fix fb_div check in ni_init_smc_spll_table()
    834a3aa2ceb4 drm: rcar-du: Fix build error
    176a3c488476 drm/amd: fix potential memleak in err branch
    0b3cc973f16f ring-buffer: Zero out time extend if it is nested and not absolute
    9a59a88b3d31 tracing: Fix event trigger to accept redundant spaces
    c036eb65fdfc arm64: dts: imx8mn-ddr4-evk: correct ldo1/ldo2 voltage range
    90bd9c611f21 arm64: dts: imx8mm-evk: correct ldo1/ldo2 voltage range
    73f79b420bd0 arm64: perf: Report the PC value in REGS_ABI_32 mode
    7a9e3e25a9d2 mm/memcontrol.c: add missed css_put()
    ff6aff13a8cf ocfs2: fix panic on nfs server over ocfs2
    a8d82ebaee97 ocfs2: fix value of OCFS2_INVALID_SLOT
    4685df862c8b ocfs2: load global_inode_alloc
    7fa716a594a6 ocfs2: avoid inode removal while nfsd is accessing it
    fbca1aee1397 mm/slab: use memzero_explicit() in kzfree()
    a79c3a99ac81 btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
    863a197f7f10 btrfs: check if a log root exists before locking the log_mutex on unlink
    53a081661047 btrfs: fix data block group relocation failure due to concurrent scrub
    0a4dfc69ea7e btrfs: fix bytes_may_use underflow when running balance and scrub in parallel
    df13086490db x86/asm/64: Align start of __clear_user() loop to 16-bytes
    3ceaf206b706 x86/cpu: Use pinning mask for CR4 bits needing to be 0
    96a80133559f KVM: VMX: Stop context switching MSR_IA32_UMWAIT_CONTROL
    8ccc6ac51eac KVM: nVMX: Plumb L2 GPA through to PML emulation
    5774f9fa563b KVM: X86: Fix MSR range of APIC registers in X2APIC mode
    0236040fcf97 erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup
    824d0b6225f3 ACPI: configfs: Disallow loading ACPI tables when locked down
    3c4f9a5541bb ACPI: sysfs: Fix pm_profile_attr type
    6ee4d61403d2 ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems
    1a1bc3ae6935 ALSA: hda/realtek - Add quirk for MSI GE63 laptop
    0211e0d7f185 ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
    f06a6294e113 RISC-V: Don't allow write+exec only page mapping request in mmap
    26b0956cb374 block: update hctx map when use multiple maps
    72647ea37700 blktrace: break out of blktrace setup on concurrent calls
    d14eb5d8f0f4 kprobes: Suppress the suspicious RCU warning on kprobes
    8ed391a3dbc4 recordmcount: support >64k sections
    803d114e8f19 kbuild: improve cc-option to clean up all temporary files
    cbed4eb0a92f arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n
    a9a3b33b20aa s390/vdso: fix vDSO clock_getres()
    68a3cbc44660 s390/vdso: Use $(LD) instead of $(CC) to link vDSO
    7c17909a889d s390/ptrace: fix setting syscall number
    64f7b10a91a4 s390/ptrace: pass invalid syscall numbers to tracing
    453cfe187723 pinctrl: tegra: Use noirq suspend/resume callbacks
    7851257375ae pinctrl: qcom: spmi-gpio: fix warning about irq chip reusage
    8dba9173a37a test_objagg: Fix potential memory leak in error handling
    6fd916e24935 net: alx: fix race condition in alx_remove
    855dbf10c9a7 ibmvnic: Harden device login requests
    07b8b2d46371 hwrng: ks-sa - Fix runtime PM imbalance on error
    b8403f7e45e5 riscv/atomic: Fix sign extension for RV64I
    81616542adcc drm/amd/display: Use kfree() to free rgb_user in calculate_user_regamma_ramp()
    f7f181582f1b ata/libata: Fix usage of page address by page_address in ata_scsi_mode_select_xlat function
    4dfc238a2441 sata_rcar: handle pm_runtime_get_sync failure cases
    83bdf7f8b712 sched/core: Fix PI boosting between RT and DEADLINE tasks
    3dc7138943b1 sched/deadline: Initialize ->dl_boosted
    bfd4981fe3d6 afs: Fix storage of cell names
    5cee9e67596f i2c: core: check returned size of emulated smbus block read
    4a6e6413059e i2c: fsi: Fix the port number field in status register
    0935afc39797 clk: sifive: allocate sufficient memory for struct __prci_data
    b78bae5ab399 net: bcmgenet: use hardware padding of runt frames
    ae6d80f62c73 netfilter: ipset: fix unaligned atomic access
    8d93603bf60c nvme: don't protect ns mutation with ns->head->lock
    f9dc5e708ab8 usb: renesas_usbhs: getting residue from callback_result
    56ee0ed97df5 usb: gadget: udc: Potential Oops in error handling code
    a3a86515d017 scsi: lpfc: Avoid another null dereference in lpfc_sli4_hba_unset()
    1e812023f478 ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
    61f488765dff cxgb4: move handling L2T ARP failures to caller
    065f225ef975 net: qede: fix use-after-free on recovery and AER handling
    f490e70fa7eb net: qede: fix PTP initialization on recovery
    7180c8fc4a03 net: qed: fix excessive QM ILT lines consumption
    32cf4ff4ec52 net: qed: fix NVMe login fails over VFs
    d0717a95a06b net: qede: stop adding events on an already destroyed workqueue
    164d9a15652f net: qed: fix async event callbacks unregistering
    5cf7f0c68405 net: qed: fix left elements count calculation
    33104571648b iommu/vt-d: Update scalable mode paging structure coherency
    ede796e5ac87 iommu/vt-d: Enable PCI ACS for platform opt in hint
    67db9e032b6e selftests/net: report etf errors correctly
    34f45567462d RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
    d3edf648f398 s390/qeth: fix error handling for isolation mode cmds
    9e89c2d5da87 ASoC: rockchip: Fix a reference count leak.
    4aeb21584e55 RDMA/cma: Protect bind_list and listen_list while finding matching cm id
    f0078dc6750f RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
    66143ecb9e3c RDMA/rvt: Fix potential memory leak caused by rvt_alloc_rq
    d6fb7f457456 rxrpc: Fix handling of rwind from an ACK packet
    73cff44e66e3 ARM: dts: NSP: Correct FA2 mailbox node
    f1ee7d3a2c1a bpf: Don't return EINVAL from {get,set}sockopt when optlen > PAGE_SIZE
    0f3aa6c6d6ad devmap: Use bpf_map_area_alloc() for allocating hash buckets
    b93df0f6d7cd regmap: Fix memory leak from regmap_register_patch
    5f6b834e110b x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in rdt_cdp_peer_get()
    99ab61cc8b75 ARM: dts: Fix duovero smsc interrupt for suspend
    07f7c547698b ARM: dts: am335x-pocketbeagle: Fix mmc0 Write Protect
    d909f9db0caa bpf, xdp, samples: Fix null pointer dereference in *_user code
    0608288c6caa samples/bpf: xdp_redirect_cpu: Set MAX_CPUS according to NR_CPUS
    b59ed5668c4e ASoC: fsl_ssi: Fix bclk calculation for mono channel
    3947dd237ef5 RDMA/siw: Fix pointer-to-int-cast warning in siw_rx_pbl()
    34f105349369 regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
    1fa27418054f ASoC: qcom: common: set correct directions for dailinks
    47c7ae0ca9d7 ASoc: q6afe: add support to get port direction
    92444a57e365 efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
    8c236ac4376a efi/tpm: Verify event log header before parsing
    e50cf858d118 ASoC: q6asm: handle EOS correctly
    41b2debf35ef xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
    475a7b09b4bb ARM: OMAP2+: Fix legacy mode dss_reset
    527ddb339d6b bus: ti-sysc: Ignore clockactivity unless specified as a quirk
    1f5197a5ad97 bus: ti-sysc: Flush posted write on enable and disable
    21d511c6c9c2 IB/hfi1: Fix module use count flaw due to leftover module put calls
    2a4c0bf5c70e IB/mad: Fix use after free when destroying MAD agent
    588ad2b29ea3 loop: replace kill_bdev with invalidate_bdev
    d9a74e455070 cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
    d6522bc320d7 xhci: Return if xHCI doesn't support LPM
    14d46386226e xhci: Fix enumeration issue when setting max packet size for FS devices.
    c09be4f57956 xhci: Fix incorrect EP_STATE_MASK
    e615f58fa86c cifs/smb3: Fix data inconsistent when zero file range
    bd2f2ac0ab96 cifs/smb3: Fix data inconsistent when punch hole
    572a11131ad3 cifs: Fix cached_fid refcnt leak in open_shroot
    1f551a056b30 scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action
    d3a251b84797 scsi: qla2xxx: Keep initiator ports after RSCN
    be8df027079b usb: cdns3: ep0: add spinlock for cdns3_check_new_setup
    a0668653be26 usb: cdns3: ep0: fix the test mode set incorrectly
    79175ae5f996 usb: cdns3: trace: using correct dir value
    25e1bb1e6c36 ALSA: usb-audio: Fix OOB access of mixer element list
    1cc2d29710c2 ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
    0c4ff206043e ALSA: usb-audio: add quirk for Denon DCD-1500RE
    74a7ad9d975c ALSA: usb-audio: Add implicit feedback quirk for SSL2+.
    895ec8c86e13 usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
    fe2daefad98a usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
    c1e71a51c2f5 xhci: Poll for U0 after disabling USB2 LPM
    9d814bd14cff usb: host: xhci-mtk: avoid runtime suspend when removing hcd
    9200037a6ab6 USB: ehci: reopen solution for Synopsys HC bug
    ffeb58a0daf0 usb: add USB_QUIRK_DELAY_INIT for Logitech C922
    6b3eb8af48cb usb: dwc2: Postponed gadget registration to the udc class driver
    195c1d1dd8cf USB: ohci-sm501: Add missed iounmap() in remove
    2274a7421e73 binder: fix null deref of proc->context
    3621616af99b ALSA: usb-audio: Fix potential use-after-free of streams
    335add4ac891 fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"
    32e5a15f1084 net: sched: export __netdev_watchdog_up()
    9d3d40ec7dee btrfs: fix a block group ref counter leak after failure to remove block group
    8ae850cddf27 Revert "i2c: tegra: Fix suspending in active runtime PM state"
    052a7fdd86fb tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
    942315134313 sch_cake: fix a few style nits
    b1aa7e5fa163 sch_cake: don't call diffserv parsing code when it is not needed
    ea2628dd586d sch_cake: don't try to reallocate or unshare skb unconditionally
    3c6208267218 ip_tunnel: fix use-after-free in ip_tunnel_lookup()
    9baf076d797f net: phy: Check harder for errors in get_phy_id()
    568c5aaf6c2d ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
    35db638692db tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
    fe3a5d8fc372 tcp: grow window for OOO packets only for SACK flows
    cb22ce3346f2 tcp: don't ignore ECN CWR on pure ACK
    dc43f7e807a8 sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
    fea864489c90 rxrpc: Fix notification call on completion of discarded calls
    6956830cf981 rocker: fix incorrect error handling in dma_rings_init
    a908f986ddf7 openvswitch: take into account de-fragmentation/gso_size in execute_check_pkt_len
    27b70214fc69 net: usb: ax88179_178a: fix packet alignment padding
    67571b1ab296 net: increment xmit_recursion level in dev_direct_xmit()
    97a1d2aa6cdd net: Fix the arp error in some cases
    742f2358b324 net: fix memleak in register_netdevice()
    9e693934cd59 net: Do not clear the sock TX queue in sk_set_socket()
    9f217d6dd796 net: core: reduce recursion limit value
    f32325b100ea net: bridge: enfore alignment for ethernet address
    57a976e676e1 mvpp2: ethtool rxtx stats fix
    fa0d7e09da1d mld: fix memory leak in ipv6_mc_destroy_dev()
    009b3e294a90 ibmveth: Fix max MTU limit
    f060107ccc97 geneve: allow changing DF behavior after creation
    ce06fcb6a66d enetc: Fix tx rings bitmap iteration range, irq handling
    b90ca32531bf block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed

(From OE-Core rev: 07a662a1b75559550ad63b5a24e50cec54c88199)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0ed1c289ceebd66f2bbfd9dfc8deae0985fbf239)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Vacek, Patrick
2b4ced8b5b oeqa/core/loader: fix regex to include numbers
The previous version only included the numbers 1 and 2 in the allowed characters
for the module name. In the past, this was (\w+) so all numbers were allowed.
Now it explicitly includes all numbers again.

(From OE-Core rev: eab35415bb2cd68872707693afcf7705675fa87e)

Signed-off-by: Patrick Vacek <patrickvacek@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f241fa493536ac953c1dac303917c6e75b459e28)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Konrad Weihmann
0a431f61d8 systemd: remove kernel-install from base pkg
as this is already packaged in kernel-install package,
it shouldn't be part of the base package

(From OE-Core rev: e62371448a7d5604fa6029c7a8be278e83dad35c)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ed04241f30e12e7c0479026a9e354e49dfa4119c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Timon Ulrich
6dc71f2de7 kernel.bbclass: add lz4 dependency and fix the call to lz4
If the initramfs image is type lz4, then a native lz4 is needed.

Additionally an output filename needs to be specified when calling lz4,
otherwise STDOUT will be used implicitly.

(From OE-Core rev: 589b2d7e902125199377d5f1550597bcb38a1bf6)

Signed-off-by: Timon Ulrich <t.ulrich@anapur.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c83a7aec59defbbc049d44ba34a7a409ada4fa19)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Andrey Zhizhikin
e531b16b65 kernel/yocto: fix search for defconfig from src_uri
Fetcher provides full paths to defconfig and scc files, which awk
comparison operator does not catch during construction of
src_uri_defconfig and sccs_from_src_uri lists. This causes the
src_uri_defconfig variable to come out empty, and fails further
validation if defconfig is only supplied via SRC_URI.

Replace comparison operator with awk match function which searches for
sub-string during filtering, effectively placing defconfig from SRC_URI
into src_uri_defconfig and scc files in sccs_from_src_uri respectively.

Fixes: 23dcff0d39 (kernel/yocto: ensure that defconfigs are processed first)
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
(From OE-Core rev: 11089e06bfb3d0defb52825ffba978d085385569)

Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f52ce0fa98bf3bd72df7467031001f3128c145f2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Bruce Ashfield
5e83c131e5 kernel/yocto: ensure that defconfigs are processed first
It is uncommon that a BSP definition and a defconfig are used in
a single configuration. That being said, it is a valid way to
organize kernel configuration meta data.

When a defconfig is used, either on the src_uri or from in
the kernel tree, it is normally expected that it is the baseline,
with all options applied on top of it.

With this commit, we detect either type of defconfig and ensure
that it is used first, followed by the fragments in their
previous order. This allows existing configuration stacks to
remain the same, while ensuring that a defconfig combined stack
works as expected.

(From OE-Core rev: 7ecc81baeacaa1149a4947791200e8819c3df677)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e6845327b69396d843a2f3c4c3ac9400ae9caedf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Joshua Watt
2525b5f46e classes/archive: do_configure should not depend on do_ar_patched
The commit d4be264061 ("classes/archiver: run do_unpack_and_patch after
do_preconfigure") correctly moved do_unpack_and_patch to depend on
do_preconfigure, but left do_ar_patched as a dependency of do_configure
introduced from 8a7c779487 ("classes/archiver: Create patched archive
before configuring"). Having do_configure depend on do_ar_patched is
blatantly wrong. Firstly, doing so causes the taskhash of do_configure
to change which is undesirable. Secondly, the anon python that sets up
the tasks carefully skips GCC recipes that depend on gcc-source to
provide their source code since running do_unpack_and_patch in them
would delete the source code. Adding in the dependency effectively
bypasses this and makes these recipes delete the shared gcc-source

This fixes errors (for real this time) like:

 cat: .../gcc/defaults.h: No such file or directory

when making certain configuration changes.

For posterity, you could easily reproduce gcc-source being erased by
running the commands (replacing aarch64 with your correct target arch):

 bitbake -c cleanall gcc-source gcc-cross-aarch64
 bitbake -c do_deploy_archives gcc-source

 # The following would fail because
 # gcc-cross-aarch64:do_unpack_and_patch erases shared source, so
 # do_configure after that fails.
 bitbake gcc-cross-aarch64

(From OE-Core rev: 2399fdf98a6e6e4245c2e7ed1f72404ebece3eca)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f02c1904330da47a25cf85f0077712f584f4ee5b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Joshua Watt
854b876c25 classes/archiver: run do_unpack_and_patch after do_preconfigure
The commit 8a7c779487 ("classes/archiver: Create patched archive before
configuring") fixed a race condition when using the archiver, but
introduced a bug where the GCC source would occasionally be deleted due
to the archiving code running before do_preconfigure. Instead, make sure
the archiving code runs after do_preconfigure by making
do_unpack_and_patch depend on it. This makes more sense anyway since
do_preconfigure is effectively an extension of do_patch.

This fixes errors like:

 cat: .../gcc/defaults.h: No such file or directory

when making certain configuration changes

(From OE-Core rev: b6d4176f82b9728af91a4b982ca25fbbee5f9890)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d4be264061023ae0ea6e023d82a7b99605bfc22c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Alexander Kanavin
31a7824665 icu: make filtered data generation optional, serial and off by default
Backported from master with two differences:

1. Move exit in do_make_icudata_class-target after big endian patch
application (not required for master since new upstream icu includes
the patch)

2. In do_install_append_class-target test for existence of .dat input
file before calling icupkg

icu data generation was found to be racy, and causig AB failures;
making it serial and leaving it on is not an option as it regresses
to several minutes.

The specific bug is that rules.mk has:

LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH  ../bin/gencnval -s . -d ./out/build/icudt66l mappings/convrtrs.txt

which creates a file and numerous rules like

LD_LIBRARY_PATH=../lib:../stubdata:../tools/ctestfw:$LD_LIBRARY_PATH  ../bin/genrb -s ./misc -d ./out/build/icudt67l -i ./out/build/icudt67l -k -q numberingSystems.txt

which quietly read it. There is no prerequisite for the former to complete first.

The race is extra complicated to fix as rules.mk is itself
generated through a custom in-tree python tool.

(From OE-Core rev: df4bfb154e7fce9645f5738aa04b3eb3ef5093fe)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit df89e8d1136fd406ba35ae573e2cb0cfc88c6aad)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Alexander Kanavin
cee8ab3d17 gobject-introspection: add a patch to fix a build race
(From OE-Core rev: 80b61573fd1509cb46d263d6adb3621c3dee15d1)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1d6ffc795fc815509e193b28df3a33cc72bfb31b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-16 22:28:40 +01:00
Bruce Ashfield
968d0a264b yocto-bsps: bump reference boards to v5.4.49
(From meta-yocto rev: 133a8d72a237a76727d7005539ad88c216881268)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9f108add55395e82081907675f881052c336ae26)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-14 23:50:23 +01:00
Anuj Mittal
58cacf2249 linux-yocto: bump genericx86 kernel version to v5.4.40
(From meta-yocto rev: cfab89c1ff526f5276a5ff264ad1f99cf2b613f0)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bae0a97a39dad445c9655bc61ae3b7e6a667cbba)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-14 23:50:23 +01:00
Hongxu Jia
c253fd28ad iso-codes: switch upstream branch master -> main
(From OE-Core rev: cabaf5654db5db12b6576ef0ebae9bc7b422a8ca)

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: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Lee Chee Yang
17e594e8f9 python3: fix CVE-2020-14422
(From OE-Core rev: 0400d217d0891ee553926c10d7caaabc8bebc22e)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Lee Chee Yang
bf175f82ce qemu: fix CVE-2020-10702/10761/13362/13659/13800
fix these CVE:
CVE-2020-10702
CVE-2020-10761
CVE-2020-13362
CVE-2020-13659
CVE-2020-13800

(From OE-Core rev: 98c4642c526259fc664723145a1d6026b491032d)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Armin Kuster
2a6fa8877d sqlite3: Security fix for CVE-2020-15358
Source: sqlite.org
MR: 104526
Type: Security Fix
Disposition: Backport from https://www.sqlite.org/src/vinfo/10fa79d00f8091e5?diff=1
ChangeID: a1c012b8c8aecd4970f3ae16686bf25f2376f542
Description:

Affects sqlite < 3.32.3

Fixes CVE CVE-2020-15358

(From OE-Core rev: 8eb5fad746b716cba350c6cd6a30766534a90a28)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Richard Purdie
9bb6919310 rootfs-postcommands: Improve/fix rootfs_check_host_user_contaminated
Currently if the find command finds /home it stops checking the other
files. Tweak the find expression to fix this.

Also, from Alex Kiernan <alex.kiernan@gmail.com>, generate output for
each contaminated path so it's visible in the main log file.

When matches are found, dump the data from the group and passwd files
so useful debugging can be done based on the results.

(From OE-Core rev: 602162c0e33b429b8254de04af72a2aa5111867a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 504f1d158bf7c6ad08fbce755021db2b14565231)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Changqing Li
7643168778 logrotate.py: fix testimage occasionally failure
testcase test_systemd_failed occasionally failed with below error:
Failed to start Rotate log files.
logrotate.service: Failed with result 'exit-code'.
logrotate.service: Main process exited, code=exited, status=1/FAILURE
error: stat of /var/log/logrotate_test failed: No such file or directory
error: logrotate_test:1 lines must begin with a keyword or a filename (possibly in double quotes)

above failure caused since testcase test_logrotate_wtmp
add /etc/logrotate.d/logrotate_test, which need /var/log/logrotate_test,
but there is no such file. so when logrotate.service is triggerd
by logrotate.timer after testcase test_logrotate_wtmp is runned,
the testcase test_systemd_failed will fail.

these 3 lines are useless, so remove them to fix above problem.

(From OE-Core rev: 198fe0d64e4bdeda84c0f3e44afcc1d99ca9dbbe)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 22f5f7f86a4d47624c476be00e5121009c48cb7b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Richard Purdie
ffc6f4ce3a oeqa/targetcontrol: Attempt to fix log closure warning message
We continue to see the warning message:

WARNING: lib/bb/daemonize.py:76: ResourceWarning: unclosed file <_io.TextIOWrapper
name='build/tmp/work/qemux86_64-poky-linux/oe-selftest-image/1.0-r0/testimage/qemurunner_log.20200703011821'
mode='a' encoding='UTF-8'>

I've been unable to reprodue this but believe its caused by garbage
collection of the FileHandler used in QemuTarget being delayed until
after a new tinfoil instance is created by a subseqent test.

Force the log file to be closed when we stop using it to avoid this.

[YOCTO #13961]

(From OE-Core rev: fa2cca514f4b03aeeedb14dbffd26bc98ed74d29)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e15cc7801ec611f867f5b31028741722ac718c87)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Richard Purdie
587a5de397 oeqa/selftest: recipetool/devtool: Avoid load_plugin test race
This bug has plagued the autobuilder for a couple of years and we've
struggled to reproduce/debug it.

The problem is the "lib" directory in meta-poky used during the load_plugin
tests for recipetool and devtool can race and one can delete the files
from the other leading to test failures.

Deleting the lib directory only if empty will avoid this.

[YOCTO #13070]

(From OE-Core rev: a31c694be5267c004b691e6374cc800222f19940)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d603e2fd589e1edbc67c8c2fefb6337e728b9d01)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Lee Chee Yang
9d2c1eef7b oeqa/core/loader: refine regex to find module
test case in format <module name>.<class name>.<test case name>
this is clear when test cases is only 3 item deep.

but confused when it is 4 item deep, eg,
oelib.types.TestList.test_list_nosep

in this case, oelib and oelib.types can both be treated as module
since module name contains only lower cases and class name should
contain atleast one upper case.
so, always treat leading item without upper case as module also allow
module name to contain dot.

[YOCTO #13941]

(From OE-Core rev: 838646da741cda2059ee2bd64fd1e59980fbf945)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ad81ea90a815389e45ff302a85151724c71f71c3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Changqing Li
263d1ca7bc gtk-icon-cache.bbclass: add runtime dependency
fix error:
+ /usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders --update-cache
/var/tmp/rpm-tmp.mdYxY6: line 12: /usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders: No such file or directory
%post(adwaita-icon-theme-3.36.1-r0.0.noarch): waitpid(2961) rc 2961 status 7f00
warning: %post(adwaita-icon-theme-3.36.1-r0.0.noarch) scriptlet failed, exit status 127

when install adwaita-icon-theme on target, which inherit gtk-icon-cache
above error reported,  fix by add runtime dependency to pkgs

we don't use explicit RDEPENDS, so fix do_rootfs breaking by adding it into DEPENDS.
Error:
 Problem: conflicting requests
  - nothing provides gdk-pixbuf needed by adwaita-icon-theme-3.36.1-r0.noarch
  - nothing provides gtk+3 needed by adwaita-icon-theme-3.36.1-r0.noarch

(From OE-Core rev: e921edd27e71af00f07e3f1e973d2b0c6c777bf4)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 31e3d34c8a9c3e8481aa837aa0bf52adf095fe62)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Chen Qi
0809538dcf oescripts: ignore whitespaces when comparing lines
list-packageconfig-flags.py determines the whitespace numbers according
to the longest package name. This is reasonable for the tool as it's
trying to generate pretty output.

However, in this selftest case, the output is hardcoded. This results in
"pinentry                       gtk2 libcap ncurses qt secret" not recognized
as correct as the expected line is:
"pinentry                     gtk2 libcap ncurses qt secret".

The difference is only about whitespaces. So we should ignore the whitespaces
when comparing lines.

(From OE-Core rev: 80bdd59c8fa8b20a5a1fe7b5e3f1ddb95ad13af6)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 17c89ad1596dbc7cefdd2c01dcd95aa9e93c5dc6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Chen Qi
0919a3d337 oescripts.py: fix typo
(From OE-Core rev: 9793d9b885195a1a917b2209b2bc8070a3df733d)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 115d44958806a2c73d0bf140f45c11db462cc7db)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Mingli Yu
b0625ccc74 python3-libarchive-c: add the missing rdepends
Add the missing rdepends to fix below error:
 # python3
 [snip]
 >>> import libarchive
 [snip]
 ModuleNotFoundError: No module named 'ctypes'
 ModuleNotFoundError: No module named 'mmap'

(From OE-Core rev: 347e6fafea8bd9c715d87882159fc2d4bbde0cc7)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b3a2615878bc7515a7bdace525dc27be45f158e2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Ross Burton
66b0b54727 common-licenses: fix filename of BSD-2-Clause-Patent
(From OE-Core rev: d8606f5d38c26416f0240aaa0d721b075efe00be)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4a9c62d49940b154177d817a845188d827370607)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Changqing Li
6d2d6e6da5 initscripts: update postinst
in container image, it don't have init system,
install package initscripts will report error:
systemctl: command not found

fix by use same way as systemd.bbclass to decide if systemctl
mask will run

(From OE-Core rev: 6622515c1fa7025543aea37c4b37831577485811)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 790276bde066ecc9876120c3097dcd57a9936f00)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Changqing Li
1759605aed modutils-initscripts: update postinst
in container image, it don't have init system,
install package modutils-initscripts will report error:

+ systemctl mask modutils.service
/var/tmp/rpm-tmp.DYK3Pm: line 8: systemctl: command not found
%post(modutils-initscripts-1.0-r7.3.cortexa72): waitpid(823) rc 823 status 7f00
warning: %post(modutils-initscripts-1.0-r7.3.cortexa72) scriptlet failed, exit status 127

fix by use same way as systemd.bbclass to decide if systemctl mask will run

(From OE-Core rev: 922a668e769d3f51b0e8ec4949ae1936e9c59bc5)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eec648f23df0a4e05130f8ef5a04902296567e38)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Bruce Ashfield
66a74f4bf9 linux-yocto/5.4: update to v5.4.49 and -rt28
Updating to -rt28 which has the following commits:

    6b9d790392dc Linux 5.4.47-rt28
    1a22749d1a0c Linux 5.4.44-rt27
    7dd4c4c793df mm/zswap: Use local lock to protect per-CPU data
    80552b4a4cf3 printk: Force a line break on pr_cont(" ")
    446f5195e149 mm: Don't warn about atomic memory allocations during suspend
    ec1f996f6740 Revert "rt: Improve the serial console PASS_LIMIT"
    119ca1ac9160 fs/dcache: Include swait.h header
    4df88505f123 printk: console must not schedule for drivers
    b60c8a8279f5 Linux 5.4.44-rt26

Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    4e9688ad3d36 Linux 5.4.49
    99705220b22c net: core: device_rename: Use rwsem instead of a seqcount
    e33765201db7 sched/rt, net: Use CONFIG_PREEMPTION.patch
    a6030d71e62d pwm: jz4740: Enhance precision in calculation of duty cycle
    d0da4be60288 net: octeon: mgmt: Repair filling of RX ring
    96d98372b53a e1000e: Do not wake up the system via WOL if device wakeup is disabled
    3d390370d78c kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
    c19f0c3c9a8a kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
    f4748ee4fa15 tracing/probe: Fix memleak in fetch_op_data operations
    7bb62d0cd8ac crypto: algboss - don't wait during notifier callback
    993e0d12f226 crypto: algif_skcipher - Cap recv SG list at ctx->used
    972f961c5930 Revert "drm/amd/display: disable dcn20 abm feature for bring up"
    021935185e2a drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
    d814e4732cbe drm/amd/display: Use kvfree() to free coeff in build_regamma()
    50df31ea31cc drm/connector: notify userspace on hotplug after register complete
    35bd59b8b68c drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
    962d0e0c091c drm/i915/gem: Avoid iterating an empty list
    a09489576fe5 drm/msm: Check for powered down HW in the devfreq callbacks
    536ffde7df46 drm/i915: Fix AUX power domain toggling across TypeC mode resets
    190f6c2d6e38 s390: fix syscall_get_error for compat processes
    2173a7ed6358 f2fs: avoid utf8_strncasecmp() with unstable name
    de3feefa3bfd f2fs: split f2fs_d_compare() from f2fs_match_name()
    9fec865dde6e net/mlx5: DR, Fix freeing in dr_create_rc_qp()
    859a0a9afee3 block: nr_sects_write(): Disable preemption on seqcount write
    120307746990 x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
    bba1f4ac037c drm/amd/display: Use swap() where appropriate
    8f16bebbb171 drm/dp_mst: Increase ACT retry timeout to 3s
    ffa9206a62d3 ext4: avoid race conditions when remounting with options that change dax
    0804b23d2ff1 jbd2: clean __jbd2_journal_abort_hard() and __journal_abort_soft()
    ae3c09e346bd selinux: fix double free
    5471b5287cc7 drm/amdgpu: Replace invalid device ID with a valid device ID
    3031fb61096c drm/qxl: Use correct notify port address when creating cursor ring
    1f3f21d53fa8 drm/dp_mst: Reformat drm_dp_check_act_status() a bit
    8c315a220930 ext4: avoid utf8_strncasecmp() with unstable name
    779286d9babf ext4: fix partial cluster initialization when splitting extent
    bc615a290faf drm: encoder_slave: fix refcouting error for modules
    ef4f3b65d5a9 libata: Use per port sync for detach
    81344ae52c77 arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
    64183b459624 mvpp2: remove module bugfix
    b3dc33946a74 block: Fix use-after-free in blkdev_get()
    cb5fe511b11e scsi: ufs-bsg: Fix runtime PM imbalance on error
    7c7dd0507842 bnxt_en: Return from timer if interface is not in open state.
    13e6e75e68f3 afs: Fix the mapping of the UAEOVERFLOW abort code
    b7420726bc8a afs: Set error flag rather than return error from file status decode
    66f38da13198 afs: Always include dir in bulk status fetch from afs_do_lookup()
    4fd68a35f62d afs: Fix EOF corruption
    c8c19fcdabdb afs: afs_write_end() should change i_size under the right lock
    6a9fd8046fbd afs: Fix non-setting of mtime when writing into mmap
    7b307d292ab2 powerpc: Fix kernel crash in show_instructions() w/DEBUG_VIRTUAL
    f651e94899ed bcache: fix potential deadlock problem in btree_gc_coalesce
    889b69a9982b ext4: stop overwrite the errcode in ext4_setup_super
    aa7baef53057 perf stat: Fix NULL pointer dereference
    676634f1a831 perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events()
    335d720bb4bd usb/ehci-platform: Set PM runtime as active on resume
    21a45a1427dd usb: host: ehci-platform: add a quirk to avoid stuck
    57a1cd87efb9 usb/xhci-plat: Set PM runtime as active on resume
    33a76c15c7c2 bpf: Fix memlock accounting for sock_hash
    93b675736542 iavf: fix speed reporting over virtchnl
    e7847db7aa6d xdp: Fix xsk_generic_xmit errno
    57f71bb57f7c nfs: set invalid blocks after NFSv4 writes
    d3caf0e49492 nvme-pci: use simple suspend when a HMB is enabled
    9777d12a8b23 net/filter: Permit reading NET in load_bytes_relative when MAC not set
    0eb4e1573ffd x86/idt: Keep spurious entries unset in system_vectors
    04ce5f6f0d3c scsi: acornscsi: Fix an error handling path in acornscsi_probe()
    f3f9ee422842 libbpf: Handle GCC noreturn-turned-volatile quirk
    ab482b587207 drm/sun4i: hdmi ddc clk: Fix size of m divider
    c7c658ef5159 tracing/probe: Fix bpf_task_fd_query() for kprobes and uprobes
    5bed77b0a2a0 bpf, sockhash: Synchronize delete from bucket list on map free
    0f97842057c7 bpf/sockmap: Fix kernel panic at __tcp_bpf_recvmsg
    ea8837b9435e ASoC: rt5645: Add platform-data for Asus T101HA
    ebc448eb2de5 ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
    69367d9f1f0e ASoC: SOF: nocodec: conditionally set dpcm_capture/dpcm_playback flags
    7b31ec2a011f ASoC: core: only convert non DPCM link to DPCM link
    445a847a5507 afs: Fix memory leak in afs_put_sysnames()
    3b50b29a2056 f2fs: don't return vmalloc() memory from f2fs_kmalloc()
    37be9b71b748 selftests/net: in timestamping, strncpy needs to preserve null byte
    a98132826820 drivers/perf: hisi: Fix wrong value for all counters enable
    e1ee6238534e i2c: icy: Fix build with CONFIG_AMIGA_PCMCIA=n
    ad67536d48ba NTB: ntb_test: Fix bug when counting remote files
    abf918236a79 NTB: perf: Fix race condition when run with ntb_test
    50a79b96b951 NTB: perf: Fix support for hardware that doesn't have port numbers
    ec8490131670 NTB: perf: Don't require one more memory window than number of peers
    2b97e354e586 NTB: Revert the change to use the NTB device dev for DMA allocations
    e5cd9e1df0c9 NTB: ntb_tool: reading the link file should not end in a NULL byte
    25abac5c9ff7 ntb_tool: pass correct struct device to dma_alloc_coherent
    f167d8f7b341 ntb_perf: pass correct struct device to dma_alloc_coherent
    08cc0ec9ba86 net: marvell: Fix OF_MDIO config check
    fbaf0137df1e gfs2: fix use-after-free on transaction ail lists
    e782a45789f8 blktrace: fix endianness for blk_log_remap()
    545bafecc0f2 blktrace: fix endianness in get_pdu_int()
    d578f98fa7b3 blktrace: use errno instead of bi_status
    718d9a863eb3 selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
    7fd599522823 include/linux/bitops.h: avoid clang shift-count-overflow warnings
    b7ce2e4538f6 lib/zlib: remove outdated and incorrect pre-increment optimization
    62378b65237e geneve: change from tx_error to tx_dropped on missing metadata
    7791ab20b8eb crypto: omap-sham - add proper load balancing support for multicore
    b73df5915d13 drm/amd/display: Revalidate bandwidth before commiting DC updates
    ca0cac3373fa nfsd: safer handling of corrupted c_type
    e585a8b54046 pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
    d184d62ceb19 pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
    bd410e6600b4 scsi: ufs: Don't update urgent bkops level when toggling auto bkops
    88d678348430 scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
    08904df10d3a gfs2: Allow lock_nolock mount to specify jid=X
    9adcc852d552 nfsd4: make drc_slab global, not per-net
    807460787179 ceph: don't return -ESTALE if there's still an open file
    145565f722c9 drm/nouveau/disp/gm200-: fix NV_PDISP_SOR_HDMI2_CTRL(n) selection
    43ba1b177a49 openrisc: Fix issue with argument clobbering for clone/fork
    6de31dc168f0 rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
    2e48a738dc15 mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe()
    2d9c7e0ff9f4 rtc: rv3028: Add missed check for devm_regmap_init_i2c()
    f4fbb592d9d7 vfio/mdev: Fix reference count leak in add_mdev_supported_type
    1957ac8d1b4f ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
    c75f1641ef58 extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
    5ed5f8db9582 powerpc/4xx: Don't unmap NULL mbase
    838d3e75ba50 input: i8042 - Remove special PowerPC handling
    cde05d643e51 of: Fix a refcounting bug in __of_attach_node_sysfs()
    f9db526da547 NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
    5e85d78ed4ff net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
    ece3a3337c50 /dev/mem: Revoke mappings when a driver claims the region
    3302d17ef6ea misc: xilinx-sdfec: improve get_user_pages_fast() error handling
    24aa54a8b0ec clk: ast2600: Fix AHB clock divider for A1
    c66e72f1721a clk: sprd: return correct type of value for _sprd_pll_recalc_rate
    e5497842e253 KVM: PPC: Book3S: Fix some RCU-list locks
    fd1a1089aed8 KVM: PPC: Book3S HV: Ignore kmemleak false positives
    39983e188624 scsi: ufs-qcom: Fix scheduling while atomic issue
    4d33659ac379 clk: bcm2835: Fix return type of bcm2835_register_gate
    41324c48301d scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
    87b3dca712b4 ASoC: fix incomplete error-handling in img_i2s_in_probe.
    5578bf5ce0d8 powerpc/32s: Don't warn when mapping RO data ROX.
    9669bf039ff6 mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt
    d8d1b8b41783 mfd: stmfx: Fix stmfx_irq_init error path
    cf90dd9fb161 mfd: stmfx: Reset chip on resume as supply was disabled
    dc69fec9271a x86/apic: Make TSC deadline timer detection message visible
    af92e4a595e0 RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
    4c8a62c93984 scripts: headers_install: Exit with error on config leak
    c707e18796c6 usb: gadget: Fix issue with config_ep_by_speed function
    84e1326ffc61 usb: gadget: fix potential double-free in m66592_probe.
    51ad579d64dd usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
    4a8c5f25c6bc USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke
    0a560f102d80 usb: dwc2: gadget: move gadget resume after the core is in L0 state
    f1b9e29983ae watchdog: da9062: No need to ping manually before setting timeout
    4820050e8438 IB/cma: Fix ports memory leak in cma_configfs
    6e934217c943 PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link
    443ed62ef80d PCI: dwc: Fix inner MSI IRQ domain registration
    0bd8e62464e0 PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
    f04479f8d519 dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
    96cd8d249a37 powerpc/64s/pgtable: fix an undefined behaviour
    a7ba81f26d70 arm64: tegra: Fix flag for 64-bit resources in 'ranges' property
    17232b92cf79 arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
    d658c127fc41 fuse: copy_file_range should truncate cache
    c9ddb8dd12e1 fuse: fix copy_file_range cache issues
    ad7f78b7ce39 firmware: imx: scu: Fix possible memory leak in imx_scu_probe()
    95ea51b2690e scsi: target: tcmu: Userspace must not complete queued commands
    1503314a3354 RDMA/hns: Fix cmdq parameter of querying pf timer resource
    d09de58d2b65 RDMA/hns: Bugfix for querying qkey
    7d95cb8a4073 clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
    fddd06f7490f fpga: dfl: afu: Corrected error handling levels
    7454c171a88c tty: n_gsm: Fix bogus i++ in gsm_data_kick
    4f01308480c5 USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
    0e0332473790 ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
    f1069001bba7 drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
    fbf719e5da12 usb/ohci-platform: Fix a warning when hibernating
    8a67dae365e0 vfio-pci: Mask cap zero
    f5e28a0824ec powerpc/ps3: Fix kexec shutdown hang
    8f4372f4724d drivers: phy: sr-usb: do not use internal fsm for USB2 phy init
    1a588c7edcd0 powerpc/pseries/ras: Fix FWNMI_VALID off by one
    8240829fc38c powerpc/64s/exception: Fix machine check no-loss idle wakeup
    b1bc8753eefc ipmi: use vzalloc instead of kmalloc for user creation
    5c2207ba2394 habanalabs: increase timeout during reset
    828b192c57e8 PCI/PM: Assume ports without DLL Link Active train links in 100 ms
    c6737f3a1b01 HID: Add quirks for Trust Panora Graphic Tablet
    7961800651fa ALSA: usb-audio: Add duplex sound support for USB devices using implicit feedback
    860b8717f724 tty: n_gsm: Fix waking up upper tty layer when room available
    3a497f97a3b6 tty: n_gsm: Fix SOF skipping
    7fcc2ca6a3fb powerpc/64: Don't initialise init_task->thread.regs
    c7fab8a5c3ba PCI: Fix pci_register_host_bridge() device_register() error handling
    86e8dd9d249c clk: ti: composite: fix memory leak
    4536dbe64bd1 USB: ohci-sm501: fix error return code in ohci_hcd_sm501_drv_probe()
    c17e7243051a dlm: remove BUG() before panic()
    d40e6a98aa55 pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
    5248114b9bcf ASoC: ti: omap-mcbsp: Fix an error handling path in 'asoc_mcbsp_probe()'
    5acfef99644c ASoC: ux500: mop500: Fix some refcounted resources issues
    b0ccdd2fdd00 SoC: rsnd: add interrupt support for SSI BUSIF buffer
    f34a3697a8d4 scsi: mpt3sas: Fix double free warnings
    f20dfec03b82 scsi: target: loopback: Fix READ with data and sensebytes
    a798daf42a35 arm64: dts: msm8996: Fix CSI IRQ types
    6544b95bd789 ASoC: SOF: core: fix error return code in sof_probe_continue()
    79790202d4f3 power: supply: smb347-charger: IRQSTAT_D is volatile
    ad8b5b5faf9d power: supply: lp8788: Fix an error handling path in 'lp8788_charger_probe()'
    c1bcf01aea0e ALSA: firewire-lib: fix invalid assignment to union data for directional parameter
    3201bb03c8fd scsi: qla2xxx: Fix warning after FC target reset
    766c787e55ca PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
    742f8ac8edd4 PCI: rcar: Fix incorrect programming of OB windows
    efb5f7b106ea drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish
    33cf7944af54 serial: amba-pl011: Make sure we initialize the port.lock spinlock
    32a5bc992b6c i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
    9eb54d0e8962 PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
    4d30daf901aa staging: sm750fb: add missing case while setting FB_VISUAL
    2428682e3f6c staging: wilc1000: Increase the size of wid_list array
    b14b7359535d usb: dwc3: gadget: Properly handle failed kick_transfer
    1bfa09147282 usb: dwc3: gadget: Properly handle ClearFeature(halt)
    e320bb0e01db HID: intel-ish-hid: avoid bogus uninitialized-variable warning
    cbec16266a35 soundwire: slave: don't init debugfs on device registration error
    a45fc52449d7 ASoC: max98373: reorder max98373_reset() in resume
    7377ba16b542 clk: meson: meson8b: Don't rely on u-boot to init all GP_PLL registers
    ea78361174c4 thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
    3296e566b0d2 gpio: pca953x: fix handling of automatic address incrementing
    dd47c98992d6 clk: meson: meson8b: Fix the vclk_div{1, 2, 4, 6, 12}_en gate bits
    ecb9a8068ba5 clk: meson: meson8b: Fix the polarity of the RESET_N lines
    1fa1d1ceb02f clk: meson: meson8b: Fix the first parent of vid_pll_in_sel
    9a624802e628 slimbus: ngd: get drvdata from correct device
    793e15fb6681 tty: hvc: Fix data abort due to race in hvc_open
    eb3e85b3375d s390/qdio: put thinint indicator after early error
    d7852661f9fd ALSA: usb-audio: Fix racy list management in output queue
    aba41867dd66 ALSA: usb-audio: Improve frames size computation
    3468bca1ea44 staging: gasket: Fix mapping refcnt leak when register/store fails
    b3b4dcdc2bb4 staging: gasket: Fix mapping refcnt leak when put attribute fails
    0c884f3236f3 firmware: qcom_scm: fix bogous abuse of dma-direct internals
    0c48b6df64c0 arm64: dts: qcom: fix pm8150 gpio interrupts
    2b5e027657d4 virtiofs: schedule blocking async replies in separate worker
    ff86bd6cca2e pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
    cd3f4ed1c567 scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing
    a0a00156d50e gpio: dwapb: Append MODULE_ALIAS for platform driver
    02416142fdf4 RDMA/mlx5: Fix udata response upon SRQ creation
    7acbadd1aa29 ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
    ef0c0fbf1d4a arm64: dts: qcom: msm8916: remove unit name for thermal trip points
    f37623862ec5 scsi: qedi: Do not flush offload work if ARP not resolved
    0e5d7bff3b06 arm64: dts: mt8173: fix unit name warnings
    7bf3a213f79e staging: greybus: fix a missing-check bug in gb_lights_light_config()
    c970dcc085b8 x86/purgatory: Disable various profiling and sanitizing options
    a78c65cb4b67 apparmor: fix nnp subset test for unconfined
    af1f72ad18bb scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
    08d2ea2e236a scsi: sr: Fix sr_probe() missing deallocate of device minor
    8f73ac0b6434 bpf, sockhash: Fix memory leak when unlinking sockets in sock_hash_free
    efdb1bf81aab ASoC: meson: add missing free_irq() in error path
    390f1688fb46 f2fs: handle readonly filesystem in f2fs_ioc_shutdown()
    039a79ef0b1e apparmor: check/put label on apparmor_sk_clone_security()
    2a9b3e4667f5 net: dsa: lantiq_gswip: fix and improve the unsupported interface error
    88bc3e060390 apparmor: fix introspection of of task mode for unconfined tasks
    d782d6a142d5 mksysmap: Fix the mismatch of '.L' symbols in System.map
    d0af43b47418 NTB: Fix the default port and peer numbers for legacy drivers
    f0b8eead5b1c NTB: ntb_pingpong: Choose doorbells based on port number
    0ec407dfc1ec yam: fix possible memory leak in yam_init_driver
    a4d4b8437731 sparc32: mm: Don't try to free page-table pages if ctor() fails
    7f16ba366a66 pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
    9b163c91620c powerpc/crashkernel: Take "mem=" option into account
    211836827af3 ASoC: qcom: q6asm-dai: kCFI fix
    117929a41db1 cifs: set up next DFS target before generic_ip_connect()
    c0c8c8b10567 RDMA/core: Fix several reference count leaks.
    3851967ff567 PCI: vmd: Filter resource type bits from shadow register
    e8cac2e3067e nfsd: Fix svc_xprt refcnt leak when setup callback client failed
    db686568ae52 powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run
    ecb9c4d344c9 IB/mlx5: Fix DEVX support for MLX5_CMD_OP_INIT2INIT_QP command
    a2fe8d88aeff clk: clk-flexgen: fix clock-critical handling
    6a70c943a26f scsi: vhost: Notify TCM about the maximum sg entries supported per command
    296cec70500b scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
    82ac4863030c clk: zynqmp: fix memory leak in zynqmp_register_clocks
    bee9cc351308 scsi: cxgb3i: Fix some leaks in init_act_open()
    4deddbf7db45 mfd: wm8994: Fix driver operation if loaded as modules
    8e52a1eef19b powerpc/ptdump: Add _PAGE_COHERENT flag
    805bae7592fa usb: gadget: core: sync interrupt before unbind the udc
    2ec338547c67 gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration
    02bdd581404d m68k/PCI: Fix a memory leak in an error handling path
    ec475f960e92 PCI: pci-bridge-emul: Fix PCIe bit conflicts
    ba5192db9672 scsi: hisi_sas: Do not reset phy timer to wait for stray phy up
    2b670bbfd8c0 RDMA/mlx5: Add init2init as a modify command
    cbd55ce91abf coresight: tmc: Fix TMC mode read in tmc_read_prepare_etb()
    c74ead459747 vfio/pci: fix memory leaks in alloc_perm_bits()
    24911d387b84 arm64: dts: fvp/juno: Fix node address fields
    6d79ba8094fa ps3disk: use the default segment boundary
    bc881cd5334c PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only register
    492c50fe65a9 arm64: dts: fvp: Fix GIC child nodes
    376ef9d7ee4c ASoC: SOF: Do nothing when DSP PM callbacks are not set
    1cdae7bb4221 clk: renesas: cpg-mssr: Fix STBCR suspend/resume handling
    14c5e25d3b00 pinctrl: ocelot: Fix GPIO interrupt decoding on Jaguar2
    4e55b843fa61 arm64: dts: juno: Fix GIC child nodes
    7df82e1754df arm64: dts: armada-3720-turris-mox: fix SFP binding
    4ca96a5de812 arm64: dts: armada-3720-turris-mox: forbid SDR104 on SDIO for FCC purposes
    a86306dbefc3 dm mpath: switch paths in dm_blk_ioctl() code path
    08f396eb02c8 misc: fastrpc: fix potential fastrpc_invoke_ctx leak
    8d8991bb2bf0 misc: fastrpc: Fix an incomplete memory release in fastrpc_rpmsg_probe()
    c2ff1fcc2530 serial: 8250: Fix max baud limit in generic 8250 port
    9e6a9201b78b usblp: poison URBs upon disconnect
    cc9024f69ba7 clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
    2b5e61da68e8 remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use
    8a44731af689 i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
    ceb63ec0ef6e f2fs: report delalloc reserve as non-free in statfs for project quota
    ca90f67ece5c iio: bmp280: fix compensation of humidity
    30bd1f36b6eb rtc: mc13xxx: fix a double-unlock issue
    91fce7922a75 powerpc/kasan: Fix stack overflow by increasing THREAD_SHIFT
    a6a0317bf9c2 Input: edt-ft5x06 - fix get_default register write access
    70a2296d4bab scsi: qla2xxx: Fix issue with adapter's stopping state
    5800b7f7d231 PCI: Allow pci_resize_resource() for devices on root bus
    956a2e737a2c ALSA: isa/wavefront: prevent out of bounds write in ioctl
    23337efa940c ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
    66a177ae4ed0 arm64: dts: meson: fixup SCP sram nodes
    7631dc491a3f scsi: qedi: Check for buffer overflow in qedi_set_path()
    545b86efa0d0 scsi: core: free sgtables in case command setup fails
    bde2d5d443c4 ARM: dts: stm32: Add missing ethernet PHY reset on AV96
    38ede4d7736e ARM: integrator: Add some Kconfig selections
    a1359b9fdd8d ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
    8908c555e06e ARM: dts: renesas: Fix IOMMU device node names
    2c40fc80331b backlight: lp855x: Ensure regulators are disabled on probe failure
    53057bd4ac84 ASoC: fsl_esai: Disable exception interrupt before scheduling tasklet
    b543c3595188 clk: qcom: msm8916: Fix the address location of pll->config_reg
    7906a075c900 remoteproc: Fix IDR initialisation in rproc_alloc()
    8bd207bb1a25 iio: pressure: bmp280: Tolerate IRQ before registering
    2e714a547ef8 ASoC: SOF: imx8: Fix randbuild error
    dc570a1fb48c i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
    30e82a3edd94 ASoC: tegra: tegra_wm8903: Support nvidia, headset property
    7b139b714a5d clk: sunxi: Fix incorrect usage of round_down()
    8aa822a1305c power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
    67cb016870e2 Linux 5.4.48
    8e38ea68da06 perf symbols: Fix kernel maps for kcore and eBPF
    807cc607f129 perf symbols: Fix debuginfo search for Ubuntu
    842645de05d5 perf probe: Check address correctness by map instead of _etext
    be781abe3ae8 perf probe: Fix to check blacklist address correctly
    a2e097910334 perf probe: Do not show the skipped events
    9660edf6729d f2fs: fix checkpoint=disable:%u%%
    1866b1493e2e w1: omap-hdq: cleanup to add missing newline for some dev_dbg
    2140d7d5d878 mtd: rawnand: tmio: Fix the probe error path
    ec851b26a3e5 mtd: rawnand: mtk: Fix the probe error path
    b5404756b54f mtd: rawnand: pasemi: Fix the probe error path
    44a9bf52ef80 mtd: rawnand: plat_nand: Fix the probe error path
    ab702f81e978 mtd: rawnand: sunxi: Fix the probe error path
    2d77d5575e09 mtd: rawnand: oxnas: Fix the probe error path
    2d6b0901b834 mtd: rawnand: socrates: Fix the probe error path
    3a54e242870b mtd: rawnand: orion: Fix the probe error path
    0b19623af5a6 mtd: rawnand: xway: Fix the probe error path
    ae7cf595e15b mtd: rawnand: ingenic: Fix the probe error path
    38abdd9bf77c mtd: rawnand: sharpsl: Fix the probe error path
    8d695fbaa5cb mtd: rawnand: diskonchip: Fix the probe error path
    1260c45ac55b mtd: rawnand: brcmnand: fix hamming oob layout
    ba4ffbb5592d mtd: rawnand: onfi: Fix redundancy detection check
    869a782420da mtd: rawnand: Fix nand_gpio_waitrdy()
    e5084eadf193 sunrpc: clean up properly in gss_mech_unregister()
    4a68a2e25e20 sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations.
    e4f7a7260737 kbuild: force to build vmlinux if CONFIG_MODVERSION=y
    1b0d830e0ce0 powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
    b3b357d83079 powerpc/64s: Don't let DT CPU features set FSCR_DSCR
    1d9a4422c9ac powerpc/32: Disable KASAN with pages bigger than 16k
    4719cb8a16af powerpc/kasan: Fix shadow pages allocation failure
    002d22c4945a powerpc/kasan: Fix issues by lowering KASAN_SHADOW_END
    23e07a77aa7c powerpc/32s: Fix another build failure with CONFIG_PPC_KUAP_DEBUG
    c6077abc067f drivers/macintosh: Fix memleak in windfarm_pm112 driver
    1d5144d7dc5d ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
    727111d44a59 ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
    1bfcafbb4d1e ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
    8c7ca9ab5abc soc/tegra: pmc: Select GENERIC_PINCONF
    be20b99a86b3 ARM: tegra: Correct PL310 Auxiliary Control Register initialization
    b5d2f71b98b7 kernel/cpu_pm: Fix uninitted local in cpu_pm
    6d9cc26aa164 powerpc/fadump: Account for memory_limit while reserving memory
    6fd930da24e1 powerpc/fadump: consider reserved ranges while reserving memory
    3e9211d98803 powerpc/fadump: use static allocation for reserved memory ranges
    c81e34c4346f alpha: fix memory barriers so that they conform to the specification
    5018a0bd0964 dm crypt: avoid truncating the logical block size
    ee6fa4903f84 sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
    0dcbc7d6cd2d sparc32: fix register window handling in genregs32_[gs]et()
    f2f18147c7db gnss: sirf: fix error return code in sirf_probe()
    e75e551606f4 pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
    407933bbb385 pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
    8b28e5c35d32 power: supply: core: fix memory leak in HWMON error path
    6050811edffb power: supply: core: fix HWMON temperature labels
    0fd525d817ea power: vexpress: add suppress_bind_attrs to true
    7c71b9aa18a0 EDAC/amd64: Add AMD family 17h model 60h PCI IDs
    67712fa4a662 hwmon: (k10temp) Add AMD family 17h model 60h PCI match
    3046b09d45ec igb: Report speed and duplex as unknown when device is runtime suspended
    e6f91166fc37 clk: mediatek: assign the initial value to clk_init_data of mtk_mux
    adecd49745f8 media: ov5640: fix use of destroyed mutex
    3ef00d99199d b43_legacy: Fix connection problem with WPA3
    b74d369d2962 b43: Fix connection problem with WPA3
    5c039a9921b3 b43legacy: Fix case where channel status is corrupted
    eeb0cf8bb68e Bluetooth: hci_bcm: fix freeing not-requested IRQ
    4c79dd14c15d serial: 8250: Avoid error message on reprobe
    80462f7c296d media: cedrus: Program output format during each run
    6e688a315acf media: go7007: fix a miss of snd_card_free
    bda6ebf290fa carl9170: remove P2P_GO support
    cedbd8709cc1 e1000e: Relax condition to trigger reset for ME workaround
    0fedb80811f4 e1000e: Disable TSO for buffer overrun workaround
    f4cc36066a31 PCI: Program MPS for RCiEP devices
    e131e70e2144 ima: Set again build_ima_appraise variable
    2600136eaee9 ima: Remove redundant policy rule set in add_rules()
    70ce85319d45 x86/amd_nb: Add AMD family 17h model 60h PCI IDs
    44eec92cc4bf serial: 8250_pci: Move Pericom IDs to pci_ids.h
    3c8938fb19ed PCI: Add Loongson vendor ID
    9cfece5c0e2b x86/amd_nb: Add Family 19h PCI IDs
    b35415c0949a PCI: vmd: Add device id for VMD device 8086:9A0B
    3179b408c401 PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
    0e4528cdbaf0 PCI: Avoid FLR for AMD Starship USB 3.0
    cb5ac1a32552 PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
    c41d7ca0061e PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
    fd8abb78b129 ext4: fix race between ext4_sync_parent() and rename()
    c316ebcf9f4b ext4: fix error pointer dereference
    319b553695ec ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
    6de50456fe17 evm: Fix possible memory leak in evm_calc_hmac_or_hash()
    ce7f038f859d ima: Remove __init annotation from ima_pcrread()
    f387759c2d67 ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
    64712383a186 ima: Directly assign the ima_default_policy pointer to ima_rules
    4ce29d9b1941 ima: Evaluate error in init_ima()
    5f7272bd228c ima: Switch to ima_hash_algo for boot aggregate
    0698eacdfc4f ima: Fix ima digest hash table key calculation
    13ae9eaae0cc mm: call cond_resched() from deferred_init_memmap()
    5386d93bc5b6 mm/pagealloc.c: call touch_nmi_watchdog() on max order boundaries in deferred init
    c388f173ed8a mm: initialize deferred pages with interrupts enabled
    a88d8aaf9b8b mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
    e418045e25a9 powerpc/mm: Fix conditions to perform MMU specific management by blocks on PPC32.
    0ccfd7a531e8 btrfs: fix space_info bytes_may_use underflow during space cache writeout
    248cdf728895 btrfs: fix space_info bytes_may_use underflow after nocow buffered write
    8076bdd4fe00 btrfs: fix wrong file range cleanup after an error filling dealloc range
    c2c69ecb605f btrfs: fix error handling when submitting direct I/O bio
    05c5e98bf402 btrfs: force chunk allocation if our global rsv is larger than metadata
    f63545770fc4 btrfs: send: emit file capabilities after chown
    20f260ed536a btrfs: include non-missing as a qualifier for the latest_bdev
    fd9720b8e957 btrfs: free alien device after device add
    b008ae4cc74d string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
    d6c2b4d246c5 kasan: stop tests being eliminated as dead code with FORTIFY_SOURCE
    c48a842d8ce7 selftests/bpf, flow_dissector: Close TAP device FD after the test
    e7b1564a24e6 bpf: Fix running sk_skb program types with ktls
    d9cd7b83942f bpf: Refactor sockmap redirect code so its easy to reuse
    215a256bc8dd bpf: Fix map permissions check
    0d55b7032ad1 libbpf: Fix perf_buffer__free() API for sparse allocs
    98545815cfcf platform/x86: asus_wmi: Reserve more space for struct bias_args
    4383a5dfbdc5 platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type
    5f3cba4bc241 platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
    176396ad0594 platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
    b77412359c1e cpuidle: Fix three reference count leaks
    cf3359869819 spi: dw: Return any value retrieved from the dma_transfer callback
    2c95fc879a2f mmc: sdhci-esdhc-imx: fix the mask for tuning start point
    7fe3a1c29869 iwlwifi: mvm: fix aux station leak
    ffa118a164e6 ixgbe: fix signed-integer-overflow warning
    99ea968e3766 ice: fix potential double free in probe unrolling
    62b2fbb9c463 mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
    3d6143663f21 staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
    8a7c5b83f846 mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
    62e7e4f5976c bcache: fix refcount underflow in bcache_device_free()
    d55960f7f6b7 MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
    3f6482c0a486 PCI: Don't disable decoding when mmio_always_on is set
    fa99a4b3fb12 macvlan: Skip loopback packets in RX handler
    c6f1f12a8c3d btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new qgroup
    1e42a1857bcf btrfs: improve global reserve stealing logic
    590aad883521 m68k: mac: Don't call via_flush_cache() on Mac IIfx
    ce066ce05e1b MIPS: tools: Fix resource leak in elf-entry.c
    87ef5086a3c2 x86/mm: Stop printing BRK addresses
    41b44325c9eb selftests/bpf: CONFIG_IPV6_SEG6_BPF required for test_seg6_loop.o
    5b8d09eeb4a6 drm/amdgpu: Sync with VM root BO when switching VM to CPU update mode
    b06a7dc9e5f6 drm/amd/powerpay: Disable gfxoff when setting manual mode on picasso and raven
    188e3e6ed902 crypto: stm32/crc32 - fix multi-instance
    d879598b8dae crypto: stm32/crc32 - fix run-time self test issue.
    8fe61a2027db crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
    c79c643fca61 mips: Add udelay lpj numbers adjustment
    34a45e84edc5 mips: MAAR: Use more precise address mask
    9fa3b0bd9914 sched: Defend cfs and rt bandwidth quota against overflow
    fecf17b609a7 x86/boot: Correct relocation destination on old linkers
    7b3423eff20e kgdboc: Use a platform device to handle tty drivers showing up late
    39d7ce336ec5 mwifiex: Fix memory corruption in dump_station
    65f1c3e4e906 rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
    916f41e40643 net/mlx5e: IPoIB, Drop multicast packets that this interface sent
    fa408bbe1007 veth: Adjust hard_start offset on redirect XDP frames
    894d9cd52466 iocost: don't let vrate run wild while there's no saturation signal
    7f5d77570b0c raid5: remove gfp flags from scribble_alloc()
    cd4013947eae md: don't flush workqueue unconditionally in md_open
    5deaa24167a6 mt76: avoid rx reorder buffer overflow
    095e7a6a326c drm/mcde: dsi: Fix return value check in mcde_dsi_bind()
    727093f432d1 net: qed*: Reduce RX and TX default ring count when running inside kdump kernel
    5099a9c22dbf wcn36xx: Fix error handling path in 'wcn36xx_probe()'
    dbf2fab3f540 ath10k: Remove msdu from idr when management pkt send fails
    671d8b8726a1 nvme-tcp: use bh_lock in data_ready
    a09fc96a3d54 nvme-pci: align io queue count with allocted nvme_queue in nvme_probe
    be7f2672c341 nvme: refine the Qemu Identify CNS quirk
    66ea23154df0 iwlwifi: avoid debug max amsdu config overwriting itself
    287a0f7a3393 platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and "Portable" chassis-types
    708e0175edf5 platform/x86: intel-vbtn: Do not advertise switches to userspace if they are not there
    0ac5741007f1 platform/x86: intel-vbtn: Split keymap into buttons and switches parts
    4a091f1d273f platform/x86: intel-vbtn: Use acpi_evaluate_integer()
    b04c79255e8d xfs: fix duplicate verification from xfs_qm_dqflush()
    f69806af2a2f xfs: reset buffer write failure state on successful completion
    4f1a132115ef kgdb: Fix spurious true from in_dbg_master()
    fe99bb25c452 mips: cm: Fix an invalid error code of INTVN_*_ERR
    7bf491d01ea7 MIPS: Truncate link address into 32bit for 32bit kernel
    ec19b7a525aa Crypto/chcr: fix for ccm(aes) failed test
    984fc5f4e3b4 xfs: clean up the error handling in xfs_swap_extents
    0eeea4b8f0a9 libertas_tf: avoid a null dereference in pointer priv
    964de53149ab powerpc/spufs: fix copy_to_user while atomic
    dc091fc86216 net: allwinner: Fix use correct return type for ndo_start_xmit()
    8ca0e780b4e8 media: cec: silence shift wrapping warning in __cec_s_log_addrs()
    4f6762503fa2 drivers: net: davinci_mdio: fix potential NULL dereference in davinci_mdio_probe()
    b2083327ea3c selinux: fix error return code in policydb_read()
    86dced2417b7 net: lpc-enet: fix error return code in lpc_mii_init()
    7b88ccc137fb iocost_monitor: drop string wrap around numbers when outputting json
    5934e2270901 drivers/perf: hisi: Fix typo in events attribute array
    f7757368e0f0 sched/core: Fix illegal RCU from offline CPUs
    2e256dd5b055 exit: Move preemption fixup up, move blocking operations down
    338ff29604d9 lib/mpi: Fix 64-bit MIPS build with Clang
    4fbc334749e7 net: bcmgenet: Fix WoL with password after deep sleep
    d7b1ca9eebdf net: bcmgenet: set Rx mode before starting netif
    1dbb13ceedac selftests/bpf: Fix memory leak in extract_build_id()
    58ee4d253753 netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
    d1a00c9bb1c7 dpaa2-eth: fix return codes used in ndo_setup_tc
    04ab099d1eb0 Drivers: hv: vmbus: Always handle the VMBus messages on CPU0
    51d2957b21b5 audit: fix a net reference leak in audit_list_rules_send()
    5b737a0ae101 Bluetooth: btbcm: Add 2 missing models to subver tables
    c5edfe811b4a ath10k: add flush tx packets for SDIO chip
    cc66b6bb3241 MIPS: Make sparse_init() using top-down allocation
    c3bc42b70ed1 media: platform: fcp: Set appropriate DMA parameters
    79d622a81322 media: dvb: return -EREMOTEIO on i2c transfer failure.
    189ca174b87d audit: fix a net reference leak in audit_send_reply()
    6315839f14b9 drm/mediatek: set dpi pin mode to gpio low to avoid leakage current
    878ca9ebf1a0 dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
    4f8c52320202 e1000: Distribute switch variables for initialization
    0bf9805dfdae tools api fs: Make xxx__mountpoint() more scalable
    a17cc8a6abab regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l
    22a734616824 brcmfmac: fix wrong location to get firmware feature
    90e5154c737c spi: Respect DataBitLength field of SpiSerialBusV2() ACPI resource
    42c22e4834c2 media: staging/intel-ipu3: Implement lock for stream on/off operations
    bfc0ee2b31f8 ath10k: fix kernel null pointer dereference
    76ecfcfefe3b staging: android: ion: use vmap instead of vm_map_ram
    3ec7b42f1747 x86: fix vmap arguments in map_irq_stack
    ece6218eea3a net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss()
    af510d6fd690 x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
    bd18ecbbc7aa spi: dw: Fix Rx-only DMA transfers
    999b59be5d20 Bluetooth: btmtkuart: Improve exception handling in btmtuart_probe()
    2daf747c2831 mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
    804664580662 ice: Fix for memory leaks and modify ICE_FREE_CQ_BUFS
    f9b545956421 ice: Fix memory leak
    f503e7fe3099 batman-adv: Revert "disable ethtool link speed detection when auto negotiation off"
    8cf93ef213f9 ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
    2a005026102e btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
    3bb51c966b9f btrfs: account for trans_block_rsv in may_commit_transaction
    cb0ee3f03f0b media: dvbdev: Fix tuner->demod media controller link
    bffe2c8e2303 clocksource: dw_apb_timer_of: Fix missing clockevent timers
    7bd656984566 clocksource: dw_apb_timer: Make CPU-affiliation being optional
    e8ec0ae0f3cf spi: dw: Enable interrupts in accordance with DMA xfer mode
    a2683765887d mips: Fix cpu_has_mips64r1/2 activation for MIPS32 CPUs
    b1d2d3dd016f ACPI/IORT: Fix PMCG node single ID mapping handling
    c2ad0dc7b9e0 pmu/smmuv3: Clear IRQ affinity hint on device removal
    308c2095da30 kgdb: Prevent infinite recursive entries to the debugger
    1343e0a85941 kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
    5c79bf440d35 Bluetooth: Add SCO fallback for invalid LMP parameters error
    461b239e3a73 MIPS: Loongson: Build ATI Radeon GPU driver as module
    544a3a292d8e platform/x86: dell-laptop: don't register micmute LED if there is no token
    ece1e470af13 ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
    6eec65c9e283 lockdown: Allow unprivileged users to see lockdown status
    00f73938ef65 drm: rcar-du: Set primary plane zpos immutably at initializing
    e7aefaba39d2 block: reset mapping if failed to update hardware queue count
    b432540123f5 arm64: insn: Fix two bugs in encoding 32-bit logical immediates
    201219691a9a block: alloc map and request for new hardware queue
    fec6f8c0b221 ACPICA: Dispatcher: add status checks
    c916af516d82 spi: dw: Zero DMA Tx and Rx configurations on stack
    92fb6909b058 rtw88: fix an issue about leak system resources
    bd7662d6036e media: staging: ipu3: Fix stale list entries on parameter queue failure
    9a0c99419125 arm64: cacheflush: Fix KGDB trap detection
    12d4dac2be77 ath10k: remove the max_sched_scan_reqs value
    c573a13f72fb efi/libstub/x86: Work around LLVM ELF quirk build regression
    fa15b59b1ea2 net: ena: fix error returning in ena_com_get_hash_function()
    84c8498320d2 net: atlantic: make hw_get_regs optional
    9f664eda61a0 sched/fair: Refill bandwidth before scaling
    91517e951830 x86,smap: Fix smap_{save,restore}() alternatives
    6fc5d5834b37 spi: pxa2xx: Apply CS clk quirk to BXT
    269e7b43f2b4 libbpf: Fix memory leak and possible double-free in hashmap__clear
    072d23eef600 arm64/kernel: Fix range on invalidating dcache for boot page tables
    614722f1ffd2 drm/amdgpu: Init data to avoid oops while reading pp_num_states.
    d2a244e74808 spi: spi-mem: Fix Dual/Quad modes on Octal-capable devices
    07d45406db69 objtool: Ignore empty alternatives
    1121685ca1bd media: si2157: Better check for running tuner in init
    18b2a6f250cc media: vicodec: Fix error codes in probe function
    f9f8f0c24203 crypto: ccp -- don't "select" CONFIG_DMADEVICES
    68aeaeac683b media: imx: imx7-mipi-csis: Cleanup and fix subdev pad format handling
    ff41c7b3c7db media: staging: imgu: do not hold spinlock during freeing mmu page table
    22710f6c35a3 drm: bridge: adv7511: Extend list of audio sample rates
    30c5d951a557 ath10k: Fix the race condition in firmware dump work queue
    6fc5719b85ec drm/amdgpu: fix and cleanup amdgpu_gem_object_close v4
    f3ec5b536fc1 ACPI: GED: use correct trigger type field in _Exx / _Lxx handling

(From OE-Core rev: e032aed2f2f158273cb622023075c5b0ad5d3eaa)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0ebb9d1d1f02ec4c567d56c18103df388e75e3ba)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Bruce Ashfield
d2941b328c linux-yocto/5.4: update to v5.4.47
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    fd8cd8ac940c Linux 5.4.47
    d96ef8fa9534 KVM: arm64: Save the host's PtrAuth keys in non-preemptible context
    812857678847 KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception
    85831981aa0e xen/pvcalls-back: test for errors when calling backend_connect()
    29ed45653bec block/floppy: fix contended case in floppy_queue_rq()
    9ec34f441ed4 mmc: sdio: Fix several potential memory leaks in mmc_sdio_init_card()
    55d805ab3691 mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
    d3c4c5a4d3d8 ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
    5a05406e8c14 mmc: uniphier-sd: call devm_request_irq() after tmio_mmc_host_probe()
    1ccf2d6c5b8c mmc: tmio: Further fixup runtime PM management at remove
    e9614e0c525d mmc: mmci_sdmmc: fix DMA API warning overlapping mappings
    f5b13ef230dc mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
    bfc12ff9050b agp/intel: Reinforce the barrier after GTT updates
    e81b05e535e8 perf: Add cond_resched() to task_function_call()
    e0544273b70c fat: don't allow to mount if the FAT length == 0
    c49a17f1f1f7 mm/slub: fix a memory leak in sysfs_slab_add()
    b21602a88ef1 drm/vkms: Hold gem object while still in-use
    9c09a772acb4 Smack: slab-out-of-bounds in vsscanf
    b5c8896bc14f ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
    db899f242e1a ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
    3412e9437543 ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
    3eb802924486 ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
    7f336346d001 ath9k: Fix use-after-free Read in htc_connect_service
    fe0957254640 selftests/ftrace: Return unsupported if no error_log file
    221b26e01d9d scsi: lpfc: Fix negation of else clause in lpfc_prep_node_fc4type
    387d51f0c16f scsi: megaraid_sas: TM command refire leads to controller firmware crash
    205b4c441b0e KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
    f9551b73717a KVM: arm64: Stop writing aarch32's CSSELR into ACTLR
    8c8238343f0f KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
    94f4af1b73de KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
    c6d2eb8e57b3 KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
    021cd99a305a KVM: nSVM: leave ASID aside in copy_vmcb_control_area
    3c0bee0c0757 KVM: nSVM: fix condition for filtering async PF
    64b8f33b2e1e KVM: nVMX: Skip IBPB when switching between vmcs01 and vmcs02
    d181dc3667de video: fbdev: w100fb: Fix a potential double free.
    dc8897b8d3b4 video: vt8500lcdfb: fix fallthrough warning
    78e6964dce2a EDAC/skx: Use the mcmtr register to retrieve close_pg/bank_xor_enable
    cd266f8a5b1c cpufreq: Fix up cpufreq_boost_set_sw()
    943f3ae9b149 remoteproc: Fix and restore the parenting hierarchy for vdev
    81fb06cb6bd4 remoteproc: Fall back to using parent memory pool if no dedicated available
    12b24ba6ce56 proc: Use new_inode not new_inode_pseudo
    98a3dea7e276 ovl: initialize error in ovl_copy_xattr
    5650ce02d261 net/mlx5e: Fix repeated XSK usage on one channel
    b05f2b60213c net/mlx5: Fix fatal error handling during device load
    cd5d0278dcb1 net/mlx5: drain health workqueue in case of driver load error
    57bad9e291e3 selftests/net: in rxtimestamp getopt_long needs terminating null entry
    05e275d8742b dccp: Fix possible memleak in dccp_init and dccp_fini
    5ab6f11621a5 crypto: virtio: Fix dest length calculation in __virtio_crypto_skcipher_do_req()
    af03d5957152 crypto: virtio: Fix src/dst scatterlist calculation in __virtio_crypto_skcipher_do_req()
    2ef260d686b5 crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req()
    0070e73c9edc firmware: imx: scu: Fix corruption of header
    a1fd068c8922 firmware: imx-scu: Support one TX and one RX
    da24a76bdc81 firmware: imx: warn on unexpected RX
    9a20d6c32756 x86/{mce,mm}: Unmap the entire page if the whole page is affected and poisoned
    977b89e1aba0 crypto: drbg - fix error return code in drbg_alloc_state()
    6ebdf342d4c7 crypto: algapi - Avoid spurious modprobe on LOADED
    4a87772480aa crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when ndevlist is fully iterated
    1027dc04f557 gup: document and work around "COW can break either way" issue
    6ed11984edb1 PM: runtime: clk: Fix clk_pm_runtime_get() error path
    fc45cd292c5e spi: bcm-qspi: when tx/rx buffer is NULL set to 0
    0cd18337704f spi: bcm-qspi: Handle clock probe deferral
    3bb1e6eb7c5e spi: bcm2835aux: Fix controller unregister order
    496a5e5fd0e6 spi: bcm2835: Fix controller unregister order
    73d9bae0a584 spi: pxa2xx: Fix runtime PM ref imbalance on probe error
    1aec7b22a93f spi: pxa2xx: Fix controller unregister order
    824a4e3b9acf spi: Fix controller unregister order
    7753886c6dd7 spi: dw: Fix controller unregister order
    ffe5ebdf81a1 nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
    d4904b38ea45 lib/lzo: fix ambiguous encoding bug in lzo-rle
    07ffdf0d984b arm64: acpi: fix UBSAN warning
    286822392013 ACPI: PM: Avoid using power resources if there are none for D0
    75d6d0ad12f3 ACPI: GED: add support for _Exx / _Lxx handler methods
    040b4dcc1269 ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
    e4cc99efbeb9 ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
    10a8c04c0b51 ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt Dock
    969c9b50fdec ALSA: usb-audio: Fix inconsistent card PM state after resume
    1f5ab51e2e2f ALSA: pcm: fix snd_pcm_link() lockdep splat
    4f643b8c4773 ALSA: pcm: disallow linking stream to itself
    1900bf5e7fd7 ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
    13c18353c985 ALSA: fireface: fix configuration error for nominal sampling transfer frequency
    110d04acda5e ALSA: es1688: Add the missed snd_card_free()
    f7d57ba8d7b8 watchdog: imx_sc_wdt: Fix reboot on crash
    3003daa76bdf smb3: add indatalen that can be a non-zero value to calculation of credit charge in smb2 ioctl
    0470d6c3276d smb3: fix incorrect number of credits when ioctl MaxOutputResponse > 64K
    e1437d181d30 efi/efivars: Add missing kobject_put() in sysfs entry creation error path
    ab2df991e5e2 io_uring: use kvfree() in io_sqe_buffer_register()
    d4a13e671138 ASoC: max9867: fix volume controls
    ac0175f9dd4d powerpc/ptdump: Properly handle non standard page size
    cb810f75e98a KVM: x86: Fix APIC page invalidation race
    a2b0ce3c2206 KVM: x86: respect singlestep when emulating instruction
    af718119061f KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
    d872f174218d perf/x86/intel: Add more available bits for OFFCORE_RESPONSE of Intel Tremont
    57a537b3994e x86/reboot/quirks: Add MacBook6,1 reboot quirk
    e1545848ad55 x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
    6d60d5462a91 x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced IBRS.
    9d1dcba6dd48 x86/speculation: Prevent rogue cross-process SSBD shutdown
    41551b56af93 x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
    e8652fef5336 x86_64: Fix jiffies ODR violation
    7ae53601458f sctp: fix refcount bug in sctp_wfree
    067ef17a3f7d sctp: fix possibly using a bad saddr with a given dst
    f1bb90b885cf iwlwifi: mvm: fix NVM check for 3168 devices
    0315cfc6f816 ipv4: fix a RCU-list lock in fib_triestat_seq_show
    7328f9a4ad58 aio: fix async fsync creds
    f27ad513a474 fanotify: fix ignore mask logic for events on child and on dir
    515e02bf19b3 selftests: fix flower parent qdisc
    0b11ec4ae557 mm: add kvfree_sensitive() for freeing sensitive data objects
    7c41d8c1bc6f perf probe: Accept the instance number of kretprobe event
    a3e6ba31fc4d PCI/PM: Adjust pcie_wait_for_link_delay() for caller delay
    ba95f95c27e8 KVM: x86: only do L1TF workaround on affected processors
    79e378172ca3 x86/cpu/amd: Make erratum #1054 a legacy erratum
    86c7d245e38d s390/pci: Log new handle in clp_disable_fh()
    77db4e1d40aa padata: add separate cpuhp node for CPUHP_PADATA_DEAD
    f23be4d1555d RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
    3f14df580a3d smack: avoid unused 'sip' variable warning
    3242fa02daf0 ath9k_htc: Silence undersized packet warnings
    b06bbbc6afcd spi: dw: Fix native CS being unset
    eb6315063043 powerpc/xive: Clear the page tables for the ESB IO mapping
    282acc187c48 drivers/net/ibmvnic: Update VNIC protocol version reporting
    f8713c2cb06e gfs2: Even more gfs2_find_jhead fixes
    108681048cf7 csky: Fixup abiv2 syscall_trace break a4 & a5
    16d902821bb7 Input: synaptics - add a second working PNP_ID for Lenovo T470s
    53fed23f8c74 sched/fair: Don't NUMA balance for kthreads
    1a28b2050334 ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
    bafaf4708a62 Input: mms114 - fix handling of mms345l
    b4aa6da26135 elfnote: mark all .note sections SHF_ALLOC
    f04d1e880f17 bpf: Support llvm-objcopy for vmlinux BTF
    3a577e62208c vxlan: Avoid infinite loop when suppressing NS messages with invalid options
    de9d1010b97c bridge: Avoid infinite loop when suppressing NS messages with invalid options
    747d5bcb97eb tun: correct header offsets in napi frags mode
    c8e374ee6095 net_failover: fixed rollback in net_failover_open()
    5ab453bb7b29 mlxsw: core: Use different get_trend() callbacks for different thermal zones
    f560ea659b33 ipv6: fix IPV6_ADDRFORM operation logic

(From OE-Core rev: a44069efe2f755f7d58704dcc173e58ddbe4479a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ea6bc1389bae6e5c28d0ee49a41ad1e3ca632d3d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Bruce Ashfield
d3c86b9fb6 linux-yocto/5.4: update to v5.4.46
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    5e3c51153922 Linux 5.4.46
    9504466c9038 Revert "net/mlx5: Annotate mutex destroy for root ns"
    c06c03bba03f uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly aligned
    590459086bc9 x86/speculation: Add Ivy Bridge to affected list
    faf187abda94 x86/speculation: Add SRBDS vulnerability and mitigation documentation
    b0f61a0503ad x86/speculation: Add Special Register Buffer Data Sampling (SRBDS) mitigation
    dab0161b8a0b x86/cpu: Add 'table' argument to cpu_matches()
    749ec6b48a9a x86/cpu: Add a steppings field to struct x86_cpu_id
    e4e57f7bca44 x86/speculation/spectre_v2: Exclude Zhaoxin CPUs from SPECTRE_V2
    c2baba26ac5e nvmem: qfprom: remove incorrect write support
    b3e3f4cb8c6b CDC-ACM: heed quirk also in error handling
    4992c7618818 staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
    784ac0e82920 tty: hvc_console, fix crashes on parallel open/close
    9619c2f746f7 vt: keyboard: avoid signed integer overflow in k_ascii
    2d0c87d34dab usb: musb: Fix runtime PM imbalance on error
    e8f57f50e31b usb: musb: start session in resume for host port
    8d130bf2fcab iio: adc: stm32-adc: fix a wrong error message when probing interrupts
    e98b0548b2f8 iio:chemical:pms7003: Fix timestamp alignment and prevent data leak.
    9b0e734fde6d iio: vcnl4000: Fix i2c swapped word reading.
    940530f60c60 iio:chemical:sps30: Fix timestamp alignment
    0fac736dbac6 USB: serial: ch341: add basis for quirk detection
    9060d48b4206 USB: serial: option: add Telit LE910C1-EUX compositions
    5555c8f569fa USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
    f366d3a21f12 USB: serial: qcserial: add DW5816e QDL support
    b3ebd9830c60 net: be more gentle about silly gso requests coming from user
    a93417dfc1b0 net: check untrusted gso_size at kernel entry
    a02203349750 vsock: fix timeout in vsock_accept()
    646345a15350 nfp: flower: fix used time of merge flow statistics
    165508e456b1 NFC: st21nfca: add missed kfree_skb() in an error path
    87adb76710d0 net: usb: qmi_wwan: add Telit LE910C1-EUX composition
    de8f81077be2 net: stmmac: enable timestamp snapshot for required PTP packets in dwmac v5.10a
    fb915f061e9e net/mlx5: Fix crash upon suspend/resume
    5fc8f9a34800 l2tp: do not use inet_hash()/inet_unhash()
    1b7693c09252 l2tp: add sk_family checks to l2tp_validate_socket
    449c72324085 devinet: fix memleak in inetdev_init()

(From OE-Core rev: b1a4c36066797d0c9f0d06ace871aa3c72140583)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ff6b0ac5ee9fb8bb74aaeae3f5587252801113bd)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:10 +01:00
Bruce Ashfield
07dd0e5bb8 linux-yocto-rt/5.4: update to rt25
Integrating the following commit(s) to linux-yocto/5.4:

    46d685b7b963 Linux 5.4.43-rt25

(From OE-Core rev: 87db4b3f738e1c554745e70b82b539e11abb3725)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 361b11594b3e04e7b279a88d5d3358dd75bb2a2e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:09 +01:00
Bruce Ashfield
8ab69db0b3 linux-yocto/5.4: update to v5.4.45
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    3604bc07c035 Linux 5.4.45
    40caf1bfd32c net: smsc911x: Fix runtime PM imbalance on error
    252801505e04 selftests: mlxsw: qos_mc_aware: Specify arping timeout as an integer
    aea1423a6334 net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
    6992c8995c84 net/ethernet/freescale: rework quiesce/activate for ucc_geth
    6a904892d84f null_blk: return error for invalid zone size
    b5cb7fe92059 s390/mm: fix set_huge_pte_at() for empty ptes
    c0063f3919ae drm/edid: Add Oculus Rift S to non-desktop list
    c90e773c21fb net: bmac: Fix read of MAC address from ROM
    92c09e88c188 x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
    ba550153177a io_uring: initialize ctx->sqo_wait earlier
    f1c582154e43 i2c: altera: Fix race between xfer_msg and isr thread
    1857d7d77659 scsi: pm: Balance pm_only counter of request queue during system resume
    1610cd913f5a evm: Fix RCU list related warnings
    31ca6427f64d ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
    935ba01e80d4 ARC: Fix ICCM & DCCM runtime size checks
    8a69220b659c RDMA/qedr: Fix synchronization methods and memory leaks in qedr
    49e92679341d RDMA/qedr: Fix qpids xarray api used
    0377fda07b5e s390/ftrace: save traced function caller
    0734b58f84a9 ASoC: intel - fix the card names
    6106585fc4c4 spi: dw: use "smp_mb()" to avoid sending spi data error
    99c63ba21d2e powerpc/xmon: Restrict when kernel is locked down
    f2adfe126bdb powerpc/powernv: Avoid re-registration of imc debugfs directory
    a293045d38c1 scsi: hisi_sas: Check sas_port before using it
    cfd5ac76ba30 drm/i915: fix port checks for MST support on gen >= 11
    74028c9c22fd airo: Fix read overflows sending packets
    63ad3fb06834 net: dsa: mt7530: set CPU port to fallback mode
    d628f7a59e1c scsi: ufs: Release clock if DMA map fails
    95ffc2a5cea7 media: staging: ipu3-imgu: Move alignment attribute to field
    5b6e152341b0 media: Revert "staging: imgu: Address a compiler warning on alignment"
    a122eef40fd2 mmc: fix compilation of user API
    1c44e6e09dc8 kernel/relay.c: handle alloc_percpu returning NULL in relay_open
    91e863ab82c8 mt76: mt76x02u: Add support for newer versions of the XBox One wifi adapter
    8a6744ebdbb5 p54usb: add AirVasT USB stick device-id
    ac09eae4b734 HID: i2c-hid: add Schneider SCL142ALM to descriptor override
    3e8410cbef27 HID: multitouch: enable multi-input as a quirk for some devices
    aa0dd0e2252b HID: sony: Fix for broken buttons on DS3 USB dongles
    df4988aa1c96 mm: Fix mremap not considering huge pmd devmap
    3209e3e812dd Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race window"
    55852b3fd146 Linux 5.4.44
    f2a9b00a68c5 perf: Make perf able to build with latest libbfd
    3f57fa847e27 netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
    7a075390b732 netfilter: conntrack: Pass value of ctinfo to __nf_conntrack_update
    987de40bff33 netfilter: conntrack: comparison of unsigned in cthelper confirmation
    a4547f63e05f bonding: Fix reference count leak in bond_sysfs_slave_add.
    b668b392cc2c net: dsa: declare lockless TX feature for slave ports
    35c0a6e7ef55 ipv4: nexthop version of fib_info_nh_uses_dev
    568c159356d1 nexthop: Expand nexthop_is_multipath in a few places
    88e81db5509b nexthops: don't modify published nexthop groups
    8398275f7aed nexthops: Move code from remove_nexthop_from_groups to remove_nh_grp_entry
    2b043affcaea crypto: chelsio/chtls: properly set tp->lsndtime
    a369e8378b48 qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
    1c38cfc259a7 xsk: Add overflow check for u64 division, stored into u32
    73c05545fbb5 ieee80211: Fix incorrect mask for default PE duration
    2e91cd11bafc bnxt_en: Fix accumulation of bp->net_stats_prev.
    dda9d0eb7a96 esp6: get the right proto for transport mode in esp6_gso_encap
    9f57771d09f4 netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
    b16287f99d31 netfilter: nfnetlink_cthelper: unbreak userspace helper support
    7140b6280230 netfilter: conntrack: make conntrack userspace helpers work again
    17021d1b899d netfilter: ipset: Fix subcounter update skip
    25f629a70680 netfilter: nft_reject_bridge: enable reject with bridge vlan
    26e28c10e72c ip_vti: receive ipip packet by calling ip_tunnel_rcv
    0de9bed087a2 xfrm: fix error in comment
    f5dc87e0e389 xfrm: fix a NULL-ptr deref in xfrm_local_error
    25613580a5bc xfrm: fix a warning in xfrm_policy_insert_list
    d9710d69b89f xfrm interface: fix oops when deleting a x-netns interface
    de4a187389fa xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
    edd79cf0cfdf xfrm: remove the xfrm_state_put call becofe going to out_reset
    cd7031ef9683 xfrm: do pskb_pull properly in __xfrm_transport_prep
    14a1c1dc5695 xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
    47dc81ce7d84 copy_xstate_to_kernel(): don't leave parts of destination uninitialized
    94690ca1ae4c x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
    e980f9cb2f2d mac80211: mesh: fix discovery timer re-arming issue / crash
    2f0851690a0e x86/syscalls: Revert "x86/syscalls: Make __X32_SYSCALL_BIT be unsigned long"
    8c1bfa73353a cfg80211: fix debugfs rename crash
    f9cd0c831806 parisc: Fix kernel panic in mem_init()
    ca788fd797a7 iommu: Fix reference count leak in iommu_group_alloc.
    b298c314b9d9 gpio: fix locking open drain IRQ lines
    bba91cdba612 Revert "block: end bio with BLK_STS_AGAIN in case of non-mq devs and REQ_NOWAIT"
    31f0b78bb478 include/asm-generic/topology.h: guard cpumask_of_node() macro argument
    a02c130efbbc fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
    de482c445b0f mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
    a7ba9f24737b mm,thp: stop leaking unreleased file pages
    21358b3e77af IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
    5a1bd1704272 drm/amd/display: drop cursor position check in atomic test
    b5d326a77b73 RDMA/core: Fix double destruction of uobject
    6b292d7806a1 ceph: flush release queue when handling caps for unknown inode
    4d145e482374 libceph: ignore pool overlay and cache logic on redirects
    d162b9e1b1a9 ALSA: hda/realtek - Add new codec supported for ALC287
    c33bf209deae ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
    8fc8674092b2 clk: qcom: gcc: Fix parent for gpll0_out_even
    68fe063327af exec: Always set cap_ambient in cap_bprm_set_creds
    4adcf889e66b ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
    8c71b0bd64df ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
    84b0a4f42584 ALSA: hwdep: fix a left shifting 1 by 31 UB bug
    a003e1f653d6 RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
    b191e3ea6dfc gpio: bcm-kona: Fix return value of bcm_kona_gpio_probe()
    d6d07089dee3 gpio: pxa: Fix return value of pxa_gpio_probe()
    a971f71e91fb mmc: block: Fix use-after-free issue for rpmb
    2de6df8df9bd ARM: dts: bcm: HR2: Fix PPI interrupt types
    f8b161c3f3ac ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
    485bd944e0c6 ARM: dts/imx6q-bx50v3: Set display interface clock parents
    a38a75c22b9f IB/qib: Call kobject_put() when kobject_init_and_add() fails
    820be34d0137 gpu/drm: Ingenic: Fix opaque pointer casted to wrong type
    707f5075021f soc: mediatek: cmdq: return send msg error code
    56e7873ed267 arm64: dts: mt8173: fix vcodec-enc clock
    750f47a6586b gpio: exar: Fix bad handling for ida_simple_get error path
    5242e3850b1c ARM: uaccess: fix DACR mismatch with nested exceptions
    d9c318f0eda3 ARM: uaccess: integrate uaccess_save and uaccess_restore
    96e2df4c753b ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
    f175897a960e ARM: 8970/1: decompressor: increase tag size
    4aa75ce40b1d Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
    176dbb9eeba0 Input: synaptics-rmi4 - really fix attn_data use-after-free
    7016d241ca64 Input: i8042 - add ThinkPad S230u to i8042 reset list
    a63a679e1ec7 Input: dlink-dir685-touchkeys - fix a typo in driver name
    d9d50cbccc79 Input: xpad - add custom init packet for Xbox One S controllers
    9abf0403a709 Input: evdev - call input_flush_device() on release(), not flush()
    5a273fa56229 Input: usbtouchscreen - add support for BonXeon TP
    b66de2d961a6 drivers: net: hamradio: Fix suspicious RCU usage warning in bpqether.c
    dfe417b45634 samples: bpf: Fix build error
    70bf0fd60f2f csky: Fixup raw_copy_from_user()
    2fa8032fa78a cifs: Fix null pointer check in cifs_read
    ce1ef281e786 hwmon: (nct7904) Fix incorrect range of temperature limit registers
    68d72327999a csky: Fixup remove duplicate irq_disable
    99bd434f8893 csky: Fixup perf callchain unwind
    f3f23f4c6413 csky: Fixup msa highest 3 bits mask
    e104bd855454 clk: ti: am33xx: fix RTC clock parent
    6b8c281e9a48 riscv: stacktrace: Fix undefined reference to `walk_stackframe'
    b84952e88336 IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
    706fee65d95c net: freescale: select CONFIG_FIXED_PHY where needed
    74037ef26835 usb: gadget: legacy: fix redundant initialization warnings
    e8a03e73cd14 usb: phy: twl6030-usb: Fix a resource leak in an error handling path in 'twl6030_usb_probe()'
    e02fe520c11b usb: dwc3: pci: Enable extcon driver for Intel Merrifield
    e1dfa986fda6 cachefiles: Fix race between read_waiter and read_copier involving op->to_do
    336292c44f62 drm/amdgpu: Use GEM obj reference for KFD BOs
    2dd33d3175ef drm/amd/powerplay: perform PG ungate prior to CG ungate
    4552f27f9d64 drm/amdgpu: drop unnecessary cancel_delayed_work_sync on PG ungate
    49388448eda0 gfs2: Grab glock reference sooner in gfs2_add_revoke
    fd5516ea8239 gfs2: move privileged user check to gfs2_quota_lock_check
    02a76cd6bda6 net: microchip: encx24j600: add missed kthread_stop
    2578135aa8f0 ALSA: usb-audio: add mapping for ASRock TRX40 Creator
    3e4e413c93f0 gpio: tegra: mask GPIO IRQs during IRQ shutdown
    6ff411af068c ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
    881dc2e22fb9 ARM: dts: rockchip: swap clock-names of gpu nodes
    96e88e683165 arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
    9dc2e51ea7c1 arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
    dd35a809c158 ARM: dts: rockchip: fix phy nodename for rk3229-xms6
    203a45eb258c ARM: dts: rockchip: fix phy nodename for rk3228-evb
    c5b2233ad5f4 mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails
    9aeacb829cad net/mlx4_core: fix a memory leak bug.
    fcb4d5869e98 net: sun: fix missing release regions in cas_init_one().
    d12fc818b0d8 net/tls: free record only on encryption error
    cff9e73a34a2 net/tls: fix encryption error checking
    3f4f034a8676 net/mlx5: Annotate mutex destroy for root ns
    f493398fe0f7 net/mlx5: Fix error flow in case of function_setup failure
    9fe88c940828 net/mlx5e: Update netdev txq on completions during closure
    02c97e838597 net/mlx5: Fix memory leak in mlx5_events_init
    e23f88f7e730 net/mlx5e: Fix inner tirs handling
    f9e2700f34ec net/mlx5e: kTLS, Destroy key object after destroying the TIS
    8c9df6ced1f9 tipc: block BH before using dst_cache
    5398c7ff2347 sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed
    70989e501fbc sctp: Don't add the shutdown timer if its already been added
    34036769c84b r8152: support additional Microsoft Surface Ethernet Adapter variant
    983fa2e7740f nexthop: Fix attribute checking for groups
    cf4cc95a15f5 net/tls: fix race condition causing kernel panic
    587e13469cfd net sched: fix reporting the first-time use timestamp
    f12398120522 net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"
    83588bf1dd55 net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
    7e0e066df34a net: nlmsg_cancel() if put fails for nhmsg
    84e91312ad9a net: mvpp2: fix RX hashing for non-10G ports
    212bcf1039a9 net/mlx5: Add command entry handling completion
    a9595d1c60a7 net: ipip: fix wrong address family in init error path
    4d827edb8f4e net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
    b51eb49d9a5d __netif_receive_skb_core: pass skb by reference
    53cf25df80c7 net: ethernet: ti: cpsw: fix ASSERT_RTNL() warning during suspend
    557045f771e2 net: dsa: mt7530: fix roaming from DSA user ports
    b853a13bb224 net: don't return invalid table id error when we fall back to PF_UNSPEC
    40a904b1c2e5 dpaa_eth: fix usage as DSA master, try 3
    d9ce4b67dd9f ax25: fix setsockopt(SO_BINDTODEVICE)

(From OE-Core rev: 7f9f4484e75678ee4dee8458f3caadde639bd962)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 71ab00d335d1d7f5d0827651397b8109091108d0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:09 +01:00
Jens Rehsack
2d47263d75 u-boot: avoid blind merging all *.cfg
This fixes u-boot-qoriq breakage of:

    commit 4fde8c8f47
    Author: Ming Liu <ming.liu@toradex.com>
    Date:   Wed Jun 3 13:56:01 2020 +0200

	u-boot: support merging .cfg files for UBOOT_CONFIG

	U-boot recipe supports .cfg files in SRC_URI, but they would be merged
	to .config during do_configure only when UBOOT_MACHINE is set, we
	should also support merging .cfg files for UBOOT_CONFIG.

The intension of 4fde8c8 looks more than append delta-config snippets to
u-boot config and should probably be rewritten to express that much better
than implicitely assume all "*.cfg" are for merging into .config.

(From OE-Core rev: 8c2f4dc79f69df2174b8ab4f8b69a749aee16129)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b4644f231a1463123d4100fcaf1448b3d174ef1a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:09 +01:00
Ming Liu
29513a7d1c u-boot: support merging .cfg files for UBOOT_CONFIG
U-boot recipe supports .cfg files in SRC_URI, but they would be merged
to .config during do_configure only when UBOOT_MACHINE is set, we
should also support merging .cfg files for UBOOT_CONFIG.

(From OE-Core rev: cd7ca887f79f67f2cf0499481a4032825c3077f2)

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ce3de00d41791fa5e9557c5e93a99fbe368311f5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:09 +01:00
Wang Mingyu
009735549b libdrm: upgrade 2.4.100 -> 2.4.101
Version update to fix autobuilder oe_selftest failures on Ubuntu 18.04 and 20.04

2020-06-29 20:57:58,686 - oe-selftest - INFO - runtime_test.TestImage.test_testimage_virgl_gtk_sdl (subunit.RemotedTestCase)
2020-06-29 20:57:58,687 - oe-selftest - INFO -  ... FAIL

musl-ioctl.patch
removed since it is included in 2.4.101

(From OE-Core rev: 43b397c4a41ba17155fb1f57f3f0b015bb4c65b2)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 015e631cd18d982df03d4c829c0f8229a2face38)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-07 23:15:09 +01:00
Steve Sakoman
39d7cf1abb u-boot: move redundant-yyloc-global patch to u-boot-common.inc
gcc10 build issue occurs in both u-boot and u-boot-tools

(From OE-Core rev: 2e128a775a3d51dc1856a35e2f5135d3c156d10e)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Richard Purdie
9e434212f9 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: 1373006c28541e8fd6ceb6d5ed905ff1536ef3f7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit db07b09196022078346aadd565760240b7da6a71)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Richard Purdie
3d815d7227 oeqa/selftest: Clean up separate builddir in success case when non-threaded
If oe-selftest is run without -j, the separate build directory "build-st"
isn't cleaned up afterwards. Mirror the behaviour of the -j option to
handle this the same way, only preserve upon failure.

To do this, the remove function needs to be moved to the selftest
context module so that it can be accessed without requiring the
testtools and subunit modules the -j option requires.

A dummy wrapper class is used to wrap the tests and clean up afterwards.

[YOCTO #13953]

(From OE-Core rev: 20e7b1eeeb12f1cf4bd9934e0a5733c6bbe64372)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1b376ade430d40d3cfe9c18f200c764d622710e5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Nicolas Dechesne
a225c162e6 checklayer: parse LAYERDEPENDS with bb.utils.explode_dep_versions2()
LAYERDEPENDS is a string of this format:
"DEPEND1 (optional version) DEPEND2 (optional version) ..."

However when we parse LAYERDEPENDS in _get_layer_collections() we
parse it as a simple string, and if any optional versions are there the
'depends' field is wrong. For example, running yocto-check-layer
might result in such errors:

ERROR: Layer meta-python depends on (>= and isn't found.
ERROR: Layer meta-python depends on 12) and isn't found.

Let's use bb.utils.explode_dep_versions2() to parse LAYERDEPENDS, and
create a string that contains all dependencies, effectively
skipping/ignoring any optional versions.

[YOCTO #13957]

(From OE-Core rev: 819f41906197bb712af37349c0865002bfbd7c9b)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f81f07afc200fe06c5c06ea81a4f8a3a43436faf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Alexander Kanavin
36b750b1d8 linux-firmware: upgrade 20200519 -> 20200619
License-Update: new firmwares, all redistributable
(From OE-Core rev: 42d5386cf22716bbbc47f31979db78f4ad92bc93)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3ae9585efdf5bcef7224c8e752ea76064922ee99)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Lili Li
ff2243b6b5 kernel.bbclass: Fix Module.symvers support
Starting from v5.8-rc1 commit 269a535ca931 (modpost: generate
vmlinux.symvers and reuse it for the second modpost"), kernel will
generate new vmlinux.symvers instead of dumping all the vmlinux symbols
into Module.symvers in the first pass.

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

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

(From OE-Core rev: e96d99824f085644162fe0599988a3408eab90f8)

Signed-off-by: Lili Li <lili.li@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cd2d62a08a1dfcd890a03ee55132b6d6c65f5ab7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Armin Kuster
7985a21690 wpa-supplicant: Security fix CVE-2020-12695
Source: http://w1.fi/security/
Disposition: Backport from http://w1.fi/security/2020-1/

Affects <= 2.9 wpa-supplicant

(From OE-Core rev: 720d29cbfce34375402c6a4c17e440ffbb2659bf)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e9c696397ae1b4344b8329a13076f265980ee74d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Richard Purdie
c2b1198b79 scripts/install-buildtools: Handle new format checksum files
Autobuilder generated checksum files only have a single space between the sum and the
filename, tweak it to account for this.

(From OE-Core rev: 877a082b5f3f5ccf8191a2438e7707b419174ea9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d1e71bf5b399372166eb40bb0d99c8fb52231600)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Richard Purdie
bceae9e7de scripts/install-buildtools: Update to 3.2 M1 buildtools
This fixes issues with openssl certs not working properly which meant error
reporting to an error report server was failing.

Also, all our downloads are now standarised on "sha256sum" so adjust for that.

(From OE-Core rev: bef009c91e8acfc7c1ba3cfd3183f000a02e002b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bc8b44e19a05f499f5cef049eedbed1fede2e765)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:37 +01:00
Konrad Weihmann
21b666b47b testimage: enable ovmf support
Add support for running wic images with EFI as testimage.
Introduces a variable called QEMU_USE_OVMF for configuration.

(From OE-Core rev: 458a860b45c0fb5bb3162b5a112b518c3339c1dd)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3af8aaff68ed332d812ea7dc184d392700ad7882)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Konrad Weihmann
81c46e46a8 runqemu: add QB_ROOTFS_EXTRA_OPT parameter
Content of the optional parameter will be appended to the rootfs-device
in the qemu configuration, in case QB_ROOTFS_OPT is not specified.
By default this is empty.

Example use cases are:

Defining 'readonly' when using squashfs, so multiple instances of qemu
can share the same base image, something that cannot be done by just
specifying 'snapshot'.

Defining 'bootindex=0' which helps to get past the EFI shell in
ovmf-binary. This also enables the use case of running WIC images with
EFI bootloader through the testimage.bbclass.

(From OE-Core rev: 1a5cb1bd56be2b784208516a7c73c49906c7022f)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e9b8c194636cb5505774a2a71bf54450580dd5b8)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Andrej Valek
c330f61704 oeqa/runtime/cases/ptest: Make output content path absolute
The output content is created in current directory, because json content
has no defined absolute path to WORKDIR as in bitbake.

(From OE-Core rev: 394d90efdc8d06dc61114bf6279ba6d094667289)

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 14203b2cb9aa62f55cb12230ac8012b3cd995be7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Richard Purdie
4d1b2cecef oeqa/utils/command: Improve stdin handling in runCmd
Occasionally we've been seeing leftover threads from runCmd. The stdin test
assumes we clean up all threads but the code assumes that the daemonic thread
can be left behind.

The issue can be reproduced by adding a time.sleep(10) to the end of
writeThread() which will mean it stays resident past the end of the command.

We may as well add it to the threads list and clean it up properly,
hopefully removing the race in the tests from the autobuilder.

[YOCTO #13055]

(From OE-Core rev: 9034ac93518b74dae5e05776c0bce085171cdd1f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9b251dcaffe52d32c1faf41ab57ab414fbc29722)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Richard Purdie
7267bf59fc oeqa/selftest/runcmd: Add better debug for thread count mismatch failures
(From OE-Core rev: 773f97c6f56ed98a7b0821358d7435ed3ea7a3d6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d15d0177d328fa3a126b9942bda177f6fae68505)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Richard Purdie
c2adb60531 pseudo: Fix attr errors due to incorrect library resolution issues
On a tumbleweed system, "install X Y" was showing the error:

pseudo: ENOSYS for 'fsetxattr'.

which was being caused by dlsym() for that function returning NULL. This
appears to be due to it finding an unresolved symbol in libacl for this
symbol in libattr. It hasn't been resolved so its NULL. dlerror() returns
nothing since this is a valid symbol entry, its just not the one we want.

We can add the glibc version string for the symbol we actually want so we get
that version rather than the libattr/libacl one. The calls in libattr are just
wrappers around the libc version so our attaching to the libc versions should
intercept any accesses via these too.

[YOCTO #13952]

(From OE-Core rev: 60ae9e6d31dcfc06961fedf7622a204162d3f464)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 82655cb26ad01de9587ef41eaef155c61c361f67)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Changqing Li
c32e635b23 mime.bbclass: fix post install scriptlet error
fix error during post uninstall:
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): execv(/bin/sh) pid 78
+ '[' 0 = 0 ']'
+ set -e
+ '[' x '!=' x ']'
+ echo 'Updating MIME database... this may take a while.'
Updating MIME database... this may take a while.
+ update-mime-database /usr/share/mime
Directory '/usr/share/mime/packages' does not exist!
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): waitpid(78) rc 78 status 100
warning: %postun(shared-mime-info-data-2.0-r0.4.corei7_64) scriptlet failed, exit status 1

when run post uninstall scriptlet, /usr/share/mime/packages has been
removed during unintall, while update-mime-database will check xml under
/usr/share/mime/packages.

workaround by create this dir before update, then remove it

(From OE-Core rev: 24f4f4551d220030c0f847c648a49a15bf1fe6eb)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6f262a316d6c32ff9ce96ab4bd95726772b5f20f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Chen Qi
9b60a175fc systemd-serialgetty: do not use BindsTo
This unit was changed from 'BindsTo' in the following commit.
"""
commit f0f359ec9210759f6b4dbfb35d3fba8af208c43a
Author: Jason Wessel <jason.wessel@windriver.com>
Date:   Thu Aug 29 07:00:31 2019 -0700

    serial-getty@.service: Allow device to fast fail if it does not exist
"""

It was changed back to 'BindTo' in the following commit.
"""
commit 63bbff61b78c651339c4b18d8376187379ec3b3c
Author: Otavio Salvador <otavio.salvador@gmail.com>
Date:   Fri Jun 12 14:30:44 2020 -0300

    systemd: Sync systemd-serialgetty@.service with upstream
"""

This is now causing runtime problem for qemuarm64. The default.target
is not reached until a timeout. Output is like below.

"""
root@qemuarm64:~# systemd-analyze
Bootup is not yet finished (org.freedesktop.systemd1.Manager.FinishTimestampMonotonic=0).
Please try again later.
Hint: Use 'systemctl list-jobs' to see active jobs
root@qemuarm64:~# systemctl list-jobs
JOB UNIT TYPE STATE
102 getty.target start waiting
1 multi-user.target start waiting
95 systemd-update-utmp-runlevel.service start waiting
110 serial-getty@hvc0.service start waiting
111 dev-hvc0.device start running
"""

We can see that we are waiting for /dev/hvc0, while in fact there's no /dev/hvc0.
Jason's commit actually solves such problem.

So restore to use Jason's method. Do not use 'BindsTo'.

(From OE-Core rev: b1d0eacc431517695c348ad14f4452be607c0b62)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 43b989c1231d3d867303ccebceda72364a9519ee)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Pierre-Jean Texier
b2fc2c658c ell: upgrade 0.31 -> 0.32
This is a bugfix release:

ver 0.32:
	Fix issue with handling D-Bus watch removal.

(From OE-Core rev: cee916d41aa067fd6f994bf5331962b73f74343c)

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 98d97384167a8d297650e49f9cabf4fae823b4a0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Ming Liu
d7b8ae3faa u-boot: introduce UBOOT_INITIAL_ENV
It defaults to ${PN}-initial-env, no functional changes with current
implementation, but this allows it to be changed in individual u-boot
recipes.

If UBOOT_INITIAL_ENV is empty, then no initial env would be compiled/
installed/deployed, set ALLOW_EMPTY_${PN}-env = "1".

The major purpose for introducing this, is that the users might have
some scripts on targets like:
```
/sbin/fw_setenv -f /etc/u-boot-initial-env
```

and it should be able to run against a identical path generated by
different u-boot recipes.

(From OE-Core rev: e4d5c99abab58aa813fe2da7c576ae69b9413304)

Signed-off-by: Ming Liu <ming.liu@toradex.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fb7e8b6b88855f3f523b2176ea2c85a330bfe00b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Armin Kuster
abde5f4cab curl: Security fixes for CVE-2020-{8169/8177}
Source: https://curl.haxx.se/
MR: 104472, 104458
Type: Security Fix
Disposition: Backport from https://github.com/curl/curl/commit/{600a8cded447cd/8236aba58542c5f}
ChangeID: 1300924f7a64b22375b4326daeef0b686481e30c
Description:

- Affected versions: curl 7.20.0 to and including 7.70.0
- Not affected versions: curl < 7.20.0 and curl >= 7.71.0

Fixes both CVE-2020-8169 and CVE-2020-8177

(From OE-Core rev: f42702baee57ab3d1b7ab7833e72c7d56ad4ee94)

Signed-off-by: Armin Kuster <akuster@mvista.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Lee Chee Yang
57b40bdd54 perl: fix CVE-2020-10543 & CVE-2020-10878
(From OE-Core rev: d9c5d9c52eb1f03ff9c907a76dda31042fb26edb)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Lee Chee Yang
4ff6430793 dbus: fix CVE-2020-12049
(From OE-Core rev: 3f69946c6159fa359bc5800ee72ef6151d9ecd36)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:12:36 +01:00
Richard Purdie
c587a49adc bitbake: msg: Avoid issues where paths have relative components
The autobuilder can end up using build/../ syntax which is an issue
if the build directory is cleaned. Avoid this by using normpath()
on the file path passed in.

(Bitbake rev: 1d3892d93ee9688d69f5bb5ea6aef8b1152bd1e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 41988fec47eb196ab7195a75330a6d98de19101b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:11:40 +01:00
Richard Purdie
b020384e85 bitbake: runqueue: Avoid unpickle errors in rare cases
In rare cases the pickled data from a task contains "</event>" which
causes backtrace. This can be reproduced with something like:

do_unpack_prepend () {
    bb.warn("</event>")
}

There are several solutions but the easiest is to catch this exception
and look for the next marker instead as this should be the only way such
an unpickle error could occur.

This fixes rare exceptions seen on the autobuilder.

Also add in other potential exceptions listed in the pickle manual
page so that better debug is obtained should there be an error in
this code path in future. exitcode doesn't need the same handling
since we control what is in that data field and it could never contain
</exitcode>

(Bitbake rev: 6d780fe3a111adbf3f3d2dda22d5a0787b195b62)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5ada512d6f9cbbdf1172ff7818117c38b12225ca)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:11:40 +01:00
Joshua Watt
cbe8754af2 bitbake: siggen: Fix error when hash equivalence has an exception
The code that handled exceptions from the hash equivalence client was
raising an exception itself because hashserv.client wasn't imported

(Bitbake rev: a7fc2ae3fd40b7de36f7f9b3da64a610a698b4ed)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a76290dfc6f34ff9f6efdb13a6db74b6b4759daf)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:11:40 +01:00
Joshua Watt
6ebf01bfd4 bitbake: hashserv: Chunkify large messages
The hash equivalence client and server can occasionally send messages
that are too large for the server to fit in the receive buffer (64 KB).
To prevent this, support is added to the protocol to "chunkify" the
stream and break it up into manageable pieces that the server can each
side can back together.

Ideally, this would be negotiated by the client and server, but it's
currently hard coded to 32 KB to prevent the round-trip delay.

(Bitbake rev: 1a7bddb5471a02a744e7a441a3b4a6da693348b0)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e27a28c1e40e886ee68ba4b99b537ffc9c3577d4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:11:40 +01:00
akuster
b6e0f5889e bitbake: test/fetch: change to better svn source
fixes:
svn: warning: W175002: Unexpected HTTP status 504 'Gateway Timeout' on '/openembedded/bitbake/!svn/vcc/default'
svn: E205011: Failure occurred processing one or more externals definitions

picked pcre2

[Yocto #13948]

(Bitbake rev: 767aa9316603a1c92c9c433a0c11ae98089bbc3a)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1483d17108da02f5d615e83403d5fd6288ca957c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-07-02 16:11:40 +01:00
Ross Burton
93ef473691 gstreamer1.0-plugins-bad: add support for vdpau
libvdpau support was added to meta-oe by commit bf1de4db2 ("libvdpau:
Add recipe") in 2016. Therefore add a packageconfig for the
corresponding gstreamer plugin.

Based on a patch by Richard Leitner <richard.leitner@skidata.com>

(From OE-Core rev: 1a98936830ba468d63e2e49d766add9e9cb75998)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 878a8561e10017bb91ea42bbbe6d4acfc0985482)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Andreas M?ller
6a994a1930 meson.bbclass: avoid unexpected operating-system names
For example 'linux-gnueabi' is not what meson consumers expect: See canonical
table of OS names for Meson (thanks Ross). Surprisingly this did not pop up
earlier but wrong system-name can break building as described in [1]

[1] https://lists.openembedded.org/g/openembedded-core/topic/meson_host_machine_system/73023862

(From OE-Core rev: e48425a7e80283cde95886e26f17cd687bb98468)

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 010202076760329829fbde8dab4f535d6f755873)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Tuomas Salokanto
ea688fb506 recipetool: create: fix SRCBRANCH not being passed to params
When explicitly passing a branch using --srcbranch in 'devtool add' or
'recipetool create', the branch name is not included in the params of
bb.fetch2.encodeurl and default 'master' branch is used instead.

(From OE-Core rev: 50789b582908f78d9bb2b5a05418433ad8074825)

Signed-off-by: Tuomas Salokanto <tuomas.salokanto@gmail.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0424df825f1e509faf6cd44403c0736bb91b57c3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Alexander Kanavin
480b1ae6be apr-util: make gdbm optional
This helps with gpl3-free builds.

(From OE-Core rev: 9142c12c0f45effdcebf8c8061f8b0a6b1517cf3)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3260ad9e8ff185b4799269bbcdd9f638e976c4b4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Yongxin Liu
161e96c3fc linux-firmware: add ice for Intel E800 series driver
(From OE-Core rev: 07740704829870d4ea3aced254feca9f502ec5c9)

Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit cdc65ddba0258be0c82deb4c174cd26005e7c32a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Otavio Salvador
a1616faeb5 go.bbclass: Add -trimpath to default build flags
The `-trimpath` option is important for reproducible builds so full
build paths and module paths are not embedded.

(From OE-Core rev: 03799cf6141abf75e7cfad5ec9822eb303b68e2f)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e3df027b3697b6a92b417bba8d442a5bd15525fd)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Otavio Salvador
ce277ec45f go-dep: Avoid use of 'go mod' support
dep utility must not use 'go mod' support, so we explicitly disable it.

(From OE-Core rev: e953be6c159bfed4ac69f30fa2562d217d25c254)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b34000ae3dd6e0a1d7fc332efb35c5da84cf2275)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Otavio Salvador
6cc590d2b6 glide: Avoid use of 'go mod' support
Glide utility must not use 'go mod' support, so we explicitly disable
it.

(From OE-Core rev: 229ee71cbc9db1dd24f14dabea7d9236b3819421)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b5a4369ba606677285b0a89a78c040b38f57767f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Otavio Salvador
7892a056f7 go-mod.bbclass: Add class for go mod support
When using Go Modules, the the current working directory MUST be at or
below the location of the 'go.mod' file when the go tool is used, and
there is no way to tell it to look elsewhere.  It will automatically
look upwards for the file, but not downwards.

To support this use case, we provide the `GO_WORKDIR` variable, which
defaults to `GO_IMPORT` but allows for easy override.

[YOCTO #13883]

(From OE-Core rev: a0716c04ed4f062b3112e3d41abc7ea1fad3b7e7)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 11c2b06ac98cc5064640705712bffa156519f450)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Martin Jansa
00babfd586 net-tools: backport a patch from upstream to use the same ifconfig format as debian/ubuntu
* this is needed for python3-ifcfg to parse it correctly
  https://github.com/ftao/python-ifcfg/issues/43
* backport this single patch, so it can be backported to dunfell
  then for master we should upgrade to new snapshot from debian
  which includes other fixes and improvements as well
* this is already part of net-tools_1.60-26.diff from debian we're using
  but it's first added there and then removed
  $ grep 'sprintf(flags' net-tools_1.60-26.diff
  ++    sprintf(flags, "flags=%d<", ptr->flags);
  +-    sprintf(flags, "flags=%d<", ptr->flags);

* before:
root@qemux86-64:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 52:54:00:12:34:02
          inet addr:192.168.7.2  Bcast:192.168.7.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe12:3402/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:106 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:496 (496.0 B)  TX bytes:42832 (41.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:846 errors:0 dropped:0 overruns:0 frame:0
          TX packets:846 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:53364 (52.1 KiB)  TX bytes:53364 (52.1 KiB)

* after:

root@qemux86-64:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  metric 1
        inet 192.168.7.2  netmask 255.255.255.0  broadcast 192.168.7.255
        inet6 fe80::5054:ff:fe12:3402  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:12:34:02  txqueuelen 1000  (Ethernet)
        RX packets 6  bytes 496 (496.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 14  bytes 2140 (2.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536  metric 1
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 80  bytes 6080 (5.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 80  bytes 6080 (5.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

* for comparison ubuntu-20.04 in docker:

root@dafcbbf25ff2:/# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.2  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:ac:11:00:02  txqueuelen 0  (Ethernet)
        RX packets 39299  bytes 89614740 (89.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 33767  bytes 3807354 (3.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 5658  bytes 1294220 (1.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5658  bytes 1294220 (1.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

* python3-ifcfg now parses flags correctly:
root@qemux86-64:~# python3 -m ifcfg.cli | python3 -m json.tool
{
    "eth0": {
        "inet": "192.168.7.2",
        "inet4": [
            "192.168.7.2"
        ],
        "ether": "52:54:00:12:34:02",
        "inet6": [
            "fe80::5054:ff:fe12:3402"
        ],
        "netmask": "255.255.255.0",
        "device": "eth0",
        "flags": "4163<UP,BROADCAST,RUNNING,MULTICAST> ",
        "mtu": "1500",
        "broadcast": "192.168.7.255"
    },
    "lo": {
        "inet": "127.0.0.1",
        "inet4": [
            "127.0.0.1"
        ],
        "ether": null,
        "inet6": [
            "::1"
        ],
        "netmask": "255.0.0.0",
        "device": "lo",
        "flags": "73<UP,LOOPBACK,RUNNING> ",
        "mtu": "65536"
    },
    "sit0": {
        "inet": null,
        "inet4": [],
        "ether": null,
        "inet6": [],
        "netmask": null,
        "device": "sit0",
        "flags": "128<NOARP> ",
        "mtu": "1480"
    }
}

(From OE-Core rev: 71c8667fca681a5977ed2b825b14306930707f2d)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dacfd695061b186240a85f8ffc43e6636c56e1fb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Joshua Watt
0ebc923317 classes/archiver: Create patched archive before configuring
do_configure and do_preconfigure can modify source files, which causes
race conditions if these tasks run in parallel with do_ar_patched. Add
explicit task dependencies to ensure that do_ar_patched finishes before
these tasks start. Specifically, this fixes a race condition with
gcc-source where do_ar_patched races with do_preconfigure deleting
gcc/gengtype-lex.c

(From OE-Core rev: fdd06278dc67e8c13468b89746c562d298a2d63b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8a7c7794870815030239e90b03e37ed302b7e885)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Ross Burton
91d22f69d6 common-licenses: add BSD-2-Clause-Patent
(From OE-Core rev: f5b7bb5f34ad45400712d6190f1f836056c4bc18)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d6e8c4a63caefdf36dfbc9d230c9e8db4b43dc5a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Daniel McGregor
4e2428464b buildhistory-collect-srcrevs: sort directories
In order to allow consistent output of buildhistory-collect-srcrevs sort
the list of directories returned by os.walk. Otherwise the list of
SRCREVs is returned in an unspecified order.

We save the output of this command on build, so it creates smaller diffs
between builds.

(From OE-Core rev: 9ca9c0fa320caeb2a1e7a60161c4db66dc0f2030)

Signed-off-by: Daniel McGregor <daniel.mcgregor@vecima.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3d7cb207ad4ec3cd5a3064147d3c9b5a1730d0fb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Richard Purdie
243f59b8e3 perl: Fix host specific modules problems
We were seeing a ton of empty perl modules being created such as
"perl-module-x86-64-linux-encoding" where the name would include
${TARGET_ARCH}-linux. These files were already being filtered in an
earlier do_split_packages() expression so exclude them from the latter
one to remove the pointless empty modules in PACKAGES.

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

(From OE-Core rev: 5aaf9d3a748cbad17a4a3e5d9715ac2f289b007d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9f1a959d9831f43dda656e3b0c4d059db3363877)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
akuster
1a92f54bca bind: update to 9.11.19
Bug fix only updates.

suitable for Stable branch updates where applicable.

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

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

(From OE-Core rev: c672d2b6c98607f1fda917f4a3189a53712e8fc2)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a6ba66cf5e754cdcd41f01d233fbef7b94a10225)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
haiqing
d93e724189 libpam: Remove option 'obscure' from common-password
libpam does not support 'obscure' checks to password,
there are the same checks in pam_cracklib module.
And this fix can remove the below error message while
updating password with 'passwd':
pam_unix(passwd:chauthtok):unrecognized option[obscure]

(From OE-Core rev: 76a63a5e1d572703c7e5e1360e24c05b87186e8b)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ea761dbac90be77797308666fe1586b05e3df824)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Ross Burton
a3ee59032a install-buildtools: remove hardcoded x86-64 architecture
Remove all instances of the hardcoded 'x86_64' and replace with the current
host platform.

(From OE-Core rev: cd2c54d8ab545f39f23c5167ba5ca50f732f7cfa)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 52dc6f671ff67a1149be7ef4c65126ea3c907a3d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Ross Burton
95b86ef779 install-buildtools: fail if an error occurs
Several failure paths were displaying an error message but not returning,
so the install process continued and failed further.

(From OE-Core rev: deed12d01fa656ee0cf81a6b7b9ed74278e48c50)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b00e28735b64a781707441ec6187dd7f9240d97a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Peter Kjellerstedt
92b2e7e49e relocatable.bbclass: Avoid an exception if an empty pkgconfig dir exist
Rewrite relocatable_native_pcfiles() so that it can handle that any of
the checked pkgconfig directories are empty without causing an
exception.

(From OE-Core rev: ceffd920c7bdae29cd1a606f1c20d1b2d3666f5b)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f9c5df6dc1c13e9b05ff1b47ad84ad339f6779a4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:49 +01:00
Otavio Salvador
994783b52e mtd-utils: Fix return value of ubiformat
This changeset fixes a feature regression in ubiformat.  Older versions
of ubiformat, when invoked with a flash-image, would return 0 in the
case no error was encountered.  Upon upgrading to latest, it was
discovered that ubiformat returned 255 even without encountering an
error condition.

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

Backport fix from 2.1.2

(From OE-Core rev: 3ee98b6c9ddd1dd0825245ca672236b7befb9859)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7ebacd9cbaec98fbc406e8ae99c9805a24fdadc6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Otavio Salvador
94e5d195cb systemd: Sync systemd-serialgetty@.service with upstream
The systemd upstream has been doing some improvements in the service
which were not in sync, with the forked file. Mainly:

 - Use BindsTo to bind the service with the required serial device
 - Add of getty-pre.target as dependency so we can run things before
   getty@.service and serial-getty@.service
 - Add conflicts to rescue to avoid issues with sulogin

We did not change the ExecStart and Environment fields so we don't have
side effects of this change.

(From OE-Core rev: e6e2cabc33ab30d38e31ef830f7bc5e3cd07b6d5)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 63bbff61b78c651339c4b18d8376187379ec3b3c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Steve Sakoman
7af3bf8bf6 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: f47fe24317d2fd19112c7e38858b21b3457835d9)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 197f1d5d14b8e57295f5a81c03c86abba5328614)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Alex Kiernan
5d71ab4210 recipetool: Fix list concatenation when using edit
If there are multiple appends, ensure we concatenate compatible things:

Traceback (most recent call last):
  File "/home/akiernan/poky/scripts/recipetool", line 111, in <module>
    ret = main()
  File "/home/akiernan/poky/scripts/recipetool", line 100, in main
    ret = args.func(args)
  File "/home/akiernan/poky/scripts/lib/recipetool/edit.py", line 38, in edit
    return scriptutils.run_editor([recipe_path] + appends, logger)
TypeError: can only concatenate list (not "tuple") to list

(From OE-Core rev: 9a45c7fb2d4491d2d34500acef8ea6dcd4f5d9d4)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4c1e74bdf4922519d168434afd69c9bebcb9bd82)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Lee Chee Yang
c9a3c7dd65 qemu: fix CVE-2020-13361
(From OE-Core rev: 0e4985236dd7d2e92576fb30b70bc434a7ecd367)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2dcef5dfb5c4c57fd793d04ac936a9ff73aae844)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Chen Qi
f59c4f0b83 vim: restore the 'chmod -x' workaround in do_install
These workarounds are removed because a previous patch
solve the host path reference for gawk and perl, and it skips
the do_package_qa issue by setting the INSANE_SKIP. But it
introduces regression for do_rootfs. The dependencies are
calculated and will require packages like python, perl, gawk
and csh. The error is like below.

Error:
 Problem: conflicting requests
    - nothing provides /bin/csh needed by vim-tools-8.2-r0.corei7_64
    - nothing provides /usr/bin/nawk needed by vim-tools-8.2-r0.corei7_64
    - nothing provides /usr/bin/python needed by vim-tools-8.2-r0.corei7_64

So we keep the previous patch which solve the host path reference
problem and restore the long-used 'chmod -x' workaround here.

(From OE-Core rev: 68b2dc03e55b4977b8647e8d36c40c851414c13b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bf3e799e32b4de300887b844b0b7bce3d60ca379)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Kai Kang
a846496cf3 encodings: clear postinst script
Postinst script from xorg-font-common.inc doesn't apply to this recipe.
So clear the postinst script of encodings.

(From OE-Core rev: ba94c908b99713ce115e9240df525c6442a60c7a)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 99ae6dbb7278dfd264453af852c108fa56a0d4e3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Kai Kang
26a66b8b70 wpa-supplicant: remove service templates from SYSTEMD_SERVICE
Remove service templates wpa_supplicant-nl80211@.service and
wpa_supplicant-wired@.service from SYSTEMD_SERVICE that they should NOT
be started/stopped by calling 'systemctl' in postinst and prerm scripts.

(From OE-Core rev: 7910a0d6f332253608767a9576a0d521dd87efd7)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fe9b8e50461ab00ab3ad8b065ebd32f0eea2a255)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Kai Kang
63fb575413 mdadm: remove service template from SYSTEMD_SERVICE
Remove service template mdmon@.service from SYSTEMD_SERVICE which should
be not started by systemctl directly. It is hanlded by udev rules.

Replace tab with spaces in SRC_URI as well.

(From OE-Core rev: f54c3c049eacce423d9c75c823f8ab15ba185167)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a55b2b29bb86d98700836de5b7d68965c7cd5ee5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Richard Purdie
ed87be4dec ltp: Add missing dependencies on coreutils, bc, e2fsprogs and gdb
When the tests are run we see messages like:

/opt/ltp/testcases/bin/run_cpuctl_stress_test.sh: line 242: nice: command not found
/opt/ltp/testcases/bin/run_cpuctl_test_fj.sh: line 66: tac: command not found
vma05 1 TCONF: 'gdb' not found
memcg_failcnt 1 TCONF: 'bc' not found
Owner=nobody; perms=-rw-------; sudo: lsattr: command not found

so add missing dependencies to avoid these.

(From OE-Core rev: c84c3caff4ef16c72390a7b941b71919417c9f51)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit faa01e1ae7a92d60699cd8865d1106a13549b096)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
wenlin.kang@windriver.com
a898a946d7 populate_sdk_base.bbclass: fix warning: name not matched
When do populate_sdk with SDK_ARCHIVE_TYPE = "zip", have below warning
in log file, this patch fixes it.

zip warning: name not matched: sysroots/core2-64-poky-linux/etc/tmpfiles.d/etc.conf
zip warning: name not matched: sysroots/core2-64-poky-linux/etc/tmpfiles.d/home.conf
zip warning: name not matched: sysroots/core2-64-poky-linux/etc/resolv-conf.systemd
zip warning: name not matched: sysroots/core2-64-poky-linux/etc/mtab
zip warning: name not matched: sysroots/core2-64-poky-linux/etc/resolv.conf
zip warning: name not matched: sysroots/core2-64-poky-linux/var/lock
zip warning: name not matched: sysroots/core2-64-poky-linux/usr/lib/environment.d/99-environment.conf
zip warning: name not matched: sysroots/core2-64-poky-linux/sbin/klogd
zip warning: name not matched: sysroots/core2-64-poky-linux/sbin/syslogd
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/usr/bin/chfn
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/usr/bin/chsh
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/usr/bin/passwd
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/usr/bin/chpasswd
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/sbin/vipw
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/sbin/vigr
zip warning: name not matched: sysroots/x86_64-pokysdk-linux/sbin/nologin

(From OE-Core rev: 72b7c3c7a35d814510aa1a52d2707a1ffddf8e8e)

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5f7df08aca81ac269490876fe84c7fc5b1d5739c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Alexander Kanavin
673b0b570f powertop: switch to Arjan's git
01.org seems unmaintained; while the tarball is still there, the
page to download it from is gone.

(From OE-Core rev: ca815f2d6f354bd025f25abe2b28a57f7a3363d7)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bcd6475928dba0a46d196d905cfd449ba7a3ada5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Alexander Kanavin
21665ee4f0 patchelf: switch to git
The tarball download website is full of broken links;
while direct tarball download still works, exploring
around and checking for latest versions does not.

(From OE-Core rev: d350a0ca191040b5573ed9cd67c08c41ad2f3dc9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d1c11259464ba2d972e1e1ad5c540050ccc80c15)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-26 18:26:48 +01:00
Steve Sakoman
ba11b6e210 u-boot-tools: backport patch from upstream to fix gcc 10 builds
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Joe Slater
bce8aeaf3a acpica: Upgrade 20200214 -> 20200430 for gcc-10 fixes
Advance to version 20200430 to avoid multiple definition errors for uninitialized variables.
In this case, it is not enough to add -fcommon to CFLAGS.

(From OE-Core rev: 71391aab99033f5488d44c097a25323bdf06ffc2)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7e1df28fb0534587d4f9305eb163f497852df4ec)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Khem Raj
d018908adb valgrind: Backport upstream patch to fix __getauxval needs
Drop disabling outline-atomics since that was added to fix this issue in
particular

(From OE-Core rev: a3cb468746635f5c052074c3e4de485465fd8da8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 702a1ae29c6a0f920bd67b7a7a41b886ac52a751)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Khem Raj
7b88f1175b valgrind: Do not use outline-atomics on aarch64
This avoids the __getauxval undefined reference error seen with gcc10 on
doing static linking with -nodefaultlibs, which is uncommon usecase
anyway, disabling outline-atomics is not a huge deal for OE in terms of
performance as we already use -mcpu which is tuned enough to the SOC the
code is being generated for

(From OE-Core rev: 48c53bc81963621e8e9fbb89277d1a3d10f153d5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3952738d083b888e5b898ed3d63a0ed9a4dd3712)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Khem Raj
eff7c052c8 syslinux: Fix build with gcc10
Bring in a patch from fedora to fix -fno-common issue

(From OE-Core rev: 7457e6e2a2b0d00875c15112b6528c9ad97830d5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f635bd89d53cc8c110b18aa593babc55eeffc511)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Jacob Kroon
2498765818 squashfs-tools: Backport fix for compiling with gcc 10
(From OE-Core rev: 41bf4adead2033ff1a59e016daef05244d8a38d9)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit bae1603a27fadcfa7257801167f28db3ff02dc97)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Khem Raj
f5b081985b wayland: fix condition for strndup detection
current check does not work with gcc10

(From OE-Core rev: 7a0f9b4fed4fec0cb0925231bb0ba4bbbb4bb3a9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ce6c50ea68c34e02b487d54fdd9288e04833cdef)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Khem Raj
77b6f6d302 glibc: Update to latest on 2.31 branch
There are few fixes specifically for compiling with gcc10 that are good
to have, before hitting them later

Backport build fix from master for aarch64 with gcc10

Drop CVE-2020-10029 patch its already applied on latest 2.31 branch

latest glibc 2.31 added fix for __getauxval/aarch64 issue

(From OE-Core rev: 04e5d5f5a4318c826768146f5cd5de03fd152550)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2c7e0e0bf32eb1ed0b7d8acddb16c0d1e93f2aa1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
bcc6725a39 matchbox-wm: Replace -fcommon with fix
(From OE-Core rev: 9078c611dd86bf6bf8320402ed4751090d40cde2)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d69a05533048d0e50f5ee47b2c35675bc615728c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
0ace8ee134 menu-cache: Replace -fcommon with fix
(From OE-Core rev: a0fb1e3eab57ce84d98b94d452d541149b8f6fb3)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 97984f171b562f4ccaef527e6766b0e94697cf43)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
bf68d9b235 at-spi2-atk: Remove -fcommon
This was fixed in upstream version 2.34.0.

(From OE-Core rev: a4f975a0bca892a7c0f0d496b76ffb30e469914a)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9562c93799a37cd18aceb6f24378ba02a69865f0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
de761d0ad1 mesa: Remove -fcommon
This was fixed in upstream version 20.0.

(From OE-Core rev: eb47eaa3f06e49f635bd774808ddb4f28fa3d718)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1d269a3f3a84cae92e611e02082150cfd97f8258)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
c8dd294f35 libxcrypt2: Remove -fcommon
This was fixed in upstream version 4.4.12.

(From OE-Core rev: 06a841e22853e571e07998079529839c96a23b21)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 281d53ebab4c4c1b6c880ab14761d715196fb8d7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Adrian Bunk
0fa3cf0fe8 iproute2: Remove -fcommon
This was fixed in upstream version 5.5.0.

(From OE-Core rev: 433d3856151e095afb640a567241bebaf2e84b87)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9a9f67b7c50a8c28a75fc48c8abcb8a7bb35f0e6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
9500471907 cpio: add patch to fix issues with gcc 10
gcc 10 introduced "-fno-common" as default. Therefore backport the
according cpio patch to fix this issue.

(From OE-Core rev: 21e5677cf239ff50142a31b034ce3316b1daa4bb)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ca6e5511b59b585de793ff6424c7c6ccfcd8e61e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
c1fafbd8e2 binutils: add patch to fix issues with gcc 10
gcc 10 introduced "-fno-common" as default. Therefore backport the
according binutils patch to fix this issue.

(From OE-Core rev: c41fe48f323a78fd0e205471362ecc6c66f87f45)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit fbeb572e1872cf64786d01d5c6408a6765f814ce)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
07d53f0a28 libcomps: update to 0.1.15
In this update the 0001-Make-__comps_objmrtree_all-static-inline.patch
was mainlined by commit 18f52cb.

Furthermore mainline commit 3237f44 fixes a build problem with the
default "-fno-common" of gcc 10.

(From OE-Core rev: 55e2f218de2725d65b2cf231b6e835eb94f8eceb)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 90b942d01decbcff3b883ee6fb4bba67fb446817)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
74bf6213de dtc: update to 1.6.0
This also fixes issues with gcc 10's default change to "-fno-common".

(From OE-Core rev: 8dd95a6b937508079ae9ae4800dc7c8fe675376b)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3acc1e5d5bce4e229801c9d66391e007390fb373)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
c7ec0a4121 gdbm: add patch to fix link failure against gcc 10
This also makes appending "-fcommon" to CFLAGS obsolete and enables
native builds with a host gcc v10.

(From OE-Core rev: b71ea7245a3d42ba96fb5a389f85049250bbc29e)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7717b35265e6ef8ef71a4eca4074294dfcc2110c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Leitner
4a283230f5 libtirpc: remove extra "-fcommon" from CFLAGS
commit daed7eedba ("Avoid multiple-definiton with gcc -fno-common") of
libtirpc fixed the -fno-common issues. Therefore it should be save to
remove the extra "-fcommon" in CFLAGS.

(From OE-Core rev: 4745fcf05736c3e26601769c4fdcd1a5ec25efb3)

Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9e4546701775fe98532f011f5ad146cfb1b33715)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
zhengruoqin
00ea8cc16f libtirpc: upgrade 1.2.5 -> 1.2.6
0001-xdr_float-do-not-include-bits-endian.h.patch
removed since it is included in 1.2.6

(From OE-Core rev: 1497ec4e8e0a2244154486feea8292b0b37d5249)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c940792e1492923036cae97010f9945e7ad43a32)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-23 11:40:46 +01:00
Richard Purdie
0045df8f9b 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: 83296870bede70e31bdf6e73683bcc30681023fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-22 20:53:28 +01:00
Joe Slater
0fc9d32ae1 vim: _FORTIFY_SOURCE=2 be gone
vim will abort in many places with this setting.  Replace
it with the benign _FORTIFY_SOURCE=1.

(From OE-Core rev: d9de155f6452f916edd3131addd0c2eebaf4d639)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 18129cbaeddb3278efe9963718556e3765f06c1e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Alexander Kanavin
5d53b2117b build-sysroots: add sysroot paths with native binaries to PATH
staging_populate_sysroot_dir() collects postinsts from the sysroot
and executes them. These postinsts, in turn, may call binaries that
are only available from the sysroot. This works fine with recipe-specific
sysroots, as all necessary paths are already in PATH, but breaks down
in this recipe which imitates the old global sysroot way but doesn't adjust
the PATH to include the binary paths from global sysroot.

To reproduce the failure:

$ bitbake docbook-xml-dtd4-native
$ bitbake -c build_native_sysroot build-sysroots

...

Exception: subprocess.CalledProcessError: Command '/home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog' returned non-zero exit status 127.

Subprocess output:
/home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: 5: /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: xmlcatalog: not found
/home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: 8: /home/akanavin/build/tmp/sysroots/x86_64/usr/bin/postinst-docbook-xml-dtd4-native-xmlcatalog: xmlcatalog: not found

(From OE-Core rev: 17fad96d3d9a8cfbc6724466475f6f161e967b74)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6b5f7bda4204d45cd29670cefcd53dc5da031095)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Alexander Kanavin
d0e16ddf3b linux-firmware: upgrade 20200421 -> 20200519
License-Update: added more entries to WHENCE, all redistributable
(From OE-Core rev: 1f17a1ef719d069bca04f29f7e92be44547f4262)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f8d47014e453533b98e37c653177e9541e1deeda)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Chen Qi
215a316817 db: do not install db_verify if 'verify' is not enabled
On target, when running `db_verify /var/lib/rpm/Packages', we get
the following error.

  db_verify: BDB0571 library build did not include support for database verification

This is because db_verify is installed but 'verify' PACKAGECONFIG is
not enabled. So fix it by not installing do_verify in such case.

(From OE-Core rev: b45f1a3b8007ab34dcbe0cba365823da179d0c50)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b5ffdb296f211403f987b5d5a724a94ee91dc80c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Joe Slater
ff6ba7215a qemu: force build type to production
qemu will not build for -Og optimization because macros
in lockable.h expect dead-code elimination.  Override DEBUG_BUILD.

(From OE-Core rev: dce2315ea2e0f14854fa43994eede04848cd624c)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ad404b2e51223625bd95f9a7da4c7a690c37bdfb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Paul Barker
6d7fc2624f oe-selftest: Recursively patch test case paths
This ensures that builddir is updated correctly to point to the new
selftest build directory when we're given a list of test suites instead
of a list of test cases.

(From OE-Core rev: 6812affe76ee2704a8008d58ffc6a2e87b543f1d)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 56e211d0f3c6cb84f5982e5de00faeeed69c1912)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Paul Barker
11ce1ec5a6 oe-selftest: Allow overriding the build directory used for tests
This may be useful if the parent directory of the original builddir is
not writable, on a lower performance drive, etc.

(From OE-Core rev: 27cec9c111bca84554d94eeb71fb3d3fe9a77481)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit dab719e5f1964fd48e9a35e6b9db1508b5414540)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:01 +01:00
Paul Barker
b79d55961e archiver: Fix test case for srpm archiver mode
We can't assume that rpm packaging will always be enabled when running
oe-selftest. In particular when using nodistro instead of poky this is
not enabled by default.

(From OE-Core rev: b69ec712c690aa279996d5a9395dc16ae8402a3e)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 23df3024664ec56dbbe8865ef3953d2c33a7a2cb)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
54b8fcc703 patchelf: Add patch to address corrupt shared library issue
patchelf can corrupt shared libraries if the program headers don't
immediately follow the elf header. Add a patch submitted upstream
to address this.

(From OE-Core rev: faaf5f34332290708f3720a5488b3d1549d9e95a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e7811c787bbe2f5d49b3506309499acc27189988)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Konrad Weihmann
7287cf931f cogl: point to correct HOMEPAGE
As the previousy set wasn't reachable anymore

(From OE-Core rev: cf7e02e8cdb3cc4cdb9f155c8bd16dece2805a39)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3ae0aa1df25c8c7511950c6fc965955bdb205cd2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Ralph Siemsen
09f9c83116 cve-check: include epoch in product version output
In the generated cve.log files, include the epoch in the product
version. This better matches how versions are displayed elsewhere,
in particular the bb.warn("Found unpatched CVE...") that appears
on the terminal when CVEs are found.

(From OE-Core rev: 99f6de1c74b581054c74c6b4598a5d47facc9964)

Signed-off-by: Ralph Siemsen <ralph.siemsen@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e1c3c0b6e5b01304e2127f5058986697e82adf93)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
c86541277e oeqa/targetcontrol: Rework exception handling to avoid warnings
We're seeing:

WARNING: bitbake/lib/bb/cookerdata.py:136: ResourceWarning: unclosed file <_io.FileIO
name='tmp/work/qemux86_64-poky-linux/core-image-minimal/1.0-r0/testimage/qemurunner_log.20200601181912'
mode='ab' closefd=True

which can only be caused by the qemu.stop() method not being called.
Tweak the error handling to fix the blanket exception handler which
is likely meaning this function isn't getting called.

(From OE-Core rev: bd2d32903f208b6a70abaa29b980db1498b84a02)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ee707090848d793e3b2d82dd3861ae22222682c0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Peter Kjellerstedt
756f6d0fe9 cairo: Do not try to remove nonexistent directories
Commit 0e1f8fa0 (bitbake.conf: propagate 'opengl' DISTRO_FEATURE to
native/nativesdk from target) changed the default PACKAGECONFIG for
native and nativesdk so that it becomes empty unless "x11" is in
DISTRO_FEATURES since "trace" was also removed (propbably
unintentionally). This highlighted than an empty PACKAGECONFIG would
lead to a build failure since /usr/bin is never created under these
conditions, but the recipe still tried to remove it.

(From OE-Core rev: 5e33d1d1d655c50a817acda85f2df67c67196daf)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9bb2268677ac8f0c97433bf1f04555abe88028a9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
f3ae12c940 logrotate: Drop obsolete setting/comment
The comment applies to an old version and the WORKDIR setting matches
the default so drop it.

(From OE-Core rev: 3f8f1385428a2057610dca71e9f122c922df5202)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 7cc4c0e7665111616c7e8a1dc512b8d9022ca664)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
7d9de99bab maintainers: Update Ross' email address
Update Ross' address to a valid one.

(From OE-Core rev: 5a16ed258e9da39c66874b3ee1e5b52a8ea2dae9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 22e1605ce45482c49d06a7c56a46b71f76955e31)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Alexander Kanavin
3f26ca4cf5 lz4: disable static library
It was found to be built in a non-reproducible way.

[YOCTO #13925]

(From OE-Core rev: 44d22ea87fde918d32957bc757c6c98482681f5d)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit f8f3f03e7ffcefdb6a97b747a26276dec4bfa77c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Konrad Weihmann
597c6e6169 sysfsutils: rem leftover settings for libsysfs-dev
22af6a2595 removed the PACKAGES
setting, but left the FILES-assignments of libsysfs-dev and -staticdev.
As these have no use anymore they can be safely removed

(From OE-Core rev: 7c3eb092392e3ae76408c8ad4cb0f3f18dc42a96)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 941cc0cd0a69e95ca571a9a8cb0732bb06fa2b3a)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Marco Felsch
81d9044749 util-linux: alternatify rtcwake
This tool can be turned on in busybox which lead into a error during
do_rootfs.

(From OE-Core rev: 29ada652108335b4074ed330586f893bba1c5dce)

Signed-off-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eb22e7a1190a79fd74ae54f23a13ec4932f41b0d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
861be83f9d ltp: Exclude the memcg_stress tests due to timeout problems
This test runs for 900s, we often see tests killed after 300s without
output which makes the test results unreliable and inconsistent. The
easiest solution for now is to skip this long running test, patching
it out wth sed.

(From OE-Core rev: 074adb507928310af5b38f82ba3f20d9f55f4433)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0739a8901140c05d037517ffd89382f151ba627c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
hongxu
b6cf32569d core-image-minimal-initramfs: keep restriction with initramfs-module-install
Since commit [882ae0dcce core-image-minimal-initramfs: use
initramfs-framework for initialization] applied, it should
keep the restriction with initramfs-module-install

(From OE-Core rev: 176da1d6fbd006c770c3c02c6355a692adac3c74)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 295dbabce213855432b6274026e3b45a18b90e80)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-18 12:25:00 +01:00
Richard Purdie
febbe2944c build-appliance-image: Update to dunfell head revision
(From OE-Core rev: 6fa967f194edd314c9026c80f8d93360ac6d9efa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-08 21:45:13 +01:00
Richard Purdie
ff7dbd392a build-appliance: Update branch to point at dunfell
(From OE-Core rev: cad1b34fbdb3af04b527c27c8c84077eb695deb1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-08 21:45:05 +01:00
Richard Purdie
6cc48bdfeb build-appliance-image: Update to dunfell head revision
(From OE-Core rev: 2e4be161e65370708dfe85fe886843db857f5520)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-08 21:28:51 +01:00
Richard Purdie
7df25f49c3 poky.conf: Bump version for 3.1.1 dunfell release
(From meta-yocto rev: 9d7966cf2fb33d827c999fbb88872d8437d8f0c7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-08 21:28:41 +01:00
Tim Orling
5890b72bd6 bitbake: toaster-requirements.txt: require Django 2.2
In commit 9730f95686b2ac72cf1fa513c555f7c7787e2667
Django 2.2 was enabled.

Django 1.11 was EOL on April 1, 2020

(Bitbake rev: 6cc09fa33131f71a3fd0e336ff07a4186b41bf8f)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ee15e78c6f9b59c221b1e43973ee4db20c5b443b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Kai Kang
ee1bb639fb bitbake: bitbake-user-manual-metadata.xml: fix a minor error
In the '_remove' example in bitbake-user-manual-metadata.xml, there is
no 'jkl' in the original value of FOO2. So remove it from result.

(Bitbake rev: 324aaa7f8d6d83e1e00b8054dac44df561588be8)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 06b5cf0ab6c6e518ac780d081fab5546334c5c7d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Jacob Kroon
6af527ca94 bitbake: doc: More explanation to tasks that recursively depend on themselves
(Bitbake rev: f92e19a3b3d89eb26eeb74b18ca01248767035b5)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit c92a266c8e452833f2a590721aa1c2bd6fbeb2e0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Jacob Kroon
81833e0ee8 bitbake: doc: Clarify how task dependencies relate to RDEPENDS
Clarify that BitBake knows how to map entries defined in the runtime
dependency namespace back to build-time dependencies (recipes) in
which tasks are defined.

(Bitbake rev: e4695176ffdc5eb959f71a08f77ff6a8e028ffa9)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit caf422435ad64aacbdab8a94da3115599dd0938b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Robert P. J. Day
406b9a2434 bitbake: user manual: properly tag content as <replaceable>
Tag a couple fields as replaceable to be consistent with rest of
manual.

(Bitbake rev: 25c5c79bbe814eaff03c72cc2680414a73cff7f4)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 647c13d4ae746a1bb9bd76ff318477dadb4d292f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Robert P. J. Day
919d0e98f2 bitbake: docs: delete reference to obsolete recipe-depends.dot
Given that generation of recipe-depends.dot was removed:

  commit 4c484cc01e3eee7ab2ab0359fd680b4dbd31dc30
  Author: Chen Qi <Qi.Chen@windriver.com>
  Date:   Thu Aug 22 15:52:51 2019 +0800

      cooker.py: remove generation of recipe-depends.dot

      The information of recipe-depends.dot is misleading.

delete mention of it from the user manual.

(Bitbake rev: be367887b0a729ef01fc04f2b91368612ed92ed3)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2effbb6e10b07dc12e4ecdf449ca29fc20968c59)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:37:15 +01:00
Steve Sakoman
7fbc1d298f Documentation: Add 3.1.1 version updates missing from previous commit
(From yocto-docs rev: bd140f0f9988fbd55f428a8ba7a54ae68716a33a)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Joshua Watt
b72565b65f layer.conf: Bump OE-Core layer version
The commits 910ffaf5be ("pyelftools: Import from meta-python") and
a96f815c53 ("pycryptodome: Import from meta-python") moved recipes from
meta-python to oe-core. In order for this to be communicated with users,
bump the LAYERVERSION so that meta-python can key of it in its
LAYERDEPENDS.

(From OE-Core rev: 4d4e69bc056bec4625b1cde0e1fc9d5e527c6a98)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2d503b27e7c88cee9a37c79c4605c77b11f230b6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Joshua Watt
a05f552e21 python3-pyelftools: Upgrade 0.25 -> 0.26
(From OE-Core rev: b2306d00dc82cb780a439b569104c0f526e6e4d5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0323e12624ef45e64e7a8ba6384c06e4d42df064)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Joshua Watt
f26ccdb13b python3-pycryptodome(x): Upgrade 3.9.4 -> 3.9.7
Also splits apart the SRC_URI checksums to make automatic upgrades
easier

(From OE-Core rev: 03b27d56272a4815ead04da08cfaa738b450ae59)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit ae1f210546396b761ea86d9e32bf90c0867ff845)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Joshua Watt
cbdc6f9862 pyelftools: Import from meta-python
Imports the pyelftools recipes from meta-python, as of 7c02c7d41
("gnome-themes-extra: correct the recipe name").

This recipe is commonly used by other layers, so moving it into
OE-core helps to cut down on layer dependencies.

(From OE-Core rev: 0a8cdaa90f4dd2d09b0b471dafd868a4dcad4ed3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 910ffaf5beed42936588c95b0c7c1b1ad67f99d3)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Joshua Watt
681c1ecfa0 pycryptodome: Import from meta-python
Imports the pycryptodome recipes from meta-python, as of 7c02c7d41
("gnome-themes-extra: correct the recipe name").

These recipes are commonly used by other layers, so moving them into
OE-core helps to cut down on layer dependencies.

(From OE-Core rev: 27798f3da506fcae19b74deb17ef199131cff405)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a96f815c53364b119b5743b8b7100eb5588d5cf5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
f6eea5bdaf linux-yocto/5.4: update to v5.4.43
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    e0d81ce76004 Linux 5.4.43
    b5100186021a sched/fair: Fix enqueue_task_fair() warning some more
    8b13f5657fa8 sched/fair: Fix reordering of enqueue/dequeue_task_fair()
    a2ad232aa6a9 sched/fair: Reorder enqueue/dequeue_task_fair path
    f4520daa3c5a tpm: check event log version before reading final events
    68b7b8183c12 rxrpc: Fix ack discard
    283eb0016f97 rxrpc: Trace discarded ACKs
    f2da8c0dfe81 iio: adc: stm32-dfsdm: fix device used to request dma
    7b5af65ca246 iio: adc: stm32-dfsdm: Use dma_request_chan() instead dma_request_slave_channel()
    692001a867b6 iio: adc: stm32-adc: fix device used to request dma
    8e8836b2b782 iio: adc: stm32-adc: Use dma_request_chan() instead dma_request_slave_channel()
    1084eee4dc5d x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks
    860fe59783a9 flow_dissector: Drop BPF flow dissector prog ref on netns cleanup
    bd6f0c799f4d s390/kexec_file: fix initrd location for kdump kernel
    834d24ec3a0a rxrpc: Fix a memory leak in rxkad_verify_response()
    23ae6e3e8aeb rxrpc: Fix the excessive initial retransmission timeout
    c2a26769b43e kasan: disable branch tracing for core runtime
    86217fecc4b7 rapidio: fix an error in get_user_pages_fast() error handling
    689dacb2b09d device-dax: don't leak kernel memory to user space after unloading kmem
    9e451933bba9 s390/kaslr: add support for R_390_JMP_SLOT relocation type
    72f3241508ac s390/pci: Fix s390_mmio_read/write with MIO
    9c84884cd5dc ipack: tpci200: fix error return code in tpci200_register()
    46f47dda27bc mei: release me_cl object reference
    f505a3e24c6a tty: serial: add missing spin_lock_init for SiFive serial console
    a5b4b3f97de7 misc: rtsx: Add short delay after exit from ASPM
    e64b205035fb iio: adc: ti-ads8344: Fix channel selection
    9af65dc54b9b iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'
    d54e5a4ff04c iio: sca3000: Remove an erroneous 'get_device()'
    56cff2ac7c9d staging: greybus: Fix uninitialized scalar variable
    a41e02cb4232 staging: kpc2000: fix error return code in kp2000_pcie_probe()
    dee81110a488 staging: iio: ad2s1210: Fix SPI reading
    76296dc723ef media: fdp1: Fix R-Car M3-N naming in debug message
    4adb7a2b3161 Revert "gfs2: Don't demote a glock until its revokes are written"
    bb6524537dc2 kbuild: Remove debug info from kallsyms linking
    ee71c590dd8d bpf: Avoid setting bpf insns pages read-only when prog is jited
    4c732e81bd4d powerpc/64s: Disable STRICT_KERNEL_RWX
    b67da9dbdb89 powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE
    9bcfbd8ba2b5 drm/i915: Propagate error from completed fences
    5e171483e947 drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.
    0e1d5f67253e vsprintf: don't obfuscate NULL and error pointers
    4b1b34621998 dmaengine: owl: Use correct lock in owl_dma_get_pchan()
    0fcbe108b01a dmaengine: dmatest: Restore default for channel
    57c32a52c3fe drm/etnaviv: Fix a leak in submit_pin_objects()
    432b103596bd dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
    870a45e0b507 apparmor: Fix aa_label refcnt leak in policy_update
    054934aa9faa apparmor: fix potential label refcnt leak in aa_change_profile
    97d817b9ef13 apparmor: Fix use-after-free in aa_audit_rule_init
    3b1e38dfbc9f drm/etnaviv: fix perfmon domain interation
    53683907ef68 arm64: Fix PTRACE_SYSEMU semantics
    96e56055a2f0 scsi: target: Put lun_ref at end of tmr processing
    818657105a0b scsi: qla2xxx: Do not log message when reading port speed via sysfs
    d54c5eff8795 ALSA: hda/realtek - Add more fixup entries for Clevo machines
    80f5822c2bf3 ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme
    1b17a0f98ad0 ALSA: pcm: fix incorrect hw_base increase
    a44cb2581718 ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio option
    99e392a4979b KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c
    1c3d707d7d12 ALSA: hda/realtek: Enable headset mic of ASUS UX581LV with ALC295
    26a3a3053332 ALSA: hda/realtek - Enable headset mic of ASUS UX550GE with ALC295
    c5742497dcd2 ALSA: hda/realtek - Enable headset mic of ASUS GL503VM with ALC295
    2523e9010d2b ALSA: hda/realtek: Add quirk for Samsung Notebook
    6cc4dd44e207 ALSA: hda/realtek - Add HP new mute led supported for ALC236
    0d189b31c4d7 ALSA: hda/realtek - Add supported new mute Led for HP
    69d5dc286d05 ALSA: hda: Manage concurrent reg access more properly
    1efaaf74528c ALSA: hda: patch_realtek: fix empty macro usage in if block
    749e58bd2b09 ALSA: hda - constify and cleanup static NodeID tables
    02ebbd1da394 scripts/gdb: repair rb_first() and rb_last()
    9eff404a4382 ARM: futex: Address build warning
    67a5c3104d12 KVM: selftests: Fix build for evmcs.h
    4f48af814798 drm/amd/display: Prevent dpcd reads with passive dongles
    e0bb3075f91b iommu/amd: Call domain_flush_complete() in update_domain()
    e1efb9893bdd platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA
    c8d323578e36 USB: core: Fix misleading driver bug report
    42b32a43529e stmmac: fix pointer check after utilization in stmmac_interrupt
    b68d27c5fffd ceph: fix double unlock in handle_cap_export()
    df0df8ee2ac7 HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
    8a5de4a391e4 gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()
    7932168ec08e x86/apic: Move TSC deadline timer debug printk
    1ae9f1a62a50 ftrace/selftest: make unresolved cases cause failure if --fail-unresolved set
    2eac9d3dc23f ibmvnic: Skip fatal error reset after passive init
    f82a3013226e x86/mm/cpa: Flush direct map alias during cpa
    632db044ab99 HID: i2c-hid: reset Synaptics SYNA2393 on resume
    acd3efa17d96 scsi: ibmvscsi: Fix WARN_ON during event pool release
    6ef21295dc20 net/ena: Fix build warning in ena_xdp_set()
    d0db69f9d132 component: Silence bind error on -EPROBE_DEFER
    7a5f60dc3a67 aquantia: Fix the media type of AQC100 ethernet controller in the driver
    445437b417b6 vhost/vsock: fix packet delivery order to monitoring devices
    dcec6678c3b1 configfs: fix config_item refcnt leak in configfs_rmdir()
    2b52a61adb38 scsi: qla2xxx: Delete all sessions before unregister local nvme port
    d2430cb7f2d4 scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV
    7b481b802a8f HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead
    a08626f6e982 HID: alps: Add AUI1657 device ID
    68988c00b153 HID: multitouch: add eGalaxTouch P80H84 support
    cc6428803d22 gcc-common.h: Update for GCC 10
    3c140d22e3c2 net: drop_monitor: use IS_REACHABLE() to guard net_dm_hw_report()
    87863a7426b2 kbuild: avoid concurrency issue in parallel building dtbs and dtbs_check
    44fd02a3d719 mtd: Fix mtd not registered due to nvmem name collision
    496c7c61bd64 afs: Don't unlock fetched data pages until the op completes successfully
    17c9595cca71 ubi: Fix seq_file usage in detailed_erase_block_info debugfs file
    274cd3c7b5d3 i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'
    dd540f2d7c2d evm: Fix a small race in init_desc()
    f96ab0d1f3ec iommu/amd: Fix over-read of ACPI UID from IVRS table
    33769c19feba i2c: fix missing pm_runtime_put_sync in i2c_device_probe
    9f885f17501d ubifs: remove broken lazytime support
    ac6f94d3be65 fix multiplication overflow in copy_fdtable()
    725b0bb0f94d mtd: spinand: Propagate ECC information to the MTD structure
    e3637eb6a351 ACPI: EC: PM: Avoid flushing EC work when EC GPE is inactive
    3be8ece11440 ubifs: fix wrong use of crypto_shash_descsize()
    48bbd44f5fa9 ima: Fix return value of ima_write_policy()
    1066327bf936 evm: Check also if *tfm is an error pointer in init_desc()
    4aedc534b608 ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
    ac46cea606d5 KVM: SVM: Fix potential memory leak in svm_cpu_init()
    1bed86cfe5cb i2c: dev: Fix the race between the release of i2c_dev and cdev

(From OE-Core rev: ef5af31f406076107402694f5d6afb27b240eba6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 9cd117dec502f40402ebd3a09ed3e8dba804ce2b)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
d1efd89f88 linux-yocto: gather reproducibility configs into a fragment
Updating the meta SRCREV to pickup the following fix:

    commit 9e68afb48b16a447dcd3996ffa350f3e79e44257 (HEAD -> master)
    Author: Bruce Ashfield <bruce.ashfield@gmail.com>
    Date:   Thu May 28 11:22:22 2020 -0400

        features: add reproducibility fragement

        Creating an initial feature fragment that can be included when a
        reproducible kernel build is desired. This is currently only one
        option, but will have more in the future.

        Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>

(From OE-Core rev: 864cc7b3c349c94e34e3129053c2b22c8946c73d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit eaa34c96b60e703c96495e60650adc6d149603f1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
953a9d91be linux-yocto/5.4: temporarily revert IKHEADERS in standard kernels
We had a commit that enabled IKHEADERS, since bpf requires them on
target.

This is still causing incremental reproducibility errors during the
module compilation phase of the build.

We are temporarily turning this off, so we can integrate -stable
and other related changes. A replacement feature "reproducibility"
is also being added to this can be conditionally enabled while
we debug.

(From OE-Core rev: 85c481d13814b889a3d86044dcaac7d4eb685ade)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 5706788603b38ad4a0987e187a1c11c06f4d4e6c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
1152c0353f linux-yocto-rt/5.4: update to rt24
Integrating the following commit(s) to linux-yocto-rt/5.4:

    3d70f110c590 Linux 5.4.40-rt24
    6445e48533d9 Linux 5.4.39-rt23
    0a6ba32d4177 Linux 5.4.37-rt22
    35c686fb7671 Linux 5.4.34-rt21
    e54886570abd Linux 5.4.33-rt20
    307ba149ec47 v5.4.28-rt19
    8d488719e24a mm/compaction: Disable compact_unevictable_allowed on RT (Update)
    d1d2315e077c v5.4.28-rt18
    78028bc22d31 v5.4.26-rt17
    815bfc775961 swait: Remove the warning with more than two waiters
    b23b7f974955 powerpc: Fix lazy preemption for powerpc 32bit
    a79a552889de mm/page_alloc: Use migrate_disable() in drain_local_pages_wq()
    5e488daa19cb mm: Revert the DEFINE_PER_CPU_PAGEVEC implementation

(From OE-Core rev: 9e088d38fbae9a646ed5e608acbb3d3ce172303d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 0123efae31dab8bce15e11fcee0b139a61b67cd6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
e2b8018a31 linux-yocto/5.4: update to v5.4.42
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    1cdaf895c99d Linux 5.4.42
    ecb3f529a554 bpf: Test_progs, fix test_get_stack_rawtp_err.c build
    aee43146cc10 selftest/bpf: fix backported test_select_reuseport selftest changes
    35d9107ad30b libbpf: Extract and generalize CPU mask parsing logic
    10cfaa7456d7 Makefile: disallow data races on gcc-10 as well
    9972e851b9f4 KVM: x86: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce
    9d2487643b4f bpf: Fix sk_psock refcnt leak when receiving message
    d41689a34a9d SUNRPC: Revert 241b1f419f0e ("SUNRPC: Remove xdr_buf_trim()")
    3a8efe589bb6 ARM: dts: r8a7740: Add missing extal2 to CPG node
    cd8ae9b73258 arm64: dts: renesas: r8a77980: Fix IPMMU VIP[01] nodes
    c580f2fe3270 ARM: dts: r8a73a4: Add missing CMT1 interrupts
    8972721aea41 arm64: dts: imx8mn: Change SDMA1 ahb clock for imx8mn
    764715615178 arm64: dts: rockchip: Rename dwc3 device nodes on rk3399 to make dtc happy
    64ad7ef3a6e5 arm64: dts: rockchip: Replace RK805 PMIC node name with "pmic" on rk3328 boards
    af518b5b77fd arm64: dts: meson-g12-common: fix dwc2 clock names
    9b9c52752a11 arm64: dts: meson-g12b-khadas-vim3: add missing frddr_a status property
    01febb33cb6e clk: Unlink clock if failed to prepare or enable
    e2084a8d5fee Revert "ALSA: hda/realtek: Fix pop noise on ALC225"
    5e553801462b usb: gadget: legacy: fix error return code in cdc_bind()
    7e5c1db8ad15 usb: gadget: legacy: fix error return code in gncm_bind()
    8228b6736964 usb: gadget: audio: Fix a missing error return value in audio_bind()
    8ef452001769 usb: gadget: net2272: Fix a memory leak in an error handling path in 'net2272_plat_probe()'
    9f65d776756e fanotify: fix merging marks masks with FAN_ONDIR
    20a6d2455cde dwc3: Remove check for HWO flag in dwc3_gadget_ep_reclaim_trb_sg()
    4f6815e429a8 clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks
    553a2cbca7c3 exec: Move would_dump into flush_old_exec
    136353c5066c x86/unwind/orc: Fix error handling in __unwind_start()
    91b9ce04ff1f x86: Fix early boot crash on gcc-10, third try
    f8e370ccab35 cifs: fix leaked reference on requeued write
    4e06196336a1 powerpc/32s: Fix build failure with CONFIG_PPC_KUAP_DEBUG
    57aa19acfc22 drm/amd/display: add basic atomic check for cursor plane
    97e43314763d ARM: dts: imx6dl-yapp4: Fix Ursa board Ethernet connection
    215589310fa2 ARM: dts: imx27-phytec-phycard-s-rdk: Fix the I2C1 pinctrl entries
    e1409dc95410 ARM: dts: dra7: Fix bus_dma_limit for PCIe
    da55eeb3245a Make the "Reducing compressed framebufer size" message be DRM_INFO_ONCE()
    c6a1ce81b43e usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg list
    6bb054f006c3 USB: gadget: fix illegal array access in binding with UDC
    e6be4400ac34 usb: cdns3: gadget: prev_req->trb is NULL for ep0
    f1a9bed7969a usb: host: xhci-plat: keep runtime active when removing host
    b96a62f506ee usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B
    93dda4f0e2ff ALSA: usb-audio: Add control message quirk delay for Kingston HyperX headset
    3fa58fc9f8c4 ALSA: rawmidi: Fix racy buffer resize under concurrent accesses
    04ccdf6b031d ALSA: hda/realtek - Add COEF workaround for ASUS ZenBook UX431DA
    c9709800eeeb ALSA: hda/realtek - Limit int mic boost for Thinkpad T530
    c737b7533596 USB: usbfs: fix mmap dma mismatch
    0432f7632a24 usb: usbfs: correct kernel->user page attribute mismatch
    dca0ae3900b3 gcc-10: avoid shadowing standard library 'free()' in crypto
    6cbb91bdd3a2 gcc-10: mark more functions __init to avoid section mismatch warnings
    7955081a3a65 gcc-10 warnings: fix low-hanging fruit
    dff2ce17934c gcc-10: disable 'restrict' warning for now
    b8e7b93333db gcc-10: disable 'stringop-overflow' warning for now
    9ba07a72fc5e gcc-10: disable 'array-bounds' warning for now
    a740b68fd169 gcc-10: disable 'zero-length-bounds' warning for now
    8f6a84167e86 Stop the ad-hoc games with -Wno-maybe-initialized
    ab638a49a9f3 net/rds: Use ERR_PTR for rds_message_alloc_sgs()
    b597815ce1e8 pnp: Use list_for_each_entry() instead of open coding
    d4e58131829f NFSv3: fix rpc receive buffer size for MOUNT call
    e26e2a3febcb mm, memcg: fix inconsistent oom event behavior
    46a22f3ea146 s390/ism: fix error return code in ism_probe()
    e1608af17030 hwmon: (da9052) Synchronize access with mfd
    6e7253dc4562 RDMA/iw_cxgb4: Fix incorrect function parameters
    08f187dbd223 RDMA/core: Fix double put of resource
    ee7ce7d7e7c7 IB/core: Fix potential NULL pointer dereference in pkey cache
    b491aeec55fe IB/mlx4: Test return value of calls to ib_get_cached_pkey
    eaad00390ff9 RDMA/rxe: Always return ERR_PTR from rxe_create_mmap_info()
    da532ce587c7 netfilter: nft_set_rbtree: Add missing expired checks
    1c235d0eb1f0 netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
    6259b1c1bca5 SUNRPC: Signalled ASYNC tasks need to exit
    d1538d8d6325 nfs: fix NULL deference in nfs4_get_valid_delegation
    ea7c4d9e542f arm64: fix the flush_icache_range arguments in machine_kexec
    1222b257654b drm/i915/gvt: Fix kernel oops for 3-level ppgtt guest
    a308d6e6861d netfilter: conntrack: avoid gcc-10 zero-length-bounds warning
    b526c01b38ae NFSv4: Fix fscache cookie aux_data to ensure change_attr is included
    021f5799de53 nfs: fscache: use timespec64 in inode auxdata
    ef8195ee1618 NFS: Fix fscache super_cookie index_key from changing after umount
    32b9de3e935d drm/amdgpu: force fbdev into vram
    e1b2b93243ca fork: prevent accidental access to clone3 features
    f256dea07774 gfs2: More gfs2_find_jhead fixes
    18541e49f70b mmc: block: Fix request completion in the CQE timeout path
    e8eb122b9f43 mmc: core: Fix recursive locking issue in CQE recovery path
    fdf547a591f5 mmc: core: Check request type before completing the request
    3a8bc2ae2f79 mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows 10
    e0830bb37734 mmc: alcor: Fix a resource leak in the error path for ->probe()
    62f217e0a9c8 bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size
    ce3193bf8964 bpf, sockmap: msg_pop_data can incorrecty set an sge length
    af1f11fe6667 drm/i915: Don't enable WaIncreaseLatencyIPCEnabled when IPC is disabled
    0d9bc7986366 i40iw: Fix error handling in i40iw_manage_arp_cache()
    95827ac65244 ALSA: firewire-lib: fix 'function sizeof not defined' error of tracepoints format
    5d47b3d6b4d2 bpf: Fix error return code in map_lookup_and_delete_elem()
    5b96668b63c0 pinctrl: cherryview: Add missing spinlock usage in chv_gpio_irq_handler
    aec927836c7d pinctrl: qcom: fix wrong write in update_dual_edge
    604ad1bb8aae pinctrl: baytrail: Enable pin configuration setting for GPIO chip
    960d609dd4dd pinctrl: sunrisepoint: Fix PAD lock register offset for SPT-H
    e529b8db9684 ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake()
    9e54afec08f7 IB/hfi1: Fix another case where pq is left on waitlist
    d942a6a18463 mmc: sdhci-pci-gli: Fix no irq handler from suspend
    171bf6ef038b gfs2: Another gfs2_walk_metadata fix
    87954aacd585 ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse
    05aae468d31a ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
    3c3ade92b62a drm/amdgpu: invalidate L2 before SDMA IBs (v2)
    938489ef2902 drm/amdgpu: simplify padding calculations (v2)
    eefe5e0bb7b7 drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper()
    94cce94badf7 drm/amd/display: Update downspread percent to match spreadsheet for DCN2.1
    f4164b29dc08 drm/amd/display: check if REFCLK_CNTL register is present
    65f3108cbb1d drm/amd/powerplay: avoid using pm_en before it is initialized revised
    8c5f11093ef4 ALSA: hda/hdmi: fix race in monitor detection during probe
    4d1a83cb5afe cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode once
    d12d7bf92b08 selftests/ftrace: Check the first record for kprobe_args_type.tc
    2b313699e7a9 dmaengine: mmp_tdma: Reset channel error on release
    6c414ddee7f0 dmaengine: mmp_tdma: Do not ignore slave config validation errors
    de76c0d4a03c dmaengine: pch_dma.c: Avoid data race between probe and irq handler
    c096a8645e3f riscv: fix vdso build with lld
    2fffdf4dded1 umh: fix memory leak on execve failure
    44ee727013d5 r8169: re-establish support for RTL8401 chip version
    e03d3510f45c nfp: abm: fix error return code in nfp_abm_vnic_alloc()
    2fbd6eca3711 net: tcp: fix rx timestamp behavior for tcp_recvmsg
    fc800ec491c3 netprio_cgroup: Fix unlimited memory leak of v2 cgroups
    cab607a627cf net: ipv4: really enforce backoff for redirects
    d375d99f8902 net: dsa: loop: Add module soft dependency
    b2e8946250c3 hinic: fix a bug of ndo_stop
    d07987924a04 dpaa2-eth: prevent array underflow in update_cls_rule()
    84916465b0f0 virtio_net: fix lockdep warning on 32 bit
    23300d6a39d7 tcp: fix SO_RCVLOWAT hangs with fat skbs
    cb4f78986065 tcp: fix error recovery in tcp_zerocopy_receive()
    f152793058b5 Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu"
    5f93b45fa58c pppoe: only process PADT targeted at local interfaces
    ecb8356aafba net: stmmac: fix num_por initialization
    4300e210b005 net: phy: fix aneg restart in phy_ethtool_set_eee
    debcbc56fdfc netlabel: cope with NULL catmap
    60a4f2ce0596 net: fix a potential recursive NETDEV_FEAT_CHANGE
    97e860545e24 dpaa2-eth: properly handle buffer size restrictions
    425853cc1160 mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040
    a761f65879e8 selftests/bpf: fix goto cleanup label not defined
    2d6d0ce4de03 scsi: sg: add sg_remove_request in sg_write
    7d8da6d7d90c net_sched: fix tcm_parent in tc filter dump
    e2824505a813 sun6i: dsi: fix gcc-4.8
    645b44b6b3b3 virtio-blk: handle block_device_operations callbacks after hot unplug
    fbe2c2c50914 drop_monitor: work around gcc-10 stringop-overflow warning
    23a0a0914a1e ftrace/selftests: workaround cgroup RT scheduling issues
    dbd667a322ac net: moxa: Fix a potential double 'free_irq()'
    2bcd4df42d5d net/sonic: Fix a resource leak in an error handling path in 'jazz_sonic_probe()'
    e15d3d42900a SUNRPC: Fix GSS privacy computation of auth->au_ralign
    3bf0794e7309 SUNRPC: Add "@len" parameter to gss_unwrap()
    3c605abef3ee gpio: pca953x: Fix pca953x_gpio_set_config
    163b48932571 KVM: arm: vgic: Synchronize the whole guest on GIC{D,R}_I{S,C}ACTIVER read
    7abefa3f9a4b net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx phy.
    a12f3ad8d952 shmem: fix possible deadlocks on shmlock_user_lock
    723090ae8ea6 net: dsa: Do not make user port errors fatal
    cbaf23699561 Linux 5.4.41
    9bd5a84ceba3 fanotify: merge duplicate events on parent and child
    4638e0ff0fa4 fsnotify: replace inode pointer with an object id
    03447528a390 bdi: add a ->dev_name field to struct backing_dev_info
    25390a31983c bdi: move bdi_dev_name out of line
    c1af2c13a4ac mm, memcg: fix error return value of mem_cgroup_css_alloc()
    1642f114ce2d scripts/decodecode: fix trapping instruction formatting
    2e86e3841c3c iommu/virtio: Reverse arguments to list_add
    1a31c4456af9 objtool: Fix stack offset tracking for indirect CFAs
    30a38059cdd4 netfilter: nf_osf: avoid passing pointer to local var
    4ccbd9c859dd netfilter: nat: never update the UDP checksum when it's 0
    634c950c624d arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in sev_pin_memory()
    4cbb69b45cad KVM: x86: Fixes posted interrupt check for IRQs delivery modes
    db00b1d9d71a x86/unwind/orc: Fix premature unwind stoppage due to IRET frames
    c9473a0260b2 x86/unwind/orc: Fix error path for bad ORC entry type
    1b4bd44645ac x86/unwind/orc: Prevent unwinding before ORC initialization
    511261578b8b x86/unwind/orc: Don't skip the first frame for inactive tasks
    162e9f141d96 x86/entry/64: Fix unwind hints in rewind_stack_do_exit()
    16aace664b27 x86/entry/64: Fix unwind hints in kernel exit path
    07c4cd680c0b x86/entry/64: Fix unwind hints in register clearing code
    d8eb5a1cde35 batman-adv: Fix refcnt leak in batadv_v_ogm_process
    13f968c8b762 batman-adv: Fix refcnt leak in batadv_store_throughput_override
    b71348105899 batman-adv: Fix refcnt leak in batadv_show_throughput_override
    bee7e9da58ba batman-adv: fix batadv_nc_random_weight_tq
    34ca080088e2 iocost: protect iocg->abs_vdebt with iocg->waitq.lock
    d8c7f015d1a9 riscv: set max_pfn to the PFN of the last page
    480534e03061 coredump: fix crash when umh is disabled
    b8fe132bae66 staging: gasket: Check the return value of gasket_get_bar_index()
    53f453031a20 ceph: demote quotarealm lookup warning to a debug message
    3fd9f902c08a ceph: fix endianness bug when handling MDS session feature bits
    e991f7ded4e1 mm: limit boost_watermark on small zones
    4b49a9660d26 mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous()
    ee922a2f6be9 eventpoll: fix missing wakeup for ovflist in ep_poll_callback
    5d77631de15a epoll: atomically remove wait entry on wake up
    1f3aa3e028c5 ipc/mqueue.c: change __do_notify() to bypass check_kill_permission()
    65f96f4b797e drm: ingenic-drm: add MODULE_DEVICE_TABLE
    0eae1647f145 arm64: hugetlb: avoid potential NULL dereference
    e983c6064a0a KVM: arm64: Fix 32bit PC wrap-around
    3ae9279d725a KVM: arm: vgic: Fix limit condition when writing to GICD_I[CS]ACTIVER
    152d97d0b26f KVM: VMX: Explicitly clear RFLAGS.CF and RFLAGS.ZF in VM-Exit RSB path
    3f23f781290b KVM: s390: Remove false WARN_ON_ONCE for the PQAP instruction
    eb0373fc3871 crypto: arch/nhpoly1305 - process in explicit 4k chunks
    8b166a6f6286 tracing: Add a vmalloc_sync_mappings() for safe measure
    72886ae16a75 USB: serial: garmin_gps: add sanity checking for data length
    4f4dc27c09cd usb: chipidea: msm: Ensure proper controller reset using role switch API
    2419a955172c USB: uas: add quirk for LaCie 2Big Quadra
    b60a086ec733 HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT
    613045bfc63d HID: usbhid: Fix race between usbhid_close() and usbhid_stop()
    1017955fab5b Revert "HID: wacom: generic: read the number of expected touches on a per collection basis"
    a204d577be70 sctp: Fix bundling of SHUTDOWN with COOKIE-ACK
    3fc16b5b1947 HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices
    0aeae7ad9450 net: mvpp2: cls: Prevent buffer overflow in mvpp2_ethtool_cls_rule_del()
    b2930c86ee2b net: mvpp2: prevent buffer overflow in mvpp22_rss_ctx()
    d595dd5ba909 net/mlx5: Fix command entry leak in Internal Error State
    11dd1d0ebfdd net/mlx5: Fix forced completion access non initialized command entry
    18cfbcdf1f41 net/mlx5: DR, On creation set CQ's arm_db member to right value
    6ab4dd433b61 bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features().
    cf07e0ccffde bnxt_en: Return error when allocating zero size context memory.
    76737d877fab bnxt_en: Improve AER slot reset.
    ab1c944361b4 bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF.
    2be3a9e71ce4 bnxt_en: Fix VF anti-spoof filter setup.
    a882d44e5bad tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040
    e9edd5a0f5f5 tipc: fix partial topology connection closure
    f2d581951775 sch_sfq: validate silly quantum values
    017242e3bdb3 sch_choke: avoid potential panic in choke_reset()
    66f7e30273ef nfp: abm: fix a memory leak bug
    8fc441d16183 net: usb: qmi_wwan: add support for DW5816e
    4107cd9a869f net/tls: Fix sk_psock refcnt leak when in tls_data_ready()
    a15ccc88e516 net/tls: Fix sk_psock refcnt leak in bpf_exec_tx_verdict()
    4124b1317f26 net: tc35815: Fix phydev supported/advertising mask
    7bbf73e918be net: stricter validation of untrusted gso packets
    b51b394f4ab1 net_sched: sch_skbprio: add message validation to skbprio_change()
    c78c166748e9 net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc()
    57f6c4340aad net: macsec: preserve ingress frame ordering
    301d6eb32d81 net: macb: fix an issue about leak related system resources
    5ffd49c52bad net: dsa: Do not leave DSA master with NULL netdev_ops
    e781af2fdc2e neigh: send protocol value in neighbor create notification
    89469cf72fae mlxsw: spectrum_acl_tcam: Position vchunk in a vregion list properly
    5d7e1e23efb6 ipv6: Use global sernum for dst validation with nexthop objects
    45b6af95aae7 fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks
    429a89625693 dp83640: reverse arguments to list_add_tail
    6ee2fdf2ba4d devlink: fix return value after hitting end in region read
    b586a95e2606 tty: xilinx_uartps: Fix missing id assignment to the console
    8ca4302bc663 vt: fix unicode console freeing with a common interface
    f4d20b01eaf6 drm/amdgpu: drop redundant cg/pg ungate on runpm enter
    c973b108912a drm/amdgpu: move kfd suspend after ip_suspend_phase1
    8e16ede5b7a1 net: macb: Fix runtime PM refcounting
    eb6f88cd81ac tracing/kprobes: Fix a double initialization typo
    56fc76893f87 nvme: fix possible hang when ns scanning fails during error recovery
    fb1b41128c70 nvme: refactor nvme_identify_ns_descs error handling
    a5d53ad84eb5 USB: serial: qcserial: Add DW5816e support

(From OE-Core rev: 94b473a0c82d77b3a365cbeb6c99a3338b6c7524)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8c4b48a05f54520b4d5fcb5b0e6f74857ca4f1d2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
6f19690b73 kernel/reproducibility: kernel modules need SOURCE_DATE_EPOCH export
If CONFIG_IKHEADERS is set to =m, then reproducibility issues creep
into the modules build, since the variables we are setting for the
main kernel build are not present.

Since the source code must be available for a possibly git query
on the timestamp, there didn't seem to be an easy way to move the
environment variable setting to a common routine. As such, we
duplicate the block of code that exports the required variables for
reproducible builds. There is a maintenance risk to this, but any
issues should be easy enough to catch.

(From OE-Core rev: f511d78164581f80e7b8c592fe88ffbf38738150)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 82cdfcdccfedd320ebc0cdc778c7d4966198b96f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
6777db7ae7 linux-yocto/5.4: update to v5.4.40
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    f015b86259a5 Linux 5.4.40
    2852b559afdf PM / devfreq: Add missing locking while setting suspend_freq
    8e054bd6dfc4 udp: document udp_rcv_segment special case for looped packets
    2a03c23b2015 tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel sources
    f11664da13b9 Revert "drm/amd/display: setting the DIG_MODE to the correct value."
    c365ff781540 mm/mremap: Add comment explaining the untagging behaviour of mremap()
    8f30c3687f09 libbpf: Fix readelf output parsing for Fedora
    88348bd1f696 cgroup, netclassid: remove double cond_resched
    702d710ffd83 mac80211: add ieee80211_is_any_nullfunc()
    468465fdef4d ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()
    da283f9be924 platform/x86: GPD pocket fan: Fix error message when temp-limits are out of range
    03f235a5bd3a x86/kvm: fix a missing-prototypes "vmread_error"
    85701f4768a1 ALSA: hda: Match both PCI ID and SSID for driver blacklist
    b8b42c8dcf44 hexagon: define ioremap_uc
    f31c9e904f1d hexagon: clean up ioremap
    1bc508b2d16d mfd: intel-lpss: Use devm_ioremap_uc for MMIO
    78b19f56b952 lib: devres: add a helper function for ioremap_uc
    7a9b738c7511 Revert "software node: Simplify software_node_release() function"
    b8bb9c3192f9 drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event
    3fb4c93dc761 sctp: Fix SHUTDOWN CTSN Ack in the peer restart case
    9da07c4aeaf7 drm/i915: Extend WaDisableDARBFClkGating to icl,ehl,tgl
    d8e0b58fa471 net: systemport: suppress warnings on failed Rx SKB allocations
    5c065ee4a07d net: bcmgenet: suppress warnings on failed Rx SKB allocations
    fd2c9e605269 mac80211: sta_info: Add lockdep condition for RCU list usage
    07fea3d3ef88 lib/mpi: Fix building for powerpc with clang
    bacf98ee0003 tracing: Fix memory leaks in trace_events_hist.c
    c46330d4dabf cifs: do not share tcons with DFS
    84778248e013 scripts/config: allow colons in option strings for sed
    b31e0bd4a97a cifs: protect updating server->dstaddr with a spinlock
    0560b7c3ba48 ASoC: rsnd: Fix "status check failed" spam for multi-SSI
    883d34cdefea ASoC: rsnd: Don't treat master SSI in multi SSI setup as parent
    15de2df38652 net: stmmac: Fix sub-second increment
    8d5a1ddaa9bb net: stmmac: fix enabling socfpga's ptp_ref_clock
    d3539ea43a37 wimax/i2400m: Fix potential urb refcnt leak
    f0d6b056bc18 drm/amdgpu: Correctly initialize thermal controller for GPUs with Powerplay table v0 (e.g Hawaii)
    a09ba140db2f remoteproc: qcom_q6v5_mss: fix a bug in q6v5_probe()
    b2978c307696 ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry
    f9c3a17786fd ASoC: rsnd: Fix HDMI channel mapping for multi-SSI mode
    26500b980bf8 ASoC: rsnd: Fix parent SSI start/stop in multi-SSI mode
    5087c7f4e7f2 usb: dwc3: gadget: Properly set maxpacket limit
    ab182c06fc22 ASoC: topology: Fix endianness issue
    ae975c8e1062 ASoC: sgtl5000: Fix VAG power-on handling
    3ea62d49613b selftests/ipc: Fix test failure seen after initial test run
    a5dec15686e9 ASoC: topology: Check return value of soc_tplg_dai_config
    fd8f4a3be50b ASoC: topology: Check return value of pcm_new_ver
    0d452c7e309c ASoC: topology: Check soc_tplg_add_route return value
    76336d4fa881 ASoC: topology: Check return value of soc_tplg_*_create
    db80b7cb17d9 ASoC: topology: Check return value of soc_tplg_create_tlv
    04da88c86c2e drm/bridge: analogix_dp: Split bind() into probe() and real bind()
    336c7260a788 vhost: vsock: kick send_pkt worker once device is started
    592465e6a54b Linux 5.4.39
    eeef0d9fd40d selinux: properly handle multiple messages in selinux_netlink_send()
    1de07eb54ab7 arm64: vdso: Add -fasynchronous-unwind-tables to cflags
    73162ca8156f dmaengine: dmatest: Fix process hang when reading 'wait' parameter
    c753a12c88e8 dmaengine: dmatest: Fix iteration non-stop logic
    d458565e3c02 nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl
    779f155811eb nvme: prevent double free in nvme_alloc_ns() error handling
    57165a241302 Fix use after free in get_tree_bdev()
    c0be115eb22d ALSA: opti9xx: shut up gcc-10 range warning
    3af9be5f5c66 i2c: aspeed: Avoid i2c interrupt status clear race condition.
    501ecc8fc9e5 iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled system
    a0000d228dd3 scsi: target/iblock: fix WRITE SAME zeroing
    de59f2fbe6ca iommu/qcom: Fix local_base status check
    205757f476e8 vfio/type1: Fix VA->PA translation for PFNMAP VMAs in vaddr_get_pfn()
    08e90b299d4e vfio: avoid possible overflow in vfio_iommu_type1_pin_pages
    44e2a98e2b58 i2c: iproc: generate stop event for slave writes
    92c99197815d RDMA/cm: Fix an error check in cm_alloc_id_priv()
    4c499dafdd63 RDMA/cm: Fix ordering of xa_alloc_cyclic() in ib_create_cm_id()
    169b8b62717a RDMA/core: Fix race between destroy and release FD object
    1e12524f09a1 RDMA/core: Prevent mixed use of FDs between shared ufiles
    b7b72a16c5b0 RDMA/siw: Fix potential siw_mem refcnt leak in siw_fastreg_mr()
    7665d88f9d0e RDMA/mlx4: Initialize ib_spec on the stack
    80ba1153bc25 RDMA/mlx5: Set GRH fields in query QP on RoCE
    1f5a2162516e scsi: qla2xxx: check UNLOADING before posting async work
    faa8daca0226 scsi: qla2xxx: set UNLOADING before waiting for session deletion
    4438f397ee4c ARM: dts: imx6qdl-sr-som-ti: indicate powering off wifi is safe
    100cf0ba5b5d dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath
    beed763ab934 dm writecache: fix data corruption when reloading the target
    969b9cb1209b dm verity fec: fix hash block number in verity_fec_decode
    c554ab856b66 PM: hibernate: Freeze kernel threads in software_resume()
    8fc24d1029fd PM: ACPI: Output correct message on target power state
    ca662b6014f3 IB/rdmavt: Always return ERR_PTR from rvt_create_mmap_info()
    16cc37b3dc17 dlmfs_file_write(): fix the bogosity in handling non-zero *ppos
    5049385407b4 Drivers: hv: vmbus: Fix Suspend-to-Idle for Generation-2 VM
    95dd3099171e i2c: amd-mp2-pci: Fix Oops in amd_mp2_pci_init() error handling
    ea63e38b29e7 ALSA: pcm: oss: Place the plugin buffer overflow checks correctly
    c867614f196a ALSA: line6: Fix POD HD500 audio playback
    c7577237c228 ALSA: hda/hdmi: fix without unlocked before return
    6426aa65f7ca ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID
    981b7194e82a ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter
    35a9399714db crypto: caam - fix the address of the last entry of S/G
    ca34751b5819 mmc: meson-mx-sdio: remove the broken ->card_busy() op
    9e3315116f7e mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY
    80e99f42608d mmc: sdhci-msm: Enable host capabilities pertains to R1b response
    d8f7e15a65dd mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers
    eed4792f9657 mmc: sdhci-xenon: fix annoying 1.8V regulator warning
    31ba94b893b6 mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout loop
    2b925c4600bf btrfs: transaction: Avoid deadlock due to bad initialization timing of fs_info::journal_info
    67bc5f667a18 btrfs: fix partial loss of prealloc extent past i_size after fsync
    636987650f6b btrfs: fix block group leak when removing fails
    a378abbb8e39 btrfs: fix transaction leak in btrfs_recover_relocation
    e5744821adc9 NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION
    6eb95b35fd39 drm/qxl: qxl_release use after free
    c465bc31ed9f drm/qxl: qxl_release leak in qxl_hw_surface_alloc()
    4441fb2ab0fc drm/qxl: qxl_release leak in qxl_draw_dirty_fb()
    f25335a83cf4 drm/amd/display: Fix green screen issue after suspend
    5ec7eb970df4 drm/edid: Fix off-by-one in DispID DTD pixel clock
    ffd99c012a2e dma-buf: Fix SET_NAME ioctl uapi

(From OE-Core rev: bb126c867adbe3eca3f30670e7b2e84bf98e97cf)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d2fdd473db5446b0e96ad4f774121129fbf94e0e)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:31 +01:00
Bruce Ashfield
8c2f48f17f linux-yocto/5.4: update to v5.4.38
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    9895e0ac338a Linux 5.4.38
    5a54c69c4ef8 Revert "ASoC: meson: axg-card: fix codec-to-codec link setup"
    527c60e8b7a8 Linux 5.4.37
    4e7fb753e803 ASoC: stm32: spdifrx: fix regmap status check
    4104faaeeda0 ASoC: soc-core: disable route checks for legacy devices
    8c472abaedc7 ext4: check for non-zero journal inum in ext4_calculate_overhead
    93af898b251f qed: Fix use after free in qed_chain_free
    f1610480602a net: use indirect call wrappers for skb_copy_datagram_iter()
    ec9cf8afcd64 Crypto: chelsio - Fixes a hang issue during driver registration
    b0946b45b85a qed: Fix race condition between scheduling and destroying the slowpath workqueue
    d15fc1470441 taprio: do not use BIT() in TCA_TAPRIO_ATTR_FLAG_* definitions
    f37079e9ea83 hwmon: (jc42) Fix name to have no illegal characters
    c7b6c51298bd blk-mq: Put driver tag in blk_mq_dispatch_rq_list() when no budget
    3e9299c28fc5 ext4: convert BUG_ON's to WARN_ON's in mballoc.c
    1e4281eba3ff ext4: increase wait time needed before reuse of deleted inode numbers
    0fe3908e6abc ext4: use matching invalidatepage in ext4_writepage
    1876e0e654b8 arm64: Delete the space separator in __emit_inst
    a719f7bf5c88 mac80211: fix channel switch trigger from unknown mesh peer
    9178430df3f7 net: stmmac: socfpga: Allow all RGMII modes
    daafdf87b898 ALSA: hda: call runtime_allow() for all hda controllers
    d9d4ea17d6d6 xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status
    8c627d4b15de objtool: Support Clang non-section symbols in ORC dump
    820126d9a83d objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings
    1cc2460dad82 scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN
    62d350eb31d1 scsi: target: fix PR IN / READ FULL STATUS for FC
    a323f69d00c6 ALSA: hda: Explicitly permit using autosuspend if runtime PM is supported
    bd074af53cb6 ALSA: hda: Keep the controller initialization even if no codecs found
    135e10232fb5 ALSA: hda: Release resources at error in delayed probe
    535ed3f01564 xfs: fix partially uninitialized structure in xfs_reflink_remap_extent
    ec6e5792d62d afs: Fix length of dump of bad YFSFetchStatus record
    16976275b929 signal: check sig before setting info in kill_pid_usb_asyncio
    f88761412b90 x86: hyperv: report value of misc_features
    b5da1152f716 net: fec: set GPR bit on suspend by DT configuration.
    316ad98983d9 libbpf: Initialize *nl_pid so gcc 10 is happy
    3c9bbe7f44f6 bpf, x86: Fix encoding for lower 8-bit registers in BPF_STX BPF_B
    ab6e8af64f39 xfs: clear PF_MEMALLOC before exiting xfsaild thread
    e5329fcdc907 mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path
    309a509dabd5 bpf, x86_32: Fix logic error in BPF_LDX zero-extension
    d0b8695703f2 bpf, x86_32: Fix clobbering of dst for BPF_JSET
    50c5d9146100 bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension
    ca3a2ca4cfa2 um: ensure `make ARCH=um mrproper` removes arch/$(SUBARCH)/include/generated/
    9c5c94c5012c blk-iocost: Fix error on iocost_ioc_vrate_adj
    b9c31556c37b PM: sleep: core: Switch back to async_schedule_dev()
    36c436a8e46a netfilter: nat: fix error handling upon registering inet hook
    9578a8c157b4 perf/core: fix parent pid/tid in task exit events
    c04d01e918d8 sched/core: Fix reset-on-fork from RT with uclamp
    040287785f42 net/mlx5: Fix failing fw tracer allocation on s390
    a8b5611ffee3 s390/pci: do not set affinity for floating irqs
    6cfb8c2ada58 cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled
    05ae98547af9 ARM: dts: bcm283x: Disable dsi0 node
    764a7d0a2756 PCI: Move Apex Edge TPU class quirk to fix BAR assignment
    684dba87fdd7 PCI: Add ACS quirk for Zhaoxin Root/Downstream Ports
    17d166e9535c PCI: Add Zhaoxin Vendor ID
    d2481b5d1257 PCI: Unify ACS quirk desired vs provided checking
    981fd6ad2a5a PCI: Make ACS quirk implementations more uniform
    85a9e198f124 PCI: Add ACS quirk for Zhaoxin multi-function devices
    d2b631a136e8 PCI: Avoid ASMedia XHCI USB PME# from D0 defect
    246ff2a6f69e net/mlx5e: Get the latest values from counters in switchdev mode
    2292e4049097 net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup to avoid WQ overruns
    b4284efb1e14 svcrdma: Fix leak of svc_rdma_recv_ctxt objects
    53dbb934dd4f svcrdma: Fix trace point use-after-free race
    ccd3b4bb9944 xfs: acquire superblock freeze protection on eofblocks scans
    62f1cb491552 net/cxgb4: Check the return from t4_query_params properly
    ce3460b90ed9 rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket
    6cdded333de6 i2c: altera: use proper variable to hold errno
    db2426f86d44 bpf: Forbid XADD on spilled pointers for unprivileged users
    f1317a4a2b9b nfsd: memory corruption in nfsd4_lock()
    13b28f6b6778 drivers: soc: xilinx: fix firmware driver Kconfig dependency
    1157d97cfa2b ASoC: wm8960: Fix wrong clock after suspend & resume
    005aa9f0af9d ASoC: meson: axg-card: fix codec-to-codec link setup
    08865eb796c4 ASoC: tas571x: disable regulators on failed probe
    e9058b45556b ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs
    37405f2963c7 s390/ftrace: fix potential crashes when switching tracers
    1f107e441bde counter: 104-quad-8: Add lock guards - generic interface
    db66fd5fef68 propagate_one(): mnt_set_mountpoint() needs mount_lock
    f9e41e4bbe61 iio:ad7797: Use correct attribute_group
    f581eff93958 afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH
    c2bdc86ec8ac afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate
    9dcb1844f884 usb: gadget: udc: atmel: Fix vbus disconnect handling
    7155416143dd usb: gadget: udc: bdc: Remove unnecessary NULL checks in bdc_req_complete
    8f4cd6f0ea82 kbuild: fix DT binding schema rule again to avoid needless rebuilds
    7067a62563d2 usb: dwc3: gadget: Do link recovery for SS and SSP
    a74a5435a610 ASoC: stm32: sai: fix sai probe
    4a5c9ae67b12 printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
    276224b7a147 ubifs: Fix ubifs_tnc_lookup() usage in do_kill_orphans()
    4d23f544a328 remoteproc: Fix wrong rvring index computation
    aa73bcc37686 Linux 5.4.36
    44d9eb0ebe8f s390/mm: fix page table upgrade vs 2ndary address mode accesses
    58b243cf2786 compat: ARM64: always include asm-generic/compat.h
    3160e84abaf7 powerpc/mm: Fix CONFIG_PPC_KUAP_DEBUG on PPC32
    b48331b52a28 powerpc/kuap: PPC_KUAP_DEBUG should depend on PPC_KUAP
    c4606876164c Revert "serial: uartps: Register own uart console and driver structures"
    02d32033b397 Revert "serial: uartps: Move Port ID to device data structure"
    bbc0423c8968 Revert "serial: uartps: Change uart ID port allocation"
    f7504efa6bf7 Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES"
    3e64d4db7b10 Revert "serial: uartps: Fix error path when alloc failed"
    6fcbf58b115c Revert "serial: uartps: Use the same dynamic major number for all ports"
    1bb43b4d8c32 Revert "serial: uartps: Fix uartps_major handling"
    3af0614df15c serial: sh-sci: Make sure status register SCxSR is read in correct sequence
    fceab238c534 xhci: Don't clear hub TT buffer on ep0 protocol stall
    54470b0bd16a xhci: prevent bus suspend if a roothub port detected a over-current condition
    f385e765ac93 xhci: Fix handling halted endpoint even if endpoint ring appears empty
    8dbfb11452c0 usb: typec: altmode: Fix typec_altmode_get_partner sometimes returning an invalid pointer
    740c93814783 usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change
    11c2089767cd usb: f_fs: Clear OS Extended descriptor counts to zero in ffs_data_reset()
    bf996950d8de usb: dwc3: gadget: Fix request completion check
    a0f1f53ecd8d fpga: dfl: pci: fix return value of cci_pci_sriov_configure
    22432bcf066c UAS: fix deadlock in error handling and PM flushing work
    e1b656677f7d UAS: no use logging any details in case of ENODEV
    f4d1cf2ef83c cdc-acm: introduce a cool down
    892de572ea71 cdc-acm: close race betrween suspend() and acm_softint
    23d44059bc44 staging: vt6656: Power save stop wake_up_count wrap around.
    9f1a23cbef73 staging: vt6656: Fix pairwise key entry save.
    0bcc6585717e staging: vt6656: Fix drivers TBTT timing counter.
    74bbe9d99040 staging: vt6656: Fix calling conditions of vnt_set_bss_mode
    ec5ad5e1958c staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by default.
    64882aa0c531 vt: don't use kmalloc() for the unicode screen buffer
    b027b30d1428 vt: don't hardcode the mem allocation upper bound
    8f8d7f07d951 staging: comedi: Fix comedi_device refcnt leak in comedi_open
    279dd75cec55 staging: comedi: dt2815: fix writing hi byte of analog output
    dba6465408b8 powerpc/setup_64: Set cache-line-size based on cache-block-size
    921b7b175605 ARM: imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y
    eabc107d20da cifs: fix uninitialised lease_key in open_shroot()
    562489ba1078 iwlwifi: mvm: fix inactive TID removal return value usage
    f1926b14bd8f iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation
    c93fb506bfaf iwlwifi: mvm: limit maximum queue appropriately
    4025ac3d7fb7 iwlwifi: mvm: beacon statistics shouldn't go backwards
    222722be70de iwlwifi: pcie: actually release queue memory in TVQM
    7e69c9e6bbf3 SUNRPC: Fix backchannel RPC soft lockups
    d62d85260ac4 mac80211: populate debugfs only after cfg80211 init
    f67f3317ceb3 ASoC: dapm: fixup dapm kcontrol widget
    83f82fd5552c audit: check the length of userspace generated audit records
    20821047aca4 signal: Avoid corrupting si_pid and si_uid in do_notify_parent
    1b4e23a945bd usb-storage: Add unusual_devs entry for JMicron JMS566
    9de9003b255e tty: rocket, avoid OOB access
    f1c0d3243dbe tty: hvc: fix buffer overflow during hvc_alloc().
    52ca311e5f82 KVM: VMX: Enable machine check support for 32bit targets
    878127ac8b70 KVM: Check validity of resolved slot when searching memslots
    347125705f02 KVM: s390: Return last valid slot if approx index is out-of-bounds
    3fc644fd6100 tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send()
    16244edc3bbe tpm: fix wrong return value in tpm_pcr_extend
    86f1c523d422 tpm/tpm_tis: Free IRQ if probing fails
    387039b25077 ALSA: usb-audio: Filter out unsupported sample rates on Focusrite devices
    d5cd82153629 ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif
    dbb11f1d6d33 ALSA: hda/hdmi: Add module option to disable audio component binding
    1e1f9d36280f ALSA: hda/realtek - Add new codec supported for ALC245
    0939d06af06f ALSA: hda/realtek - Fix unexpected init_amp override
    16e373fe61cb ALSA: usx2y: Fix potential NULL dereference
    000515184f6f tools/vm: fix cross-compile build
    5126bdeaf980 mm/ksm: fix NULL pointer dereference when KSM zero page is enabled
    3c88e95cd167 mm/hugetlb: fix a addressing exception caused by huge_pte_offset
    a77daafc2e37 coredump: fix null pointer dereference on coredump
    fcfd63da5d82 staging: gasket: Fix incongruency in handling of sysfs entries creation
    f4f235309b5c vmalloc: fix remap_vmalloc_range() bounds checks
    3d15344e23c5 tty: serial: owl: add "much needed" clk_prepare_enable()
    4fbf19bbba6a USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration scheme first for high speed devices")
    50ad463e20bf USB: hub: Fix handling of connect changes during sleep
    b48193a7c303 USB: core: Fix free-while-in-use bug in the USB S-Glibrary
    1d53402d89d7 USB: early: Handle AMD's spec-compliant identifiers, too
    8409f83e3e81 USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair K70 RGB RAPIDFIRE
    b7758cd38b94 USB: sisusbvga: Change port variable from signed to unsigned
    557f3f549217 iio: xilinx-xadc: Make sure not exceed maximum samplerate
    b3e365a07016 iio: xilinx-xadc: Fix sequencer configuration for aux channels in simultaneous mode
    cf2849c9ef46 iio: xilinx-xadc: Fix clearing interrupt when enabling trigger
    6a956eb2e1a7 iio: xilinx-xadc: Fix ADC-B powerdown
    f83a969fcb0b iio: adc: ti-ads8344: properly byte swap value
    db168069b0d6 iio: adc: stm32-adc: fix sleep in atomic context
    02311bc13344 iio: st_sensors: rely on odr mask to know if odr can be set
    14952589c9d8 iio: core: remove extra semi-colon from devm_iio_device_register() macro
    12c02c473e86 ALSA: usb-audio: Add connector notifier delegation
    6ec99b94a3a0 ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos
    23abb5f2faea ALSA: hda: Remove ASUS ROG Zenith from the blacklist
    419d8fb1630c KEYS: Avoid false positive ENOMEM error on key read
    b1bcb485dd6b vrf: Check skb for XFRM_TRANSFORMED flag
    dfbbb4557af4 xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish
    ace87b487a5f geneve: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
    b977fe1c9e80 vxlan: use the correct nlattr array in NL_SET_ERR_MSG_ATTR
    51c935f6c6ef net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL
    cb1a18a7d328 net: dsa: b53: Rework ARL bin logic
    2cc27f102dcd net: dsa: b53: Fix ARL register definitions
    1fae6eb0fc91 net: dsa: b53: Fix valid setting for MDB entries
    2537dc9e2c03 net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled
    07856b2108cf vrf: Fix IPv6 with qdisc and xfrm
    755425c1b004 team: fix hang in team_mode_get()
    3f642d785a51 tcp: cache line align MAX_TCP_HEADER
    8a60fad4495d selftests: Fix suppress test in fib_tests.sh
    a3afaa5033f4 sched: etf: do not assume all sockets are full blown
    5a2ddf8e5a5d net/x25: Fix x25_neigh refcnt leak when receiving frame
    6885d58eb439 net: stmmac: dwmac-meson8b: Add missing boundary to RGMII TX clock array
    4acc0b18f7af net: openvswitch: ovs_ct_exit to be done under ovs_lock
    21b1a767eba6 net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node
    befd63a980cc net/mlx4_en: avoid indirect call in TX completion
    49bbf322316c net: bcmgenet: correct per TX/RX ring statistics
    aa6a14bc4102 mlxsw: Fix some IS_ERR() vs NULL bugs
    d5ba4c22928f macvlan: fix null dereference in macvlan_device_event()
    70a37b9816f3 macsec: avoid to set wrong mtu
    2d197d8e1aa4 ipv6: fix restrict IPV6_ADDRFORM operation
    382f57b996aa ipv4: Update fib_select_default to handle nexthop objects
    3b759befd7f2 cxgb4: fix large delays in PTP synchronization
    d02f4242650d cxgb4: fix adapter crash due to wrong MC size
    91097eba10d3 PCI/PM: Add missing link delays required by the PCIe spec
    7720fd9c679e PCI/ASPM: Allow re-enabling Clock PM
    3340d011cff4 scsi: smartpqi: fix problem with unique ID for physical device
    d867f2757173 scsi: smartpqi: fix call trace in device discovery
    8a20fb1c9a49 scsi: smartpqi: fix controller lockup observed during force reboot
    3edd55247295 virtio-blk: improve virtqueue error to BLK_STS
    2390698b9dbd tracing/selftests: Turn off timeout setting
    ca958fe8af20 ASoC: SOF: trace: fix unconditional free in trace release
    01fad934f1bd PCI: pciehp: Prevent deadlock on disconnect
    39b9a0b3d24d libbpf: Fix readelf output parsing on powerpc with recent binutils
    b91ae5994725 PCI/PM: Add pcie_wait_for_link_delay()
    df38cda0144a drm/amd/display: Not doing optimize bandwidth if flip pending.
    2be21320076d xhci: Finetune host initiated USB3 rootport link suspend and resume
    ea6f7011c42d xhci: Wait until link state trainsits to U0 after setting USB_SS_PORT_LS_U0
    e650a264df6f xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3
    bdb61374da1b ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk
    578aa47612f2 ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet
    632d9736d215 drm/amd/display: Calculate scaling ratios on every medium/full update
    16c370534d6c perf/core: Disable page faults when getting phys address
    41a3e446bc56 pwm: bcm2835: Dynamically allocate base
    53cdc935c912 pwm: renesas-tpu: Fix late Runtime PM enablement
    1bfb6423c6fc nvme: fix compat address handling in several ioctls
    de1263d4306e powerpc/pseries: Fix MCE handling on pseries
    107290a8f06b Revert "powerpc/64: irq_work avoid interrupt when called with hardware irqs enabled"
    1712911bfb34 loop: Better discard support for block devices
    ed61eec49a70 s390/cio: avoid duplicated 'ADD' uevents
    ad1187668ffe s390/cio: generate delayed uevent for vfio-ccw subchannels
    8652254e96a6 lib/raid6/test: fix build on distros whose /bin/sh is not bash
    e84ef75fa184 kconfig: qconf: Fix a few alignment issues
    cb5d9604038c ipc/util.c: sysvipc_find_ipc() should increase position index
    70638a74c52a selftests: kmod: fix handling test numbers above 9
    16846f6fcbcf kernel/gcov/fs.c: gcov_seq_next() should increase position index
    1edfff795d4f dma-direct: fix data truncation in dma_direct_get_required_mask()
    8300465623bf drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax
    da2c733a7180 nvme: fix deadlock caused by ANA update wrong locking
    90a33c23aad8 ASoC: Intel: atom: Take the drv->lock mutex before calling sst_send_slot_map()
    1310d9655be0 tools/test/nvdimm: Fix out of tree build
    713ad9b9d37a scsi: iscsi: Report unbind session event when the target has been removed
    f507ae6e33cb nvme-tcp: fix possible crash in write_zeroes processing
    a5f036adae09 pwm: rcar: Fix late Runtime PM enablement
    b71ac8086a7b ceph: don't skip updating wanted caps when cap is stale
    acbfccc6a3e3 ceph: return ceph_mdsc_do_request() errors from __get_parent()
    fb669262fdef scsi: libfc: If PRLI rejected, move rport to PLOGI state
    8427b05a7a1f scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG
    0c5733a96261 scsi: lpfc: Fix crash after handling a pci error
    9d1062c4dd14 scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login
    66491dadd125 watchdog: reset last_hw_keepalive time at start
    7b709f1ba800 tools/testing/nvdimm: Fix compilation failure without CONFIG_DEV_DAX_PMEM_COMPAT
    810045068bda arm64: Silence clang warning on mismatched value/register sizes
    aa50d567ec4a arm64: compat: Workaround Neoverse-N1 #1542419 for compat user-space
    6de0c621191a arm64: Fake the IminLine size on systems affected by Neoverse-N1 #1542419
    f2791551cedb arm64: errata: Hide CTR_EL0.DIC on systems affected by Neoverse-N1 #1542419
    4b823bf7c2ca net, ip_tunnel: fix interface lookup with no key
    5811f24abd27 f2fs: fix to avoid memory leakage in f2fs_listxattr
    79ad14904152 ext4: fix extent_status fragmentation for plain files
    0c418786cb3a Linux 5.4.35
    a801a05ca714 bpf, test_verifier: switch bpf_get_stack's 0 s> r8 test
    8781011a302b bpf: Test_progs, add test to catch retval refine error handling
    37e1cdff90c1 bpf: Test_verifier, bpf_get_stack return value add <0
    3bd5bcafbbf3 bpf: fix buggy r0 retval refinement for tracing helpers
    f1afcf9488fc KEYS: Don't write out to userspace while holding key semaphore
    5d53bfdce008 mtd: phram: fix a double free issue in error path
    4191ebe1fc71 mtd: lpddr: Fix a double free in probe()
    7d4adb1d3c69 docs: Fix path to MTD command line partition parser
    318d5088fdfe mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB
    700bccb8e9a2 mtd: rawnand: free the nand_device object
    0c72ec11d8bd locktorture: Print ratio of acquisitions, not failures
    01c9e2a9fc5c tty: evh_bytechan: Fix out of bounds accesses
    f656649089a3 fbmem: Adjust indentation in fb_prepare_logo and fb_blank
    47e4d791d514 iio: si1133: read 24-bit signed integer for measurement
    a2a385aae551 ARM: dts: sunxi: Fix DE2 clocks register range
    7e141c307834 fbdev: potential information leak in do_fb_ioctl()
    f0938746879a dma-debug: fix displaying of dma allocation type
    bc69709c54df net: dsa: bcm_sf2: Fix overflow checks
    762d35aa906f drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init
    a156e67acf6c f2fs: fix to wait all node page writeback
    f08e4e70b0ac iommu/amd: Fix the configuration of GCR3 table root pointer
    436af737c3c2 libnvdimm: Out of bounds read in __nd_ioctl()
    dcb122749f58 power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks.
    760eecac993b csky: Fixup init_fpu compile warning with __init
    1500c7003146 sunrpc: Fix gss_unwrap_resp_integ() again
    ddb8812a21e1 ext2: fix debug reference to ext2_xattr_cache
    24191c8c9bd2 iommu/vt-d: Fix page request descriptor size
    a5a1d567a069 iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr()
    21439dff919e ext2: fix empty body warnings when -Wextra is used
    d00041a48c3e SUNRPC: fix krb5p mount to provide large enough buffer in rq_rcvsize
    900cd0f6c688 iommu/vt-d: Fix mm reference leak
    9c01a49a7117 iommu/virtio: Fix freeing of incomplete domains
    475bec7063bc drm/vc4: Fix HDMI mode validation
    b58244c482ce um: falloc.h needs to be directly included for older libc
    6c3339269a8a ACPICA: Fixes for acpiExec namespace init file
    9f8b1216dac9 f2fs: fix NULL pointer dereference in f2fs_write_begin()
    57615a8561f0 csky: Fixup get wrong psr value from phyical reg
    c848e00e3b95 NFS: Fix memory leaks in nfs_pageio_stop_mirroring()
    2e03d3c569b6 drm/amdkfd: kfree the wrong pointer
    e907a0d09b34 csky: Fixup cpu speculative execution to IO area
    88591187bebc x86: ACPI: fix CPU hotplug deadlock
    a9282e58238d leds: core: Fix warning message when init_data
    ddf39dc2f7a3 drm/nouveau: workaround runpm fail by disabling PCI power management on certain intel bridges
    f24d8de03b72 KVM: s390: vsie: Fix possible race when shadowing region 3 tables
    3910babeac1a compiler.h: fix error in BUILD_BUG_ON() reporting
    b525f94f16e5 percpu_counter: fix a data race at vm_committed_as
    ffac60b8bc5f include/linux/swapops.h: correct guards for non_swap_entry()
    2a40eaab1fc4 drm/nouveau/svm: fix vma range check for migration
    f3955f1e58be drm/nouveau/svm: check for SVM initialized before migrating
    a825ce86ebed mm/hugetlb: fix build failure with HUGETLB_PAGE but not HUGEBTLBFS
    23e2519760f8 cifs: Allocate encryption header through kmalloc
    6ba010ea4856 um: ubd: Prevent buffer overrun on command completion
    b9f88c31b266 ext4: do not commit super on read-only bdev
    4078dceb1228 s390/cpum_sf: Fix wrong page count in error message
    fd80f4a6805c powerpc/maple: Fix declaration made after definition
    bee9bc3e0248 powerpc/prom_init: Pass the "os-term" message to hypervisor
    765052217847 btrfs: add RCU locks around block group initialization
    285f25c97f24 hibernate: Allow uswsusp to write to swap
    4753b111f003 s390/cpuinfo: fix wrong output when CPU0 is offline
    380d12904603 f2fs: Add a new CP flag to help fsck fix resize SPO issues
    066f1e4174f2 f2fs: Fix mount failure due to SPO after a successful online resize FS
    ea468f37370a NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails
    81b41f5ecc96 phy: uniphier-usb3ss: Add Pro5 support
    3e85d501828c f2fs: fix to show norecovery mount option
    ffbad91b66ce KVM: PPC: Book3S HV: Fix H_CEDE return code for nested guests
    ea410f2a1fc8 ARM: dts: rockchip: fix lvds-encoder ports subnode for rk3188-bqedison2qc
    59bafdc99440 NFSv4.2: error out when relink swapfile
    264e3f1597e8 NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid()
    07cd4e8f745c NFS: alloc_nfs_open_context() must use the file cred when available
    66bfacd0f302 rtc: 88pm860x: fix possible race condition
    56aaa0e8c92a dma-coherent: fix integer overflow in the reserved-memory dma allocation
    960bf4e436ca soc: imx: gpc: fix power up sequencing
    1e7abaf24875 arm64: dts: clearfog-gt-8k: set gigabit PHY reset deassert delay
    d7b59cd020f7 arm64: tegra: Fix Tegra194 PCIe compatible string
    5615f66bfdfc arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194
    540f9620f192 clk: tegra: Fix Tegra PMC clock out parents
    b7dee304aa0e power: supply: bq27xxx_battery: Silence deferred-probe error
    6a7721714835 arm64: dts: allwinner: a64: Fix display clock register range
    5d2861f840bb ARM: dts: rockchip: fix vqmmc-supply property name for rk3188-bqedison2qc
    1321fb4320e7 f2fs: fix the panic in do_checkpoint()
    6d4330391c49 net/mlx5e: Enforce setting of a single FEC mode
    0d03cbfdf364 clk: at91: usb: continue if clk_hw_round_rate() return zero
    04e43c7c664a clk: Don't cache errors from clk_ops::get_phase()
    83321ee302e3 drm/ttm: flush the fence on the bo after we individualize the reservation object
    94ebb1eea0e7 x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump
    d662b44161e4 rbd: call rbd_dev_unprobe() after unwatching and flushing notifies
    88a57e387cf0 rbd: avoid a deadlock on header_rwsem when flushing notifies
    a362482b2325 block, bfq: invoke flush_idle_tree after reparent_active_queues in pd_offline
    839b7cd1d8bc block, bfq: make reparent_leaf_entity actually work only on leaf entities
    ad749ca022ad block, bfq: turn put_queue into release_process_ref in __bfq_bic_change_cgroup
    00d392873771 afs: Fix race between post-modification dir edit and readdir/d_revalidate
    42e343cf3285 afs: Fix afs_d_validate() to set the right directory version
    8c3e4ba0fa7a afs: Fix rename operation status delivery
    4eba6ec9644a afs: Fix decoding of inline abort codes from version 1 status records
    0604b60ef9d7 afs: Fix missing XDR advance in xdr_decode_{AFS,YFS}FSFetchStatus()
    4f7b1e892ed0 x86/Hyper-V: Report crash data in die() when panic_on_oops is set
    5097186b279a x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set
    31ebf98817c6 x86/Hyper-V: Report crash register data or kmsg before running crash kernel
    1ed38a98478f x86/Hyper-V: Trigger crash enlightenment only once during system crash.
    9f38f7b46de0 x86/Hyper-V: Unload vmbus channel in hv panic callback
    4c2a34f9f448 of: overlay: kmemleak in dup_and_fixup_symbol_prop()
    93ef21bb1a72 of: unittest: kmemleak in of_unittest_overlay_high_level()
    a1371954ee49 of: unittest: kmemleak in of_unittest_platform_populate()
    dd3dd28241e0 of: unittest: kmemleak on changeset destroy
    25c9cdef5748 xsk: Add missing check on user supplied headroom size
    9244c79da15c ALSA: hda: Don't release card at firmware loading error
    182fa4d72a7c irqchip/mbigen: Free msi_desc on device teardown
    daefa51c4353 netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type
    aea3873fb02c kbuild, btf: Fix dependencies for DEBUG_INFO_BTF
    e1e5c219f033 ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN.
    ed0a5355aa62 ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops
    d8b667b45d72 scsi: sg: add sg_remove_request in sg_common_write
    d979eda8a72b objtool: Fix switch table detection in .text.unlikely
    2613535abd3b arm, bpf: Fix offset overflow for BPF_MEM BPF_DW
    d4adee8e8f2f arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0
    e7f6c25bafa6 xsk: Fix out of boundary write in __xsk_rcv_memcpy
    9a9eae78529c watchdog: sp805: fix restart handler
    41d097c83343 ext4: use non-movable memory for superblock readahead

(From OE-Core rev: dc05c81a0f74f7a7cc2852e5e66b871514b77817)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 2503b1a55b3525ad8f97d3adafd442688dbd4397)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Trevor Gamblin
1bb406b092 qemuarm: check serial consoles vs /proc/consoles
Note that this patch affects qemuarm AND qemuarm64.

When booting a VM and during operation, the following message
periodically appears:

INIT: Id "hvc0" respawning too fast: disabled for 5 minutes

This is because hvc0 is specified in SERIAL_CONSOLES in qemuarm.conf
and qemuarm64.conf, but it is not in /proc/consoles and
SERIAL_CONSOLES_CHECK is not specified, leaving getty to attempt to
enable hvc0. Add SERIAL_CONSOLES_CHECK to both conf files so that
hvc0 isn't enabled if it hasn't been set there or in local.conf.

(From OE-Core rev: e2658a7d73b6f21939e644e533718cd05b288766)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 982b7f98b8423236cc986346379b1bde3694f131)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Mark Hatle
45d742b0e0 sstate.bbclass: When siginfo or sig files are missing, stop fetcher errors
Prior to fetching, the system checks if the sstate file is present
either locally or on the mirror.  If it is, then it goes to the fetch
stage.  Up to three files can be fetched, sstate, sstate.siginfo and
sstate.sig (if signature validation is enabled).

The previous pstaging_fetch function would iterate over these, and if
a download error occurred would spew forth a great amount of fetcher
failure messages as well as stop fetching the next item in the set.

This was resolved by adding a fetcher.checkstatus() call prior to
the download.  If the file isn't present, then the exception will
be triggered, and no fetcher failure messages will reach the user.

The exception handler is then modified to be a pass so that it will
loop and pull the rest of the files that that are requested.

Additionally, a check for the existance of the .sig file was added
to the sstate_installpkg to avoid an error trying to load the .sig
if it wasn't downloaded.

(From OE-Core rev: ec58532ab6fc6343144da67789c928c751d36c06)

Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a9085140434e2d26c0bb75bb53fcb7f7c19ef86d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Khem Raj
4c582f5cf1 make-mod-scripts: Fix a rare build race condition
There is a build break which rarely happens but is seen often enough
with 4.1 kernel based builds

/bin/sh: 1: scripts/basic/fixdep: Permission denied
scripts/Makefile.host:124: recipe for target 'scripts/dtc/srcpos.o' failed
make[3]: *** [scripts/dtc/srcpos.o] Error 126

this patch sequences the build targets so it can work reliably with
different kernel versions

Divide the target into scripts_basic scripts is not
strictly necessary and was simply what was used for
testing on kernel 4.1, which is quite an old kernel

perhaps just using scripts is sufficient, but it is not tested to not
known will cause the build race as seen above.

(From OE-Core rev: 8a7da39c04fbab1280c464f39a791e4fbd1e7da9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 55ac6e2d251287419138931aa0d0894cf1267787)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Konrad Weihmann
9aefaf5de9 qemurunner: fix ip fallback detection
When falling back from detecting ip from /proc/./cmdline the
output of runqemu is acutally
'Network configuration: ip=192.168.7.2::192.168.7.1::255.255.255.0'
which doesn't match the given regex and leading to run failure, although
IP is detectable.
Fix regex by inserting an optional 'ip=' prefix to first IP

(From OE-Core rev: 9c2efe41d5d894094552c4bbc4180675a5aac751)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 75f2471d15fab024775c59cb70c54e3f25f9ae72)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Adrian Bunk
56035c1714 libubootenv: Remove the DEPENDS on mtd-utils
It was only used for pulling in zlib, but this is now
a direct dependency.

Also move the DEPENDS to a more common location in the file.

(From OE-Core rev: ce5500cc07da270322b67db5001fc1476b6bf2fe)

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a99fd8b705be3b8c70cb0f17f60b013d989d625c)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Lee Chee Yang
200e6be175 libexif: fix CVE-2020-13114
(From OE-Core rev: 2e497029ee00babbc50f3c1d99580230bc46155c)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Lee Chee Yang
2119777dab bind: fix CVE-2020-8616/7
fix CVE-2020-8616 and CVE-2020-8617

(From OE-Core rev: 8681058cce46b342c9895819e3a4bc0770934d86)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit d0df831830e4c5f8df2343a45ea75c2ab4f57058)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Joe Slater
7f887005f9 terminal.py: do not stop searching for auto
If a terminal fails to spawn() we should continue looking.
gnome-terminal, in particular can be present but not start.

(From OE-Core rev: 5ca00faa9c085fef1781b66561de461e9cc5b117)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 6e4babdeee38d32002a4c9129e77466ae4156dd7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Richard Purdie
53559bb82d resulttool/log: Add ability to dump ltp logs as well as ptest
Currently only ptest logs are accessible with the log command, this
adds support so the ltp logs can be extracted too.

(From OE-Core rev: 0b513274a0ae722065cf1a605090000e854e2f81)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 64a2121a875ce128959ee0a62e310d5f91f87b0d)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Richard Purdie
212c92482c resulttool/report: Remove leftover debugging
I've long since wondered why there was some odd output in result reports,
remove the leftover debug which was causing it.

(From OE-Core rev: 10d1d2ffa0906561d65886caee44652242139913)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 66e96bf70753933714ff8edcc13a1f35a052656f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Robert Yang
7c65513587 archiver.bbclass: Fix duplicated SRC_URIs for do_ar_original
The argument urls of bb.fetch2.Fetch(urls, d) are duplicated to SRC_URI, which caused errors like:

bb.data_smart.ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure: The SRCREV_FORMAT variable must be set when multiple SCMs are used.
The SCMs are:
git://github.com/docker/notary.git;destsuffix=git/src/github.com/docker/notary
git://github.com/docker/notary.git

The first one is from original SRC_URI, the second one is from the
variable 'urls', so cleanup SRC_URI before call bb.fetch2.Fetch() can fix the
problem.

(From OE-Core rev: a7f50876f95a9be9fe045af1e4efddfe53a983f5)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit b244c4f3427cd07376d4b8f7d27e38735bcc90e7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Gregor Zatko
6dc4f62bcc sanity.bbclass: Detect and fail if 'inherit' is used in conf file
'inherit' directive may not be used in conf files as it's supposed
to be used for the inheritance of classes.
Correct form in conf file is INHERIT.

This commit adds:
- a sanity check to find whether the wrong case exists
- fail the build if so
- tell user about the difference in directives

[YOCTO #5426]

(From OE-Core rev: bc6e27aeed5d536d2b764949c307f260f78b7810)

Signed-off-by: Gregor Zatko <gzatko@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 07bf9b460fe97dec86439302a83bbefa8bac9d70)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Steve Sakoman
45c4dbf32e oeqa/concurrencytest: don't delete build directory for failed tests
(From OE-Core rev: be24033acee75526a3a66c12606ef67dcb52a7ee)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 3d5aa170d2e88b852bd2a4452aab9311a24badef)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Joshua Watt
5b65a822d6 checklayer: Skip layers without a collection
As in other places in the file, skip layers that don't define a
collection when searching for a layer to resolve a dependency. Fixes
KeyError exceptions when attempting to access the layer collections
later

(From OE-Core rev: ae65adf471a9ad04c6a44bf020a28f1006db106a)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 26090a2861ebe21224aaf89d7be0c0a89ca58e48)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Khem Raj
e9c66dd898 cve-check: Run it after do_fetch
Certain recipes e.g. bash readline ( from meta-gplv2 ) download patches instead of having them in
metadata, this could fail cve_check

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

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

(From OE-Core rev: dbf143d79476e54e8da93101fc16eaedeec88362)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit e406fcb6c609a0d2456d7da0d2406d2d9fa52dd2)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-05 21:36:30 +01:00
Steve Sakoman
6436d102f1 Documenation: Prepared for the 3.1.1 release
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:38 +01:00
Robert P. J. Day
d0df44077b ref-manual: delete long-unused comments in variable glossary
As these comments have been around since 2015 and apparently unused,
get rid of hundreds of them.

(From yocto-docs rev: 98687310b9e2d4cd3bd4c96e100877414dcf791c)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit afec5770a22ac51c956e87567bf39e71064e9f04)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:38 +01:00
Robert P. J. Day
9c7484d341 ref-manual: Remove long-dead PACKAGE_GROUP variable
This was, years ago, deprecated in favour of FEATURE_PACKAGES, so
remove all references, other than the entry in the migration section.

(From yocto-docs rev: 2deac02f283547f66d1f7a002f5bf07ddd449401)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:38 +01:00
Robert P. J. Day
9cff09000f ref-manual: typo "SSTATE_MIRROR" -> "SSTATE_MIRRORS"
(From yocto-docs rev: 7c4d45e50422fa6e6cb607b0df2abdbb41ffd6d1)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:38 +01:00
Robert P. J. Day
9d777c388d ref-manual: IMAGE_TYPES, add tar.zst, delete elf
Update list of legal IMAGE_TYPES to match what's in
image_types.bbclass.

(From yocto-docs rev: 5edeb02f5154c17902b74739052e46d4223473b3)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:38 +01:00
Robert P. J. Day
db51b0943b ref-manual: fix excessive command indentation
(From yocto-docs rev: e3a74639609e99357b23a5702c38a7a943713cdc)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-06-02 15:47:37 +01:00
Paul Barker
9c80490684 avahi: Don't advertise example services by default
The example service files are placed into /etc/avahi/services when we
run `make install` for avahi. This results in ssh and sftp-ssh services
being announced by default even if no ssh server is installed in an
image.

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

(From OE-Core rev: c88cf750f26f6786d6ba5b4f1f7e5d4f0c800e6e)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Adrian Bunk
df1424206a wireless-regdb: Upgrade 2019.06.03 -> 2020.04.29
(From OE-Core rev: 5b71a3f3d1bca6b52f53b97971131a6771618420)

(From OE-Core rev: 5472a4f30aa1c599ca85efc3f973f2fd9dbc4476)

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Adrian Bunk
4924f7f99f git: Upgrade 2.24.1 -> 2.24.3
This includes the fixes for CVE-2020-5260 and CVE-2020-11008.

(From OE-Core rev: 46da8ac6d25bb75c625c2da1d36cbc693a7d442d)

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Jan-Simon Moeller
99bb209520 file: add bzip2-replacement-native to DEPENDS to fix sstate issue
file-native when built on a Debian 10 host will embed a dependency to
'libbz2.so.1.0' (instead of 'libbz2.so.1'). This can cause issues
when sharing the sstate between hosts e.g.:

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

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

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

(From OE-Core rev: 5a2bc3bfa9e1a4f37b6e26a5c40a4a9c025d03f1)

Signed-off-by: Jan-Simon Moeller <dl9pf@gmx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 4a996574464028bd5d57b90920d0887d1a81e9e9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Alexander Kanavin
2acb49212e testresults.json: add duration of the tests as well
This is printed by testimage, but isn't actually saved.
It's a useful metric for tracking execution times.

(From OE-Core rev: 866c652c850d9e23300218fcbe0b9e4b3ade2ebf)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 8fc19639f47b959a141dae231395bbababa644e1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Quentin Schulz
b7fa39c31a base/insane: Check pkgs lics are subset of recipe lics only once
Move logic checking that all packages licenses are only a subset of
recipe licenses from base.bbclass to the insane.bbclass so that it's
evaluated only once, during do_package_qa.

As explained in the linked bugzilla entry, if a package license is not
part of the recipe license, the warning message gets shown an
unreasonable amount of time because it's evaluated every time a recipe
is parsed.

[YOCTO #10130]

This also makes it possible to silence this error with INSANE_SKIP.

(From OE-Core rev: ae404ef230882e442e9390b314e1ce023fdbbd1b)

Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 852408ed4be1f64c57e196688728b7ed223d3493)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:29 +01:00
Lee Chee Yang
0a8d17cdbe qemu: fix CVE-2020-11869
(From OE-Core rev: 1af607d9e635e7cf2f6cf3e4c6d05f1e2cb6acc9)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 5f01d45266bbc0d0f1a32d10c0841326193cc9c1)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Marek Vasut
6955683b99 libubootenv: Depend on zlib
The libubootenv depends on zlib as it calls at least crc32() from
there and links against it. Add the DEPENDS entry.

(From OE-Core rev: dc5babe9472ba7379edbb17b6cbac44604606b26)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Stefano Babic <sbabic@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit db513f9ec59b7ac526b2cdc42b0eb2573e134bc4)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
zhengruoqin
4ebe10ffde make-mod-scripts: Fix dependence error.
Error:
 Problem: conflicting requests
  - nothing provides make-mod-scripts = 1.0-r0 needed by
make-mod-scripts-dev-1.0-r0

(From OE-Core rev: 354adf441ac880fe3759af594f9669c3a7eb3308)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 41fff377b921070f371c0aa639e37c27c113ccb9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Aníbal Limón
575d59897e linux-firmware: Update to 20200122 -> 20200421
(From OE-Core rev: d53dd9460f17e3c1bb4e5a13d34a8977b25bf0f0)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 7f52475a2c84197c95928d65debf894bf59c90e7)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Aníbal Limón
b370f02148 recipes-kernel/linux-firmware: Add adreno-a630 firmware package
(From OE-Core rev: 0e62fe015b457c18de158ba22641759a093daf45)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit f3021d19eff3c9705cd91e407c042a1aa3b8e7d9)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Aníbal Limón
da40da5fd0 recipes-kernel/linux-firmware: Add wlanmdsp.mbn to qcom-modem package
(From OE-Core rev: 717d73e5b23a49fa8ede847168445c1340147011)

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 730999efcab0b8e49f1ade4e535a59f6d8e395e0)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Mingli Yu
fcaba44e6a python3-setuptools: add the missing rdepends
Add the missing rdepends to fix below error:
 # python3
 [snip]
 >>> import setuptools.lib2to3_ex
 [snip]
 ModuleNotFoundError: No module named 'lib2to3'
 ModuleNotFoundError: No module named 'pickle'

(From OE-Core rev: d19d1ccca3f86a59a72023727d3d804c2e9d18dc)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit be5c3c989d75290863cc7aef9949cf6e82d3070f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Paul Barker
95f51b7c07 archiver.bbclass: Make do_deploy_archives a recursive dependency
To ensure that archives are captured for all dependencies of a typical
bitbake build we add do_deploy_archives to the list of recursive
dependencies of do_build. Without this, archives may be missed for
recipes such as gcc-source which do not create packages or populate a
sysroot.

do_deploy_archives is also added to the recursive dependencies of
do_populate_sdk so that all sources required for an SDK can be captured.

(From OE-Core rev: 66a2e4bcafb3f8835bb21d73a9e78e7d9d15bbd3)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit e1feb6030cd8e77c553ec10a366cbeb7e902bada)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Mingli Yu
8f45dc87d0 bison: fix the parallel build
Explicitly make the BUILT_SOURCES which
are the generated headers such as stdio.h,
fcntl.h and etc to be the dependencies of
the gl_LIBOBJS such as libbison_a-sprintf.o,
libbison_a-printf.o and etc to guarantee the
BUILT_SOURCES is generated before begin to
compile EXTRA_lib_libbison_a_SOURCES such as
fprintf.c in parallel builid, otherwise there
may come below error:
 | muscle-tab.c:(.text+0x77a): undefined reference to `rpl_sprintf'

It does the same for src_bison_OBJECTS and
lib_libbison_a_OBJECTS to make sure BUILT_SOURCES
generated before begin to compile src_bison_SOURCES
which contains AnnotationList.c and etc.

BTW, the MOSTLYCLEANFILES also contains the
generated header needs to be created early
in the build process, so add it also in to
avoid below error:
 | ./lib/uniwidth/width.c:21:10: fatal error: uniwidth.h: No such file or directory

[YOCTO #13825]

(From OE-Core rev: 99ddfee2a2434d282749e2062987067f70b0ef54)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit 43d74b11095092b13f94074785d0306484fabea6)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Kai Kang
a7098495ce gcr: depends on gnupg-native
It fails to build gcr if no commmand gpg on build host:

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

Add dependency gnupg-native to fix the error.

(From OE-Core rev: da7360247995d7c8e79dfcaa0c0761952a9013f1)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
(cherry picked from commit e4a6eda4c246b2bca059defed796bdab19a7ab5f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:15:28 +01:00
Steve Sakoman
a94da86a1f poky: Add Ubuntu 20.04 as a supported distro
(From meta-yocto rev: 4ebb37d825ee6a0e713b8c5b59fabcae5d50aa93)

Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-28 18:08:58 +01:00
Konrad Weihmann
ed3bdd7fbc file: add PACKAGECONFIG for auto options
A few options of file configure are set to auto, which can lead to
unpredictable effects when something in the sysroot does provide
things that satisfy the autotools checks.
In the worst case this will lead to package-qa failures as libraries are
not set in RDEPENDS but configured for the tool.

To mitigate changes of accidental configure set explicit options via
newly introduced PACKAGECONFIG variables for bzip, lzma and zlib
support, where the default is just zlib, as it was before

(From OE-Core rev: 5bfdb6bfbd6f1de10d415228e5a5ebe01a623e2a)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Yeoh Ee Peng
02f8d9bac2 selftest/imagefeatures: Enable sanity test for IMAGE_GEN_DEBUGFS
Add new testcase to check IMAGE_GEN_DEBUGFS. Test makes
sure that debug filesystem is created accordingly. Test also check
for debug symbols for some packages as suggested by Ross Burton.

[YOCTO #10906]

(From OE-Core rev: 1038195fe9823c93cf20e2d256865171e0c915c4)

Signed-off-by: Humberto Ibarra <humberto.ibarra.lopez@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: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Jacob Kroon
224bb0f837 pseudo: Fix enum typedef
'pseudo_access_t' is a type, so use typedef.

Fixes building pseudo with gcc 10 where -fno-common is the default.

(From OE-Core rev: 2093769199ecc3d1e474bea5ec6e8b193f6f8ea3)

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Anton Eliasson
8a673aeaa4 meson.bbclass: Close the log file after reading
This fixes warnings like:

    WARNING: package-name-0.0.1-r0 do_configure: <string>:164: ResourceWarning:
    unclosed file <_io.TextIOWrapper
    name='/source_directory/build/tmp/work/arch/package-name/0.0.1-r0/package-name-0.0.1//meson-logs/meson-log.txt'
    mode='r' encoding='UTF-8'>

(From OE-Core rev: 789c008167e5fe94f781ab274d60b06eaa46ce25)

Signed-off-by: Anton Eliasson <anton.eliasson@axis.com>
Reviewed-by: Ola x Nilsson <ola.x.nilsson@axis.com>
Signed-off-by: Anton Eliasson <anton.eliasson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Tim Orling
805a6a5b0c pypi.bbclass: use new pypi UPSTREAM_CHECK_URI
Upstream https://pypi.python.org/pypi/${PYPI_PACKAGE}/
redirects to https://pypi.org/project/${PYPI_PACKAGE}/

(From OE-Core rev: e5f3f961242d888f3f786af8f793bf1d247fdff0)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Konrad Weihmann
ba658dfdf3 pypi.bbclass: mind package suffix on version check
Some pypi packages do have suffixes like dev, or a0 or b1.
When doing a version check on these, the version will get falsely
identified as major release versions.
Add a terminating slash to rule out those false positives

(From OE-Core rev: 0603f6d9f2abfa67b99b1bc39228f6aa16a0370d)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Alexander Kanavin
52623b59c0 webkitgtk: update to 2.28.2 to fix multiple CVE's
This latest stable release fixes: CVE-2020-10018, CVE-2020-11793,
CVE-2020-3885, CVE-2020-3894, CVE-2020-3895, CVE-2020-3897,
CVE-2020-3899, CVE-2020-3900, CVE-2020-3901, CVE-2020-3902

(From OE-Core rev: ea75624d2b36fc4c5fbbbb0b2f06ce8a5cadd214)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Joshua Watt
0f1efa7db0 bitbake.conf: Prevent git from detecting parent repo in recipe
Prevents git commands run in a recipe from moving up past ${WORKDIR}
when searching for a .git directory, and thus prevents them from
detecting the parent OE-core .git directory. Fixes several
reproducibility issues where recipes would use the OE-core version as
the recipe version due to git walking up the tree.

(From OE-Core rev: 02ecf3e2a98a614805f6f2574c2bf14162192d01)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Mingli Yu
68e9329c47 python3-setuptools: add the missing rdepends
Add the missing rdepends to fix below error:
 # python3
 [snip]
 >>> import setuptools
 [snip]
 ModuleNotFoundError: No module named 'json'

(From OE-Core rev: 5733811eeba9fd88f4a621c705a2de61b197c3d7)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
jan
33763b8878 scripts/tiny/ksize: Fix for more recent kernels
In the past kernel built object files were named 'built-in.o'.
Nowadays it is 'built-in.a'.

The script is modified to work with both.  I expect
it will not happen that there are built-in.a and built-in.o
files in the same kernel.

(From OE-Core rev: 8a883c3b0773960908491c03c46e7ed320e41dc5)

Signed-off-by: Jan Vermaete <jan.vermaete@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Joe Slater
50f3180f92 wget: improve reproducible build
Modify DEBUG_PREFIX_MAP as used by sed to handle
whitespace correctly.

This modifies an existing patch.

(From OE-Core rev: fcd6c105bee1c689f06b46659779bddfad07d9c9)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Peter Kjellerstedt
ad17c36065 sstate.bbclass: Do not fail if files cannot be touched
It may be that a file is not allowed to be touched, e.g., if it is a
symbolic link into a global sstate cache served over NFS.

(From OE-Core rev: f528d6ffc9649536d21d625f65b415bfec7db258)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:24 +01:00
Yi Zhao
5f904d42b3 opkg-keyrings: check if opkg-key exists before run postinst
By default, the opkg-key command is not included in pokg package because
it is only installed when gpg support is enabled. We'd better check if
it exists before run 'opkg-key populate' in pkg_postinst.

(From OE-Core rev: 174c27e4edea0af92f60779cf3f63d21f6bce6fe)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Alejandro Hernandez
4bf427dc0d connman: Include vpn-script in FILES
When vpnc support is included through PACKAGECONFIG, there
is now an extra vpn-script coming after the atest upgrade,
include that script into FILES so it gets packaged.

(From OE-Core rev: 8587149c49dd8d1e1a0a0b5cf81e458bfa88547e)

Signed-off-by: Alejandro Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Robert P. J. Day
bddbb63878 documentation.conf: Add variables supported by features_check.bbclass
Add to documentation.conf all the new variables supported by
features_check.bbclass.

(From OE-Core rev: d82fc1d482c5be81cf88f9b37943bf9f4159ea56)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Joshua Watt
2c9338ad8f libnewt: Backport patch to fix reproducibility
Backports a patch from upstream to fix a reproducibility problem where
paths would be encoded in the binary.

Drops an obsolete patch that conflicted with the backport

(From OE-Core rev: b8f5114aabf6bbbc4adf5802a6707efaf18ba2ee)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Alexander Kanavin
c0d765f8bf re2c: correct upstream location
(From OE-Core rev: 89afb271b32ed3dbe9c899fbfd30f9a80af161da)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Alexander Kanavin
394b5fadf9 cdrtools-native: fix upstream version check
(From OE-Core rev: aecd1239123d6fd94fbae10b162cf8a57eeaf18d)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Alexander Kanavin
a94fe94007 meson: fix upstream version check
(From OE-Core rev: 6cfa86069dd2189782a3505ffdacc489ea5cc3f1)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-22 16:23:23 +01:00
Bruce Ashfield
33fdf03169 linux-yocto/5.4: update to v5.4.34
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    6ccc74c083c0 Linux 5.4.34
    b538aacc9400 x86/microcode/AMD: Increase microcode PATCH_MAX_SIZE
    856a74fd7e61 scsi: target: fix hang when multiple threads try to destroy the same iscsi session
    992e469b4c44 scsi: target: remove boilerplate code
    4b3380e007b2 x86/resctrl: Fix invalid attempt at removing the default resource group
    3652782e3a87 x86/resctrl: Preserve CDP enable over CPU hotplug
    6b5e8e7cbe24 irqchip/ti-sci-inta: Fix processing of masked irqs
    9d2759006e29 ext4: do not zeroout extents beyond i_disksize
    653b42530952 i2c: designware: platdrv: Remove DPM_FLAG_SMART_SUSPEND flag on BYT and CHT
    e2b80bf26956 drm/amdgpu: fix the hw hang during perform system reboot and reset
    251f13126e23 drm/amd/powerplay: force the trim of the mclk dpm_levels if OD is enabled
    eecd70c77ff3 net/mlx5e: Use preactivate hook to set the indirection table
    57f578bce415 net/mlx5e: Rename hw_modify to preactivate
    67284c11399f net/mlx5e: Encapsulate updating netdev queues into a function
    cae385538886 mac80211_hwsim: Use kstrndup() in place of kasprintf()
    a8ce3412e8a2 mac80211: fix race in ieee80211_register_hw()
    21350f28b226 nl80211: fix NL80211_ATTR_FTM_RESPONDER policy
    aa5b11bb333c btrfs: check commit root generation in should_ignore_root
    0026e356e51a tracing: Fix the race between registering 'snapshot' event trigger and triggering 'snapshot' operation
    a0aaafe7ce4b keys: Fix proc_keys_next to increase position index
    f32a339e0321 arm64: vdso: don't free unallocated pages
    5209e5f05bf2 ALSA: usb-audio: Check mapping at creating connector controls, too
    250db0305392 ALSA: usb-audio: Don't create jack controls for PCM terminals
    aae6e154680f ALSA: usb-audio: Don't override ignore_ctl_error value from the map
    9acfd1ac016a ALSA: usb-audio: Filter error from connector kctl ops, too
    0eb7bcf3ad32 ALSA: hda/realtek - Enable the headset mic on Asus FX505DT
    549a48900d8e ASoC: Intel: mrfld: return error codes when an error occurs
    86ec55651fd2 ASoC: Intel: mrfld: fix incorrect check on p->sink
    538b623fed6d usb: dwc3: gadget: Don't clear flags before transfer ended
    3bffb20603cd arm64: dts: librem5-devkit: add a vbus supply to usb0
    3a8dc1e91561 ARM: dts: imx7-colibri: fix muxing of usbc_det pin
    c2c5d07090d4 clk: at91: usb: use proper usbs_mask
    90c1f740ddf8 clk: at91: sam9x60: fix usb clock parents
    c874d9d116d8 ext4: fix incorrect inodes per group in error message
    dd7b410c9b01 ext4: fix incorrect group count in ext4_fill_super error message
    44c70ed66c93 net/bpfilter: remove superfluous testing message
    229563dc6b04 pwm: pca9685: Fix PWM/GPIO inter-operation
    0a4c06f0db06 perf report: Fix no branch type statistics report issue
    4542e583e2b8 acpi/nfit: improve bounds checking for 'func'
    5815a5d70def jbd2: improve comments about freeing data buffers whose page mapping is NULL
    8078d3af4af7 platform/chrome: cros_ec_rpmsg: Fix race with host event
    777c8c9f11a8 scsi: ufs: Fix ufshcd_hold() caused scheduling while atomic
    66458aa271b0 ovl: fix value of i_ino for lower hardlink corner case
    c85a7109f905 Revert "ACPI: EC: Do not clear boot_ec_is_ecdt in acpi_ec_add()"
    4f2fb2a1990a net: stmmac: dwmac-sunxi: Provide TX and RX fifo sizes
    a06a51d59292 net/mlx5e: Fix pfnum in devlink port attribute
    e25122586403 net/mlx5e: Fix nest_level for vlan pop action
    cb8892f52ec9 net/mlx5e: Add missing release firmware call
    34310505d404 net/mlx5: Fix frequent ioread PCI access during recovery
    1ff0732cf805 net: ethernet: mediatek: move mt7623 settings out off the mt7530
    f749a8bfdd38 net: dsa: mt7530: move mt7623 settings out off the mt7530
    bb54dcca3fb5 net: tun: record RX queue in skb before do_xdp_generic()
    f6b264f2a04c net: revert default NAPI poll timeout to 2 jiffies
    61260486790e net: qrtr: send msgs from local of same id as broadcast
    81dc4e9bff98 net: phy: micrel: use genphy_read_status for KSZ9131
    a9a851f0ec67 net: ipv6: do not consider routes via gateways for anycast address check
    22e56cb2f951 net: ipv4: devinet: Fix crash when add/del multicast IP with autojoin
    3ca854743110 net: dsa: mt7530: fix tagged frames pass-through in VLAN-unaware mode
    016e3531d5c1 l2tp: Allow management of tunnels and session in user namespace
    22ea267a9cd6 hsr: check protocol version in hsr_newlink()
    ced57064a085 amd-xgbe: Use __napi_schedule() in BH context
    dc4059d21d87 Linux 5.4.33
    484cc15ad00f scsi: lpfc: fix inlining of lpfc_sli4_cleanup_poll_list()
    8dead2c275e4 ASoC: stm32: sai: Add missing cleanup
    aed5ee6befcc efi/x86: Fix the deletion of variables in mixed mode
    0c839eee166a mfd: dln2: Fix sanity checking for endpoints
    b70eb420e96d bpf: Fix tnum constraints for 32-bit comparisons
    26711cc7e064 mmc: sdhci: Refactor sdhci_set_timeout()
    56a296657e4b mmc: sdhci: Convert sdhci_set_timeout_irq() to non-static
    c1f3e1d8d7e6 powerpc/kasan: Fix kasan_remap_early_shadow_ro()
    36b0b1f63994 drm/i915/icl+: Don't enable DDI IO power on a TypeC port in TBT mode
    bdac1d76a310 drm/amdgpu: fix gfx hang during suspend with video playback (v2)
    d1bbdf003c05 drm/dp_mst: Fix clearing payload state on topology disable
    7676e69c67e3 Revert "drm/dp_mst: Remove VCPI while disabling topology mgr"
    ba74ab0c29fc scsi: lpfc: Fix broken Credit Recovery after driver load
    33ebae4f3ba6 scsi: lpfc: Fix configuration of BB credit recovery in service parameters
    037b0b5521a4 scsi: lpfc: Fix Fabric hostname registration if system hostname changes
    f48e7593523e scsi: lpfc: Add registration for CPU Offline/Online events
    33344a7661a1 dm clone: Add missing casts to prevent overflows and data corruption
    2d7eb7ee36a3 dm clone: Fix handling of partial region discards
    dcf2f00b0869 dm clone: replace spin_lock_irqsave with spin_lock_irq
    fddfa591da8e dm zoned: remove duplicate nr_rnd_zones increase in dmz_init_zone()
    1ba26c2aedb4 arm64: Always force a branch protection mode when the compiler has one
    ba7581be850b powerpc: Make setjmp/longjmp signature standard
    3457b2232eaf scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
    e294f8a5ad31 powerpc/64: Prevent stack protection in early boot
    fc8755dc01d1 powerpc/kprobes: Ignore traps that happened in real mode
    ed6f6b2b39af powerpc/xive: Fix xmon support on the PowerNV platform
    1ab730b65946 powerpc/64: Setup a paca before parsing device tree etc.
    9240f83aa9c7 powerpc/xive: Use XIVE_BAD_IRQ instead of zero to catch non configured IPIs
    bd0fa144737c powerpc/hash64/devmap: Use H_PAGE_THP_HUGE when setting up huge devmap PTE entries
    81b9336ab20e powerpc/fsl_booke: Avoid creating duplicate tlb1 entry
    38aa7f32dfd8 powerpc/64/tm: Don't let userspace set regs->trap via sigreturn
    0abc07d23c51 xen/blkfront: fix memory allocation flags in blkfront_setup_indirect()
    5fdf01181cb8 ipmi: fix hung processes in __get_guid()
    d0b9bd4804a7 libata: Return correct status in sata_pmp_eh_recover_pm() when ATA_DFLAG_DETACH is set
    ec2c054e87a5 hfsplus: fix crash and filesystem corruption when deleting files
    af80e6f70f72 cpufreq: powernv: Fix use-after-free
    9cc4f52d34a2 kmod: make request_module() return an error when autoloading is disabled
    bf4fcd52742e clk: ingenic/TCU: Fix round_rate returning error
    9e8388fdf4de clk: ingenic/jz4770: Exit with error if CGU init failed
    7bcca67bdee8 ftrace/kprobe: Show the maxactive number on kprobe_events
    7dad5beb8dfd Input: i8042 - add Acer Aspire 5738z to nomux list
    efb9e9f723f5 s390/diag: fix display of diagnose call statistics
    453fb8b20db4 perf tools: Support Python 3.8+ in Makefile
    beb3ef51cfd8 ocfs2: no need try to truncate file beyond i_size
    47199f4b87eb fs/filesystems.c: downgrade user-reachable WARN_ONCE() to pr_warn_once()
    6772387e8201 ext4: fix a data race at inode->i_blocks
    699d2c4d667e NFS: Fix a page leak in nfs_destroy_unlinked_subrequests()
    6b64cbd05807 NFS: Fix use-after-free issues in nfs_pageio_add_request()
    98a817eda5bc nfsd: fsnotify on rmdir under nfsd/clients/
    27993365c009 powerpc/pseries: Avoid NULL pointer dereference when drmem is unavailable
    4e4c6760fe03 drm/amdgpu: unify fw_write_wait for new gfx9 asics
    45bc323b8102 drm/amdgpu/powerplay: using the FCLK DPM table to set the MCLK
    fe0ec6f90e4d drm: Remove PageReserved manipulation from drm_pci_alloc
    b716a5f5ec65 drm/etnaviv: rework perfmon query infrastructure
    463a2dddb4f9 drm/i915/gem: Flush all the reloc_gpu batch
    cda1eda28f1d vfio: platform: Switch to platform_get_irq_optional()
    b5eec37a3b85 selftests/powerpc: Add tlbie_test in .gitignore
    e1ec78f93042 selftests/vm: fix map_hugetlb length used for testing read and write
    336b96a68170 selftests: vm: drop dependencies on page flags from mlock2 tests
    20a62e9073f3 arm64: armv8_deprecated: Fix undef_hook mask for thumb setend
    3d66a67f7310 arm64: dts: ti: k3-am65: Add clocks to dwc3 nodes
    9d971b0059a2 ARM: dts: exynos: Fix polarity of the LCD SPI bus on UniversalC210 board
    e5b9c1027ee8 scsi: lpfc: Fix lpfc_io_buf resource leak in lpfc_get_scsi_buf_s4 error path
    73a122c2636d scsi: ufs: fix Auto-Hibern8 error detection
    0ad68e6212ad scsi: zfcp: fix missing erp_lock in port recovery trigger for point-to-point
    8179a260313e crypto: ccree - dec auth tag size from cryptlen map
    9135cd1b0f64 crypto: ccree - only try to map auth tag if needed
    a86744642789 crypto: ccree - protect against empty or NULL scatterlists
    f3f13f979448 crypto: caam - update xts sector size for large input length
    bc8413b626dd crypto: caam/qi2 - fix chacha20 data size error
    07378b099139 xarray: Fix early termination of xas_for_each_marked
    8f4c8e92bdac XArray: Fix xas_pause for large multi-index entries
    a1ffc47f22a8 dm clone metadata: Fix return type of dm_clone_nr_of_hydrated_regions()
    996f8f1ba72a dm clone: Add overflow check for number of regions
    2e703059348d dm verity fec: fix memory leak in verity_fec_dtr
    833309f3fb51 dm integrity: fix a crash with unusually large tag size
    bef0d2f5fdcb dm writecache: add cond_resched to avoid CPU hangs
    5c84ab9c96d7 mm, memcg: do not high throttle allocators based on wraparound
    935e87b20c56 arm64: dts: allwinner: h5: Fix PMU compatible
    1dbfae009525 sched/core: Remove duplicate assignment in sched_tick_remote()
    8b068046321f arm64: dts: allwinner: h6: Fix PMU compatible
    27dbb3633809 net: qualcomm: rmnet: Allow configuration updates to existing devices
    add09c86cd3e tools: gpio: Fix out-of-tree build regression
    a0f079ac13be powerpc/pseries: Drop pointless static qualifier in vpa_debugfs_init()
    e0ae9da3fb2f mmc: sdhci-of-esdhc: fix esdhc_reset() for different controller versions
    7661469ef56e io_uring: honor original task RLIMIT_FSIZE
    a181a74610e6 erofs: correct the remaining shrink objects
    433868b19ce0 crypto: mxs-dcp - fix scatterlist linearization for hash
    248414f50596 crypto: rng - Fix a refcounting bug in crypto_rng_reset()
    6b936b1872ba remoteproc: Fix NULL pointer dereference in rproc_virtio_notify
    5b677eddc547 remoteproc: qcom_q6v5_mss: Reload the mba region on coredump
    241f681d19e1 remoteproc: qcom_q6v5_mss: Don't reassign mpss region on shutdown
    87a9058d5552 btrfs: use nofs allocations for running delayed items
    0425813c2279 btrfs: fix missing semaphore unlock in btrfs_sync_file
    08e69ab983da btrfs: unset reloc control if we fail to recover
    098d3da1ad30 btrfs: fix missing file extent item for hole after ranged fsync
    b436fbff6fca btrfs: drop block from cache on error in relocation
    dd68ba0d7355 btrfs: set update the uuid generation as soon as possible
    441b83a84208 btrfs: reloc: clean dirty subvols if we fail to start a transaction
    1bd44cada415 Btrfs: fix crash during unmount due to race with delayed inode workers
    941dabde6c1a btrfs: Don't submit any btree write bio if the fs has errors
    0297b7f9842e mtd: spinand: Do not erase the block before writing a bad block marker
    4da7c98c3081 mtd: spinand: Stop using spinand->oobbuf for buffering bad block markers
    c138ad0741fc CIFS: Fix bug which the return value by asynchronous read is error
    9b35348318d1 smb3: fix performance regression with setting mtime
    40888c31aca3 KVM: VMX: fix crash cleanup when KVM wasn't used
    93a2b7368862 KVM: VMX: Add a trampoline to fix VMREAD error handling
    771b9374a529 KVM: x86: Gracefully handle __vmalloc() failure during VM allocation
    455f37affe13 KVM: VMX: Always VMCLEAR in-use VMCSes during crash with kexec support
    bcd1d7462aba KVM: x86: Allocate new rmap and large page tracking when moving memslot
    0c7fb8c91c0f KVM: s390: vsie: Fix delivery of addressing exceptions
    654b70e84710 KVM: s390: vsie: Fix region 1 ASCE sanity shadow address checks
    2c5bfcda8791 KVM: nVMX: Properly handle userspace interrupt window request
    99a890ed7009 platform/x86: asus-wmi: Support laptops where the first battery is named BATT
    bd90b96e3486 x86/entry/32: Add missing ASM_CLAC to general_protection entry
    3dc06261a41f x86/tsc_msr: Make MSR derived TSC frequency more accurate
    41a7f842e312 x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
    6c63cf15d066 x86/tsc_msr: Use named struct initializers
    5f2d04139aa5 signal: Extend exec_id to 64bits
    0a993df8d609 ath9k: Handle txpower changes even when TPC is disabled
    d941b33bdc68 PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
    4fcbc35fab57 PM / Domains: Allow no domain-idle-states DT property in genpd when parsing
    5bd5307cd264 MIPS: OCTEON: irq: Fix potential NULL pointer dereference
    ed374eee8ce6 MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
    4acbbe98e06a pstore: pstore_ftrace_seq_next should increase position index
    38119a689766 io_uring: remove bogus RLIMIT_NOFILE check in file registration
    6124e10dbc4f irqchip/versatile-fpga: Apply clear-mask earlier
    3f3700c4697b genirq/debugfs: Add missing sanity checks to interrupt injection
    6ecc37daf64e cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
    4b67e5afc2a0 KEYS: reaching the keys quotas correctly
    f7384f90ecc7 tpm: tpm2_bios_measurements_next should increase position index
    27544e1bdcc6 tpm: tpm1_bios_measurements_next should increase position index
    96e05bb57b40 tpm: Don't make log failures fatal
    524089fa70ef sched/fair: Fix enqueue_task_fair warning
    8b6f8619fc96 PCI: endpoint: Fix for concurrent memory allocation in OB address region
    96843346b201 PCI: qcom: Fix the fixup of PCI_VENDOR_ID_QCOM
    55b61a08bf86 PCI: Add boot interrupt quirk mechanism for Xeon chipsets
    72d52a779e99 PCI/ASPM: Clear the correct bits when enabling L1 substates
    463181e64f5f PCI: pciehp: Fix indefinite wait on sysfs requests
    c755ca32c8cd efi/x86: Add TPM related EFI tables to unencrypted mapping checks
    91bed1f1fb97 nvme-fc: Revert "add module to ops template to allow module references"
    0eb4d8b985be nvmet-tcp: fix maxh2cdata icresp parameter
    b3c7227ad4c6 thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n
    e7251a88d387 ACPI: PM: s2idle: Refine active GPEs check
    dd993e283bc3 ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
    1efd20ea57d4 acpi/x86: ignore unspecified bit positions in the ACPI global lock field
    52e6985f2c91 seccomp: Add missing compat_ioctl for notify
    15ae94fe2211 media: ti-vpe: cal: fix a kernel oops when unloading module
    3a59d985ceb1 media: ti-vpe: cal: fix disable_irqs to only the intended target
    46b0e2900ee2 media: hantro: Read be32 words starting at every fourth byte
    7ac962c5b730 media: venus: firmware: Ignore secure call error on first resume
    be9956bac91a ALSA: hda/realtek - Add quirk for MSI GL63
    09e7b678f3e0 ALSA: hda/realtek - Add quirk for Lenovo Carbon X1 8th gen
    f5462668ad94 ALSA: hda/realtek - Remove now-unnecessary XPS 13 headphone noise fixups
    a92931dea6b1 ALSA: hda/realtek - Set principled PC Beep configuration for ALC256
    0f18192b6924 ALSA: doc: Document PC Beep Hidden Register on Realtek ALC256
    3e7167475236 ALSA: hda/realtek - a fake key event is triggered by running shutup
    faea94956333 ALSA: hda/realtek: Enable mute LED on an HP system
    1dfcd70d1fcc ALSA: pcm: oss: Fix regression by buffer overflow fix
    e3ab9c5540e3 ALSA: ice1724: Fix invalid access for enumerated ctl items
    6a9ba565b41f ALSA: hda: Fix potential access overflow in beep helper
    f4f0a1f017e0 ALSA: hda: Add driver blacklist
    1ee0023c340e ALSA: usb-audio: Add mixer workaround for TRX40 and co
    78a92756fc2c usb: gadget: composite: Inform controller driver of self-powered
    a385ebdaa4dc usb: gadget: f_fs: Fix use after free issue as part of queue failure
    9a8b1ba9d41f ASoC: topology: use name_prefix for new kcontrol
    f467e054c03f ASoC: dpcm: allow start or stop during pause for backend
    af0b76f9f632 ASoC: dapm: connect virtual mux with default value
    803db8a07868 ASoC: fix regwmask
    acec0e9a916a btrfs: track reloc roots based on their commit root bytenr
    9632851a5326 btrfs: restart relocate_tree_blocks properly
    ddc25a38ab36 btrfs: remove a BUG_ON() from merge_reloc_roots()
    679885143c04 btrfs: qgroup: ensure qgroup_rescan_running is only set when the worker is at least queued
    b37de1b1e882 block, bfq: fix use-after-free in bfq_idle_slice_timer_body
    bd9afea9bde7 locking/lockdep: Avoid recursion in lockdep_count_{for,back}ward_deps()
    b9da72cb7019 spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion
    64a97384d4f4 firmware: fix a double abort case with fw_load_sysfs_fallback
    2d29a61a14fa md: check arrays is suspended in mddev_detach before call quiesce operations
    6420b2e5fa66 irqchip/gic-v4: Provide irq_retrigger to avoid circular locking dependency
    80e85ab88b3f usb: dwc3: core: add support for disabling SS instances in park mode
    b6257832dd45 media: i2c: ov5695: Fix power on and off sequences
    510b4e069508 block: Fix use-after-free issue accessing struct io_cq
    b9d5ced37ac7 genirq/irqdomain: Check pointer in irq_domain_alloc_irqs_hierarchy()
    bceda1dd4716 efi/x86: Ignore the memory attributes table on i386
    fc427b7a0266 x86/boot: Use unsigned comparison for addresses
    f6bb3ea812f0 cpufreq: imx6q: fix error handling
    c5bcaacd0640 gfs2: Don't demote a glock until its revokes are written
    46bbc5526dd7 gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
    aa547b9dc20f pstore/platform: fix potential mem leak if pstore_init_fs failed
    347f091094ab libata: Remove extra scsi_host_put() in ata_scsi_add_hosts()
    288761c9f0a2 media: i2c: video-i2c: fix build errors due to 'imply hwmon'
    fb80a18584a4 block, bfq: move forward the getting of an extra ref in bfq_bfqq_move
    d1d846fb02a8 PCI/switchtec: Fix init_completion race condition with poll_wait()
    75434bcc6593 selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
    dd39eadc71d4 sched: Avoid scale real weight down to zero
    f7557078e16e media: allegro: fix type of gop_length in channel_create message
    2902207377f8 time/sched_clock: Expire timer in hardirq context
    3f755f5233a2 irqchip/versatile-fpga: Handle chained IRQs properly
    c8b81c33c5cb debugfs: Check module state before warning in {full/open}_proxy_open()
    fd66df97dce9 block: keep bdi->io_pages in sync with max_sectors_kb for stacked devices
    e88ee287fd82 dma-mapping: Fix dma_pgprot() for unencrypted coherent pages
    aa04e8d359d7 x86: Don't let pgprot_modify() change the page encryption bit
    ce7a61a0d57d ACPI: EC: Do not clear boot_ec_is_ecdt in acpi_ec_add()
    99e20a79d215 xhci: bail out early if driver can't accress host in resume
    61ed3dcad80c media: imx: imx7-media-csi: Fix video field handling
    dd051f1af594 media: imx: imx7_mipi_csis: Power off the source when stopping streaming
    502b83e73e35 null_blk: fix spurious IO errors after failed past-wp access
    38c1299f8c5c null_blk: Handle null_add_dev() failures properly
    becd9a906657 null_blk: Fix the null_add_dev() error path
    f9ee512dd913 firmware: arm_sdei: fix double-lock on hibernate with shared events
    7bf2c31ba0bb media: venus: hfi_parser: Ignore HEVC encoding for V1
    0d3d868b34af staging: wilc1000: avoid double unlocking of 'wilc->hif_cs' mutex
    d5bc44e6b0d4 cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL
    33dbe5867c39 media: rc: add keymap for Videostrong KII Pro
    a5ef462303e0 i2c: pca-platform: Use platform_irq_get_optional
    54d09aab81aa i2c: st: fix missing struct parameter description
    28f5b6ee1c2f qlcnic: Fix bad kzalloc null test
    d7f6f2b0be09 cfg80211: Do not warn on same channel at the end of CSA
    068168461e68 drm/scheduler: fix rare NULL ptr race
    f5429ec64f4f cxgb4/ptp: pass the sign of offset delta in FW CMD
    d2037f68ae03 selftests/net: add definition for SOL_DCCP to fix compilation errors for old libc
    9a3f55fc0f46 hinic: fix wrong value of MIN_SKB_LEN
    a8f9fe793001 hinic: fix wrong para of wait_for_completion_timeout
    243ebc24e01c hinic: fix out-of-order excution in arm cpu
    5edd115ba09e hinic: fix the bug of clearing event queue
    d63fac896335 hinic: fix a bug of waitting for IO stopped
    ad4ad8253f89 net: vxge: fix wrong __VA_ARGS__ usage
    b9c961998565 net: stmmac: platform: Fix misleading interrupt error msg
    f96f2c885eda rxrpc: Fix call interruptibility handling
    f8da7f442861 rxrpc: Abstract out the calculation of whether there's Tx space
    96860db5c09f soc: fsl: dpio: register dpio irq handlers after dpio create
    10e15e1b9297 Input: tm2-touchkey - add support for Coreriver TC360 variant
    ed1c4d2ca9da iwlwifi: mvm: Fix rate scale NSS configuration
    fd29a0242f86 bpf: Fix deadlock with rq_lock in bpf_send_signal()
    5c234312e805 ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode
    d04ffa50f901 bus: sunxi-rsb: Return correct data when mixing 16-bit and 8-bit reads
    7092cc4590c0 ARM: dts: sun8i-a83t-tbs-a711: HM5065 doesn't like such a high voltage

(From OE-Core rev: 1a50634e56dfcb63eac0df1aa9cd7e6fb7bd470a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Bruce Ashfield
28819f7bf0 linux-yocto/5.4: update to v5.4.32
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    bc844d58f697 Linux 5.4.32
    ad5676629a12 iommu/vt-d: Allow devices with RMRRs to use identity domain
    04ad505eed58 drm/i915: Fix ref->mutex deadlock in i915_active_wait()
    047affa0ef00 fbcon: fix null-ptr-deref in fbcon_switch
    d4083258db04 blk-mq: Keep set->nr_hw_queues and set->map[].nr_queues in sync
    d020ff5060a4 RDMA/cm: Update num_paths in cma_resolve_iboe_route error flow
    b40f1ae359f2 Bluetooth: RFCOMM: fix ODEBUG bug in rfcomm_dev_ioctl
    7f5432c2f446 RDMA/siw: Fix passive connection establishment
    09583e3f0402 RDMA/cma: Teach lockdep about the order of rtnl and lock
    51795bcf595d RDMA/ucma: Put a lock around every call to the rdma_cm layer
    ab6ee4330288 include/uapi/linux/swab.h: fix userspace breakage, use __BITS_PER_LONG for swap
    193490dbe5ba ceph: canonicalize server path in place
    56385788f7f6 ceph: remove the extra slashes in the server path
    7dafb2c6fb46 ARM: imx: only select ARM_ERRATA_814220 for ARMv7-A
    cf7005662673 ARM: imx: Enable ARM_ERRATA_814220 for i.MX6UL and i.MX7D
    4ac80b02f10d IB/mlx5: Replace tunnel mpls capability bits for tunnel_offloads
    ccc2b645de20 IB/hfi1: Fix memory leaks in sysfs registration and unregistration
    cd38d8b231f1 IB/hfi1: Call kobject_put() when kobject_init_and_add() fails
    9351dee1cc24 ASoC: jz4740-i2s: Fix divider written at incorrect offset in register
    e30a21c6fea5 platform/x86: intel_int0002_vgpio: Use acpi_register_wakeup_handler()
    9da847d65f37 ACPI: PM: Add acpi_[un]register_wakeup_handler()
    41a0cfa05c05 hwrng: imx-rngc - fix an error path
    dfa210cf9f94 tools/accounting/getdelays.c: fix netlink attribute length
    ea84a26ab633 slub: improve bit diffusion for freelist ptr obfuscation
    8b0f08036659 uapi: rename ext2_swab() to swab() and share globally in swab.h
    94d2d84bcafa usb: dwc3: gadget: Wrap around when skip TRBs
    170f88a47b9f random: always use batched entropy for get_random_u{32,64}
    5e331978200e s390: prevent leaking kernel address in BEAR
    74107d56d1e8 r8169: change back SG and TSO to be disabled by default
    5249653d971d mlxsw: spectrum_flower: Do not stop at FLOW_ACTION_VLAN_MANGLE
    671331c11c39 tun: Don't put_page() for all negative return values from XDP program
    fdb6a094ba41 slcan: Don't transmit uninitialized stack data in padding
    feed32e3d6fe net: stmmac: dwmac1000: fix out-of-bounds mac address reg setting
    049b9fa3ef65 net_sched: fix a missing refcnt in tcindex_init()
    1891d57f89aa net_sched: add a temporary refcnt for struct tcindex_data
    1189ba9eedac net: phy: micrel: kszphy_resume(): add delay after genphy_resume() before accessing PHY registers
    7d3d99f579e8 net: dsa: mt7530: fix null pointer dereferencing in port5 setup
    bce7ce18bd18 net: dsa: bcm_sf2: Ensure correct sub-node is parsed
    040f7a27583f net: dsa: bcm_sf2: Do not register slave MDIO bus with OF
    bbbdd7956bab ipv6: don't auto-add link-local address to lag ports
    77cf80793692 cxgb4: fix MPS index overwrite when setting MAC address
    3fcd53b1d859 net: phy: realtek: fix handling of RTL8105e-integrated PHY
    de850633a01f Linux 5.4.31
    c3f87e03f90f mm: mempolicy: require at least one nodeid for MPOL_PREFERRED
    c3d4e6fc4b37 padata: always acquire cpu_hotplug_lock before pinst->lock
    238112fcf391 net: Fix Tx hash bound checking
    15ee8da79ee3 i2c: i801: Do not add ICH_RES_IO_SMI for the iTCO_wdt device
    079c8da9e5ac watchdog: iTCO_wdt: Make ICH_RES_IO_SMI optional
    b42afa3475bf watchdog: iTCO_wdt: Export vendorsupport
    4ebd16641797 tcp: fix TFO SYNACK undo to avoid double-timestamp-undo
    a6b1820d3330 IB/hfi1: Ensure pq is not left on waitlist
    c4168080f1d4 rxrpc: Fix sendmsg(MSG_WAITALL) handling
    be8a3aecd21a iwlwifi: dbg: don't abort if sending DBGC_SUSPEND_RESUME fails
    b4190809a17b iwlwifi: yoyo: don't add TLV offset when reading FIFOs
    00e332e42bbe iwlwifi: consider HE capability when setting LDPC
    5f843cb77142 net/mlx5e: kTLS, Fix wrong value in record tracker enum
    ea26f82a0422 soc: mediatek: knows_txdone needs to be set in Mediatek CMDQ helper
    f6c8f128856b ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA X99 Classified motherboard
    2892100bc85a Revert "dm: always call blk_queue_split() in dm_process_bio()"
    7c6ae8ae0ac5 power: supply: axp288_charger: Add special handling for HP Pavilion x2 10
    899c38d93000 extcon: axp288: Add wakeup support
    4d60b72514c2 nvmem: check for NULL reg_read and reg_write before dereferencing
    98b32db072e9 mei: me: add cedar fork device ids
    1843cba24aef coresight: do not use the BIT() macro in the UAPI header
    b5212116392e PCI: sysfs: Revert "rescan" file renames
    aa98c16a5b7c misc: pci_endpoint_test: Avoid using module parameter to determine irqtype
    a5d697c1e92d misc: pci_endpoint_test: Fix to support > 10 pci-endpoint-test devices
    82f6c72e5d4d misc: rtsx: set correct pcr_ops for rts522A
    cec4be18d136 brcmfmac: abort and release host after error
    625b940a28e0 padata: fix uninitialized return value in padata_replace()
    16696ee7b581 XArray: Fix xa_find_next for large multi-index entries
    4eb33cb9b566 net/mlx5e: kTLS, Fix TCP seq off-by-1 issue in TX resync flow
    8792e1ac5f48 tools/power turbostat: Fix 32-bit capabilities warning
    09116eeea6a5 tools/power turbostat: Fix missing SYS_LPI counter on some Chromebooks
    0ba0ce3cbb86 tools/power turbostat: Fix gcc build warnings
    7ebc1e53a46b drm/amdgpu: fix typo for vcn1 idle check
    d2faee42f9e7 initramfs: restore default compression behavior
    4a8ba74c1c64 drm/bochs: downgrade pci_request_region failure from error to warning
    f8abcff4fd0d drm/amd/display: Add link_rate quirk for Apple 15" MBP 2017
    205b5f80c74f kconfig: introduce m32-flag and m64-flag
    91358d0f36fa nvme-rdma: Avoid double freeing of async event data
    ad13e142e024 Linux 5.4.30
    9e62b6673d14 arm64: dts: ls1046ardb: set RGMII interfaces to RGMII_ID mode
    c399a50ae878 arm64: dts: ls1043a-rdb: correct RGMII delay mode to rgmii-id
    5aa29219206a ARM: dts: sun8i: r40: Move AHCI device node based on address order
    8f1199341837 ARM: dts: N900: fix onenand timings
    89ecba47b391 ARM: dts: imx6: phycore-som: fix arm and soc minimum voltage
    bb4ec20d1687 ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
    e58eb564e1fc ARM: dts: oxnas: Fix clear-mask property
    a1081413e834 perf map: Fix off by one in strncpy() size argument
    451bf4d9592a arm64: alternative: fix build with clang integrated assembler
    693860e79552 libceph: fix alloc_msg_with_page_vector() memory leaks
    61bbc823a17a clk: ti: am43xx: Fix clock parent for RTC clock
    b2efabe3f88c clk: imx: Align imx sc clock parent msg structs to 4
    4a3c7e1c807f clk: imx: Align imx sc clock msg structs to 4
    08479b1391cb net: ks8851-ml: Fix IO operations, again
    62465fd66323 gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 CHT + AXP288 model
    877f28596da2 bpf: Explicitly memset some bpf info structures declared on the stack
    e92528a8984e bpf: Explicitly memset the bpf_attr structure
    d3e215554a6c platform/x86: pmc_atom: Add Lex 2I385SW to critclk_systems DMI table
    3f4ba176c623 vt: vt_ioctl: fix use-after-free in vt_in_use()
    acf0e9401931 vt: vt_ioctl: fix VT_DISALLOCATE freeing in-use virtual console
    d1b6ab26c850 vt: vt_ioctl: remove unnecessary console allocation checks
    c897e625f94b vt: switch vt_dont_switch to bool
    e7244ce86ceb vt: ioctl, switch VT_IS_IN_USE and VT_BUSY to inlines
    383c71b7314f vt: selection, introduce vc_is_sel
    125dd8c48b19 serial: sprd: Fix a dereference warning
    5b1bd4900fed mac80211: fix authentication with iwlwifi/mvm
    5863d2b27fb2 mac80211: Check port authorization in the ieee80211_tx_dequeue() case
    73fea3292b49 Linux 5.4.29
    f8c60f7a0051 net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build
    5f80d17c517d media: v4l2-core: fix a use-after-free bug of sd->devnode
    e7cd85f398cd media: xirlink_cit: add missing descriptor sanity checks
    4490085a9e2d media: stv06xx: add missing descriptor sanity checks
    d111431a4420 media: dib0700: fix rc endpoint lookup
    e4af1cf37b90 media: ov519: add missing endpoint sanity checks
    b25af84517de libfs: fix infoleak in simple_attr_read()
    dcf2d659add5 ahci: Add Intel Comet Lake H RAID PCI ID
    89d4acabb2f6 staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback
    c44ea4fe738b staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb
    0ec1ab1b15d2 staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table
    fea3939c6ccc staging: kpc2000: prevent underflow in cpld_reconfigure()
    b958dea86c26 media: usbtv: fix control-message timeouts
    275316b63165 media: flexcop-usb: fix endpoint sanity check
    5102000134f4 usb: musb: fix crash with highmen PIO and usbmon
    f32219427ca1 USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback
    004b43fdfcf4 USB: cdc-acm: restore capability check order
    4003d59a00e2 USB: serial: option: add Wistron Neweb D19Q1
    d5fec27c54e7 USB: serial: option: add BroadMobi BM806U
    6eff944ff084 USB: serial: option: add support for ASKEY WWHC050
    8d62a8c7489a bpf: Undo incorrect __reg_bound_offset32 handling
    f23f37fe702f clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
    791c420f4228 r8169: fix PHY driver check on platforms w/o module softdeps
    d8166d4b4203 vti6: Fix memory leak of skb if input policy check fails
    9c4f1506b477 ARM: dts: sun8i-a83t-tbs-a711: Fix USB OTG mode detection
    7f884cb145dc bpf, sockmap: Remove bucket->lock from sock_{hash|map}_free
    657559d632c2 bpf/btf: Fix BTF verification of enum members in struct/union
    188aae1f3d5f bpf: Initialize storage pointers to NULL to prevent freeing garbage pointer
    c68e1117f4e4 bpf, x32: Fix bug with JMP32 JSET BPF_X checking upper bits
    74617178d694 i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status()
    6734a326cb13 netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress
    5be3b97a1f18 netfilter: nft_fwd_netdev: validate family and chain type
    4e8bba9420e2 netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6}
    0bc1c7f6358c mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX
    74fdc220e2f1 ieee80211: fix HE SPR size calculation
    eaca61f5f850 afs: Fix unpinned address list during probing
    455f5192a10d afs: Fix some tracing details
    c743855a0ebe afs: Fix client call Rx-phase signal handling
    21af83e17ffa xfrm: policy: Fix doulbe free in xfrm_policy_timer
    160c2ffa7016 xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire
    a5c5cf6f24bb xfrm: fix uctx len check in verify_sec_ctx_len
    1b92d81d4cc2 RDMA/mlx5: Block delay drop to unprivileged users
    1babd2c979aa RDMA/mlx5: Fix access to wrong pointer while performing flush due to error
    9961c56955a4 RDMA/mlx5: Fix the number of hwcounters of a dynamic counter
    f8f90690df59 vti[6]: fix packet tx through bpf_redirect() in XinY cases
    c467570443bb xfrm: handle NETDEV_UNREGISTER for xfrm device
    86c7d38c2baf genirq: Fix reference leaks on irq affinity notifiers
    fe6010e47ddc afs: Fix handling of an abort from a service handler
    d9e974eea8f1 RDMA/core: Ensure security pkey modify is not lost
    768e582a9970 bpf: Fix cgroup ref leak in cgroup_bpf_inherit on out-of-memory
    0dcf81d2c12f gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model
    43d2a61ceb09 gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option
    323a89bff42b gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk
    159aef18f05c mm: fork: fix kernel_stack memcg stats for various stack implementations
    cc5da743a456 mm/sparse: fix kernel crash with pfn_section_valid check
    238dd5ab0080 drivers/base/memory.c: indicate all memory blocks as removable
    da458bbfb6cf mm/swapfile.c: move inode_lock out of claim_swapfile
    33c8bc8aa7b2 mac80211: mark station unauthorized before key removal
    d6b1f3fc76c4 mac80211: drop data frames without key on encrypted links
    4a89bb3fca20 nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type
    b34e20c78f1c scsi: sd: Fix optimal I/O size for devices that change reported values
    35b34d264cb3 scripts/dtc: Remove redundant YYLOC global declaration
    683cf6637730 tools: Let O= makes handle a relative path with -C option
    2fe72de89cf7 rtlwifi: rtl8188ee: Fix regression due to commit d1d1a96bdb44
    a2d866c50a35 perf probe: Do not depend on dwfl_module_addrsym()
    5f2b792d3125 perf probe: Fix to delete multiple probe event
    94a4104bf10e x86/ioremap: Fix CONFIG_EFI=n build
    174da11b6474 ARM: dts: omap5: Add bus_dma_limit for L3 bus
    e41cd3b598ae ARM: dts: dra7: Add bus_dma_limit for L3 bus
    7cdaa5cd79ab ceph: fix memory leak in ceph_cleanup_snapid_map()
    ed24820d1b0c ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL
    44960e1c39d8 RDMA/mad: Do not crash if the rdma device does not have a umad interface
    34aa3d5b84d5 RDMA/nl: Do not permit empty devices names during RDMA_NLDEV_CMD_NEWLINK/SET
    9924d9fac61b gpiolib: Fix irq_disable() semantics
    10d5de234df4 RDMA/core: Fix missing error check on dev_set_name()
    b0a2af91cd78 IB/rdmavt: Free kernel completion queue when done
    99058b8beef5 Input: avoid BIT() macro usage in the serio.h UAPI header
    597d6fb4815c Input: synaptics - enable RMI on HP Envy 13-ad105ng
    381c88a6b948 Input: fix stale timestamp on key autorepeat events
    cd18a7f6a789 Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()
    d8f58a0f533a i2c: hix5hd2: add missed clk_disable_unprepare in remove
    65047f7538ba iwlwifi: mvm: fix non-ACPI function
    72a0cfeb513c iommu/vt-d: Populate debugfs if IOMMUs are detected
    cb17ed60ec39 iommu/vt-d: Fix debugfs register reads
    e5ea0d970f33 net: hns3: fix "tc qdisc del" failed issue
    24e72d55bc0b sxgbe: Fix off by one in samsung driver strncpy size arg
    753ea21f2ac3 dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom
    27030150699b mac80211: Do not send mesh HWMP PREQ if HWMP is disabled
    5ecb28b15678 scsi: ipr: Fix softlockup when rescanning devices in petitboot
    ee3bc486643d s390/qeth: handle error when backing RX buffer
    8b6cccd9bd84 s390/qeth: don't reset default_out_queue
    f8de95a236f6 iommu/vt-d: Silence RCU-list debugging warnings
    957e6f437d02 drm/exynos: Fix cleanup of IOMMU related objects
    70e0a720038e drm/amdgpu: correct ROM_INDEX/DATA offset for VEGA20
    2e89e4e7f7e1 drm/amd/display: update soc bb for nv14
    8dab286ab527 fsl/fman: detect FMan erratum A050385
    406f1ac075fe arm64: dts: ls1043a: FMan erratum A050385
    c211a30c1846 dt-bindings: net: FMan erratum A050385
    b82e91ae6384 cgroup1: don't call release_agent when it is ""
    0cd633314661 drivers/of/of_mdio.c:fix of_mdiobus_register()
    dda4fca30906 cpupower: avoid multiple definition with gcc -fno-common
    7f9c2d71cfd3 nfs: add minor version to nfs_server_key for fscache
    b51274fabedc cgroup-v1: cgroup_pidlist_next should update position index
    74f554af848d net/mlx5e: Do not recover from a non-fatal syndrome
    f94d69e5f682 net/mlx5e: Fix ICOSQ recovery flow with Striding RQ
    bd81b9ba546a net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
    d8338b5f373a net/mlx5e: Enhance ICOSQ WQE info fields
    63a0fc3b0047 net/mlx5: DR, Fix postsend actions write length
    c3c9927d0a8f hsr: set .netnsok flag
    1a0fdef2d52d hsr: add restart routine into hsr_get_node_list()
    80aa1e38e16b hsr: use rcu_read_lock() in hsr_get_node_{list/status}()
    e4723e0a858e net: ip_gre: Accept IFLA_INFO_DATA-less configuration
    85aa84d3c587 net: ip_gre: Separate ERSPAN newlink / changelink callbacks
    62e3ffa4ea4e bnxt_en: Reset rings if ring reservation fails during open()
    0234e8ebb7f4 bnxt_en: Free context memory after disabling PCI in probe error path.
    797d6f91c399 bnxt_en: Return error if bnxt_alloc_ctx_mem() fails.
    ae4565168af3 bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets()
    2ac37a531115 bnxt_en: Fix Priority Bytes and Packets counters in ethtool -S.
    53d0bf064c9f vxlan: check return value of gro_cells_init()
    a6ce82deba5c tcp: repair: fix TCP_QUEUE_SEQ implementation
    27cf5410a9e1 tcp: ensure skb->dev is NULL before leaving TCP stack
    c94b94626876 tcp: also NULL skb->dev when copy was needed
    49d2333f97f0 slcan: not call free_netdev before rtnl_unlock in slcan_open
    4cc2498b7ebb r8169: re-enable MSI on RTL8168c
    3428faf70c59 NFC: fdp: Fix a signedness bug in fdp_nci_send_patch()
    3d9cc478af25 net: stmmac: dwmac-rk: fix error path in rk_gmac_probe
    d23faf32e577 net_sched: keep alloc_hash updated after hash allocation
    5317abb870fe net_sched: hold rtnl lock in tcindex_partial_destroy_work()
    ff28c6195814 net_sched: cls_route: remove the right filter from hashtable
    a631b9668460 net/sched: act_ct: Fix leak of ct zone template on replace
    312805c93bf6 net: qmi_wwan: add support for ASKEY WWHC050
    522d2dc17967 net: phy: mdio-mux-bcm-iproc: check clk_prepare_enable() return value
    f806b9e84057 net: phy: mdio-bcm-unimac: Fix clock handling
    9fe154ee3fd5 net: phy: dp83867: w/a for fld detect threshold bootstrapping issue
    86137342fd4c net/packet: tpacket_rcv: avoid a producer race condition
    bb8c787be0e3 net: mvneta: Fix the case where the last poll did not process all rx
    a2a3baa29914 net: ena: Add PCI shutdown handler to allow safe kexec
    e586427a0abb net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop
    0ec037c1353c net: dsa: mt7530: Change the LINK bit to reflect the link status
    60e975088be8 net: dsa: Fix duplicate frames flooded by learning
    7c6fe9b2af79 net: cbs: Fix software cbs to consider packet sending time
    712c39d9319a net/bpfilter: fix dprintf usage for /dev/kmsg
    85675064133e mlxsw: spectrum_mr: Fix list iteration in error path
    5a1a00f6ac32 mlxsw: pci: Only issue reset when system is ready
    6e75284e2480 macsec: restrict to ethernet devices
    51db2db8fe68 ipv4: fix a RCU-list lock in inet_dump_fib()
    b67aa57f4a9d hsr: fix general protection fault in hsr_addr_is_self()
    6fe31c7ce0ed geneve: move debug check after netdev unregister
    b5c9652ada33 cxgb4: fix Txq restart check during backpressure
    e92a0e7fba68 cxgb4: fix throughput drop during Tx backpressure
    b0ab8700283c ACPI: PM: s2idle: Rework ACPI events synchronization
    127882d10931 mmc: sdhci-tegra: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
    71d89344af0b mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY
    bf8b920f474e mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command
    3b9b71adbec4 mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard
    d9c4f387e22a mmc: core: Allow host controllers to require R1B for CMD6

(From OE-Core rev: bc1ae928b0aea450d703ab2bc415c20db4cfb407)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Bruce Ashfield
41ca2be4fc linux-yocto/5.4: update to v5.4.28
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    462afcd6e7ea Linux 5.4.28
    7b2cdbd67ff0 staging: greybus: loopback_test: fix potential path truncations
    8e79f440edb5 staging: greybus: loopback_test: fix potential path truncation
    58ffe6b0245e drm/bridge: dw-hdmi: fix AVI frame colorimetry
    c965a0299c61 nvmet-tcp: set MSG_MORE only if we actually have more to send
    d3eb4daa333f arm64: smp: fix crash_smp_send_stop() behaviour
    6080e0a9d107 arm64: smp: fix smp_send_stop() behaviour
    c61417fef99a ALSA: hda/realtek: Fix pop noise on ALC225
    163489b64361 futex: Unbreak futex hashing
    553d46b07dc4 futex: Fix inode life-time issue
    66f28e110565 x86/mm: split vmalloc_sync_all()
    9dfed456e1eb page-flags: fix a crash at SetPageError(THP_SWAP)
    32991c960d0b mm, slub: prevent kmalloc_node crashes and memory leaks
    623515739282 mm: slub: be more careful about the double cmpxchg of freelist
    8e709bbe41d6 epoll: fix possible lost wakeup on epoll_ctl() path
    69f434a05fb4 mm: do not allow MADV_PAGEOUT for CoW pages
    c3f54f0a68bf mm/hotplug: fix hot remove failure in SPARSEMEM|!VMEMMAP case
    61cfbcce9e09 mm, memcg: throttle allocators based on ancestral memory.high
    77c4bc4bf612 mm, memcg: fix corruption on 64-bit divisor in memory.high throttling
    ceca26903bd7 memcg: fix NULL pointer dereference in __mem_cgroup_usage_unregister_event
    2439259c32c8 stm class: sys-t: Fix the use of time_after()
    f7ef7a020f3b drm/lease: fix WARNING in idr_destroy
    b4e798cab8e9 drm/amd/amdgpu: Fix GPR read from debugfs (v2)
    eaa7fe20231a btrfs: fix log context list corruption after rename whiteout error
    039547fbd1e8 xhci: Do not open code __print_symbolic() in xhci trace events
    ac9d3279514c arm64: compat: Fix syscall number of compat_clock_getres
    70ca8a95df81 rtc: max8907: add missing select REGMAP_IRQ
    eba75a365f55 modpost: move the namespace field in Module.symvers last
    69a9b971406f intel_th: pci: Add Elkhart Lake CPU support
    3bdc0f68a170 intel_th: Fix user-visible error codes
    97097054a1f0 intel_th: msu: Fix the unexpected state warning
    07c70054ba24 staging/speakup: fix get_word non-space look-ahead
    35da67a8a50c staging: greybus: loopback_test: fix poll-mask build breakage
    fbe68a636982 staging: rtl8188eu: Add device id for MERCUSYS MW150US v2
    5f9579641df2 kbuild: Disable -Wpointer-to-enum-cast
    0f5be2f69e89 CIFS: fiemap: do not return EINVAL if get nothing
    48a9bc9534f3 mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier
    8aafd5a0c63c mmc: sdhci-of-at91: fix cd-gpios for SAMA5D2
    0c4e0f0d2e51 mmc: rtsx_pci: Fix support for speed-modes that relies on tuning
    dbb328d1a87d iio: light: vcnl4000: update sampling periods for vcnl4040
    c3540b094edb iio: light: vcnl4000: update sampling periods for vcnl4200
    7ad22950caf5 iio: adc: at91-sama5d2_adc: fix differential channels in triggered mode
    4d71a4f76179 iio: adc: stm32-dfsdm: fix sleep in atomic context
    a79f53a2f5af iio: magnetometer: ak8974: Fix negative raw values in sysfs
    6387b4002357 iio: accel: adxl372: Set iio_chan BE
    3c69b794f96e iio: trigger: stm32-timer: disable master mode when stopping
    eb5f46b0cc55 iio: st_sensors: remap SMO8840 to LIS2DH12
    69399842e4a9 iio: chemical: sps30: fix missing triggered buffer dependency
    51d590fadc14 tty: fix compat TIOCGSERIAL checking wrong function ptr
    a754de70f6d6 tty: fix compat TIOCGSERIAL leaking uninitialized memory
    279cdccb6dc7 ALSA: pcm: oss: Remove WARNING from snd_pcm_plug_alloc() checks
    07ec940ceda5 ALSA: pcm: oss: Avoid plugin buffer overflow
    59e4624e664c ALSA: seq: oss: Fix running status after receiving sysex
    f439c2ece795 ALSA: seq: virmidi: Fix running status after receiving sysex
    e2f1c2d0b6db ALSA: hda/realtek - Enable the headset of Acer N50-600 with ALC662
    f0e819900968 ALSA: hda/realtek - Enable headset mic of Acer X2660G with ALC662
    2d994c9cefc4 ALSA: line6: Fix endless MIDI read loop
    64ab82cf614f USB: cdc-acm: fix rounding error in TIOCSSERIAL
    9ed83da8cd97 USB: cdc-acm: fix close_delay and closing_wait units in TIOCSSERIAL
    186b9564cf5e usb: typec: ucsi: displayport: Fix a potential race during registration
    ff1d876e9f4f usb: typec: ucsi: displayport: Fix NULL pointer dereference
    7b5aab752efc usb: xhci: apply XHCI_SUSPEND_DELAY to AMD XHCI controller 1022:145c
    6e1167db8d21 USB: serial: pl2303: add device-id for HP LD381
    ade2ca96e7a6 usb: host: xhci-plat: add a shutdown
    bace91138933 USB: serial: option: add ME910G1 ECM composition 0x110b
    2601053cafb4 usb: quirks: add NO_LPM quirk for RTL8153 based ethernet adapters
    d742e9874048 USB: Disable LPM on WD19's Realtek Hub
    712d9c2e92ea Revert "drm/fbdev: Fallback to non tiled mode if all tiles not present"
    c71986d18dea binderfs: use refcount for binder control devices too
    169bf660646a parse-maintainers: Mark as executable
    4db2f87e15c8 block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
    5d33ba6f385f xenbus: req->err should be updated before req->state
    7a79e217e3a5 xenbus: req->body should be updated before req->state
    25c3f96370a1 drm/amd/display: fix dcc swath size calculations on dcn1
    46c5b0d8dfbb drm/amd/display: Clear link settings on MST disable connector
    e53a333014a3 drm/amdgpu: clean wptr on wb when gpu recovery
    b557b2f00682 riscv: Fix range looking for kernel image memblock
    1c2106d2d9c1 riscv: Force flat memory model with no-mmu
    0bc9de1b1c1b spi: spi_register_controller(): free bus id on error paths
    af7dd05d7c8f ASoC: stm32: sai: manage rebind issue
    a3f349393eed riscv: avoid the PIC offset of static percpu data in module beyond 2G limits
    1804cdf99fdb dm integrity: use dm_bio_record and dm_bio_restore
    2e7e6de9ae38 dm bio record: save/restore bi_end_io and bi_integrity
    886a8fb13d0c altera-stapl: altera_get_note: prevent write beyond end of 'key'
    2c4e36033ace drivers/perf: arm_pmu_acpi: Fix incorrect checking of gicc pointer
    1002a094e066 drivers/perf: fsl_imx8_ddr: Correct the CLEAR bit definition
    0f6ae2cba3b8 drm/exynos: hdmi: don't leak enable HDMI_EN regulator if probe fails
    53138bea67b2 drm/exynos: dsi: fix workaround for the legacy clock name
    41f88dc1adcc drm/exynos: dsi: propagate error value and silence meaningless warning
    0c30297dddc0 spi/zynqmp: remove entry that causes a cs glitch
    b8ba4d74f9f3 spi: pxa2xx: Add CS control clock quirk
    416e1f433c70 ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
    74219d52d4e7 cifs: add missing mount option to /proc/mounts
    ddd8b3ed509a cifs: fix potential mismatch of UNC paths
    a7393e6f2ecf powerpc: Include .BTF section
    9eee3e21a59d spi: qup: call spi_qup_pm_resume_runtime before suspending
    1d4f214c8820 ARM: dts: dra7-l4: mark timer13-16 as pwm capable
    5f657e5303d3 phy: ti: gmii-sel: do not fail in case of gmii
    ee1245396b6e phy: ti: gmii-sel: fix set of copy-paste errors
    4d9020c3d802 drm/mediatek: Find the cursor plane instead of hard coding it
    61c895d0f726 spi: spi-omap2-mcspi: Support probe deferral for DMA channels
    f9f635c04769 locks: reinstate locks_delete_block optimization
    384e15fc4226 locks: fix a potential use-after-free problem when wakeup a waiter

(From OE-Core rev: ceadc52e8c7bd03ca45c342bdabfa770ac32bc71)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Khem Raj
cbff49a700 musl: Remove spurious unused patch
(From OE-Core rev: 2bd345826e23802ff3b9fcc77cdab88aee21d3ca)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Vyacheslav Yurkov
c288352cee os-release: sanitize required fields
Currently only VERSION_ID field is sanitized, but os-release (5) has
more fields with the same requirement. Moreover, those fields come
unquoted in most distributions, because quotes are not needed for a
values without whitespaces.

(From OE-Core rev: ea39b2edecc00cc2340328893cdfbefed5d3b981)

Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Sakib Sajal
e328ec317e sqlite: backport CVE fixes
Fixes CVE-2020-11655 and CVE-2020-11656

(From OE-Core rev: e63a38ca6ea95c0dbc79d5024c0cec31062d2e39)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Benjamin Fair
16d76aa636 util-linux: fix build error in kill
Backport patches from upstream to fix a build error in the kill utility.

Fixes:
| In file included from ../util-linux-2.35.1/misc-utils/kill.c:57:
| ../util-linux-2.35.1/include/pidfd-utils.h: In function ‘pidfd_open’:
| ../util-linux-2.35.1/include/pidfd-utils.h:19:17: error: ‘SYS_pidfd_open’ undeclared (first use in this function); did you mean ‘pidfd_open’?

(From OE-Core rev: 9620c4e6e0e184b2b3907c8f8da4b7b54b97354e)

Signed-off-by: Benjamin Fair <benjaminfair@google.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Pierre-Jean Texier
8b0767b6dc timezone: upgrade 2019c -> 2020a
See full changelog https://github.com/eggert/tz/blob/master/NEWS#L11

(From OE-Core rev: 365852b55b66ecbe8a8d5654a082a231ee345919)

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-14 16:45:42 +01:00
Wang Mingyu
2be7ce47d6 icu: CVE-2020-10531
security Advisory

References:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-10531

(From OE-Core rev: 12f0cbf348d5acb0a7913bb5dc98e7fccc5ec34f)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Jan Luebbe
b20c048e04 openssl: upgrade 1.1.1f -> 1.1.1g
This also fixes CVE-2020-1967.

(From OE-Core rev: f0bd52e5b50a1742b767eefe0d9d67facbb6c53a)

Signed-off-by: Jan Luebbe <jlu@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Mingli Yu
5bb40837b5 iputils: Initialize libgcrypt
Initialize libgcrypt on first use otherwise
there comes below warning when check the status
of the ninfod.service.
 # systemctl status ninfod.service
 * ninfod.service - Respond to IPv6 Node Information Queries
 Loaded: loaded (/lib/systemd/system/ninfod.service; enabled; vendor preset: enabled)
 Active: active (running) since Wed 2020-04-29 05:18:21 UTC; 36s ago
 Docs: man:ninfod(8)
 Main PID: 347 (ninfod)
 Tasks: 1 (limit: 9382)
 Memory: 1.2M
 CGroup: /system.slice/ninfod.service
 `-347 /sbin/ninfod -d

 Apr 29 05:18:21 intel-x86-64 systemd[1]: Started Respond to IPv6 Node Information Queries.
 Apr 29 05:18:24 intel-x86-64 ninfod[347]: Libgcrypt warning: missing initialization - please fix the application

Reference: 4f489a8c79

(From OE-Core rev: 8648c6497d1904b988059cbd72d1592caa8708d0)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
323560d6ae gcc-target: Ensure buildtools-extended-tarball doesn't use arch=native
A nativesdk BBCLASSEXTEND was added to gcc-target without realising this
would pass arch=native through to it for x86-64. This heavily optimises
gcc output for the host its running on meaning it can't be reused via
sstate on other machines.

Add class-target overrides here to get the desired behaviour. All
targets have been covered for completeness.

(From OE-Core rev: 3fff2c9400f2f64cbc8cc450b5ab29505eacbdd1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Kai Kang
65aa038fa0 pseudo: add macro guard for seccomp
It fails to compile pseudo-native on centos 7:

| ports/linux/pseudo_wrappers.c: In function ‘prctl’:
| ports/linux/pseudo_wrappers.c:129:14: error: ‘SECCOMP_SET_MODE_FILTER’ undeclared (first use in this function)
|    if (cmd == SECCOMP_SET_MODE_FILTER) {
|               ^

Add macro guard for the definition to avoid the failure.

(From OE-Core rev: 9fff03afb8e67b360042e80fda8213a67472b9ec)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Andrew Geissler
4d041f2d04 libffi: fix v3.3 compile on ppc64le
The latest released version of libffi no longer compiles on ppc64le
based machines. Some searching found a patch that fixed our issue but
had not been submitted upstream to libffi.

It has now been submitted upstream with this PR:
https://github.com/libffi/libffi/pull/561

(From OE-Core rev: ed7ce0d5e9009d80a79c39bb3d0d45de6e7721c0)

Signed-off-by: Andrew Geissler <geissonator@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Alexander Kanavin
c9b2bdd9c3 buildtools-extended-tarball: add libgomp-dev
This is needed in particular for newer versions of rpm
which would otherwise fail to build due to absence of omp.h header.

(From OE-Core rev: a83904481cf85ad4a15209017ab04f690b7779ed)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
e820c86fb9 oeqa/qemurunner: Clean up failure handling
If you fail to setup the tap devices, runqemu will error quickly
however stdout/stderr are not shown to the user, instead a SystemExit
traceback is shown. This could explain some long since unexplained
failures on the autobuilder.

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

(From OE-Core rev: 83b8e66b66aa9848ed9c8761a21cb47c6443d0c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
9b335fa867 targetcontrol: Fix leaking log handler
We had a mystery failure on the autobuilder where runqemu appeared to
be failing as a logfile directory no longer existed. The key to
reproducing was running a runqemu where the image was deleted (as
devtool does), then running another runqemu test. E.g.:

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

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

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

(From OE-Core rev: 924b020eacf111b4fd4d731b363084e254a3422d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Trevor Gamblin
5811ed9140 python3: fix CVE-2020-8492
CVE: CVE-2020-8492

(From OE-Core rev: c9ee462bb606b34ab31cfb90f84a5302d15135cf)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
cdde3cfae3 staging: Fix overlapping file failures
If there are different providers of a file and they are swiched when the
recipe isn't machine specific, we can get tracebacks due to the overlapping
files. The issue is that the previous provider isn't uninstalled since
the system can't tell whether some later task needs them.

By tracking which tasks we depend upon, the code can now choose to
uninstall more things since a later task can reinstall if/as needed.

The code here was to protect against code with two different tasks
running in parallel which is still protected agaisnt.

[YOCTO #13702]

(From OE-Core rev: 86f36e3f93cdb2f5882b72e736a770aa6f46100d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
21684e6c83 oeqa/selftest: Add test for conflicting sysroot provider
sysroot-test depends on virtual/sysroot-test which we build for one machine,
switch machine, switch provider of virtual/sysroot-test and check that the
sysroot is correctly cleaned up. The files in the two providers overlap
so can cause errors if the sysroot code doesn't function correctly.

Yes, sysroot-test should be machine specific really to avoid this, however
the sysroot cleanup should also work.

This adds a test for bug:

[YOCTO #13702]

(From OE-Core rev: 31a8b4935e673aba8a1147c4a2fb510b1a8bc3ce)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Tim Orling
1246049541 scripts/install-buildtools: bump to 3.1 release by default
By default, use the extended buildtools installer from the
Yocto Project 3.1 "dunfell" release.

(From OE-Core rev: f1d4da322d607a17de6d9c291562b5fd1128fbc6)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Alex Kiernan
9a21a49065 run-postinsts: Set RemainAfterExit on systemd unit
run-postinsts is only expected to run once, but during startup, but if
any dependency is pulled into a transaction, even once it has been
marked disabled, then it can be restarted.

This leads to occasional failures during QA if an ssh session starts
whilst the existing transaction is still running:

  Finished Run pending postinsts.
  run-postinsts.service: Succeeded.
  Condition check resulted in Commit a transient machine-id on disk being skipped.
  Condition check resulted in Bind mount volatile /srv being skipped.
  Condition check resulted in Bind mount volatile /var/spool being skipped.
  Condition check resulted in Bind mount volatile /var/lib being skipped.
  Condition check resulted in Bind mount volatile /var/cache being skipped.
  Condition check resulted in Platform Persistent Storage Archival being skipped.
  Condition check resulted in Rebuild Hardware Database being skipped.
  Starting Run pending postinsts...
  Condition check resulted in Kernel Configuration File System being skipped.
  Condition check resulted in FUSE Control File System being skipped.
  Condition check resulted in Load Kernel Modules being skipped.
  Condition check resulted in File System Check on Root Device being skipped.
  Condition check resulted in Huge Pages File System being skipped.
  Condition check resulted in Journal Audit Socket being skipped.
  dropbear@125-192.168.7.2:22-192.168.7.1:44226.service: Succeeded.
  Condition check resulted in Platform Persistent Storage Archival being skipped.
  Started SSH Per-Connection Server (192.168.7.1:44226).
  dropbear@124-192.168.7.2:22-192.168.7.1:44224.service: Succeeded.
  Started SSH Per-Connection Server (192.168.7.1:44224).
  Condition check resulted in Commit a transient machine-id on disk being skipped.
  Condition check resulted in Bind mount volatile /srv being skipped.
  Condition check resulted in Bind mount volatile /var/spool being skipped.
  Condition check resulted in Bind mount volatile /var/lib being skipped.
  Condition check resulted in Bind mount volatile /var/cache being skipped.
  Condition check resulted in Platform Persistent Storage Archival being skipped.
  Condition check resulted in Rebuild Hardware Database being skipped.
  Failed to start Run pending postinsts.
  run-postinsts.service: Failed with result 'start-limit-hit'.
  run-postinsts.service: Start request repeated too quickly.

Setting RemainAfterExit ensures that the unit remains active and is not
gratuitously restarted, unless done so explicitly using systemctl
restart.

(From OE-Core rev: 6e78fd580a8c6ed9d886b8431974baf6c988831c)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Alexander Kanavin
37d1220985 testimage.bbclass: correctly process SIGTERM
Python's unittest will not propagate exceptions upside
of itself, but rather will just catch and print them.

The working way to make it stop is to send a SIGINT
(e.g. simulate a ctrl-c press), which will make it exit
with a KeyboardInterrupt exception.

This also makes pressing ctrl-c twice from bitbake work
again (previously hanging instances of bitbake and qemu were
left around, and bitbake would no longer start until they
were killed manually).

(From OE-Core rev: 72a19f5f0f4bc4472d13b29e46a5c1673977e37a)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Drew Moseley
447653f340 perl: Add missing dependency for tie-hash on carp.
(From OE-Core rev: 3d633f20a98edff434086aa59e8157990bd62f25)

Signed-off-by: Drew Moseley <drew.moseley@northern.tech>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Andrew Geissler
e8b26eb161 boost: revert 1.72.0 regression
https://www.boost.org/users/history/version_1_72_0.html documents a
"Known Issue" and has a revert patch for an issue that causes code to
fail to compile that includes the coroutine function. Without this
patch, code which includes the asymmetric_coroutine.hpp will fail to
compile.

(From OE-Core rev: b9998aa98052cc1c05f59d070677f74bd64c5a10)

Signed-off-by: Andrew Geissler <geissonator@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Joe Slater
79ae284741 vim: do not adjust script paths building for target
When cross-compiling, do not change scripts to use host
versions of perl and gawk.

Also, use INSANE_SKIP to suppress QA complaints if perl
or gawk are not on the target.

(From OE-Core rev: 9a96733e29daf84cca9212538f3fc5bd7bb144f4)

Signed-off-by: Joe Slater <joe.slater@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Domarys Correa
72a1526fd9 insane.bbclass: Add test for shebang line length
Shebang lines longer than 128 characters can give an error
depending on the operating system.
This implements a test that signals an error when locating a
faulty shebang.

YOCTO: #11053

(From OE-Core rev: 9ed54437b00aed1d41993f7658820d8adfb09282)

Signed-off-by: Domarys Correa <domarys.correa@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
df9e772bc7 binutils: Install PIC version of libiberty.a
some architectures e.g. mips complain in linking apps which have shared
libs that are linking with libiberty.a fixes errors like below

libiberty/../../libiberty/hashtab.c:285:(.text+0xf8): relocation R_MIPS_26 against `htab_create_typed_alloc' cannot be used when making a shared object; recompile with -fPIC

(From OE-Core rev: 4e64f0bc62fd81f91d75a1f46230fff7c71650e2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
f21e3abbac binutils: Detect proper static-libstdc++ support when using clang
Fixes configure time tests to ensure static-libstdc++ is enabled when
using clang

(From OE-Core rev: 7e90a36e62ebddf287c2ef19e28f88426e061897)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
426be0f2ae gcc: Configure all gccs with --disable-install-libiberty
OE uses libiberty from binutils, since its properly compiled as pic
archive and applications and other libraries needing libiberty can
properly link with it.

With this option applied, explicit delete of libiberty headers and
libraries is not required in install step, since they wont get installed
in first place.

(From OE-Core rev: b6f1def25cbb477549fad48e9586cef3ada2f9e5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
9960536181 packagegroup-go-sdk-target: Add go to packagegroup
This ensures that we have go compiler installed into image along with
runtime

(From OE-Core rev: a2371216d693d93c68f6e8aed5c41fd726c423b0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
97b2996489 go: Rely on go-runtime to provide needed modules
go compiler is including go/src/cmd modules in -dev package which is in
conflict with go-runtime-dev which provides exact same copy of this
module along with other runtime modules, as a result when both go-dev and
go-runtime-dev are included in image then it results in rootfs failures,
here lets make go depend on go-runtime and dont install the cmd module
here explicitly.

(From OE-Core rev: 1ace1655f8ae08c07c8875be53b641e7c2564ded)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Khem Raj
b4024d1280 packagegroup-go-sdk-target: Enable on rv64
RISCV64 now supports golang (starting dunfell), therefore limit
disabling to rv32 only.

(From OE-Core rev: 284060ed28862f287fde628cc42742aafa5baef1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Mingli Yu
4be0455aca pbzip2: Fix license warning
After below commit introduced, the LICENSE
field changed from BSD-4-Clause to bzip-1.0.6.
669600ef9b bzip2/pbzip2: Correct license information

But actually it should be bzip2-1.0.6,
update it to fix the below license warning:
WARNING: pbzip2-native-1.1.13-r0 do_populate_lic: pbzip2-native: No generic license file exists for: bzip-1.0.6 in any provider

(From OE-Core rev: 1b0312ec6f546fce0610d08ba754f500f3df4147)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Peter Kjellerstedt
301153707c busybox: Correct the name of the bzip2 license
The common bzip2 license was renamed from "bzip2" to "bzip2-1.0.6" in
commit 669600ef to match the official SPDX identifier.

(From OE-Core rev: be67faad412c47fb739059bd401322271f2cd7c8)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Richard Purdie
20d7b287c7 bzip2/pbzip2: Correct license information
The license of pbzip2 looks slightly BSD like but is in fact the bzip2
license. The SPDX identifier for this is "bzip-1.0.6" since there is
another version of the bzip license out there.

To clear up all the confusion, use the SPDX license name and update
both recipes to refer to it. The copyright information is slightly
different between the codebases but the license looks the same.

(From OE-Core rev: 05fdae7687d22e9f3476c807a15906a1f80e4daa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-07 13:03:30 +01:00
Changqing Li
3fc7afb010 parselogs.py: ignore pulseaudio startup warning messages
If set default syslog to rsyslog, we can see below messages
in user.log,

[pulseaudio] authkey.c: Failed to open cookie file
[pulseaudio] authkey.c: Failed to load authentication key

They are only warnings when cookie file is not found. And
PulseAudio will create it if it doesn't exist.

refer:
https://wiki.archlinux.org/index.php/PulseAudio/Configuration
https://lists.freedesktop.org/archives/pulseaudio-discuss/2014-December/022719.html

(From OE-Core rev: 2cc3fac9cd1a0d77931c9e49dbe2941fa8619c51)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:31 +01:00
hongxu
7ad39607ac buildtools-tarball: add nativesdk-mtools for `wic ls'
On ubuntu 18.04.1, it does not provides `mdir' by default
which caused `wic ls **.wic' failed on fat partition

...
$ wic ls build/tmp-glibc/deploy/images/xilinx-zynqmp/wrlinux-image-std-xilinx-zynqmp.wic

ERROR: Can't find executable 'mdir'
...

Add nativesdk-mtools to buildtools-tarball and use buildtools
to provide mdir

(From OE-Core rev: 605c81ff90760cdf4a1247df777d5ce8e12d6f6f)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:31 +01:00
Yi Zhao
2032c02627 alsa-state: ignore 'No soundcards found' error in pkg_postinst
If there is no soundcards on the target (e.g. qemu), the pkp_postinst
function will report an error:
  alsactl: load_state:1735: No soundcards found...
  pkg_run_script: package "alsa-state" postinst script returned status 19.
  opkg_configure: alsa-state.postinst returned 19.

Pass '-g' option to alsactl to ignore this error.

(From OE-Core rev: b2a3cf79cf564a76727bd7dbb21ba9b3d20cf5d4)

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:31 +01:00
Tim Orling
885edd1721 python3-manifest.json: add pathlib to core
The pathlib module is for Object-oriented filesystem paths

It also provides a lot of handy utilities for checking on
paths. This seems to justify adding it to the core package
along side os, sys, and the other *path libraries.

[YOCTO #13670]

(From OE-Core rev: 81bec2f08229723b550a0cc33d1c77f82432814d)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:31 +01:00
Pierre-Jean Texier
5895d5d16e ell: upgrade 0.30 -> 0.31
This is a bugfix release:

ver 0.31:
	Fix issue with verification of the second certificate in chain.
	Fix issue with handling trusted CA matching in verification.

(From OE-Core rev: c1892a1074560e27671975f4b9fb92468d9874da)

Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:31 +01:00
Wang Mingyu
fe91314542 gnutls: upgrade 3.6.12 -> 3.6.13
(From OE-Core rev: 41d9beb709713eb5a16bb31393717dce71db6018)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Maxime Roussin-B?langer
2aeba66c15 tzdata: remove exit 0 from pkg_postinst
Documentation says that if you exit 0 in a pkg_postinst it will marked as
installed.
If you exit 0, before running postinst-intercepts defer_to_first_boot, the
pkg_postinst_ontarget script will not be present on target.

The "exit 0" in tzdata makes it difficult to have a bbappend with a
pkg_postinst_target step when you have `INSTALL_TIMEZONE_FILE = 0`

(From OE-Core rev: ebf675abd0a077bc9aa71acf62b0477a84e1f536)

Signed-off-by: Maxime Roussin-Bélanger <maxime.roussinbelanger@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Khem Raj
47cc12f9df ruby: Link with libucontext on musl
coroutines in ruby 2.7+ needs ucontext APIs which are not available in
musl but an external library is available to provide them so use it

Use cached values for ac_cv_func_isnan and ac_cv_func_isinf this is not
detected correctly by configure on musl

on ARM drop using old arm32 implementation of coroutine which is slow and
inefficient

(From OE-Core rev: a2b1af47316a9f5c522db0c9feff1fbe0d39e022)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Khem Raj
1aeeecba56 libucontext: Bring in mips/mips64 support
License-Update: Updated copyright years [1]

Latest master 0.10.x+ has added support for mips/mips64, which should
help compile ruby on musl for these architectures

Switch SRC_URI to github upstream URI

Check for common arches before checking others in map_kernel_arch

Drop already upstreamed patches

[1] d31eaabbaf

(From OE-Core rev: 5dbb7d5bb9509dd455673a326c9191dec6f3092c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Jeremy Puhlman
d165768b8e 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: dfeca4d1e2442192aa40c420648cae2914c30be5)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Jeremy Puhlman
b13c3781b5 nativesdk-gcc-runtime: enable building libstdc++.a
(From OE-Core rev: 217e8f587792b2fe25aead085ddc533d4100cd7a)

Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Jeremy Puhlman
b6601c3d38 qemu-system-native: Fix commented out PACKAGECONFIG
(From OE-Core rev: 2797779cb8b821d8bec8df999c6ebb86384c9686)

Signed-off-by: Jeremy A. Puhlman <jpuhlman@mvista.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Paul Barker
9a14631d66 kernel-yocto.bbclass: Fix deps when externalsrc is used
do_kernel_configme was recently removed from SRCTREECOVEREDTASKS so this
task still runs when externalsrc is used. This task normally runs after
do_patch but when externalsrc is used, do_patch is removed and this ordering
restriction does nothing. This allows bitbake to execute do_kernel_configme
too early, causing races with do_unpack.

This is fixed by adding in a dependency on do_unpack when externalsrc is
used.

(From OE-Core rev: 75b47388fb18aaf58db311e570c009350d64084f)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Denys Dmytriyenko
613163d0da u-boot.inc: install u-boot-initial-env as ${PN}-initial-env in $D and $DEPLOYDIR
The common u-boot.inc can be used by multiple recipes in the same build for
different cores and/or multiple stages of the bootloader. Naming initial-env
with ${PN} prefix avoids clashes in deploy and rootfs between those recipes.

This fixes 69b3b093079c2ca2744d6c02747c5d1b5d3e7ecf that unconditionally
builds, installs and deploys u-boot-initial-env in the common u-boot.inc.

(From OE-Core rev: 78c55eac69dc4b6ae28d7e7911adb59430376b23)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-05-05 08:45:30 +01:00
Richard Purdie
5e44568d90 bitbake: data_smart: Handle hashing of datastores within datastores correctly
If there is a datastore within a datastore (e.g. BB_ORIGENV) then
get-hash() doesn;t correclty handle the contents using the memory
address instead of the contents.

This is a patch from dominik.jaeger@nokia.com which addresses
this problem. Its been low priority since we don't include
BB_ORIGENV anywhere this would cause an issue as standard.

[YOCTO #12473]

(Bitbake rev: 1a8bcfc1eb89ccff834ba68fb514330b510976a2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:41:29 +01:00
Richard Purdie
9062a225aa bitbake: cache: Fix performance problem with large numbers of source files
Some companies are using large numbers of patch files in SRC_URI.
Rightly or wrongly that exposes a performance problem where the code
does not handle the large string manipulations in a way which works
efficienty in python.

This is a modified version of a patch from z00539568
<zhangyifan46@huawei.com153340508@qq.com which addresses the performance
problem. I modified it to use a more advanced regex, retain the "*" check
and cache the regex.

[YOCTO #13824]

(Bitbake rev: c07f374998903359ed55f263c86466d05aa39b68)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:41:29 +01:00
Paul Barker
d03a6d33de bitbake: fetch2/wget: Set User-Agent when checking status of a URL
When a website is behind a CDN like Cloudflare there may be a "Browser
Integrity Check" or other test applied to requests before they are
allowed through to the server. Downloading via wget passes these tests
as headers are set appropriately, however the Python urllib module may
fail these tests unless additional headers are set. This causes
Wget.checkstatus() to fail where Wget.download() would actually succeed.

For Cloudflare in particular a valid User-Agent is needed, it's easy to
add this to the headers in Wget.checkstatus(). The user agent string is
copied from Wget._fetch_index().

(Bitbake rev: 4679d3cdb9cdf23f3962aa61c599ad7474591f9f)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:41:29 +01:00
Hongxu Jia
14c7608311 bitbake: tinfoil: fix config_data mess up insane check while parsing multiple recipes
Since commit [tinfoil: Simplify remote datastore connections][1] and
[tinfoil: Add back ability to parse on top of a datastore][2] applied,
bitbake run command parseRecipeFile with param config_data.dsindex rather
than config_data.

While calling tinfoil.parse_recipe_file() with one config_data (with the same
config_data.dsindex) to parse multiple recipes, it will mess up insane check.

It broke update_layer.py on layerindex, here are the simplified steps:
[snip]
t= bb.tinfoil.Tinfoil()
t.prepare()
data = bb.data.createCopy(t.config_data)
fn = "path_to/oe-core/meta/recipes-graphics/images/core-image-clutter.bb"
t.parse_recipe_file(fn, appends=False, config_data=data)
fn = "path_to/oe-core/meta/recipes-graphics/packagegroups/packagegroup-core-x11-base.bb"
t.parse_recipe_file(fn, appends=False, config_data=data)

|  File "path_to/oe-core/meta/classes/insane.bbclass", line 1303,
in __anon_1304__path_to_oe_core_meta_classes_insane_bbclass
|    bb.fatal("Fatal QA errors found, failing task.")
[snip]

In above failure, RDEPENDS is assigned `${PACKAGE_INSTALL} ${LINGUAS_INSTALL}
${IMAGE_INSTALL_DEBUGFS}' in core-image-clutter.bb, but it broke insane check
on packagegroup-core-x11-base.bb

>From commit [remotedata: enable transporting datastore from the client to
the server][3], it create a new DataSmart to save receive_datastore's remote_data
Similarly, make a copy of config_data(with different config_data.dsindex) could
fix the issue.

[1] http://git.openembedded.org/bitbake/commit/?id=85e03a64dd0a4ebe71009ec4bdf4192c04a9786e
[2] http://git.openembedded.org/bitbake/commit/?id=4618da2094189e4d814b7d65672cb65c86c0626a
[3] http://git.openembedded.org/bitbake/commit/?id=784d2f1a024efe632fc9049ce5b78692d419d938

(Bitbake rev: a3074807974536e370289c25fddcb9ad93cbc137)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:41:29 +01:00
Mark Morton
289a63b5dc Updated patch for publishing
(From yocto-docs rev: ac352ad7f95db7eeacb53c2778caa31800bd7c26)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:40:32 +01:00
mmorton
8e0a2e5456 Added usrmerge to distro-features for Bug 13494
(From yocto-docs rev: 049832ea4c13b01c31911ad0a6f3e170781db6cd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:40:32 +01:00
Robert P. J. Day
472aebce31 ref-manual: correct "script" dirname to "scripts"
(From yocto-docs rev: 43f042582675f89fcdf81c0cd2ac2602d4282cb3)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2020-04-26 13:40:32 +01:00
4153 changed files with 374992 additions and 241382 deletions

3
.gitignore vendored
View File

@@ -30,5 +30,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
bitbake/lib/toaster/contrib/tts/.cache/*

View File

@@ -1,72 +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
Maintainers needed
------------------
* Pseudo
* Layer Index
* recipetool
* QA framework/automated testing
* error reporting system/web UI
* wic
* Patchwork
* Patchtest
* Prelink-cross
* Matchbox
* Sato
* Autobuilder
Layer Maintainers needed
------------------------
* meta-gplv2 (ideally new strategy but active maintainer welcome)
Shadow maintainers/development needed
--------------------------------------
* toaster
* bitbake

View File

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

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

@@ -7,17 +7,17 @@ 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
http://yoctoproject.org/documentation
Contributing
------------
Please refer to
https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
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
@@ -28,16 +28,8 @@ branch, type:
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.
http://git.openembedded.org/bitbake/

View File

@@ -12,8 +12,6 @@
import os
import sys
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),
'lib'))
@@ -28,7 +26,7 @@ from bb.main import bitbake_main, BitBakeConfigParameters, BBMainException
if sys.getfilesystemencoding() != "utf-8":
sys.exit("Please use a locale setting which supports UTF-8 (such as LANG=en_US.UTF-8).\nPython can't change the filesystem locale after loading so we need a UTF-8 when Python starts or things won't work.")
__version__ = "1.52.0"
__version__ = "1.46.0"
if __name__ == "__main__":
if __version__ != bb.__version__:

View File

@@ -11,7 +11,6 @@
import os
import sys
import warnings
warnings.simplefilter("default")
import argparse
import logging
import pickle

View File

@@ -1,50 +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.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")
args = parser.parse_args()
if args.unexpand and not args.value:
print("--unexpand only makes sense with --value")
sys.exit(1)
if args.flag and not args.value:
print("--flag only makes sense with --value")
sys.exit(1)
with bb.tinfoil.Tinfoil(tracking=True) as tinfoil:
if args.recipe:
tinfoil.prepare(quiet=2)
d = tinfoil.parse_recipe(args.recipe)
else:
tinfoil.prepare(quiet=2, config_only=True)
d = tinfoil.config_data
if args.flag:
print(str(d.getVarFlag(args.variable, args.flag, expand=(not args.unexpand))))
elif args.value:
print(str(d.getVar(args.variable, expand=(not args.unexpand))))
else:
bb.data.emit_var(args.variable, d=d, all=True)

View File

@@ -13,8 +13,6 @@ import pprint
import sys
import threading
import time
import warnings
warnings.simplefilter("default")
try:
import tqdm
@@ -153,6 +151,9 @@ def main():
func = getattr(args, 'func', None)
if func:
client = hashserv.create_client(args.address)
# Try to establish a connection to the server now to detect failures
# early
client.connect()
return func(args, client)

View File

@@ -10,8 +10,6 @@ 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'))
@@ -32,11 +30,9 @@ def main():
"--bind [::1]:8686"'''
)
parser.add_argument('-b', '--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('-d', '--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('-l', '--log', default='WARNING', help='Set logging level')
parser.add_argument('-u', '--upstream', help='Upstream hashserv to pull hashes from')
parser.add_argument('-r', '--read-only', action='store_true', help='Disallow write operations from clients')
parser.add_argument('--bind', default=DEFAULT_BIND, help='Bind address (default "%(default)s")')
parser.add_argument('--database', default='./hashserv.db', help='Database file (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
args = parser.parse_args()
@@ -51,7 +47,7 @@ def main():
console.setLevel(level)
logger.addHandler(console)
server = hashserv.create_server(args.bind, args.database, upstream=args.upstream, read_only=args.read_only)
server = hashserv.create_server(args.bind, args.database)
server.serve_forever()
return 0

View File

@@ -14,8 +14,7 @@ import logging
import os
import sys
import argparse
import warnings
warnings.simplefilter("default")
import signal
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
@@ -27,6 +26,7 @@ import bb.msg
logger = bb.msg.logger_create('bitbake-layers', sys.stdout)
def main():
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
parser = argparse.ArgumentParser(
description="BitBake layers utility",
epilog="Use %(prog)s <subcommand> --help to get help on a specific command",

View File

@@ -6,8 +6,6 @@
import os
import sys,logging
import optparse
import warnings
warnings.simplefilter("default")
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),'lib'))
@@ -38,14 +36,12 @@ def main():
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)
parser.add_option("-r", "--read-only", help="open database in read-only mode",
action="store_true")
options, args = parser.parse_args(sys.argv)
prserv.init_logger(os.path.abspath(options.logfile),options.loglevel)
if options.start:
ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
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:

View File

@@ -7,8 +7,6 @@
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
@@ -20,7 +18,6 @@ except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.color",
"bb.tests.cooker",
"bb.tests.cow",
"bb.tests.data",
@@ -29,9 +26,7 @@ tests = ["bb.tests.codeparser",
"bb.tests.parse",
"bb.tests.persist_data",
"bb.tests.runqueue",
"bb.tests.siggen",
"bb.tests.utils",
"bb.tests.compression",
"hashserv.tests",
"layerindexlib.tests.layerindexobj",
"layerindexlib.tests.restapi",

View File

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

View File

@@ -6,7 +6,6 @@
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
@@ -17,8 +16,6 @@ import signal
import pickle
import traceback
import queue
import shlex
import subprocess
from multiprocessing import Lock
from threading import Thread
@@ -121,9 +118,7 @@ def worker_child_fire(event, d):
data = b"<event>" + pickle.dumps(event) + b"</event>"
try:
worker_pipe_lock.acquire()
while(len(data)):
written = worker_pipe.write(data)
data = data[written:]
worker_pipe.write(data)
worker_pipe_lock.release()
except IOError:
sigterm_handler(None, None)
@@ -148,27 +143,21 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
# a fork() or exec*() activates PSEUDO...
envbackup = {}
fakeroot = False
fakeenv = {}
umask = None
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 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 = (workerdata["fakerootenv"][fn] or "").split()
for key, value in (var.split('=') for var in envvars):
envbackup[key] = os.environ.get(key)
@@ -178,7 +167,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
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 = (workerdata["fakerootnoenv"][fn] or "").split()
@@ -287,13 +276,7 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
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:
@@ -338,9 +321,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)
@@ -432,9 +413,9 @@ class BitbakeWorker(object):
def handle_workerdata(self, data):
self.workerdata = pickle.loads(data)
bb.build.verboseShellLogging = self.workerdata["build_verbose_shell"]
bb.build.verboseStdoutLogging = self.workerdata["build_verbose_stdout"]
bb.msg.loggerDefaultLogLevel = self.workerdata["logdefaultlevel"]
bb.msg.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"])
@@ -524,11 +505,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)

519
bitbake/bin/bitdoc Executable file
View File

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

View File

@@ -16,8 +16,6 @@ import itertools
import os
import subprocess
import sys
import warnings
warnings.simplefilter("default")
version = 1.0

View File

@@ -19,8 +19,6 @@ import sys
import json
import pickle
import codecs
import warnings
warnings.simplefilter("default")
from collections import namedtuple

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,19 +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
COPY bin/bitbake-hashserv /opt/bbhashserv/bin/
COPY lib/hashserv /opt/bbhashserv/lib/hashserv/
ENTRYPOINT ["/opt/bbhashserv/bin/bitbake-hashserv"]

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

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,15 +51,15 @@ 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
@@ -67,17 +67,15 @@ syn match bbIncludeRest ".*$" contained contains=bbString,bbVarDeref
syn match bbIncludeLine "^\(inherit\|include\|require\)\s\+" contains=bbInclude nextgroup=bbIncludeRest
" Add taks and similar
syn keyword bbStatement addtask deltask addhandler after before EXPORT_FUNCTIONS contained
syn keyword bbStatement addtask addhandler after before EXPORT_FUNCTIONS contained
syn match bbStatementRest ".*$" skipwhite contained contains=bbStatement
syn match bbStatementLine "^\(addtask\|deltask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
syn match bbStatementLine "^\(addtask\|addhandler\|after\|before\|EXPORT_FUNCTIONS\)\s\+" contains=bbStatement nextgroup=bbStatementRest
" OE Important Functions
syn keyword bbOEFunctions do_fetch do_unpack do_patch do_configure do_compile do_stage do_install do_package contained
" Generic Functions
syn match bbFunction "\h[0-9A-Za-z_\-\.]*" display contained contains=bbOEFunctions
syn 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
@@ -85,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
@@ -93,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
@@ -124,6 +122,5 @@ hi def link bbStatement Statement
hi def link bbStatementRest 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

@@ -13,43 +13,27 @@ Folders exist for individual manuals as follows:
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 documentation
$ make -f Makefile.sphinx html
The resulting HTML index page will be _build/html/index.html, and you
can browse your own copy of the locally generated documentation with
your browser.
tools
=====
Contains a tool to convert the DocBook files to PDF format.

View File

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

View File

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

View File

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

View File

@@ -1,724 +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_WHITELIST`
- :term:`BB_ENV_EXTRAWHITE`
- :term:`BB_PRESERVE_ENV`
- :term:`BB_ORIGENV`
- :term:`BITBAKE_UI`
The first four variables in this list relate to how BitBake treats shell
environment variables during task execution. By default, BitBake cleans
the environment variables and provides tight control over the shell
execution environment. However, through the use of these first four
variables, you can apply your control regarding the environment
variables allowed to be used by BitBake in the shell during execution of
tasks. See the
":ref:`bitbake-user-manual/bitbake-user-manual-metadata:Passing Information Into the Build Task Environment`"
section and the information about these variables in the variable
glossary for more information on how they work and on how to use them.
The base configuration metadata is global and therefore affects all
recipes and tasks that are executed.
BitBake first searches the current working directory for an optional
``conf/bblayers.conf`` configuration file. This file is expected to
contain a :term:`BBLAYERS` variable that is a
space-delimited list of 'layer' directories. Recall that if BitBake
cannot find a ``bblayers.conf`` file, then it is assumed the user has
set the :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_WHITELIST`) and
then checking if the checksum matches. If that checksum matches what is
in the cache and the recipe and class files have not changed, BitBake is
able to use the cache. BitBake then reloads the cached information about
the recipe instead of reparsing it from scratch.
Recipe file collections exist to allow the user to have multiple
repositories of ``.bb`` files that contain the same exact package. For
example, one could easily use them to make one's own local copy of an
upstream repository, but with custom modifications that one does not
want upstream. Here is an example::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
BBFILE_PATTERN_upstream = "^/stuff/openembedded/"
BBFILE_PATTERN_local = "^/stuff/openembedded.modified/"
BBFILE_PRIORITY_upstream = "5"
BBFILE_PRIORITY_local = "10"
.. note::
The layers mechanism is now the preferred method of collecting code.
While the collections code remains, its main use is to set layer
priorities and to deal with overlap (conflicts) between layers.
.. _bb-bitbake-providers:
Providers
=========
Assuming BitBake has been instructed to execute a target and that all
the recipe files have been parsed, BitBake starts to figure out how to
build the target. BitBake looks through the :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
``${T}/log.do_taskname.pid``. Looking at the expanded shell functions in
the run file and the output in the log files is a useful debugging
technique.
For Python tasks, BitBake executes the task internally and logs
information to the controlling terminal. Future versions of BitBake will
write the functions to files similar to the way shell tasks are handled.
Logging will be handled in a way similar to shell tasks as well.
The order in which BitBake runs the tasks is controlled by its task
scheduler. It is possible to configure the scheduler and define custom
implementations for specific use cases. For more information, see these
variables that control the behavior:
- :term:`BB_SCHEDULER`
- :term:`BB_SCHEDULERS`
It is possible to have functions run before and after a task's main
function. This is done using the ``[prefuncs]`` and ``[postfuncs]``
flags of the task that lists the functions to run.
.. _checksums:
Checksums (Signatures)
======================
A checksum is a unique signature of a task's inputs. The signature of a
task can be used to determine if a task needs to be run. Because it is a
change in a task's inputs that triggers running the task, BitBake needs
to detect all the inputs to a given task. For shell tasks, this turns
out to be fairly easy because BitBake generates a "run" shell script for
each task and it is possible to create a checksum that gives you a good
idea of when the task's data changes.
To complicate the problem, some things should not be included in the
checksum. First, there is the actual specific build path of a given task
- the working directory. It does not matter if the working directory
changes because it should not affect the output for target packages. The
simplistic approach for excluding the working directory is to set it to
some fixed value and create the checksum for the "run" script. BitBake
goes one step better and uses the
:term:`BB_HASHBASE_WHITELIST` variable
to define a list of variables that should never be included when
generating the signatures.
Another problem results from the "run" scripts containing functions that
might or might not get called. The incremental build solution contains
code that figures out dependencies between shell functions. This code is
used to prune the "run" scripts down to the minimum set, thereby
alleviating this problem and making the "run" scripts much more readable
as a bonus.
So far we have solutions for shell scripts. What about Python tasks? The
same approach applies even though these tasks are more difficult. The
process needs to figure out what variables a Python function accesses
and what functions it calls. Again, the incremental build solution
contains code that first figures out the variable and function
dependencies, and then creates a checksum for the data used as the input
to the task.
Like the working directory case, situations exist where dependencies
should be ignored. For these cases, you can instruct the build process
to ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
This example ensures that the
``PACKAGE_ARCHS`` variable does not depend on the value of ``MACHINE``,
even if it does reference it.
Equally, there are cases where we need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
This example explicitly
adds the ``MACHINE`` variable as a dependency for ``PACKAGE_ARCHS``.
Consider a case with in-line Python, for example, where BitBake is not
able to figure out dependencies. When running in debug mode (i.e. using
``-DDD``), BitBake produces output when it discovers something for which
it cannot figure out dependencies.
Thus far, this section has limited discussion to the direct inputs into
a task. Information based on direct inputs is referred to as the
"basehash" in the code. However, there is still the question of a task's
indirect inputs - the things that were already built and present in the
build directory. The checksum (or signature) for a particular task needs
to add the hashes of all the tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision. However, the
effect is to generate a master checksum that combines the basehash and
the hashes of the task's dependencies.
At the code level, there are a variety of ways both the basehash and the
dependent task hashes can be influenced. Within the BitBake
configuration file, we can give BitBake some extra information to help
it construct the basehash. The following statement effectively results
in a list of global variable dependency excludes - variables never
included in any checksum. This example uses variables from OpenEmbedded
to help illustrate the concept::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL \
USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE PRSERV_HOST \
PRSERV_DUMPDIR PRSERV_DUMPFILE PRSERV_LOCKDOWN PARALLEL_MAKE \
CCACHE_DIR EXTERNAL_TOOLCHAIN CCACHE CCACHE_DISABLE LICENSE_PATH SDKPKGSUFFIX"
The previous example excludes the work directory, which is part of
``TMPDIR``.
The rules for deciding which hashes of dependent tasks to include
through dependency chains are more complex and are generally
accomplished with a Python function. The code in
``meta/lib/oe/sstatesig.py`` shows two examples of this and also
illustrates how you can insert your own policy into the system if so
desired. This file defines the two basic signature generators
OpenEmbedded-Core uses: "OEBasic" and "OEBasicHash". By default, there
is a dummy "noop" signature handler enabled in BitBake. This means that
behavior is unchanged from previous versions. ``OE-Core`` uses the
"OEBasicHash" signature handler by default through this setting in the
``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
The "OEBasicHash" :term:`BB_SIGNATURE_HANDLER` is the same as the "OEBasic"
version but adds the task hash to the stamp files. This results in any
metadata change that changes the task hash, automatically causing the
task to be run again. This removes the need to bump
:term:`PR` values, and changes to metadata automatically
ripple across the build.
It is also worth noting that the end result of these signature
generators is to make some dependency and hash information available to
the build. This information includes:
- ``BB_BASEHASH_task-``\ *taskname*: The base hashes for each task in the
recipe.
- ``BB_BASEHASH_``\ *filename:taskname*: The base hashes for each
dependent task.
- :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 closest
signature match it can (e.g. in the sstate cache) and then run
``bitbake-diffsigs`` over the matches to determine the stamps and delta
where these two stamp trees diverge.
.. note::
It is likely that future versions of BitBake will provide other
signature handlers triggered through additional "-S" parameters.
You can find more information on checksum metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Setscene
========
The setscene process enables BitBake to handle "pre-built" artifacts.
The ability to handle and reuse these artifacts allows BitBake the
luxury of not having to build something from scratch every time.
Instead, BitBake can use, when possible, existing build artifacts.
BitBake needs to have reliable data indicating whether or not an
artifact is compatible. Signatures, described in the previous section,
provide an ideal way of representing whether an artifact is compatible.
If a signature is the same, an object can be reused.
If an object can be reused, the problem then becomes how to replace a
given task or set of tasks with the pre-built artifact. BitBake solves
the problem with the "setscene" process.
When BitBake is asked to build a given target, before building anything,
it first asks whether cached information is available for any of the
targets it's building, or any of the intermediate targets. If cached
information is available, BitBake uses this information instead of
running the main tasks.
BitBake first calls the function defined by the
:term:`BB_HASHCHECK_FUNCTION` variable
with a list of tasks and corresponding hashes it wants to build. This
function is designed to be fast and returns a list of the tasks for
which it believes in can obtain artifacts.
Next, for each of the tasks that were returned as possibilities, BitBake
executes a setscene version of the task that the possible artifact
covers. Setscene versions of a task have the string "_setscene" appended
to the task name. So, for example, the task with the name ``xxx`` has a
setscene task named ``xxx_setscene``. The setscene version of the task
executes and provides the necessary artifacts returning either success
or failure.
As previously mentioned, an artifact can cover more than one task. For
example, it is pointless to obtain a compiler if you already have the
compiled binary. To handle this, BitBake calls the
:term:`BB_SETSCENE_DEPVALID` function for
each successful setscene task to know whether or not it needs to obtain
the dependencies of that task.
You can find more information on setscene metadata in the
:ref:`bitbake-user-manual/bitbake-user-manual-metadata:task checksums and setscene`
section.
Logging
=======
In addition to the standard command line option to control how verbose
builds are when execute, bitbake also supports user defined
configuration of the `Python
logging <https://docs.python.org/3/library/logging.html>`__ facilities
through the :term:`BB_LOGCONFIG` variable. This
variable defines a json or yaml `logging
configuration <https://docs.python.org/3/library/logging.config.html>`__
that will be intelligently merged into the default configuration. The
logging configuration is merged using the following rules:
- The user defined configuration will completely replace the default
configuration if top level key ``bitbake_merge`` is set to the value
``False``. In this case, all other rules are ignored.
- The user configuration must have a top level ``version`` which must
match the value of the default configuration.
- Any keys defined in the ``handlers``, ``formatters``, or ``filters``,
will be merged into the same section in the default configuration,
with the user specified keys taking replacing a default one if there
is a conflict. In practice, this means that if both the default
configuration and user configuration specify a handler named
``myhandler``, the user defined one will replace the default. To
prevent the user from inadvertently replacing a default handler,
formatter, or filter, all of the default ones are named with a prefix
of "``BitBake.``"
- If a logger is defined by the user with the key ``bitbake_merge`` set
to ``False``, that logger will be completely replaced by user
configuration. In this case, no other rules will apply to that
logger.
- All user defined ``filter`` and ``handlers`` properties for a given
logger will be merged with corresponding properties from the default
logger. For example, if the user configuration adds a filter called
``myFilter`` to the ``BitBake.SigGen``, and the default configuration
adds a filter called ``BitBake.defaultFilter``, both filters will be
applied to the logger
As an example, consider the following user logging configuration file
which logs all Hash Equivalence related messages of VERBOSE or higher to
a file called ``hashequiv.log`` ::
{
"version": 1,
"handlers": {
"autobuilderlog": {
"class": "logging.FileHandler",
"formatter": "logfileFormatter",
"level": "DEBUG",
"filename": "hashequiv.log",
"mode": "w"
}
},
"formatters": {
"logfileFormatter": {
"format": "%(name)s: %(levelname)s: %(message)s"
}
},
"loggers": {
"BitBake.SigGen.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
},
"BitBake.RunQueue.HashEquiv": {
"level": "VERBOSE",
"handlers": ["autobuilderlog"]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,694 +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/ \\n \
cvs://.*/.\* http://somemirror.org/sources/ \\n \
git://.*/.\* http://somemirror.org/sources/ \\n \
hg://.*/.\* http://somemirror.org/sources/ \\n \
osc://.*/.\* http://somemirror.org/sources/ \\n \
p4://.*/.\* http://somemirror.org/sources/ \\n \
svn://.*/.\* http://somemirror.org/sources/ \\n"
MIRRORS =+ "\
ftp://.*/.\* http://somemirror.org/sources/ \\n \
http://.*/.\* http://somemirror.org/sources/ \\n \
https://.*/.\* http://somemirror.org/sources/ \\n"
It is useful to note that BitBake
supports cross-URLs. It is possible to mirror a Git repository on an
HTTP server as a tarball. This is what the ``git://`` mapping in the
previous example does.
Since network accesses are slow, BitBake maintains a cache of files
downloaded from the network. Any source files that are not local (i.e.
downloaded from the Internet) are placed into the download directory,
which is specified by the :term:`DL_DIR` variable.
File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the :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.
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
The unpack call automatically decompresses and extracts files with ".Z",
".z", ".gz", ".xz", ".zip", ".jar", ".ipk", ".rpm". ".srpm", ".deb" and
".bz2" extensions as well as various combinations of tarball extensions.
As mentioned, the Git fetcher has its own unpack method that is
optimized to work with Git trees. Basically, this method works by
cloning the tree into the final directory. The process is completed
using references so that there is only one central copy of the Git
metadata needed.
.. _bb-fetchers:
Fetchers
========
As mentioned earlier, the URL prefix determines which fetcher submodule
BitBake uses. Each submodule can support different URL parameters, which
are described in the following sections.
.. _local-file-fetcher:
Local file fetcher (``file://``)
--------------------------------
This submodule handles URLs that begin with ``file://``. The filename
you specify within the URL can be either an absolute or relative path to
a file. If the filename is relative, the contents of the
:term:`FILESPATH` variable is used in the same way
``PATH`` is used to find executables. If the file cannot be found, it is
assumed that it is available in :term:`DL_DIR` by the
time the ``download()`` method is called.
If you specify a directory, the entire directory is unpacked.
Here are a couple of example URLs, the first relative and the second
absolute::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
.. _http-ftp-fetcher:
HTTP/FTP wget fetcher (``http://``, ``ftp://``, ``https://``)
-------------------------------------------------------------
This fetcher obtains files from web and FTP servers. Internally, the
fetcher uses the wget utility.
The executable and parameters used are specified by the
``FETCHCMD_wget`` variable, which defaults to sensible values. The
fetcher supports a parameter "downloadfilename" that allows the name of
the downloaded file to be specified. Specifying the name of the
downloaded file is useful for avoiding collisions in
:term:`DL_DIR` when dealing with multiple files that
have the same name.
Some example URLs are as follows::
SRC_URI = "http://oe.handhelds.org/not_there.aac"
SRC_URI = "ftp://oe.handhelds.org/not_there_as_well.aac"
SRC_URI = "ftp://you@oe.handhelds.org/home/you/secret.plan"
.. note::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git;a=snapshot;h=a5dd47"
Such URLs should should be modified by replacing semi-colons with '&'
characters::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
In most cases this should work. Treating semi-colons and '&' in
queries identically is recommended by the World Wide Web Consortium
(W3C). Note that due to the nature of the URL, you may have to
specify the name of the downloaded file as well::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47;downloadfilename=myfile.bz2"
.. _cvs-fetcher:
CVS fetcher (``(cvs://``)
-------------------------
This submodule handles checking out files from the CVS version control
system. You can configure it using a number of different variables:
- :term:`FETCHCMD_cvs <FETCHCMD>`: The name of the executable to use when running
the ``cvs`` command. This name is usually "cvs".
- :term:`SRCDATE`: The date to use when fetching the CVS source code. A
special value of "now" causes the checkout to be updated on every
build.
- :term:`CVSDIR`: Specifies where a temporary
checkout is saved. The location is often ``DL_DIR/cvs``.
- CVS_PROXY_HOST: The name to use as a "proxy=" parameter to the
``cvs`` command.
- CVS_PROXY_PORT: The port number to use as a "proxyport="
parameter to the ``cvs`` command.
As well as the standard username and password URL syntax, you can also
configure the fetcher with various URL parameters:
The supported parameters are as follows:
- *"method":* The protocol over which to communicate with the CVS
server. By default, this protocol is "pserver". If "method" is set to
"ext", BitBake examines the "rsh" parameter and sets ``CVS_RSH``. You
can use "dir" for local directories.
- *"module":* Specifies the module to check out. You must supply this
parameter.
- *"tag":* Describes which CVS TAG should be used for the checkout. By
default, the TAG is empty.
- *"date":* Specifies a date. If no "date" is specified, the
:term:`SRCDATE` of the configuration is used to
checkout a specific date. The special value of "now" causes the
checkout to be updated on every build.
- *"localdir":* Used to rename the module. Effectively, you are
renaming the output directory to which the module is unpacked. You
are forcing the module into a special directory relative to
:term:`CVSDIR`.
- *"rsh":* Used in conjunction with the "method" parameter.
- *"scmdata":* Causes the CVS metadata to be maintained in the tarball
the fetcher creates when set to "keep". The tarball is expanded into
the work directory. By default, the CVS metadata is removed.
- *"fullpath":* Controls whether the resulting checkout is at the
module level, which is the default, or is at deeper paths.
- *"norecurse":* Causes the fetcher to only checkout the specified
directory with no recurse into any subdirectories.
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows::
SRC_URI = "cvs://CVSROOT;module=mymodule;tag=some-version;method=ext"
SRC_URI = "cvs://CVSROOT;module=mymodule;date=20060126;localdir=usethat"
.. _svn-fetcher:
Subversion (SVN) Fetcher (``svn://``)
-------------------------------------
This fetcher submodule fetches code from the Subversion source control
system. The executable used is specified by ``FETCHCMD_svn``, which
defaults to "svn". The fetcher's temporary working directory is set by
:term:`SVNDIR`, which is usually ``DL_DIR/svn``.
The supported parameters are as follows:
- *"module":* The name of the svn module to checkout. You must provide
this parameter. You can think of this parameter as the top-level
directory of the repository data you want.
- *"path_spec":* A specific directory in which to checkout the
specified svn module.
- *"protocol":* The protocol to use, which defaults to "svn". If
"protocol" is set to "svn+ssh", the "ssh" parameter is also used.
- *"rev":* The revision of the source code to checkout.
- *"scmdata":* Causes the ".svn" directories to be available during
compile-time when set to "keep". By default, these directories are
removed.
- *"ssh":* An optional parameter used when "protocol" is set to
"svn+ssh". You can use this parameter to specify the ssh program used
by svn.
- *"transportuser":* When required, sets the username for the
transport. By default, this parameter is empty. The transport
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn::
SRC_URI = "svn://myrepos/proj1;module=vip;protocol=http;rev=667"
SRC_URI = "svn://myrepos/proj1;module=opie;protocol=svn+ssh"
SRC_URI = "svn://myrepos/proj1;module=trunk;protocol=http;path_spec=${MY_DIR}/proj1"
.. _git-fetcher:
Git Fetcher (``git://``)
------------------------
This fetcher submodule fetches code from the Git source control system.
The fetcher works by creating a bare clone of the remote into
:term:`GITDIR`, which is usually ``DL_DIR/git2``. This
bare clone is then cloned into the work directory during the unpack
stage when a specific tree is checked out. This is done using alternates
and by reference to minimize the amount of duplicate data on the disk
and make the unpack process fast. The executable used can be set with
``FETCHCMD_git``.
This fetcher supports the following parameters:
- *"protocol":* The protocol used to fetch the files. The default is
"git" when a hostname is set. If a hostname is not set, the Git
protocol is "file". You can also use "http", "https", "ssh" and
"rsync".
- *"nocheckout":* Tells the fetcher to not checkout source code when
unpacking when set to "1". Set this option for the URL where there is
a custom routine to checkout code. The default is "0".
- *"rebaseable":* Indicates that the upstream Git repository can be
rebased. You should set this parameter to "1" if revisions can become
detached from branches. In this case, the source mirror tarball is
done per revision, which has a loss of efficiency. Rebasing the
upstream Git repository could cause the current revision to disappear
from the upstream repository. This option reminds the fetcher to
preserve the local cache carefully for future use. The default value
for this parameter is "0".
- *"nobranch":* Tells the fetcher to not check the SHA validation for
the branch when set to "1". The default is "0". Set this option for
the recipe that refers to the commit that is valid for a tag instead
of the branch.
- *"bareclone":* Tells the fetcher to clone a bare clone into the
destination directory without checking out a working tree. Only the
raw Git metadata is provided. This parameter implies the "nocheckout"
parameter as well.
- *"branch":* The branch(es) of the Git tree to clone. If unset, this
is assumed to be "master". The number of branch parameters much match
the number of name parameters.
- *"rev":* The revision to use for the checkout. The default is
"master".
- *"tag":* Specifies a tag to use for the checkout. To correctly
resolve tags, BitBake must access the network. For that reason, tags
are often not used. As far as Git is concerned, the "tag" parameter
behaves effectively the same as the "rev" parameter.
- *"subpath":* Limits the checkout to a specific subpath of the tree.
By default, the whole tree is checked out.
- *"destsuffix":* The name of the path in which to place the checkout.
By default, the path is ``git/``.
- *"usehead":* Enables local ``git://`` URLs to use the current branch
HEAD as the revision for use with ``AUTOREV``. The "usehead"
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs::
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;tag=version-1"
SRC_URI = "git://git.oe.handhelds.org/git/vip.git;protocol=http"
.. 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.
.. _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.
Other Fetchers
--------------
Fetch submodules also exist for the following:
- Bazaar (``bzr://``)
- Mercurial (``hg://``)
- npm (``npm://``)
- OSC (``osc://``)
- Secure FTP (``sftp://``)
- Secure Shell (``ssh://``)
- Trees using Git Annex (``gitannex://``)
No documentation currently exists for these lesser used fetcher
submodules. However, you might find the code helpful and readable.
Auto Revisions
==============
We need to document ``AUTOREV`` and :term:`SRCREV_FORMAT` here.

View File

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

View File

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

View File

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

View File

@@ -1,654 +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 `Angstrom
Distribution <http://www.angstrom-distribution.org/>`__, and which is
also being used as the build tool for Linux projects such as the `Yocto
Project <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 [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, taskexp or
teamcity - 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.
--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.
--remote-server=REMOTE_SERVER
Connect to the specified server.
-m, --kill-server Terminate any running bitbake server.
--observe-only Connect to a server as an observing-only client.
--status-only Check the status of the remote bitbake server.
-w WRITEEVENTLOG, --write-log=WRITEEVENTLOG
Writes the event log of the build to a bitbake event
json file. Use '' (empty string) to assign the name
automatically.
--runall=RUNALL Run the specified task for any recipe in the taskgraph
of the specified target (even if it wouldn't otherwise
have run).
--runonly=RUNONLY Run only the specified task within the taskgraph of
the specified targets (and any task dependencies those
tasks may have).
.. _bitbake-examples:
Examples
--------
This section presents some examples showing how to use BitBake.
.. _example-executing-a-task-against-a-single-recipe:
Executing a Task Against a Single Recipe
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Executing tasks for a single recipe file is relatively simple. You
specify the file in question, and BitBake parses it and executes the
specified task. If you do not specify a task, BitBake executes the
default task, which is "build". BitBake obeys inter-task dependencies
when doing so.
The following command runs the build task, which is the default task, on
the ``foo_1.0.bb`` recipe file::
$ bitbake -b foo_1.0.bb
The following command runs the clean task on the ``foo.bb`` recipe file::
$ bitbake -b foo.bb -c clean
.. note::
The "-b" option explicitly does not handle recipe dependencies. Other
than for debugging purposes, it is instead recommended that you use
the syntax presented in the next section.
Executing Tasks Against a Set of Recipe Files
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
There are a number of additional complexities introduced when one wants
to manage multiple ``.bb`` files. Clearly there needs to be a way to
tell BitBake what files are available and, of those, which you want to
execute. There also needs to be a way for each recipe to express its
dependencies, both for build-time and runtime. There must be a way for
you to express recipe preferences when multiple recipes provide the same
functionality, or when there are multiple versions of a recipe.
The ``bitbake`` command, when not using "--buildfile" or "-b" only
accepts a "PROVIDES". You cannot provide anything else. By default, a
recipe file generally "PROVIDES" its "packagename" as shown in the
following example::
$ bitbake foo
This next example "PROVIDES" the
package name and also uses the "-c" option to tell BitBake to just
execute the ``do_clean`` task::
$ bitbake -c clean foo
Executing a List of Task and Recipe Combinations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The BitBake command line supports specifying different tasks for
individual targets when you specify multiple targets. For example,
suppose you had two targets (or recipes) ``myfirstrecipe`` and
``mysecondrecipe`` and you needed BitBake to run ``taskA`` for the first
recipe and ``taskB`` for the second recipe::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
Generating Dependency Graphs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BitBake is able to generate dependency graphs using the ``dot`` syntax.
You can convert these graphs into images using the ``dot`` tool from
`Graphviz <http://www.graphviz.org>`__.
When you generate a dependency graph, BitBake writes two files to the
current working directory:
- ``task-depends.dot``: Shows dependencies between tasks. These
dependencies match BitBake's internal task execution list.
- ``pn-buildlist``: Shows a simple list of targets that are to be
built.
To stop depending on common depends, use the "-I" depend option and
BitBake omits them from the graph. Leaving this information out can
produce more readable graphs. This way, you can remove from the graph
: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,891 @@
<!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>How to assemble the generated artifacts into
one or more installable packages</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 <firstterm>recipes</firstterm>.
<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, distribution configuration,
possible compiler tuning, general common
configuration, and user configuration.
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
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 <firstterm>Board Support Package</firstterm> (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 two files
to the current working directory:
<itemizedlist>
<listitem><para>
<emphasis><filename>task-depends.dot</filename>:</emphasis>
Shows dependencies between tasks.
These dependencies match BitBake's internal task execution list.
</para></listitem>
<listitem><para>
<emphasis><filename>pn-buildlist</filename>:</emphasis>
Shows a simple list of targets that are to be built.
</para></listitem>
</itemizedlist>
</para>
<para>
To stop depending on common depends, use the "-I" depend
option and BitBake omits them from the graph.
Leaving this information out can produce more readable graphs.
This way, you can remove from the graph
<filename>DEPENDS</filename> from inherited classes
such as <filename>base.bbclass</filename>.
</para>
<para>
Here are two examples that create dependency graphs.
The second example omits depends common in OpenEmbedded from
the graph:
<literallayout class='monospaced'>
$ bitbake -g foo
$ bitbake -g -I virtual/kernel -I eglibc foo
</literallayout>
</para>
</section>
<section id='executing-a-multiple-configuration-build'>
<title>Executing a Multiple Configuration Build</title>
<para>
BitBake is able to build multiple images or packages
using a single command where the different targets
require different configurations (multiple configuration
builds).
Each target, in this scenario, is referred to as a
"multiconfig".
</para>
<para>
To accomplish a multiple configuration build, you must
define each target's configuration separately using
a parallel configuration file in the build directory.
The location for these multiconfig configuration files
is specific.
They must reside in the current build directory in
a sub-directory of <filename>conf</filename> named
<filename>multiconfig</filename>.
Following is an example for two separate targets:
<imagedata fileref="figures/bb_multiconfig_files.png" align="center" width="4in" depth="3in" />
</para>
<para>
The reason for this required file hierarchy
is because the <filename>BBPATH</filename> variable
is not constructed until the layers are parsed.
Consequently, using the configuration file as a
pre-configuration file is not possible unless it is
located in the current working directory.
</para>
<para>
Minimally, each configuration file must define the
machine and the temporary directory BitBake uses
for the build.
Suggested practice dictates that you do not
overlap the temporary directories used during the
builds.
</para>
<para>
Aside from separate configuration files for each
target, you must also enable BitBake to perform multiple
configuration builds.
Enabling is accomplished by setting the
<link linkend='var-bb-BBMULTICONFIG'><filename>BBMULTICONFIG</filename></link>
variable in the <filename>local.conf</filename>
configuration file.
As an example, suppose you had configuration files
for <filename>target1</filename> and
<filename>target2</filename> defined in the build
directory.
The following statement in the
<filename>local.conf</filename> file both enables
BitBake to perform multiple configuration builds and
specifies the two extra multiconfigs:
<literallayout class='monospaced'>
BBMULTICONFIG = "target1 target2"
</literallayout>
</para>
<para>
Once the target configuration files are in place and
BitBake has been enabled to perform multiple configuration
builds, use the following command form to start the
builds:
<literallayout class='monospaced'>
$ bitbake [mc:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable> [[[mc:<replaceable>multiconfigname</replaceable>:]<replaceable>target</replaceable>] ... ]
</literallayout>
Here is an example for two extra multiconfigs:
<filename>target1</filename> and
<filename>target2</filename>:
<literallayout class='monospaced'>
$ bitbake mc::<replaceable>target</replaceable> mc:target1:<replaceable>target</replaceable> mc:target2:<replaceable>target</replaceable>
</literallayout>
</para>
</section>
<section id='bb-enabling-multiple-configuration-build-dependencies'>
<title>Enabling Multiple Configuration Build Dependencies</title>
<para>
Sometimes dependencies can exist between targets
(multiconfigs) in a multiple configuration build.
For example, suppose that in order to build an image
for a particular architecture, the root filesystem of
another build for a different architecture needs to
exist.
In other words, the image for the first multiconfig depends
on the root filesystem of the second multiconfig.
This dependency is essentially that the task in the recipe
that builds one multiconfig is dependent on the
completion of the task in the recipe that builds
another multiconfig.
</para>
<para>
To enable dependencies in a multiple configuration
build, you must declare the dependencies in the recipe
using the following statement form:
<literallayout class='monospaced'>
<replaceable>task_or_package</replaceable>[mcdepends] = "mc:<replaceable>from_multiconfig</replaceable>:<replaceable>to_multiconfig</replaceable>:<replaceable>recipe_name</replaceable>:<replaceable>task_on_which_to_depend</replaceable>"
</literallayout>
To better show how to use this statement, consider an
example with two multiconfigs: <filename>target1</filename>
and <filename>target2</filename>:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "mc:target1:target2:<replaceable>image2</replaceable>:<replaceable>rootfs_task</replaceable>"
</literallayout>
In this example, the
<replaceable>from_multiconfig</replaceable> is "target1" and
the <replaceable>to_multiconfig</replaceable> is "target2".
The task on which the image whose recipe contains
<replaceable>image_task</replaceable> depends on the
completion of the <replaceable>rootfs_task</replaceable>
used to build out <replaceable>image2</replaceable>, which
is associated with the "target2" multiconfig.
</para>
<para>
Once you set up this dependency, you can build the
"target1" multiconfig using a BitBake command as follows:
<literallayout class='monospaced'>
$ bitbake mc:target1:<replaceable>image1</replaceable>
</literallayout>
This command executes all the tasks needed to create
<replaceable>image1</replaceable> for the "target1"
multiconfig.
Because of the dependency, BitBake also executes through
the <replaceable>rootfs_task</replaceable> for the "target2"
multiconfig build.
</para>
<para>
Having a recipe depend on the root filesystem of another
build might not seem that useful.
Consider this change to the statement in the
<replaceable>image1</replaceable> recipe:
<literallayout class='monospaced'>
<replaceable>image_task</replaceable>[mcdepends] = "mc:target1:target2:<replaceable>image2</replaceable>:<replaceable>image_task</replaceable>"
</literallayout>
In this case, BitBake must create
<replaceable>image2</replaceable> for the "target2"
build since the "target1" build depends on it.
</para>
<para>
Because "target1" and "target2" are enabled for multiple
configuration builds and have separate configuration
files, BitBake places the artifacts for each build in the
respective temporary build directories.
</para>
</section>
</section>
</section>
</chapter>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

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

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

View File

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

View File

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

View File

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

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

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

File diff suppressed because one or more lines are too long

View File

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

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

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

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

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

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

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

View File

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

View File

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

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

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

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

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

@@ -9,11 +9,11 @@
# SPDX-License-Identifier: GPL-2.0-only
#
__version__ = "1.52.0"
__version__ = "1.46.0"
import sys
if sys.version_info < (3, 6, 0):
raise RuntimeError("Sorry, python 3.6.0 or later is required for this version of bitbake")
if sys.version_info < (3, 5, 0):
raise RuntimeError("Sorry, python 3.5.0 or later is required for this version of bitbake")
class BBHandledException(Exception):
@@ -21,8 +21,8 @@ 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
@@ -35,30 +35,19 @@ 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:
if loglevel > bb.msg.loggerDefaultLogLevel:
return
return self.log(loglevel, msg, *args, **kwargs)
@@ -71,56 +60,16 @@ class BBLoggerMixin(object):
def verbnote(self, msg, *args, **kwargs):
return self.log(logging.INFO + 2, msg, *args, **kwargs)
Logger = logging.getLoggerClass()
class BBLogger(Logger, BBLoggerMixin):
def __init__(self, name, *args, **kwargs):
self.setup_bblogger(name)
super().__init__(name, *args, **kwargs)
logging.raiseExceptions = False
logging.setLoggerClass(BBLogger)
class BBLoggerAdapter(logging.LoggerAdapter, BBLoggerMixin):
def __init__(self, logger, *args, **kwargs):
self.setup_bblogger(logger.name)
super().__init__(logger, *args, **kwargs)
if sys.version_info < (3, 6):
# These properties were added in Python 3.6. Add them in older versions
# for compatibility
@property
def manager(self):
return self.logger.manager
@manager.setter
def manager(self, value):
self.logger.manager = value
@property
def name(self):
return self.logger.name
def __repr__(self):
logger = self.logger
level = logger.getLevelName(logger.getEffectiveLevel())
return '<%s %s (%s)>' % (self.__class__.__name__, logger.name, level)
logging.LoggerAdapter = BBLoggerAdapter
logger = logging.getLogger("BitBake")
logger.addHandler(NullHandler())
logger.setLevel(logging.DEBUG - 2)
mainlogger = logging.getLogger("BitBake.Main")
class PrefixLoggerAdapter(logging.LoggerAdapter):
def __init__(self, prefix, logger):
super().__init__(logger, {})
self.__msg_prefix = prefix
def process(self, msg, kwargs):
return "%s%s" %(self.__msg_prefix, msg), kwargs
# This has to be imported after the setLoggerClass, as the import of bb.msg
# can result in construction of the various loggers.
import bb.msg
@@ -137,7 +86,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))

View File

@@ -1,31 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import itertools
import json
# 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"
from .client import AsyncClient, Client
from .serv import AsyncServer, AsyncServerConnection

View File

@@ -1,172 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import socket
import sys
from . import chunkify, DEFAULT_MAX_CHUNK
class AsyncClient(object):
def __init__(self, proto_name, proto_version, logger, timeout=30):
self.reader = None
self.writer = None
self.max_chunk = DEFAULT_MAX_CHUNK
self.proto_name = proto_name
self.proto_version = proto_version
self.logger = logger
self.timeout = timeout
async def connect_tcp(self, address, port):
async def connect_sock():
return await asyncio.open_connection(address, port)
self._connect_sock = connect_sock
async def connect_unix(self, path):
async def connect_sock():
return await asyncio.open_unix_connection(path)
self._connect_sock = connect_sock
async def setup_connection(self):
s = '%s %s\n\n' % (self.proto_name, self.proto_version)
self.writer.write(s.encode("utf-8"))
await self.writer.drain()
async def connect(self):
if self.reader is None or self.writer is None:
(self.reader, self.writer) = await self._connect_sock()
await self.setup_connection()
async def close(self):
self.reader = None
if self.writer is not None:
self.writer.close()
self.writer = None
async def _send_wrapper(self, proc):
count = 0
while True:
try:
await self.connect()
return await proc()
except (
OSError,
ConnectionError,
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
async def send_message(self, msg):
async def get_line():
try:
line = await asyncio.wait_for(self.reader.readline(), self.timeout)
except asyncio.TimeoutError:
raise ConnectionError("Timed out waiting for server")
if not line:
raise ConnectionError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise ConnectionError("Bad message %r" % (line))
return line
async def proc():
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode("utf-8"))
await self.writer.drain()
l = await get_line()
m = json.loads(l)
if m and "chunk-stream" in m:
lines = []
while True:
l = (await get_line()).rstrip("\n")
if not l:
break
lines.append(l)
m = json.loads("".join(lines))
return m
return await self._send_wrapper(proc)
async def ping(self):
return await self.send_message(
{'ping': {}}
)
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):
# AF_UNIX has path length issues so chdir here to workaround
cwd = os.getcwd()
try:
os.chdir(os.path.dirname(path))
self.loop.run_until_complete(self.client.connect_unix(os.path.basename(path)))
self.loop.run_until_complete(self.client.connect())
finally:
os.chdir(cwd)
@property
def max_chunk(self):
return self.client.max_chunk
@max_chunk.setter
def max_chunk(self, value):
self.client.max_chunk = value
def close(self):
self.loop.run_until_complete(self.client.close())
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()

View File

@@ -1,286 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import signal
import socket
import sys
import multiprocessing
from . import chunkify, DEFAULT_MAX_CHUNK
class ClientError(Exception):
pass
class ServerError(Exception):
pass
class AsyncServerConnection(object):
def __init__(self, reader, writer, proto_name, logger):
self.reader = reader
self.writer = writer
self.proto_name = proto_name
self.max_chunk = DEFAULT_MAX_CHUNK
self.handlers = {
'chunk-stream': self.handle_chunk,
'ping': self.handle_ping,
}
self.logger = logger
async def process_requests(self):
try:
self.addr = self.writer.get_extra_info('peername')
self.logger.debug('Client %r connected' % (self.addr,))
# Read protocol and version
client_protocol = await self.reader.readline()
if client_protocol is None:
return
(client_proto_name, client_proto_version) = client_protocol.decode('utf-8').rstrip().split()
if client_proto_name != self.proto_name:
self.logger.debug('Rejecting invalid protocol %s' % (self.proto_name))
return
self.proto_version = tuple(int(v) for v in client_proto_version.split('.'))
if not self.validate_proto_version():
self.logger.debug('Rejecting invalid protocol version %s' % (client_proto_version))
return
# Read headers. Currently, no headers are implemented, so look for
# an empty line to signal the end of the headers
while True:
line = await self.reader.readline()
if line is None:
return
line = line.decode('utf-8').rstrip()
if not line:
break
# Handle messages
while True:
d = await self.read_message()
if d is None:
break
await self.dispatch_message(d)
await self.writer.drain()
except ClientError as e:
self.logger.error(str(e))
finally:
self.writer.close()
async def dispatch_message(self, msg):
for k in self.handlers.keys():
if k in msg:
self.logger.debug('Handling %s' % k)
await self.handlers[k](msg[k])
return
raise ClientError("Unrecognized command %r" % msg)
def write_message(self, msg):
for c in chunkify(json.dumps(msg), self.max_chunk):
self.writer.write(c.encode('utf-8'))
async def read_message(self):
l = await self.reader.readline()
if not l:
return None
try:
message = l.decode('utf-8')
if not message.endswith('\n'):
return None
return json.loads(message)
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % message)
raise e
async def handle_chunk(self, request):
lines = []
try:
while True:
l = await self.reader.readline()
l = l.rstrip(b"\n").decode("utf-8")
if not l:
break
lines.append(l)
msg = json.loads(''.join(lines))
except (json.JSONDecodeError, UnicodeDecodeError) as e:
self.logger.error('Bad message from client: %r' % lines)
raise e
if 'chunk-stream' in msg:
raise ClientError("Nested chunks are not allowed")
await self.dispatch_message(msg)
async def handle_ping(self, request):
response = {'alive': True}
self.write_message(response)
class AsyncServer(object):
def __init__(self, logger):
self._cleanup_socket = None
self.logger = logger
self.start = None
self.address = None
self.loop = None
def start_tcp_server(self, host, port):
def start_tcp():
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port)
)
for s in self.server.sockets:
self.logger.debug('Listening on %r' % (s.getsockname(),))
# Newer python does this automatically. Do it manually here for
# maximum compatibility
s.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, 1)
s.setsockopt(socket.SOL_TCP, socket.TCP_QUICKACK, 1)
name = self.server.sockets[0].getsockname()
if self.server.sockets[0].family == socket.AF_INET6:
self.address = "[%s]:%d" % (name[0], name[1])
else:
self.address = "%s:%d" % (name[0], name[1])
self.start = start_tcp
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
def start_unix():
cwd = os.getcwd()
try:
# Work around path length limits in AF_UNIX
os.chdir(os.path.dirname(path))
self.server = self.loop.run_until_complete(
asyncio.start_unix_server(self.handle_client, os.path.basename(path))
)
finally:
os.chdir(cwd)
self.logger.debug('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
self.start = start_unix
@abc.abstractmethod
def accept_client(self, reader, writer):
pass
async def handle_client(self, reader, writer):
# writer.transport.set_write_buffer_limits(0)
try:
client = self.accept_client(reader, writer)
await client.process_requests()
except Exception as e:
import traceback
self.logger.error('Error from client: %s' % str(e), exc_info=True)
traceback.print_exc()
writer.close()
self.logger.debug('Client disconnected')
def run_loop_forever(self):
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
def signal_handler(self):
self.logger.debug("Got exit signal")
self.loop.stop()
def _serve_forever(self):
try:
self.loop.add_signal_handler(signal.SIGTERM, self.signal_handler)
signal.pthread_sigmask(signal.SIG_UNBLOCK, [signal.SIGTERM])
self.run_loop_forever()
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
self.logger.debug('Server shutting down')
finally:
if self._cleanup_socket is not None:
self._cleanup_socket()
def serve_forever(self):
"""
Serve requests in the current process
"""
# Create loop and override any loop that may have existed in
# a parent process. It is possible that the usecases of
# serve_forever might be constrained enough to allow using
# get_event_loop here, but better safe than sorry for now.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
self.start()
self._serve_forever()
def serve_as_process(self, *, prefunc=None, args=()):
"""
Serve requests in a child process
"""
def run(queue):
# Create loop and override any loop that may have existed
# in a parent process. Without doing this and instead
# using get_event_loop, at the very minimum the hashserv
# unit tests will hang when running the second test.
# This happens since get_event_loop in the spawned server
# process for the second testcase ends up with the loop
# from the hashserv client created in the unit test process
# when running the first testcase. The problem is somewhat
# more general, though, as any potential use of asyncio in
# Cooker could create a loop that needs to replaced in this
# new process.
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
try:
self.start()
finally:
queue.put(self.address)
queue.close()
if prefunc is not None:
prefunc(self, *args)
self._serve_forever()
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
queue = multiprocessing.Queue()
# Temporarily block SIGTERM. The server process will inherit this
# block which will ensure it doesn't receive the SIGTERM until the
# handler is ready for it
mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signal.SIGTERM])
try:
self.process = multiprocessing.Process(target=run, args=(queue,))
self.process.start()
self.address = queue.get()
queue.close()
queue.join_thread()
return self.process
finally:
signal.pthread_sigmask(signal.SIG_SETMASK, mask)

View File

@@ -16,9 +16,7 @@ import os
import sys
import logging
import glob
import itertools
import time
import re
import stat
import bb
import bb.msg
@@ -29,9 +27,6 @@ from bb import data, event, utils
bblogger = logging.getLogger('BitBake')
logger = logging.getLogger('BitBake.Build')
verboseShellLogging = False
verboseStdoutLogging = False
__mtime_cache = {}
def cached_mtime_noerror(f):
@@ -295,13 +290,9 @@ def exec_func_python(func, d, runfile, cwd=None):
lineno = int(d.getVarFlag(func, "lineno", False))
bb.methodpool.insert_method(func, text, fn, lineno - 1)
comp = utils.better_compile(code, func, "exec_func_python() autogenerated")
utils.better_exec(comp, {"d": d}, code, "exec_func_python() autogenerated")
comp = utils.better_compile(code, func, "exec_python_func() autogenerated")
utils.better_exec(comp, {"d": d}, code, "exec_python_func() autogenerated")
finally:
# We want any stdout/stderr to be printed before any other log messages to make debugging
# more accurate. In some cases we seem to lose stdout/stderr entirely in logging tests without this.
sys.stdout.flush()
sys.stderr.flush()
bb.debug(2, "Python function %s finished" % func)
if cwd and olddir:
@@ -312,60 +303,20 @@ def exec_func_python(func, d, runfile, cwd=None):
def shell_trap_code():
return '''#!/bin/sh\n
__BITBAKE_LAST_LINE=0
# Emit a useful diagnostic if something fails:
bb_sh_exit_handler() {
bb_exit_handler() {
ret=$?
if [ "$ret" != 0 ]; then
echo "WARNING: exit code $ret from a shell command."
fi
exit $ret
case $ret in
0) ;;
*) case $BASH_VERSION in
"") echo "WARNING: exit code $ret from a shell command.";;
*) echo "WARNING: ${BASH_SOURCE[0]}:${BASH_LINENO[0]} exit $ret from '$BASH_COMMAND'";;
esac
exit $ret
esac
}
bb_bash_exit_handler() {
ret=$?
{ set +x; } > /dev/null
trap "" DEBUG
if [ "$ret" != 0 ]; then
echo "WARNING: ${BASH_SOURCE[0]}:${__BITBAKE_LAST_LINE} exit $ret from '$1'"
echo "WARNING: Backtrace (BB generated script): "
for i in $(seq 1 $((${#FUNCNAME[@]} - 1))); do
if [ "$i" -eq 1 ]; then
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${__BITBAKE_LAST_LINE}"
else
echo -e "\t#$((i)): ${FUNCNAME[$i]}, ${BASH_SOURCE[$((i-1))]}, line ${BASH_LINENO[$((i-1))]}"
fi
done
fi
exit $ret
}
bb_bash_debug_handler() {
local line=${BASH_LINENO[0]}
# For some reason the DEBUG trap trips with lineno=1 when scripts exit; ignore it
if [ "$line" -eq 1 ]; then
return
fi
# Track the line number of commands as they execute. This is so we can have access to the failing line number
# in the EXIT trap. See http://gnu-bash.2382.n7.nabble.com/trap-echo-quot-trap-exit-on-LINENO-quot-EXIT-gt-wrong-linenumber-td3666.html
if [ "${FUNCNAME[1]}" != "bb_bash_exit_handler" ]; then
__BITBAKE_LAST_LINE=$line
fi
}
case $BASH_VERSION in
"") trap 'bb_sh_exit_handler' 0
set -e
;;
*) trap 'bb_bash_exit_handler "$BASH_COMMAND"' 0
trap '{ bb_bash_debug_handler; } 2>/dev/null' DEBUG
set -e
shopt -s extdebug
;;
esac
trap 'bb_exit_handler' 0
set -e
'''
def create_progress_handler(func, progress, logfile, d):
@@ -395,7 +346,7 @@ def create_progress_handler(func, progress, logfile, d):
cls_obj = functools.reduce(resolve, cls.split("."), bb.utils._context)
if not cls_obj:
# Fall-back on __builtins__
cls_obj = functools.reduce(resolve, cls.split("."), __builtins__)
cls_obj = functools.reduce(lambda x, y: x.get(y), cls.split("."), __builtins__)
if cls_obj:
return cls_obj(d, outfile=logfile, otherargs=otherargs)
bb.warn('%s: unknown custom progress handler in task progress varflag value "%s", ignoring' % (func, cls))
@@ -420,7 +371,7 @@ def exec_func_shell(func, d, runfile, cwd=None):
bb.data.emit_func(func, script, d)
if verboseShellLogging or bb.utils.to_boolean(d.getVar("BB_VERBOSE_LOGS", False)):
if bb.msg.loggerVerboseLogs:
script.write("set -x\n")
if cwd:
script.write("cd '%s'\n" % cwd)
@@ -440,20 +391,14 @@ exit $ret
if fakerootcmd:
cmd = [fakerootcmd, runfile]
if verboseStdoutLogging:
if bb.msg.loggerDefaultVerbose:
logfile = LogTee(logger, StdoutNoopContextManager())
else:
logfile = StdoutNoopContextManager()
progress = d.getVarFlag(func, 'progress')
if progress:
try:
logfile = create_progress_handler(func, progress, logfile, d)
except:
from traceback import format_exc
logger.error("Failed to create progress handler")
logger.error(format_exc())
raise
logfile = create_progress_handler(func, progress, logfile, d)
fifobuffer = bytearray()
def readfifo(data):
@@ -505,62 +450,6 @@ exit $ret
bb.debug(2, "Executing shell function %s" % func)
with open(os.devnull, 'r+') as stdin, logfile:
bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
except bb.process.ExecutionError as exe:
# Find the backtrace that the shell trap generated
backtrace_marker_regex = re.compile(r"WARNING: Backtrace \(BB generated script\)")
stdout_lines = (exe.stdout or "").split("\n")
backtrace_start_line = None
for i, line in enumerate(reversed(stdout_lines)):
if backtrace_marker_regex.search(line):
backtrace_start_line = len(stdout_lines) - i
break
# Read the backtrace frames, starting at the location we just found
backtrace_entry_regex = re.compile(r"#(?P<frameno>\d+): (?P<funcname>[^\s]+), (?P<file>.+?), line ("
r"?P<lineno>\d+)")
backtrace_frames = []
if backtrace_start_line:
for line in itertools.islice(stdout_lines, backtrace_start_line, None):
match = backtrace_entry_regex.search(line)
if match:
backtrace_frames.append(match.groupdict())
with open(runfile, "r") as script:
script_lines = [line.rstrip() for line in script.readlines()]
# For each backtrace frame, search backwards in the script (from the line number called out by the frame),
# to find the comment that emit_vars injected when it wrote the script. This will give us the metadata
# filename (e.g. .bb or .bbclass) and line number where the shell function was originally defined.
script_metadata_comment_regex = re.compile(r"# line: (?P<lineno>\d+), file: (?P<file>.+)")
better_frames = []
# Skip the very last frame since it's just the call to the shell task in the body of the script
for frame in backtrace_frames[:-1]:
# Check whether the frame corresponds to a function defined in the script vs external script.
if os.path.samefile(frame["file"], runfile):
# Search backwards from the frame lineno to locate the comment that BB injected
i = int(frame["lineno"]) - 1
while i >= 0:
match = script_metadata_comment_regex.match(script_lines[i])
if match:
# Calculate the relative line in the function itself
relative_line_in_function = int(frame["lineno"]) - i - 2
# Calculate line in the function as declared in the metadata
metadata_function_line = relative_line_in_function + int(match["lineno"])
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(
frameno=frame["frameno"],
funcname=frame["funcname"],
file=match["file"],
lineno=metadata_function_line
))
break
i -= 1
else:
better_frames.append("#{frameno}: {funcname}, {file}, line {lineno}".format(**frame))
if better_frames:
better_frames = ("\t{0}".format(frame) for frame in better_frames)
exe.extra_message = "\nBacktrace (metadata-relative locations):\n{0}".format("\n".join(better_frames))
raise
finally:
os.unlink(fifopath)
@@ -587,7 +476,7 @@ def _exec_task(fn, task, d, quieterr):
logger.error("No such task: %s" % task)
return 1
logger.debug("Executing task %s", task)
logger.debug(1, "Executing task %s", task)
localdata = _task_data(fn, task, d)
tempdir = localdata.getVar('T')
@@ -600,7 +489,7 @@ def _exec_task(fn, task, d, quieterr):
curnice = os.nice(0)
nice = int(nice) - curnice
newnice = os.nice(nice)
logger.debug("Renice to %s " % newnice)
logger.debug(1, "Renice to %s " % newnice)
ionice = localdata.getVar("BB_TASK_IONICE_LEVEL")
if ionice:
try:
@@ -686,51 +575,47 @@ def _exec_task(fn, task, d, quieterr):
try:
try:
event.fire(TaskStarted(task, fn, logfn, flags, localdata), localdata)
except (bb.BBHandledException, SystemExit):
return 1
try:
for func in (prefuncs or '').split():
exec_func(func, localdata)
exec_func(task, localdata)
for func in (postfuncs or '').split():
exec_func(func, localdata)
finally:
# Need to flush and close the logs before sending events where the
# UI may try to look at the logs.
sys.stdout.flush()
sys.stderr.flush()
except bb.BBHandledException:
event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
return 1
except Exception as exc:
if quieterr:
event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
else:
errprinted = errchk.triggered
logger.error(str(exc))
event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
return 1
finally:
sys.stdout.flush()
sys.stderr.flush()
bblogger.removeHandler(handler)
bblogger.removeHandler(handler)
# Restore the backup fds
os.dup2(osi[0], osi[1])
os.dup2(oso[0], oso[1])
os.dup2(ose[0], ose[1])
# Restore the backup fds
os.dup2(osi[0], osi[1])
os.dup2(oso[0], oso[1])
os.dup2(ose[0], ose[1])
# Close the backup fds
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
logfile.close()
if os.path.exists(logfn) and os.path.getsize(logfn) == 0:
logger.debug2("Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
except bb.BBHandledException:
event.fire(TaskFailed(task, fn, logfn, localdata, True), localdata)
return 1
except (Exception, SystemExit) as exc:
if quieterr:
event.fire(TaskFailedSilent(task, fn, logfn, localdata), localdata)
else:
errprinted = errchk.triggered
# If the output is already on stdout, we've printed the information in the
# logs once already so don't duplicate
if verboseStdoutLogging:
errprinted = True
logger.error(repr(exc))
event.fire(TaskFailed(task, fn, logfn, localdata, errprinted), localdata)
return 1
# Close the backup fds
os.close(osi[0])
os.close(oso[0])
os.close(ose[0])
logfile.close()
if os.path.exists(logfn) and os.path.getsize(logfn) == 0:
logger.debug(2, "Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
event.fire(TaskSucceeded(task, fn, logfn, localdata), localdata)
if not localdata.getVarFlag(task, 'nostamp', False) and not localdata.getVarFlag(task, 'selfstamp', False):
@@ -862,23 +747,6 @@ def make_stamp(task, d, file_name = None):
file_name = d.getVar('BB_FILENAME')
bb.parse.siggen.dump_sigtask(file_name, task, stampbase, True)
def find_stale_stamps(task, d, file_name=None):
current = stamp_internal(task, d, file_name)
current2 = stamp_internal(task + "_setscene", d, file_name)
cleanmask = stamp_cleanmask_internal(task, d, file_name)
found = []
for mask in cleanmask:
for name in glob.glob(mask):
if "sigdata" in name or "sigbasedata" in name:
continue
if name.endswith('.taint'):
continue
if name == current or name == current2:
continue
logger.debug2("Stampfile %s does not match %s or %s" % (name, current, current2))
found.append(name)
return found
def del_stamp(task, d, file_name = None):
"""
Removes a stamp for a given task
@@ -935,11 +803,6 @@ def add_tasks(tasklist, d):
task_deps[name] = {}
if name in flags:
deptask = d.expand(flags[name])
if name in ['noexec', 'fakeroot', 'nostamp']:
if deptask != '1':
bb.warn("In a future version of BitBake, setting the '{}' flag to something other than '1' "
"will result in the flag not being set. See YP bug #13808.".format(name))
task_deps[name][task] = deptask
getTask('mcdepends')
getTask('depends')
@@ -1038,8 +901,6 @@ def tasksbetween(task_start, task_end, d):
def follow_chain(task, endtask, chain=None):
if not chain:
chain = []
if task in chain:
bb.fatal("Circular task dependencies as %s depends on itself via the chain %s" % (task, " -> ".join(chain)))
chain.append(task)
for othertask in tasks:
if othertask == task:

View File

@@ -20,20 +20,15 @@ import os
import logging
import pickle
from collections import defaultdict
from collections.abc import Mapping
import bb.utils
from bb import PrefixLoggerAdapter
import re
logger = logging.getLogger("BitBake.Cache")
__cache_version__ = "154"
__cache_version__ = "152"
def getCacheFile(path, filename, mc, data_hash):
mcspec = ''
if mc:
mcspec = ".%s" % mc
return os.path.join(path, filename + mcspec + "." + data_hash)
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
# RecipeInfoCommon defines common data retrieving methods
# from meta data for caches. CoreRecipeInfo as well as other
@@ -54,12 +49,12 @@ class RecipeInfoCommon(object):
@classmethod
def pkgvar(cls, var, packages, metadata):
return dict((pkg, cls.depvar("%s:%s" % (var, pkg), metadata))
return dict((pkg, cls.depvar("%s_%s" % (var, pkg), metadata))
for pkg in packages)
@classmethod
def taskvar(cls, var, tasks, metadata):
return dict((task, cls.getvar("%s:task-%s" % (var, task), metadata))
return dict((task, cls.getvar("%s_task-%s" % (var, task), metadata))
for task in tasks)
@classmethod
@@ -95,7 +90,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
if not self.packages:
self.packages.append(self.pn)
self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.skipreason = self.getvar('__SKIPPED', metadata)
if self.skipreason:
@@ -122,12 +116,12 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.depends = self.depvar('DEPENDS', metadata)
self.rdepends = self.depvar('RDEPENDS', metadata)
self.rrecommends = self.depvar('RRECOMMENDS', metadata)
self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
self.rdepends_pkg = self.pkgvar('RDEPENDS', self.packages, metadata)
self.rrecommends_pkg = self.pkgvar('RRECOMMENDS', self.packages, metadata)
self.inherits = self.getvar('__inherit_cache', metadata, expand=False)
self.fakerootenv = self.getvar('FAKEROOTENV', metadata)
self.fakerootdirs = self.getvar('FAKEROOTDIRS', metadata)
self.fakerootlogs = self.getvar('FAKEROOTLOGS', metadata)
self.fakerootnoenv = self.getvar('FAKEROOTNOENV', metadata)
self.extradepsfunc = self.getvar('calculate_extra_depends', metadata)
@@ -165,7 +159,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.fakerootenv = {}
cachedata.fakerootnoenv = {}
cachedata.fakerootdirs = {}
cachedata.fakerootlogs = {}
cachedata.extradepsfunc = {}
def add_cacheData(self, cachedata, fn):
@@ -218,7 +211,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
if not self.not_world:
cachedata.possible_world.append(fn)
#else:
# logger.debug2("EXCLUDE FROM WORLD: %s", fn)
# logger.debug(2, "EXCLUDE FROM WORLD: %s", fn)
# create a collection of all targets for sanity checking
# tasks, such as upstream versions, license, and tools for
@@ -234,7 +227,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.fakerootenv[fn] = self.fakerootenv
cachedata.fakerootnoenv[fn] = self.fakerootnoenv
cachedata.fakerootdirs[fn] = self.fakerootdirs
cachedata.fakerootlogs[fn] = self.fakerootlogs
cachedata.extradepsfunc[fn] = self.extradepsfunc
def virtualfn2realfn(virtualfn):
@@ -242,7 +234,7 @@ def virtualfn2realfn(virtualfn):
Convert a virtual file name to a real one + the associated subclass keyword
"""
mc = ""
if virtualfn.startswith('mc:') and virtualfn.count(':') >= 2:
if virtualfn.startswith('mc:'):
elems = virtualfn.split(':')
mc = elems[1]
virtualfn = ":".join(elems[2:])
@@ -272,7 +264,7 @@ def variant2virtual(realfn, variant):
"""
if variant == "":
return realfn
if variant.startswith("mc:") and variant.count(':') >= 2:
if variant.startswith("mc:"):
elems = variant.split(":")
if elems[2]:
return "mc:" + elems[1] + ":virtual:" + ":".join(elems[2:]) + ":" + realfn
@@ -327,12 +319,12 @@ class NoCache(object):
Return a complete set of data for fn.
To do this, we need to parse the file.
"""
logger.debug("Parsing %s (full)" % virtualfn)
logger.debug(1, "Parsing %s (full)" % virtualfn)
(fn, virtual, mc) = virtualfn2realfn(virtualfn)
bb_data = self.load_bbfile(virtualfn, appends, virtonly=True)
return bb_data[virtual]
def load_bbfile(self, bbfile, appends, virtonly = False, mc=None):
def load_bbfile(self, bbfile, appends, virtonly = False):
"""
Load and parse one .bb build file
Return the data and whether parsing resulted in the file being skipped
@@ -345,10 +337,6 @@ class NoCache(object):
datastores = parse_recipe(bb_data, bbfile, appends, mc)
return datastores
if mc is not None:
bb_data = self.databuilder.mcdata[mc].createCopy()
return parse_recipe(bb_data, bbfile, appends, mc)
bb_data = self.data.createCopy()
datastores = parse_recipe(bb_data, bbfile, appends)
@@ -366,15 +354,14 @@ class Cache(NoCache):
"""
BitBake Cache implementation
"""
def __init__(self, databuilder, mc, data_hash, caches_array):
def __init__(self, databuilder, data_hash, caches_array):
super().__init__(databuilder)
data = databuilder.data
# Pass caches_array information into Cache Constructor
# It will be used later for deciding whether we
# need extra cache file dump/load support
self.mc = mc
self.logger = PrefixLoggerAdapter("Cache: %s: " % (mc if mc else "default"), logger)
self.caches_array = caches_array
self.cachedir = data.getVar("CACHE")
self.clean = set()
@@ -387,47 +374,31 @@ class Cache(NoCache):
if self.cachedir in [None, '']:
self.has_cache = False
self.logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
logger.info("Not using a cache. "
"Set CACHE = <directory> to enable.")
return
self.has_cache = True
self.cachefile = getCacheFile(self.cachedir, "bb_cache.dat", self.data_hash)
def getCacheFile(self, cachefile):
return getCacheFile(self.cachedir, cachefile, self.mc, self.data_hash)
def prepare_cache(self, progress):
if not self.has_cache:
return 0
loaded = 0
self.cachefile = self.getCacheFile("bb_cache.dat")
self.logger.debug("Cache dir: %s", self.cachedir)
logger.debug(1, "Cache dir: %s", self.cachedir)
bb.utils.mkdirhier(self.cachedir)
cache_ok = True
if self.caches_array:
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
cache_exists = os.path.exists(cachefile)
self.logger.debug2("Checking if %s exists: %r", cachefile, cache_exists)
cache_ok = cache_ok and cache_exists
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
cache_ok = cache_ok and os.path.exists(cachefile)
cache_class.init_cacheData(self)
if cache_ok:
loaded = self.load_cachefile(progress)
self.load_cachefile()
elif os.path.isfile(self.cachefile):
self.logger.info("Out of date cache found, rebuilding...")
logger.info("Out of date cache found, rebuilding...")
else:
self.logger.debug("Cache file %s not found, building..." % self.cachefile)
logger.debug(1, "Cache file %s not found, building..." % self.cachefile)
# We don't use the symlink, its just for debugging convinience
if self.mc:
symlink = os.path.join(self.cachedir, "bb_cache.dat.%s" % self.mc)
else:
symlink = os.path.join(self.cachedir, "bb_cache.dat")
symlink = os.path.join(self.cachedir, "bb_cache.dat")
if os.path.exists(symlink):
bb.utils.remove(symlink)
try:
@@ -435,29 +406,22 @@ class Cache(NoCache):
except OSError:
pass
return loaded
def cachesize(self):
if not self.has_cache:
return 0
def load_cachefile(self):
cachesize = 0
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
try:
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
except FileNotFoundError:
pass
return cachesize
def load_cachefile(self, progress):
previous_progress = 0
previous_percent = 0
# Calculate the correct cachesize of all those cache files
for cache_class in self.caches_array:
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "rb") as cachefile:
cachesize += os.fstat(cachefile.fileno()).st_size
bb.event.fire(bb.event.CacheLoadStarted(cachesize), self.data)
for cache_class in self.caches_array:
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug('Loading cache file: %s' % cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
logger.debug(1, 'Loading cache file: %s' % cachefile)
with open(cachefile, "rb") as cachefile:
pickled = pickle.Unpickler(cachefile)
# Check cache version information
@@ -465,15 +429,15 @@ class Cache(NoCache):
cache_ver = pickled.load()
bitbake_ver = pickled.load()
except Exception:
self.logger.info('Invalid cache, rebuilding...')
return 0
logger.info('Invalid cache, rebuilding...')
return
if cache_ver != __cache_version__:
self.logger.info('Cache version mismatch, rebuilding...')
return 0
logger.info('Cache version mismatch, rebuilding...')
return
elif bitbake_ver != bb.__version__:
self.logger.info('Bitbake version mismatch, rebuilding...')
return 0
logger.info('Bitbake version mismatch, rebuilding...')
return
# Load the rest of the cache file
current_progress = 0
@@ -496,17 +460,29 @@ class Cache(NoCache):
self.depends_cache[key] = [value]
# only fire events on even percentage boundaries
current_progress = cachefile.tell() + previous_progress
progress(cachefile.tell() + previous_progress)
if current_progress > cachesize:
# we might have calculated incorrect total size because a file
# might've been written out just after we checked its size
cachesize = current_progress
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
self.data)
previous_progress += current_progress
return len(self.depends_cache)
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize,
len(self.depends_cache)),
self.data)
def parse(self, filename, appends):
"""Parse the specified filename, returning the recipe information"""
self.logger.debug("Parsing %s", filename)
logger.debug(1, "Parsing %s", filename)
infos = []
datastores = self.load_bbfile(filename, appends, mc=self.mc)
datastores = self.load_bbfile(filename, appends)
depends = []
variants = []
# Process the "real" fn last so we can store variants list
@@ -558,7 +534,7 @@ class Cache(NoCache):
cached, infos = self.load(fn, appends)
for virtualfn, info_array in infos:
if info_array[0].skipped:
self.logger.debug("Skipping %s: %s", virtualfn, info_array[0].skipreason)
logger.debug(1, "Skipping %s: %s", virtualfn, info_array[0].skipreason)
skipped += 1
else:
self.add_info(virtualfn, info_array, cacheData, not cached)
@@ -594,21 +570,21 @@ class Cache(NoCache):
# File isn't in depends_cache
if not fn in self.depends_cache:
self.logger.debug2("%s is not cached", fn)
logger.debug(2, "Cache: %s is not cached", fn)
return False
mtime = bb.parse.cached_mtime_noerror(fn)
# Check file still exists
if mtime == 0:
self.logger.debug2("%s no longer exists", fn)
logger.debug(2, "Cache: %s no longer exists", fn)
self.remove(fn)
return False
info_array = self.depends_cache[fn]
# Check the file's timestamp
if mtime != info_array[0].timestamp:
self.logger.debug2("%s changed", fn)
logger.debug(2, "Cache: %s changed", fn)
self.remove(fn)
return False
@@ -619,14 +595,14 @@ class Cache(NoCache):
fmtime = bb.parse.cached_mtime_noerror(f)
# Check if file still exists
if old_mtime != 0 and fmtime == 0:
self.logger.debug2("%s's dependency %s was removed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s was removed",
fn, f)
self.remove(fn)
return False
if (fmtime != old_mtime):
self.logger.debug2("%s's dependency %s changed",
fn, f)
logger.debug(2, "Cache: %s's dependency %s changed",
fn, f)
self.remove(fn)
return False
@@ -638,18 +614,18 @@ class Cache(NoCache):
# Have to be careful about spaces and colons in filenames
flist = self.filelist_regex.split(fl)
for f in flist:
if not f:
if not f or "*" in f:
continue
f, exist = f.split(":")
if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
self.logger.debug2("%s's file checksum list file %s changed",
fn, f)
logger.debug(2, "Cache: %s's file checksum list file %s changed",
fn, f)
self.remove(fn)
return False
if tuple(appends) != tuple(info_array[0].appends):
self.logger.debug2("appends for %s changed", fn)
self.logger.debug2("%s to %s" % (str(appends), str(info_array[0].appends)))
if appends != info_array[0].appends:
logger.debug(2, "Cache: appends for %s changed", fn)
logger.debug(2, "%s to %s" % (str(appends), str(info_array[0].appends)))
self.remove(fn)
return False
@@ -658,10 +634,10 @@ class Cache(NoCache):
virtualfn = variant2virtual(fn, cls)
self.clean.add(virtualfn)
if virtualfn not in self.depends_cache:
self.logger.debug2("%s is not cached", virtualfn)
logger.debug(2, "Cache: %s is not cached", virtualfn)
invalid = True
elif len(self.depends_cache[virtualfn]) != len(self.caches_array):
self.logger.debug2("Extra caches missing for %s?" % virtualfn)
logger.debug(2, "Cache: Extra caches missing for %s?" % virtualfn)
invalid = True
# If any one of the variants is not present, mark as invalid for all
@@ -669,10 +645,10 @@ class Cache(NoCache):
for cls in info_array[0].variants:
virtualfn = variant2virtual(fn, cls)
if virtualfn in self.clean:
self.logger.debug2("Removing %s from cache", virtualfn)
logger.debug(2, "Cache: Removing %s from cache", virtualfn)
self.clean.remove(virtualfn)
if fn in self.clean:
self.logger.debug2("Marking %s as not clean", fn)
logger.debug(2, "Cache: Marking %s as not clean", fn)
self.clean.remove(fn)
return False
@@ -685,10 +661,10 @@ class Cache(NoCache):
Called from the parser in error cases
"""
if fn in self.depends_cache:
self.logger.debug("Removing %s from cache", fn)
logger.debug(1, "Removing %s from cache", fn)
del self.depends_cache[fn]
if fn in self.clean:
self.logger.debug("Marking %s as unclean", fn)
logger.debug(1, "Marking %s as unclean", fn)
self.clean.remove(fn)
def sync(self):
@@ -701,13 +677,12 @@ class Cache(NoCache):
return
if self.cacheclean:
self.logger.debug2("Cache is clean, not saving.")
logger.debug(2, "Cache is clean, not saving.")
return
for cache_class in self.caches_array:
cache_class_name = cache_class.__name__
cachefile = self.getCacheFile(cache_class.cachefile)
self.logger.debug2("Writing %s", cachefile)
cachefile = getCacheFile(self.cachedir, cache_class.cachefile, self.data_hash)
with open(cachefile, "wb") as f:
p = pickle.Pickler(f, pickle.HIGHEST_PROTOCOL)
p.dump(__cache_version__)
@@ -726,18 +701,8 @@ class Cache(NoCache):
return bb.parse.cached_mtime_noerror(cachefile)
def add_info(self, filename, info_array, cacheData, parsed=None, watcher=None):
if self.mc is not None:
(fn, cls, mc) = virtualfn2realfn(filename)
if mc:
self.logger.error("Unexpected multiconfig %s", filename)
return
vfn = realfn2virtual(fn, cls, self.mc)
else:
vfn = filename
if isinstance(info_array[0], CoreRecipeInfo) and (not info_array[0].skipped):
cacheData.add_from_recipeinfo(vfn, info_array)
cacheData.add_from_recipeinfo(filename, info_array)
if watcher:
watcher(info_array[0].file_depends)
@@ -762,61 +727,6 @@ class Cache(NoCache):
info_array.append(cache_class(realfn, data))
self.add_info(file_name, info_array, cacheData, parsed)
class MulticonfigCache(Mapping):
def __init__(self, databuilder, data_hash, caches_array):
def progress(p):
nonlocal current_progress
nonlocal previous_progress
nonlocal previous_percent
nonlocal cachesize
current_progress = previous_progress + p
if current_progress > cachesize:
# we might have calculated incorrect total size because a file
# might've been written out just after we checked its size
cachesize = current_progress
current_percent = 100 * current_progress / cachesize
if current_percent > previous_percent:
previous_percent = current_percent
bb.event.fire(bb.event.CacheLoadProgress(current_progress, cachesize),
databuilder.data)
cachesize = 0
current_progress = 0
previous_progress = 0
previous_percent = 0
self.__caches = {}
for mc, mcdata in databuilder.mcdata.items():
self.__caches[mc] = Cache(databuilder, mc, data_hash, caches_array)
cachesize += self.__caches[mc].cachesize()
bb.event.fire(bb.event.CacheLoadStarted(cachesize), databuilder.data)
loaded = 0
for c in self.__caches.values():
loaded += c.prepare_cache(progress)
previous_progress = current_progress
# Note: depends cache number is corresponding to the parsing file numbers.
# The same file has several caches, still regarded as one item in the cache
bb.event.fire(bb.event.CacheLoadCompleted(cachesize, loaded), databuilder.data)
def __len__(self):
return len(self.__caches)
def __getitem__(self, key):
return self.__caches[key]
def __contains__(self, key):
return key in self.__caches
def __iter__(self):
for k in self.__caches:
yield k
def init(cooker):
"""
@@ -883,7 +793,7 @@ class MultiProcessCache(object):
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug("Using cache in '%s'", self.cachefile)
logger.debug(1, "Using cache in '%s'", self.cachefile)
glf = bb.utils.lockfile(self.cachefile + ".lock")
@@ -989,7 +899,7 @@ class SimpleCache(object):
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir,
cache_file_name or self.__class__.cache_file_name)
logger.debug("Using cache in '%s'", self.cachefile)
logger.debug(1, "Using cache in '%s'", self.cachefile)
glf = bb.utils.lockfile(self.cachefile + ".lock")

View File

@@ -212,9 +212,9 @@ class PythonParser():
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
self.log.debug2('Failed to convert function and argument to source form')
self.log.debug(2, 'Failed to convert function and argument to source form')
else:
self.log.debug(self.unhandled_message % (funcstr, argstr))
self.log.debug(1, self.unhandled_message % (funcstr, argstr))
def visit_Call(self, node):
name = self.called_node_name(node.func)
@@ -450,7 +450,7 @@ class ShellParser():
cmd = word[1]
if cmd.startswith("$"):
self.log.debug(self.unhandled_template % cmd)
self.log.debug(1, self.unhandled_template % cmd)
elif cmd == "eval":
command = " ".join(word for _, word in words[1:])
self._parse_shell(command)

View File

@@ -20,7 +20,6 @@ Commands are queued in a CommandQueue
from collections import OrderedDict, defaultdict
import io
import bb.event
import bb.cooker
import bb.remotedata
@@ -55,28 +54,13 @@ class Command:
self.cooker = cooker
self.cmds_sync = CommandsSync()
self.cmds_async = CommandsAsync()
self.remotedatastores = None
self.remotedatastores = bb.remotedata.RemoteDatastores(cooker)
# FIXME Add lock for this
self.currentAsyncCommand = None
def runCommand(self, commandline, ro_only = False):
command = commandline.pop(0)
# Ensure cooker is ready for commands
if command != "updateConfig" and command != "setFeatures":
try:
self.cooker.init_configdata()
if not self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
except (Exception, SystemExit) as exc:
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
if hasattr(CommandsSync, command):
# Can run synchronous commands straight away
command_method = getattr(self.cmds_sync, command)
@@ -90,12 +74,8 @@ class Command:
result = command_method(self, commandline)
except CommandError as exc:
return None, exc.args[0]
except (Exception, SystemExit) as exc:
except (Exception, SystemExit):
import traceback
if isinstance(exc, bb.BBHandledException):
# We need to start returning real exceptions here. Until we do, we can't
# tell if an exception is an instance of bb.BBHandledException
return None, "bb.BBHandledException()\n" + traceback.format_exc()
return None, traceback.format_exc()
else:
return result, None
@@ -104,7 +84,7 @@ class Command:
if command not in CommandsAsync.__dict__:
return None, "No such command"
self.currentAsyncCommand = (command, commandline)
self.cooker.idleCallBackRegister(self.cooker.runCommands, self.cooker)
self.cooker.configuration.server_register_idlecallback(self.cooker.runCommands, self.cooker)
return True, None
def runAsyncCommand(self):
@@ -156,8 +136,13 @@ class Command:
self.cooker.finishcommand()
def reset(self):
if self.remotedatastores:
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
self.remotedatastores = bb.remotedata.RemoteDatastores(self.cooker)
def split_mc_pn(pn):
if pn.startswith("multiconfig:"):
_, mc, pn = pn.split(":", 2)
return (mc, pn)
return ('', pn)
class CommandsSync:
"""
@@ -247,11 +232,7 @@ class CommandsSync:
def matchFile(self, command, params):
fMatch = params[0]
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.matchFile(fMatch, mc)
return command.cooker.matchFile(fMatch)
matchFile.needconfig = False
def getUIHandlerNum(self, command, params):
@@ -414,38 +395,22 @@ class CommandsSync:
def getSkippedRecipes(self, command, params):
# Return list sorted by reverse priority order
import bb.cache
def sortkey(x):
vfn, _ = x
realfn, _, mc = bb.cache.virtualfn2realfn(vfn)
return (-command.cooker.collections[mc].calc_bbfile_priority(realfn)[0], vfn)
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(), key=sortkey))
skipdict = OrderedDict(sorted(command.cooker.skiplist.items(),
key=lambda x: (-command.cooker.collection.calc_bbfile_priority(bb.cache.virtualfn2realfn(x[0])[0]), x[0])))
return list(skipdict.items())
getSkippedRecipes.readonly = True
def getOverlayedRecipes(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return list(command.cooker.collections[mc].overlayed.items())
return list(command.cooker.collection.overlayed.items())
getOverlayedRecipes.readonly = True
def getFileAppends(self, command, params):
fn = params[0]
try:
mc = params[1]
except IndexError:
mc = ''
return command.cooker.collections[mc].get_file_appends(fn)
return command.cooker.collection.get_file_appends(fn)
getFileAppends.readonly = True
def getAllAppends(self, command, params):
try:
mc = params[0]
except IndexError:
mc = ''
return command.cooker.collections[mc].bbappends
return command.cooker.collection.bbappends
getAllAppends.readonly = True
def findProviders(self, command, params):
@@ -457,7 +422,7 @@ class CommandsSync:
findProviders.readonly = True
def findBestProvider(self, command, params):
(mc, pn) = bb.runqueue.split_mc(params[0])
(mc, pn) = split_mc_pn(params[0])
return command.cooker.findBestProvider(pn, mc)
findBestProvider.readonly = True
@@ -509,17 +474,6 @@ class CommandsSync:
d = command.remotedatastores[dsindex].varhistory
return getattr(d, method)(*args, **kwargs)
def dataStoreConnectorVarHistCmdEmit(self, command, params):
dsindex = params[0]
var = params[1]
oval = params[2]
val = params[3]
d = command.remotedatastores[params[4]]
o = io.StringIO()
command.remotedatastores[dsindex].varhistory.emit(var, oval, val, o, d)
return o.getvalue()
def dataStoreConnectorIncHistCmd(self, command, params):
dsindex = params[0]
method = params[1]
@@ -542,7 +496,6 @@ class CommandsSync:
for the recipe.
"""
fn = params[0]
mc = bb.runqueue.mc_from_tid(fn)
appends = params[1]
appendlist = params[2]
if len(params) > 3:
@@ -554,7 +507,7 @@ class CommandsSync:
if appendlist is not None:
appendfiles = appendlist
else:
appendfiles = command.cooker.collections[mc].get_file_appends(fn)
appendfiles = command.cooker.collection.get_file_appends(fn)
else:
appendfiles = []
# We are calling bb.cache locally here rather than on the server,
@@ -564,7 +517,7 @@ class CommandsSync:
if config_data:
# We have to use a different function here if we're passing in a datastore
# NOTE: we took a copy above, so we don't do it here again
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles, mc)['']
envdata = bb.cache.parse_recipe(config_data, fn, appendfiles)['']
else:
# Use the standard path
parser = bb.cache.NoCache(command.cooker.databuilder)
@@ -667,16 +620,6 @@ class CommandsAsync:
command.finishAsyncCommand()
findFilesMatchingInDir.needcache = False
def testCookerCommandEvent(self, command, params):
"""
Dummy command used by OEQA selftest to test tinfoil without IO
"""
pattern = params[0]
command.cooker.testCookerCommandEvent(pattern)
command.finishAsyncCommand()
testCookerCommandEvent.needcache = False
def findConfigFilePath(self, command, params):
"""
Find the path of the requested configuration file
@@ -765,10 +708,10 @@ class CommandsAsync:
"""
Find signature info files via the signature generator
"""
(mc, pn) = bb.runqueue.split_mc(params[0])
pn = params[0]
taskname = params[1]
sigs = params[2]
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.databuilder.mcdata[mc])
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.databuilder.mcdata[mc])
res = bb.siggen.find_siginfo(pn, taskname, sigs, command.cooker.data)
bb.event.fire(bb.event.FindSigInfoResult(res), command.cooker.data)
command.finishAsyncCommand()
findSigInfo.needcache = False

10
bitbake/lib/bb/compat.py Normal file
View File

@@ -0,0 +1,10 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
"""Code pulled from future python versions, here for compatibility"""
from collections import MutableMapping, KeysView, ValuesView, ItemsView, OrderedDict
from functools import total_ordering

View File

@@ -1,194 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Helper library to implement streaming compression and decompression using an
# external process
#
# This library should be used directly by end users; a wrapper library for the
# specific compression tool should be created
import builtins
import io
import os
import subprocess
def open_wrap(
cls, filename, mode="rb", *, encoding=None, errors=None, newline=None, **kwargs
):
"""
Open a compressed file in binary or text mode.
Users should not call this directly. A specific compression library can use
this helper to provide it's own "open" command
The filename argument can be an actual filename (a str or bytes object), or
an existing file object to read from or write to.
The mode argument can be "r", "rb", "w", "wb", "x", "xb", "a" or "ab" for
binary mode, or "rt", "wt", "xt" or "at" for text mode. The default mode is
"rb".
For binary mode, this function is equivalent to the cls constructor:
cls(filename, mode). In this case, the encoding, errors and newline
arguments must not be provided.
For text mode, a cls object is created, and wrapped in an
io.TextIOWrapper instance with the specified encoding, error handling
behavior, and line ending(s).
"""
if "t" in mode:
if "b" in mode:
raise ValueError("Invalid mode: %r" % (mode,))
else:
if encoding is not None:
raise ValueError("Argument 'encoding' not supported in binary mode")
if errors is not None:
raise ValueError("Argument 'errors' not supported in binary mode")
if newline is not None:
raise ValueError("Argument 'newline' not supported in binary mode")
file_mode = mode.replace("t", "")
if isinstance(filename, (str, bytes, os.PathLike)):
binary_file = cls(filename, file_mode, **kwargs)
elif hasattr(filename, "read") or hasattr(filename, "write"):
binary_file = cls(None, file_mode, fileobj=filename, **kwargs)
else:
raise TypeError("filename must be a str or bytes object, or a file")
if "t" in mode:
return io.TextIOWrapper(
binary_file, encoding, errors, newline, write_through=True
)
else:
return binary_file
class CompressionError(OSError):
pass
class PipeFile(io.RawIOBase):
"""
Class that implements generically piping to/from a compression program
Derived classes should add the function get_compress() and get_decompress()
that return the required commands. Input will be piped into stdin and the
(de)compressed output should be written to stdout, e.g.:
class FooFile(PipeCompressionFile):
def get_decompress(self):
return ["fooc", "--decompress", "--stdout"]
def get_compress(self):
return ["fooc", "--compress", "--stdout"]
"""
READ = 0
WRITE = 1
def __init__(self, filename=None, mode="rb", *, stderr=None, fileobj=None):
if "t" in mode or "U" in mode:
raise ValueError("Invalid mode: {!r}".format(mode))
if not "b" in mode:
mode += "b"
if mode.startswith("r"):
self.mode = self.READ
elif mode.startswith("w"):
self.mode = self.WRITE
else:
raise ValueError("Invalid mode %r" % mode)
if fileobj is not None:
self.fileobj = fileobj
else:
self.fileobj = builtins.open(filename, mode or "rb")
if self.mode == self.READ:
self.p = subprocess.Popen(
self.get_decompress(),
stdin=self.fileobj,
stdout=subprocess.PIPE,
stderr=stderr,
close_fds=True,
)
self.pipe = self.p.stdout
else:
self.p = subprocess.Popen(
self.get_compress(),
stdin=subprocess.PIPE,
stdout=self.fileobj,
stderr=stderr,
close_fds=True,
)
self.pipe = self.p.stdin
self.__closed = False
def _check_process(self):
if self.p is None:
return
returncode = self.p.wait()
if returncode:
raise CompressionError("Process died with %d" % returncode)
self.p = None
def close(self):
if self.closed:
return
self.pipe.close()
if self.p is not None:
self._check_process()
self.fileobj.close()
self.__closed = True
@property
def closed(self):
return self.__closed
def fileno(self):
return self.pipe.fileno()
def flush(self):
self.pipe.flush()
def isatty(self):
return self.pipe.isatty()
def readable(self):
return self.mode == self.READ
def writable(self):
return self.mode == self.WRITE
def readinto(self, b):
if self.mode != self.READ:
import errno
raise OSError(
errno.EBADF, "read() on write-only %s object" % self.__class__.__name__
)
size = self.pipe.readinto(b)
if size == 0:
self._check_process()
return size
def write(self, data):
if self.mode != self.WRITE:
import errno
raise OSError(
errno.EBADF, "write() on read-only %s object" % self.__class__.__name__
)
data = self.pipe.write(data)
if not data:
self._check_process()
return data

View File

@@ -1,17 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import bb.compress._pipecompress
def open(*args, **kwargs):
return bb.compress._pipecompress.open_wrap(LZ4File, *args, **kwargs)
class LZ4File(bb.compress._pipecompress.PipeFile):
def get_compress(self):
return ["lz4c", "-z", "-c"]
def get_decompress(self):
return ["lz4c", "-d", "-c"]

View File

@@ -1,28 +0,0 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import bb.compress._pipecompress
import shutil
def open(*args, **kwargs):
return bb.compress._pipecompress.open_wrap(ZstdFile, *args, **kwargs)
class ZstdFile(bb.compress._pipecompress.PipeFile):
def __init__(self, *args, num_threads=1, compresslevel=3, **kwargs):
self.num_threads = num_threads
self.compresslevel = compresslevel
super().__init__(*args, **kwargs)
def _get_zstd(self):
if self.num_threads == 1 or not shutil.which("pzstd"):
return ["zstd"]
return ["pzstd", "-p", "%d" % self.num_threads]
def get_compress(self):
return self._get_zstd() + ["-c", "-%d" % self.compresslevel]
def get_decompress(self):
return self._get_zstd() + ["-d", "-c"]

View File

@@ -73,9 +73,7 @@ class SkippedPackage:
self.pn = info.pn
self.skipreason = info.skipreason
self.provides = info.provides
self.rprovides = info.packages + info.rprovides
for package in info.packages:
self.rprovides += info.rprovides_pkg[package]
self.rprovides = info.rprovides
elif reason:
self.skipreason = reason
@@ -150,18 +148,15 @@ class BBCooker:
Manages one bitbake build run
"""
def __init__(self, featureSet=None, idleCallBackRegister=None):
def __init__(self, configuration, featureSet=None):
self.recipecaches = None
self.eventlog = None
self.skiplist = {}
self.featureset = CookerFeatures()
if featureSet:
for f in featureSet:
self.featureset.setFeature(f)
self.configuration = bb.cookerdata.CookerConfiguration()
self.idleCallBackRegister = idleCallBackRegister
self.configuration = configuration
bb.debug(1, "BBCooker starting %s" % time.time())
sys.stdout.flush()
@@ -197,13 +192,25 @@ class BBCooker:
self.hashserv = None
self.hashservaddr = None
self.initConfigurationData()
bb.debug(1, "BBCooker parsed base configuration %s" % time.time())
sys.stdout.flush()
# we log all events to a file if so directed
if self.configuration.writeeventlog:
# register the log file writer as UI Handler
writer = EventWriter(self, self.configuration.writeeventlog)
EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
bb.event.register_UIHhandler(EventLogWriteHandler(writer))
self.inotify_modified_files = []
def _process_inotify_updates(server, cooker, abort):
cooker.process_inotify_updates()
return 1.0
self.idleCallBackRegister(_process_inotify_updates, self)
self.configuration.server_register_idlecallback(_process_inotify_updates, self)
# TOSTOP must not be set or our children will hang when they output
try:
@@ -230,13 +237,6 @@ class BBCooker:
bb.debug(1, "BBCooker startup complete %s" % time.time())
sys.stdout.flush()
def init_configdata(self):
if not hasattr(self, "data"):
self.initConfigurationData()
bb.debug(1, "BBCooker parsed base configuration %s" % time.time())
sys.stdout.flush()
self.handlePRServ()
def process_inotify_updates(self):
for n in [self.confignotifier, self.notifier]:
if n.check_events(timeout=0):
@@ -322,7 +322,7 @@ class BBCooker:
for feature in features:
self.featureset.setFeature(feature)
bb.debug(1, "Features set %s (was %s)" % (original_featureset, list(self.featureset)))
if (original_featureset != list(self.featureset)) and self.state != state.error and hasattr(self, "data"):
if (original_featureset != list(self.featureset)) and self.state != state.error:
self.reset()
def initConfigurationData(self):
@@ -354,7 +354,7 @@ class BBCooker:
self.caches_array.append(getattr(module, cache_name))
except ImportError as exc:
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
raise bb.BBHandledException()
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, False)
self.databuilder.parseBaseConfiguration()
@@ -382,20 +382,16 @@ class BBCooker:
try:
self.prhost = prserv.serv.auto_start(self.data)
except prserv.serv.PRServiceConfigError as e:
bb.fatal("Unable to start PR Server, exiting, check the bitbake-cookerdaemon.log")
bb.fatal("Unable to start PR Server, exitting")
if self.data.getVar("BB_HASHSERVE") == "auto":
# Create a new hash server bound to a unix domain socket
if not self.hashserv:
dbfile = (self.data.getVar("PERSISTENT_DIR") or self.data.getVar("CACHE")) + "/hashserv.db"
self.hashservaddr = "unix://%s/hashserve.sock" % self.data.getVar("TOPDIR")
self.hashserv = hashserv.create_server(
self.hashservaddr,
dbfile,
sync=False,
upstream=self.data.getVar("BB_HASHSERVE_UPSTREAM") or None,
)
self.hashserv.serve_as_process()
self.hashserv = hashserv.create_server(self.hashservaddr, dbfile, sync=False)
self.hashserv.process = multiprocessing.Process(target=self.hashserv.serve_forever)
self.hashserv.process.start()
self.data.setVar("BB_HASHSERVE", self.hashservaddr)
self.databuilder.origdata.setVar("BB_HASHSERVE", self.hashservaddr)
self.databuilder.data.setVar("BB_HASHSERVE", self.hashservaddr)
@@ -415,7 +411,10 @@ class BBCooker:
self.data.disableTracking()
def parseConfiguration(self):
self.updateCacheSync()
# Set log file verbosity
verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", False))
if verboselogs:
bb.msg.loggerVerboseLogs = True
# Change nice level if we're asked to
nice = self.data.getVar("BB_NICE_LEVEL")
@@ -447,52 +446,27 @@ class BBCooker:
continue
except AttributeError:
pass
logger.debug("Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
logger.debug(1, "Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
print("Marking as dirty due to '%s' option change to '%s'" % (o, options[o]))
clean = False
if hasattr(self.configuration, o):
setattr(self.configuration, o, options[o])
if self.configuration.writeeventlog:
if self.eventlog and self.eventlog[0] != self.configuration.writeeventlog:
bb.event.unregister_UIHhandler(self.eventlog[1])
if not self.eventlog or self.eventlog[0] != self.configuration.writeeventlog:
# we log all events to a file if so directed
# register the log file writer as UI Handler
writer = EventWriter(self, self.configuration.writeeventlog)
EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
self.eventlog = (self.configuration.writeeventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer)))
bb.msg.loggerDefaultLogLevel = self.configuration.default_loglevel
bb.msg.loggerDefaultDomains = self.configuration.debug_domains
if hasattr(self, "data"):
origenv = bb.data.init()
for k in environment:
origenv.setVar(k, environment[k])
self.data.setVar("BB_ORIGENV", origenv)
setattr(self.configuration, o, options[o])
for k in bb.utils.approved_variables():
if k in environment and k not in self.configuration.env:
logger.debug("Updating new environment variable %s to %s" % (k, environment[k]))
logger.debug(1, "Updating new environment variable %s to %s" % (k, environment[k]))
self.configuration.env[k] = environment[k]
clean = False
if k in self.configuration.env and k not in environment:
logger.debug("Updating environment variable %s (deleted)" % (k))
logger.debug(1, "Updating environment variable %s (deleted)" % (k))
del self.configuration.env[k]
clean = False
if k not in self.configuration.env and k not in environment:
continue
if environment[k] != self.configuration.env[k]:
logger.debug("Updating environment variable %s from %s to %s" % (k, self.configuration.env[k], environment[k]))
logger.debug(1, "Updating environment variable %s from %s to %s" % (k, self.configuration.env[k], environment[k]))
self.configuration.env[k] = environment[k]
clean = False
# Now update all the variables not in the datastore to match
self.configuration.env = environment
if not clean:
logger.debug("Base environment change, triggering reparse")
logger.debug(1, "Base environment change, triggering reparse")
self.reset()
def runCommands(self, server, data, abort):
@@ -506,30 +480,22 @@ class BBCooker:
def showVersions(self):
(latest_versions, preferred_versions, required) = self.findProviders()
(latest_versions, preferred_versions) = self.findProviders()
logger.plain("%-35s %25s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version", "Required Version")
logger.plain("%-35s %25s %25s %25s\n", "===========", "==============", "=================", "================")
logger.plain("%-35s %25s %25s", "Recipe Name", "Latest Version", "Preferred Version")
logger.plain("%-35s %25s %25s\n", "===========", "==============", "=================")
for p in sorted(self.recipecaches[''].pkg_pn):
preferred = preferred_versions[p]
pref = preferred_versions[p]
latest = latest_versions[p]
requiredstr = ""
preferredstr = ""
if required[p]:
if preferred[0] is not None:
requiredstr = preferred[0][0] + ":" + preferred[0][1] + '-' + preferred[0][2]
else:
bb.fatal("REQUIRED_VERSION of package %s not available" % p)
else:
preferredstr = preferred[0][0] + ":" + preferred[0][1] + '-' + preferred[0][2]
prefstr = pref[0][0] + ":" + pref[0][1] + '-' + pref[0][2]
lateststr = latest[0][0] + ":" + latest[0][1] + "-" + latest[0][2]
if preferred == latest:
preferredstr = ""
if pref == latest:
prefstr = ""
logger.plain("%-35s %25s %25s %25s", p, lateststr, preferredstr, requiredstr)
logger.plain("%-35s %25s %25s", p, lateststr, prefstr)
def showEnvironment(self, buildfile=None, pkgs_to_build=None):
"""
@@ -559,7 +525,7 @@ class BBCooker:
self.parseConfiguration()
fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn, mc)
fn = self.matchFile(fn)
fn = bb.cache.realfn2virtual(fn, cls, mc)
elif len(pkgs_to_build) == 1:
mc = mc_base(pkgs_to_build[0])
@@ -575,8 +541,8 @@ class BBCooker:
if fn:
try:
bb_caches = bb.cache.MulticonfigCache(self.databuilder, self.data_hash, self.caches_array)
envdata = bb_caches[mc].loadDataFull(fn, self.collections[mc].get_file_appends(fn))
bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
envdata = bb_cache.loadDataFull(fn, self.collection.get_file_appends(fn))
except Exception as e:
parselog.exception("Unable to read %s", fn)
raise
@@ -628,7 +594,7 @@ class BBCooker:
# Replace string such as "mc:*:bash"
# into "mc:A:bash mc:B:bash bash"
for k in targetlist:
if k.startswith("mc:") and k.count(':') >= 2:
if k.startswith("mc:"):
if wildcard:
bb.fatal('multiconfig conflict')
if k.split(":")[1] == "*":
@@ -660,9 +626,8 @@ class BBCooker:
current = 0
runlist = []
for k in fulltargetlist:
origk = k
mc = ""
if k.startswith("mc:") and k.count(':') >= 2:
if k.startswith("mc:"):
mc = k.split(":")[1]
k = ":".join(k.split(":")[2:])
ktask = task
@@ -670,10 +635,6 @@ class BBCooker:
k2 = k.split(":do_")
k = k2[0]
ktask = k2[1]
if mc not in self.multiconfigs:
bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named %s" % (origk, mc))
taskdata[mc].add_provider(localdata[mc], self.recipecaches[mc], k)
current += 1
if not ktask.startswith("do_"):
@@ -709,9 +670,9 @@ class BBCooker:
l = k.split(':')
depmc = l[2]
if depmc not in self.multiconfigs:
bb.fatal("Multiconfig dependency %s depends on nonexistent multiconfig configuration named configuration %s" % (k,depmc))
bb.fatal("Multiconfig dependency %s depends on nonexistent mc configuration %s" % (k,depmc))
else:
logger.debug("Adding providers for multiconfig dependency %s" % l[3])
logger.debug(1, "Adding providers for multiconfig dependency %s" % l[3])
taskdata[depmc].add_provider(localdata[depmc], self.recipecaches[depmc], l[3])
seen.add(k)
new = True
@@ -968,33 +929,26 @@ class BBCooker:
logger.info("Task dependencies saved to 'task-depends.dot'")
def show_appends_with_no_recipes(self):
appends_without_recipes = {}
# Determine which bbappends haven't been applied
for mc in self.multiconfigs:
# First get list of recipes, including skipped
recipefns = list(self.recipecaches[mc].pkg_fn.keys())
recipefns.extend(self.skiplist.keys())
# Work out list of bbappends that have been applied
applied_appends = []
for fn in recipefns:
applied_appends.extend(self.collections[mc].get_file_appends(fn))
# First get list of recipes, including skipped
recipefns = list(self.recipecaches[''].pkg_fn.keys())
recipefns.extend(self.skiplist.keys())
appends_without_recipes[mc] = []
for _, appendfn in self.collections[mc].bbappends:
if not appendfn in applied_appends:
appends_without_recipes[mc].append(appendfn)
# Work out list of bbappends that have been applied
applied_appends = []
for fn in recipefns:
applied_appends.extend(self.collection.get_file_appends(fn))
msgs = []
for mc in sorted(appends_without_recipes.keys()):
if appends_without_recipes[mc]:
msgs.append('No recipes in %s available for:\n %s' % (mc if mc else 'default',
'\n '.join(appends_without_recipes[mc])))
appends_without_recipes = []
for _, appendfn in self.collection.bbappends:
if not appendfn in applied_appends:
appends_without_recipes.append(appendfn)
if msgs:
msg = "\n".join(msgs)
warn_only = self.databuilder.mcdata[mc].getVar("BB_DANGLINGAPPENDS_WARNONLY", \
False) or "no"
if appends_without_recipes:
msg = 'No recipes available for:\n %s' % '\n '.join(appends_without_recipes)
warn_only = self.data.getVar("BB_DANGLINGAPPENDS_WARNONLY", \
False) or "no"
if warn_only.lower() in ("1", "yes", "true"):
bb.warn(msg)
else:
@@ -1068,11 +1022,6 @@ class BBCooker:
if matches:
bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
def testCookerCommandEvent(self, filepattern):
# Dummy command used by OEQA selftest to test tinfoil without IO
matches = ["A", "B"]
bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
def findProviders(self, mc=''):
return bb.providers.findProviders(self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
@@ -1080,16 +1029,10 @@ class BBCooker:
if pn in self.recipecaches[mc].providers:
filenames = self.recipecaches[mc].providers[pn]
eligible, foundUnique = bb.providers.filterProviders(filenames, pn, self.databuilder.mcdata[mc], self.recipecaches[mc])
if eligible is not None:
filename = eligible[0]
else:
filename = None
filename = eligible[0]
return None, None, None, filename
elif pn in self.recipecaches[mc].pkg_pn:
(latest, latest_f, preferred_ver, preferred_file, required) = bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
if required and preferred_file is None:
return None, None, None, None
return (latest, latest_f, preferred_ver, preferred_file)
return bb.providers.findBestProvider(pn, self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
else:
return None, None, None, None
@@ -1154,7 +1097,7 @@ class BBCooker:
from bb import shell
except ImportError:
parselog.exception("Interactive mode not available")
raise bb.BBHandledException()
sys.exit(1)
else:
shell.start( self )
@@ -1306,15 +1249,15 @@ class BBCooker:
if siggen_cache:
bb.parse.siggen.checksum_cache.mtime_cache.clear()
def matchFiles(self, bf, mc=''):
def matchFiles(self, bf):
"""
Find the .bb files which match the expression in 'buildfile'.
"""
if bf.startswith("/") or bf.startswith("../"):
bf = os.path.abspath(bf)
self.collections = {mc: CookerCollectFiles(self.bbfile_config_priorities, mc)}
filelist, masked, searchdirs = self.collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc])
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
filelist, masked, searchdirs = self.collection.collect_bbfiles(self.data, self.data)
try:
os.stat(bf)
bf = os.path.abspath(bf)
@@ -1327,12 +1270,12 @@ class BBCooker:
matches.append(f)
return matches
def matchFile(self, buildfile, mc=''):
def matchFile(self, buildfile):
"""
Find the .bb file which matches the expression in 'buildfile'.
Raise an error if multiple files
"""
matches = self.matchFiles(buildfile, mc)
matches = self.matchFiles(buildfile)
if len(matches) != 1:
if matches:
msg = "Unable to match '%s' to a specific recipe file - %s matches found:" % (buildfile, len(matches))
@@ -1373,14 +1316,14 @@ class BBCooker:
task = "do_%s" % task
fn, cls, mc = bb.cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn, mc)
fn = self.matchFile(fn)
self.buildSetVars()
self.reset_mtime_caches()
bb_caches = bb.cache.MulticonfigCache(self.databuilder, self.data_hash, self.caches_array)
bb_cache = bb.cache.Cache(self.databuilder, self.data_hash, self.caches_array)
infos = bb_caches[mc].parse(fn, self.collections[mc].get_file_appends(fn))
infos = bb_cache.parse(fn, self.collection.get_file_appends(fn))
infos = dict(infos)
fn = bb.cache.realfn2virtual(fn, cls, mc)
@@ -1468,7 +1411,7 @@ class BBCooker:
return True
return retval
self.idleCallBackRegister(buildFileIdle, rq)
self.configuration.server_register_idlecallback(buildFileIdle, rq)
def buildTargets(self, targets, task):
"""
@@ -1539,7 +1482,7 @@ class BBCooker:
if 'universe' in targets:
rq.rqdata.warn_multi_bb = True
self.idleCallBackRegister(buildTargetsIdle, rq)
self.configuration.server_register_idlecallback(buildTargetsIdle, rq)
def getAllKeysWithFlags(self, flaglist):
@@ -1578,7 +1521,7 @@ class BBCooker:
self.inotify_modified_files = []
if not self.baseconfig_valid:
logger.debug("Reloading base configuration data")
logger.debug(1, "Reloading base configuration data")
self.initConfigurationData()
self.handlePRServ()
@@ -1590,7 +1533,6 @@ class BBCooker:
if self.state in (state.shutdown, state.forceshutdown, state.error):
if hasattr(self.parser, 'shutdown'):
self.parser.shutdown(clean=False, force = True)
self.parser.final_cleanup()
raise bb.BBHandledException()
if self.state != state.parsing:
@@ -1610,24 +1552,14 @@ class BBCooker:
for dep in self.configuration.extra_assume_provided:
self.recipecaches[mc].ignored_dependencies.add(dep)
self.collections = {}
mcfilelist = {}
total_masked = 0
searchdirs = set()
for mc in self.multiconfigs:
self.collections[mc] = CookerCollectFiles(self.bbfile_config_priorities, mc)
(filelist, masked, search) = self.collections[mc].collect_bbfiles(self.databuilder.mcdata[mc], self.databuilder.mcdata[mc])
mcfilelist[mc] = filelist
total_masked += masked
searchdirs |= set(search)
self.collection = CookerCollectFiles(self.bbfile_config_priorities)
(filelist, masked, searchdirs) = self.collection.collect_bbfiles(self.data, self.data)
# Add inotify watches for directories searched for bb/bbappend files
for dirent in searchdirs:
self.add_filewatch([[dirent]], dirs=True)
self.parser = CookerParser(self, mcfilelist, total_masked)
self.parser = CookerParser(self, filelist, masked)
self.parsecache_valid = True
self.state = state.parsing
@@ -1639,7 +1571,7 @@ class BBCooker:
self.show_appends_with_no_recipes()
self.handlePrefProviders()
for mc in self.multiconfigs:
self.recipecaches[mc].bbfile_priority = self.collections[mc].collection_priorities(self.recipecaches[mc].pkg_fn, self.parser.mcfilelist[mc], self.data)
self.recipecaches[mc].bbfile_priority = self.collection.collection_priorities(self.recipecaches[mc].pkg_fn, self.data)
self.state = state.running
# Send an event listing all stamps reachable after parsing
@@ -1698,16 +1630,17 @@ class BBCooker:
return pkgs_to_build
def pre_serve(self):
# We now are in our own process so we can call this here.
# PRServ exits if its parent process exits
self.handlePRServ()
return
def post_serve(self):
self.shutdown(force=True)
prserv.serv.auto_shutdown()
if self.hashserv:
self.hashserv.process.terminate()
self.hashserv.process.join()
if hasattr(self, "data"):
bb.event.fire(CookerExit(), self.data)
bb.event.fire(CookerExit(), self.data)
def shutdown(self, force = False):
if force:
@@ -1717,7 +1650,6 @@ class BBCooker:
if self.parser:
self.parser.shutdown(clean=not force, force=force)
self.parser.final_cleanup()
def finishcommand(self):
self.state = state.initial
@@ -1731,9 +1663,8 @@ class BBCooker:
self.finishcommand()
self.extraconfigdata = {}
self.command.reset()
if hasattr(self, "data"):
self.databuilder.reset()
self.data = self.databuilder.data
self.databuilder.reset()
self.data = self.databuilder.data
self.parsecache_valid = False
self.baseconfig_valid = False
@@ -1748,19 +1679,21 @@ class CookerExit(bb.event.Event):
class CookerCollectFiles(object):
def __init__(self, priorities, mc=''):
self.mc = mc
def __init__(self, priorities):
self.bbappends = []
# Priorities is a list of tupples, with the second element as the pattern.
# We need to sort the list with the longest pattern first, and so on to
# the shortest. This allows nested layers to be properly evaluated.
self.bbfile_config_priorities = sorted(priorities, key=lambda tup: tup[1], reverse=True)
def calc_bbfile_priority(self, filename):
def calc_bbfile_priority( self, filename, matched = None ):
for _, _, regex, pri in self.bbfile_config_priorities:
if regex.match(filename):
return pri, regex
return 0, None
if matched is not None:
if not regex in matched:
matched.add(regex)
return pri
return 0
def get_bbfiles(self):
"""Get list of default .bb files by reading out the current directory"""
@@ -1790,10 +1723,10 @@ class CookerCollectFiles(object):
collectlog.debug(1, "collecting .bb files")
files = (config.getVar( "BBFILES") or "").split()
config.setVar("BBFILES", " ".join(files))
# Sort files by priority
files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem)[0] )
config.setVar("BBFILES_PRIORITIZED", " ".join(files))
files.sort( key=lambda fileitem: self.calc_bbfile_priority(fileitem) )
if not len(files):
files = self.get_bbfiles()
@@ -1913,67 +1846,43 @@ class CookerCollectFiles(object):
(bbappend, filename) = b
if (bbappend == f) or ('%' in bbappend and bbappend.startswith(f[:bbappend.index('%')])):
filelist.append(filename)
return tuple(filelist)
return filelist
def collection_priorities(self, pkgfns, fns, d):
# Return the priorities of the entries in pkgfns
# Also check that all the regexes in self.bbfile_config_priorities are used
# (but to do that we need to ensure skipped recipes aren't counted, nor
# collections in BBFILE_PATTERN_IGNORE_EMPTY)
def collection_priorities(self, pkgfns, d):
priorities = {}
seen = set()
matched = set()
matched_regex = set()
unmatched_regex = set()
for _, _, regex, _ in self.bbfile_config_priorities:
unmatched_regex.add(regex)
# Calculate priorities for each file
matched = set()
for p in pkgfns:
realfn, cls, mc = bb.cache.virtualfn2realfn(p)
priorities[p], regex = self.calc_bbfile_priority(realfn)
if regex in unmatched_regex:
matched_regex.add(regex)
unmatched_regex.remove(regex)
seen.add(realfn)
if regex:
matched.add(realfn)
priorities[p] = self.calc_bbfile_priority(realfn, matched)
if unmatched_regex:
# Account for bbappend files
unmatched = set()
for _, _, regex, pri in self.bbfile_config_priorities:
if not regex in matched:
unmatched.add(regex)
# Don't show the warning if the BBFILE_PATTERN did match .bbappend files
def find_bbappend_match(regex):
for b in self.bbappends:
(bbfile, append) = b
seen.add(append)
if regex.match(append):
# If the bbappend is matched by already "matched set", return False
for matched_regex in matched:
if matched_regex.match(append):
return False
return True
return False
# Account for skipped recipes
seen.update(fns)
seen.difference_update(matched)
def already_matched(fn):
for regex in matched_regex:
if regex.match(fn):
return True
return False
for unmatch in unmatched_regex.copy():
for fn in seen:
if unmatch.match(fn):
# If the bbappend or file was already matched by another regex, skip it
# e.g. for a layer within a layer, the outer regex could match, the inner
# regex may match nothing and we should warn about that
if already_matched(fn):
continue
unmatched_regex.remove(unmatch)
break
for unmatch in unmatched.copy():
if find_bbappend_match(unmatch):
unmatched.remove(unmatch)
for collection, pattern, regex, _ in self.bbfile_config_priorities:
if regex in unmatched_regex:
if regex in unmatched:
if d.getVar('BBFILE_PATTERN_IGNORE_EMPTY_%s' % collection) != '1':
collectlog.warning("No bb files in %s matched BBFILE_PATTERN_%s '%s'" % (self.mc if self.mc else 'default',
collection, pattern))
collectlog.warning("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
return priorities
@@ -2022,8 +1931,7 @@ class Parser(multiprocessing.Process):
except queue.Empty:
pass
else:
self.results.close()
self.results.join_thread()
self.results.cancel_join_thread()
break
if pending:
@@ -2032,8 +1940,6 @@ class Parser(multiprocessing.Process):
try:
job = self.jobs.pop()
except IndexError:
self.results.close()
self.results.join_thread()
break
result = self.parse(*job)
# Clear the siggen cache after parsing to control memory usage, its huge
@@ -2043,7 +1949,7 @@ class Parser(multiprocessing.Process):
except queue.Full:
pending.append(result)
def parse(self, mc, cache, filename, appends):
def parse(self, filename, appends):
try:
origfilter = bb.event.LogHandler.filter
# Record the filename we're parsing into any events generated
@@ -2057,7 +1963,7 @@ class Parser(multiprocessing.Process):
bb.event.set_class_handlers(self.handlers.copy())
bb.event.LogHandler.filter = parse_filter
return True, mc, cache.parse(filename, appends)
return True, self.bb_cache.parse(filename, appends)
except Exception as exc:
tb = sys.exc_info()[2]
exc.recipe = filename
@@ -2072,8 +1978,8 @@ class Parser(multiprocessing.Process):
bb.event.LogHandler.filter = origfilter
class CookerParser(object):
def __init__(self, cooker, mcfilelist, masked):
self.mcfilelist = mcfilelist
def __init__(self, cooker, filelist, masked):
self.filelist = filelist
self.cooker = cooker
self.cfgdata = cooker.data
self.cfghash = cooker.data_hash
@@ -2087,31 +1993,28 @@ class CookerParser(object):
self.skipped = 0
self.virtuals = 0
self.total = len(filelist)
self.current = 0
self.process_names = []
self.bb_caches = bb.cache.MulticonfigCache(self.cfgbuilder, self.cfghash, cooker.caches_array)
self.fromcache = set()
self.willparse = set()
for mc in self.cooker.multiconfigs:
for filename in self.mcfilelist[mc]:
appends = self.cooker.collections[mc].get_file_appends(filename)
if not self.bb_caches[mc].cacheValid(filename, appends):
self.willparse.add((mc, self.bb_caches[mc], filename, appends))
else:
self.fromcache.add((mc, self.bb_caches[mc], filename, appends))
self.total = len(self.fromcache) + len(self.willparse)
self.toparse = len(self.willparse)
self.bb_cache = bb.cache.Cache(self.cfgbuilder, self.cfghash, cooker.caches_array)
self.fromcache = []
self.willparse = []
for filename in self.filelist:
appends = self.cooker.collection.get_file_appends(filename)
if not self.bb_cache.cacheValid(filename, appends):
self.willparse.append((filename, appends))
else:
self.fromcache.append((filename, appends))
self.toparse = self.total - len(self.fromcache)
self.progress_chunk = int(max(self.toparse / 100, 1))
self.num_processes = min(int(self.cfgdata.getVar("BB_NUMBER_PARSE_THREADS") or
multiprocessing.cpu_count()), self.toparse)
multiprocessing.cpu_count()), len(self.willparse))
self.start()
self.haveshutdown = False
self.syncthread = None
def start(self):
self.results = self.load_cached()
@@ -2119,9 +2022,7 @@ class CookerParser(object):
if self.toparse:
bb.event.fire(bb.event.ParseStarted(self.toparse), self.cfgdata)
def init():
signal.signal(signal.SIGTERM, signal.SIG_DFL)
signal.signal(signal.SIGHUP, signal.SIG_DFL)
signal.signal(signal.SIGINT, signal.SIG_IGN)
Parser.bb_cache = self.bb_cache
bb.utils.set_process_name(multiprocessing.current_process().name)
multiprocessing.util.Finalize(None, bb.codeparser.parser_cache_save, exitpriority=1)
multiprocessing.util.Finalize(None, bb.fetch.fetcher_parse_save, exitpriority=1)
@@ -2131,7 +2032,7 @@ class CookerParser(object):
def chunkify(lst,n):
return [lst[i::n] for i in range(n)]
self.jobs = chunkify(list(self.willparse), self.num_processes)
self.jobs = chunkify(self.willparse, self.num_processes)
for i in range(0, self.num_processes):
parser = Parser(self.jobs[i], self.result_queue, self.parser_quit, init, self.cooker.configuration.profile)
@@ -2155,9 +2056,12 @@ class CookerParser(object):
self.total)
bb.event.fire(event, self.cfgdata)
for process in self.processes:
self.parser_quit.put(None)
for process in self.processes:
self.parser_quit.put(None)
else:
self.parser_quit.cancel_join_thread()
for process in self.processes:
self.parser_quit.put(None)
# Cleanup the queue before call process.join(), otherwise there might be
# deadlocks.
@@ -2174,17 +2078,9 @@ class CookerParser(object):
else:
process.join()
self.parser_quit.close()
# Allow data left in the cancel queue to be discarded
self.parser_quit.cancel_join_thread()
def sync_caches():
for c in self.bb_caches.values():
c.sync()
sync = threading.Thread(target=sync_caches, name="SyncThread")
self.syncthread = sync
sync = threading.Thread(target=self.bb_cache.sync)
sync.start()
multiprocessing.util.Finalize(None, sync.join, exitpriority=-100)
bb.codeparser.parser_cache_savemerge()
bb.fetch.fetcher_parse_done()
if self.cooker.configuration.profile:
@@ -2198,14 +2094,10 @@ class CookerParser(object):
bb.utils.process_profilelog(profiles, pout = pout)
print("Processed parsing statistics saved to %s" % (pout))
def final_cleanup(self):
if self.syncthread:
self.syncthread.join()
def load_cached(self):
for mc, cache, filename, appends in self.fromcache:
cached, infos = cache.load(filename, appends)
yield not cached, mc, infos
for filename, appends in self.fromcache:
cached, infos = self.bb_cache.load(filename, appends)
yield not cached, infos
def parse_generator(self):
while True:
@@ -2227,25 +2119,25 @@ class CookerParser(object):
result = []
parsed = None
try:
parsed, mc, result = next(self.results)
parsed, result = next(self.results)
except StopIteration:
self.shutdown()
return False
except bb.BBHandledException as exc:
self.error += 1
logger.error('Failed to parse recipe: %s' % exc.recipe)
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except ParsingFailure as exc:
self.error += 1
logger.error('Unable to parse %s: %s' %
(exc.recipe, bb.exceptions.to_string(exc.realexception)))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except bb.parse.ParseError as exc:
self.error += 1
logger.error(str(exc))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except bb.data_smart.ExpansionError as exc:
self.error += 1
@@ -2254,7 +2146,7 @@ class CookerParser(object):
tb = list(itertools.dropwhile(lambda e: e.filename.startswith(bbdir), exc.traceback))
logger.error('ExpansionError during parsing %s', value.recipe,
exc_info=(etype, value, tb))
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
except Exception as exc:
self.error += 1
@@ -2266,7 +2158,7 @@ class CookerParser(object):
# Most likely, an exception occurred during raising an exception
import traceback
logger.error('Exception during parse: %s' % traceback.format_exc())
self.shutdown(clean=False, force=True)
self.shutdown(clean=False)
return False
self.current += 1
@@ -2283,16 +2175,13 @@ class CookerParser(object):
if info_array[0].skipped:
self.skipped += 1
self.cooker.skiplist[virtualfn] = SkippedPackage(info_array[0])
self.bb_caches[mc].add_info(virtualfn, info_array, self.cooker.recipecaches[mc],
(fn, cls, mc) = bb.cache.virtualfn2realfn(virtualfn)
self.bb_cache.add_info(virtualfn, info_array, self.cooker.recipecaches[mc],
parsed=parsed, watcher = self.cooker.add_filewatch)
return True
def reparse(self, filename):
to_reparse = set()
for mc in self.cooker.multiconfigs:
to_reparse.add((mc, filename, self.cooker.collections[mc].get_file_appends(filename)))
for mc, filename, appends in to_reparse:
infos = self.bb_caches[mc].parse(filename, appends)
for vfn, info_array in infos:
self.cooker.recipecaches[mc].add_from_recipeinfo(vfn, info_array)
infos = self.bb_cache.parse(filename, self.cooker.collection.get_file_appends(filename))
for vfn, info_array in infos:
(fn, cls, mc) = bb.cache.virtualfn2realfn(vfn)
self.cooker.recipecaches[mc].add_from_recipeinfo(vfn, info_array)

View File

@@ -23,8 +23,8 @@ logger = logging.getLogger("BitBake")
parselog = logging.getLogger("BitBake.Parsing")
class ConfigParameters(object):
def __init__(self, argv=None):
self.options, targets = self.parseCommandLine(argv or sys.argv)
def __init__(self, argv=sys.argv):
self.options, targets = self.parseCommandLine(argv)
self.environment = self.parseEnvironment()
self.options.pkgs_to_build = targets or []
@@ -58,18 +58,11 @@ class ConfigParameters(object):
def updateToServer(self, server, environment):
options = {}
for o in ["abort", "force", "invalidate_stamp",
"dry_run", "dump_signatures",
"extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout",
"nosetscene", "setsceneonly", "skipsetscene",
"runall", "runonly", "writeeventlog"]:
"verbose", "debug", "dry_run", "dump_signatures",
"debug_domains", "extra_assume_provided", "profile",
"prefile", "postfile", "server_timeout"]:
options[o] = getattr(self.options, o)
options['build_verbose_shell'] = self.options.verbose
options['build_verbose_stdout'] = self.options.verbose
options['default_loglevel'] = bb.msg.loggerDefaultLogLevel
options['debug_domains'] = bb.msg.loggerDefaultDomains
ret, error = server.runCommand(["updateConfig", options, environment, sys.argv])
if error:
raise Exception("Unable to update the server configuration with local parameters: %s" % error)
@@ -118,11 +111,11 @@ class CookerConfiguration(object):
"""
def __init__(self):
self.debug_domains = bb.msg.loggerDefaultDomains
self.default_loglevel = bb.msg.loggerDefaultLogLevel
self.debug_domains = []
self.extra_assume_provided = []
self.prefile = []
self.postfile = []
self.debug = 0
self.cmd = None
self.abort = True
self.force = False
@@ -132,21 +125,34 @@ class CookerConfiguration(object):
self.skipsetscene = False
self.invalidate_stamp = False
self.dump_signatures = []
self.build_verbose_shell = False
self.build_verbose_stdout = False
self.dry_run = False
self.tracking = False
self.xmlrpcinterface = []
self.server_timeout = None
self.writeeventlog = False
self.server_only = False
self.limited_deps = False
self.runall = []
self.runonly = []
self.env = {}
def setConfigParameters(self, parameters):
for key in self.__dict__.keys():
if key in parameters.options.__dict__:
setattr(self, key, parameters.options.__dict__[key])
self.env = parameters.environment.copy()
def setServerRegIdleCallback(self, srcb):
self.server_register_idlecallback = srcb
def __getstate__(self):
state = {}
for key in self.__dict__.keys():
state[key] = getattr(self, key)
if key == "server_register_idlecallback":
state[key] = None
else:
state[key] = getattr(self, key)
return state
def __setstate__(self,state):
@@ -164,7 +170,7 @@ def catch_parse_error(func):
import traceback
parselog.critical(traceback.format_exc())
parselog.critical("Unable to parse %s: %s" % (fn, exc))
raise bb.BBHandledException()
sys.exit(1)
except bb.data_smart.ExpansionError as exc:
import traceback
@@ -176,10 +182,10 @@ def catch_parse_error(func):
if not fn.startswith(bbdir):
break
parselog.critical("Unable to parse %s" % fn, exc_info=(exc_class, exc, tb))
raise bb.BBHandledException()
sys.exit(1)
except bb.parse.ParseError as exc:
parselog.critical(str(exc))
raise bb.BBHandledException()
sys.exit(1)
return wrapped
@catch_parse_error
@@ -209,7 +215,7 @@ def findConfigFile(configfile, data):
return None
#
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
# We search for a conf/bblayers.conf under an entry in BBPATH or in cwd working
# up to /. If that fails, we search for a conf/bitbake.conf in BBPATH.
#
@@ -291,8 +297,6 @@ class CookerDataBuilder(object):
multiconfig = (self.data.getVar("BBMULTICONFIG") or "").split()
for config in multiconfig:
if config[0].isdigit():
bb.fatal("Multiconfig name '%s' is invalid as multiconfigs cannot start with a digit" % config)
mcdata = self.parseConfigurationFiles(self.prefiles, self.postfiles, config)
bb.event.fire(bb.event.ConfigParsed(), mcdata)
self.mcdata[config] = mcdata
@@ -302,13 +306,13 @@ class CookerDataBuilder(object):
self.data_hash = data_hash.hexdigest()
except (SyntaxError, bb.BBHandledException):
raise bb.BBHandledException()
raise bb.BBHandledException
except bb.data_smart.ExpansionError as e:
logger.error(str(e))
raise bb.BBHandledException()
raise bb.BBHandledException
except Exception:
logger.exception("Error parsing configuration files")
raise bb.BBHandledException()
raise bb.BBHandledException
# Create a copy so we can reset at a later date when UIs disconnect
self.origdata = self.data
@@ -344,9 +348,6 @@ class CookerDataBuilder(object):
layers = (data.getVar('BBLAYERS') or "").split()
broken_layers = []
if not layers:
bb.fatal("The bblayers.conf file doesn't contain any BBLAYERS definition")
data = bb.data.createCopy(data)
approved = bb.utils.approved_variables()
@@ -360,7 +361,7 @@ class CookerDataBuilder(object):
for layer in broken_layers:
parselog.critical(" %s", layer)
parselog.critical("Please check BBLAYERS in %s" % (layerconf))
raise bb.BBHandledException()
sys.exit(1)
for layer in layers:
parselog.debug(2, "Adding layer %s", layer)
@@ -386,13 +387,10 @@ class CookerDataBuilder(object):
invalid.append(entry)
continue
l, f = parts
invert = l[0] == "!"
if invert:
l = l[1:]
if (l in collections and not invert) or (l not in collections and invert):
if l in collections:
data.appendVar("BBFILES", " " + f)
if invalid:
bb.fatal("BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
bb.fatal("BBFILES_DYNAMIC entries must be of the form <collection name>:<filename pattern>, not:\n %s" % "\n ".join(invalid))
layerseries = set((data.getVar("LAYERSERIES_CORENAMES") or "").split())
collections_tmp = collections[:]
@@ -401,8 +399,6 @@ class CookerDataBuilder(object):
if c in collections_tmp:
bb.fatal("Found duplicated BBFILE_COLLECTIONS '%s', check bblayers.conf or layer.conf to fix it." % c)
compat = set((data.getVar("LAYERSERIES_COMPAT_%s" % c) or "").split())
if compat and not layerseries:
bb.fatal("No core layer found to work with layer '%s'. Missing entry in bblayers.conf?" % c)
if compat and not (compat & layerseries):
bb.fatal("Layer %s is not compatible with the core layer which only supports these series: %s (layer is compatible with %s)"
% (c, " ".join(layerseries), " ".join(compat)))
@@ -434,9 +430,9 @@ class CookerDataBuilder(object):
handlerfn = data.getVarFlag(var, "filename", False)
if not handlerfn:
parselog.critical("Undefined event handler function '%s'" % var)
raise bb.BBHandledException()
sys.exit(1)
handlerln = int(data.getVarFlag(var, "lineno", False))
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln, data)
bb.event.register(var, data.getVar(var, False), (data.getVarFlag(var, "eventmask") or "").split(), handlerfn, handlerln)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))

View File

@@ -14,8 +14,6 @@ import sys
import io
import traceback
import bb
def createDaemon(function, logfile):
"""
Detach a process from the controlling terminal and run it in the

View File

@@ -161,12 +161,6 @@ def emit_var(var, o=sys.__stdout__, d = init(), all=False):
return True
if func:
# Write a comment indicating where the shell function came from (line number and filename) to make it easier
# for the user to diagnose task failures. This comment is also used by build.py to determine the metadata
# location of shell functions.
o.write("# line: {0}, file: {1}\n".format(
d.getVarFlag(var, "lineno", False),
d.getVarFlag(var, "filename", False)))
# NOTE: should probably check for unbalanced {} within the var
val = val.rstrip('\n')
o.write("%s() {\n%s\n}\n" % (varExpanded, val))
@@ -226,7 +220,7 @@ def emit_func(func, o=sys.__stdout__, d = init()):
deps = newdeps
seen |= deps
newdeps = set()
for dep in sorted(deps):
for dep in deps:
if d.getVarFlag(dep, "func", False) and not d.getVarFlag(dep, "python", False):
emit_var(dep, o, d, False) and o.write('\n')
newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep))

View File

@@ -17,7 +17,7 @@ BitBake build tools.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import copy, re, sys, traceback
from collections.abc import MutableMapping
from collections import MutableMapping
import logging
import hashlib
import bb, bb.codeparser
@@ -26,9 +26,9 @@ from bb.COW import COWDictBase
logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = [":append", ":prepend", ":remove"]
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>:append|:prepend|:remove)(:(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~:]+?}")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile(r'(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>[^A-Z]*))?$')
__expand_var_regexp__ = re.compile(r"\${[a-zA-Z0-9\-_+./~]+?}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
__whitespace_split__ = re.compile(r'(\s)')
__override_regexp__ = re.compile(r'[a-z0-9]+')
@@ -151,7 +151,6 @@ class ExpansionError(Exception):
self.expression = expression
self.variablename = varname
self.exception = exception
self.varlist = [varname or expression or ""]
if varname:
if expression:
self.msg = "Failure expanding variable %s, expression was %s which triggered exception %s: %s" % (varname, expression, type(exception).__name__, exception)
@@ -161,14 +160,8 @@ class ExpansionError(Exception):
self.msg = "Failure expanding expression %s which triggered exception %s: %s" % (expression, type(exception).__name__, exception)
Exception.__init__(self, self.msg)
self.args = (varname, expression, exception)
def addVar(self, varname):
if varname:
self.varlist.append(varname)
def __str__(self):
chain = "\nThe variable dependency chain for the failure is: " + " -> ".join(self.varlist)
return self.msg + chain
return self.msg
class IncludeHistory(object):
def __init__(self, parent = None, filename = '[TOP LEVEL]'):
@@ -196,7 +189,7 @@ class IncludeHistory(object):
if self.current.parent:
self.current = self.current.parent
else:
bb.warn("Include log: Tried to finish '%s' at top level." % self.filename)
bb.warn("Include log: Tried to finish '%s' at top level." % filename)
return False
def emit(self, o, level = 0):
@@ -284,7 +277,7 @@ class VariableHistory(object):
for (r, override) in d.overridedata[var]:
for event in self.variable(r):
loginfo = event.copy()
if 'flag' in loginfo and not loginfo['flag'].startswith(("_", ":")):
if 'flag' in loginfo and not loginfo['flag'].startswith("_"):
continue
loginfo['variable'] = var
loginfo['op'] = 'override[%s]:%s' % (override, loginfo['op'])
@@ -349,7 +342,7 @@ class VariableHistory(object):
for event in history:
if 'flag' in event:
continue
if event['op'] == ':remove':
if event['op'] == '_remove':
continue
if isset and event['op'] == 'set?':
continue
@@ -410,17 +403,14 @@ class DataSmart(MutableMapping):
s = __expand_python_regexp__.sub(varparse.python_sub, s)
except SyntaxError as e:
# Likely unmatched brackets, just don't expand the expression
if e.msg != "EOL while scanning string literal" and not e.msg.startswith("unterminated string literal"):
if e.msg != "EOL while scanning string literal":
raise
if s == olds:
break
except ExpansionError as e:
e.addVar(varname)
except ExpansionError:
raise
except bb.parse.SkipRecipe:
raise
except bb.BBHandledException:
raise
except Exception as exc:
tb = sys.exc_info()[2]
raise ExpansionError(varname, s, exc).with_traceback(tb) from exc
@@ -491,15 +481,6 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
if "_append" in var or "_prepend" in var or "_remove" in var:
info = "%s" % var
if "filename" in loginfo:
info += " file: %s" % loginfo[filename]
if "lineno" in loginfo:
info += " line: %s" % loginfo[lineno]
bb.fatal("Variable %s contains an operation using the old override syntax. Please convert this layer/metadata before attempting to use with a newer bitbake." % info)
self.expand_cache = {}
parsing=False
if 'parsing' in loginfo:
@@ -528,7 +509,7 @@ class DataSmart(MutableMapping):
# pay the cookie monster
# more cookies for the cookie monster
if ':' in var:
if '_' in var:
self._setvar_update_overrides(base, **loginfo)
if base in self.overridevars:
@@ -539,27 +520,27 @@ class DataSmart(MutableMapping):
self._makeShadowCopy(var)
if not parsing:
if ":append" in self.dict[var]:
del self.dict[var][":append"]
if ":prepend" in self.dict[var]:
del self.dict[var][":prepend"]
if ":remove" in self.dict[var]:
del self.dict[var][":remove"]
if "_append" in self.dict[var]:
del self.dict[var]["_append"]
if "_prepend" in self.dict[var]:
del self.dict[var]["_prepend"]
if "_remove" in self.dict[var]:
del self.dict[var]["_remove"]
if var in self.overridedata:
active = []
self.need_overrides()
for (r, o) in self.overridedata[var]:
if o in self.overridesset:
active.append(r)
elif ":" in o:
if set(o.split(":")).issubset(self.overridesset):
elif "_" in o:
if set(o.split("_")).issubset(self.overridesset):
active.append(r)
for a in active:
self.delVar(a)
del self.overridedata[var]
# more cookies for the cookie monster
if ':' in var:
if '_' in var:
self._setvar_update_overrides(var, **loginfo)
# setting var
@@ -585,8 +566,8 @@ class DataSmart(MutableMapping):
def _setvar_update_overrides(self, var, **loginfo):
# aka pay the cookie monster
override = var[var.rfind(':')+1:]
shortvar = var[:var.rfind(':')]
override = var[var.rfind('_')+1:]
shortvar = var[:var.rfind('_')]
while override and __override_regexp__.match(override):
if shortvar not in self.overridedata:
self.overridedata[shortvar] = []
@@ -595,9 +576,9 @@ class DataSmart(MutableMapping):
self.overridedata[shortvar] = list(self.overridedata[shortvar])
self.overridedata[shortvar].append([var, override])
override = None
if ":" in shortvar:
override = var[shortvar.rfind(':')+1:]
shortvar = var[:shortvar.rfind(':')]
if "_" in shortvar:
override = var[shortvar.rfind('_')+1:]
shortvar = var[:shortvar.rfind('_')]
if len(shortvar) == 0:
override = None
@@ -636,7 +617,7 @@ class DataSmart(MutableMapping):
self.overridedata[newkey].append([v.replace(key, newkey), o])
self.renameVar(v, v.replace(key, newkey))
if ':' in newkey and val is None:
if '_' in newkey and val is None:
self._setvar_update_overrides(newkey, **loginfo)
loginfo['variable'] = key
@@ -648,12 +629,12 @@ class DataSmart(MutableMapping):
def appendVar(self, var, value, **loginfo):
loginfo['op'] = 'append'
self.varhistory.record(**loginfo)
self.setVar(var + ":append", value, ignore=True, parsing=True)
self.setVar(var + "_append", value, ignore=True, parsing=True)
def prependVar(self, var, value, **loginfo):
loginfo['op'] = 'prepend'
self.varhistory.record(**loginfo)
self.setVar(var + ":prepend", value, ignore=True, parsing=True)
self.setVar(var + "_prepend", value, ignore=True, parsing=True)
def delVar(self, var, **loginfo):
self.expand_cache = {}
@@ -664,9 +645,9 @@ class DataSmart(MutableMapping):
self.dict[var] = {}
if var in self.overridedata:
del self.overridedata[var]
if ':' in var:
override = var[var.rfind(':')+1:]
shortvar = var[:var.rfind(':')]
if '_' in var:
override = var[var.rfind('_')+1:]
shortvar = var[:var.rfind('_')]
while override and override.islower():
try:
if shortvar in self.overridedata:
@@ -676,9 +657,9 @@ class DataSmart(MutableMapping):
except ValueError as e:
pass
override = None
if ":" in shortvar:
override = var[shortvar.rfind(':')+1:]
shortvar = var[:shortvar.rfind(':')]
if "_" in shortvar:
override = var[shortvar.rfind('_')+1:]
shortvar = var[:shortvar.rfind('_')]
if len(shortvar) == 0:
override = None
@@ -693,7 +674,7 @@ class DataSmart(MutableMapping):
self._makeShadowCopy(var)
self.dict[var][flag] = value
if flag == "_defaultval" and ':' in var:
if flag == "_defaultval" and '_' in var:
self._setvar_update_overrides(var, **loginfo)
if flag == "_defaultval" and var in self.overridevars:
self._setvar_update_overridevars(var, value)
@@ -725,11 +706,11 @@ class DataSmart(MutableMapping):
active = {}
self.need_overrides()
for (r, o) in overridedata:
# FIXME What about double overrides both with "_" in the name?
# What about double overrides both with "_" in the name?
if o in self.overridesset:
active[o] = r
elif ":" in o:
if set(o.split(":")).issubset(self.overridesset):
elif "_" in o:
if set(o.split("_")).issubset(self.overridesset):
active[o] = r
mod = True
@@ -737,10 +718,10 @@ class DataSmart(MutableMapping):
mod = False
for o in self.overrides:
for a in active.copy():
if a.endswith(":" + o):
if a.endswith("_" + o):
t = active[a]
del active[a]
active[a.replace(":" + o, "")] = t
active[a.replace("_" + o, "")] = t
mod = True
elif a == o:
match = active[a]
@@ -759,31 +740,31 @@ class DataSmart(MutableMapping):
value = copy.copy(local_var["_defaultval"])
if flag == "_content" and local_var is not None and ":append" in local_var and not parsing:
if flag == "_content" and local_var is not None and "_append" in local_var and not parsing:
if not value:
value = ""
self.need_overrides()
for (r, o) in local_var[":append"]:
for (r, o) in local_var["_append"]:
match = True
if o:
for o2 in o.split(":"):
for o2 in o.split("_"):
if not o2 in self.overrides:
match = False
if match:
if value is None:
value = ""
value = value + r
if flag == "_content" and local_var is not None and ":prepend" in local_var and not parsing:
if flag == "_content" and local_var is not None and "_prepend" in local_var and not parsing:
if not value:
value = ""
self.need_overrides()
for (r, o) in local_var[":prepend"]:
for (r, o) in local_var["_prepend"]:
match = True
if o:
for o2 in o.split(":"):
for o2 in o.split("_"):
if not o2 in self.overrides:
match = False
if match:
if value is None:
value = ""
value = r + value
parser = None
@@ -792,12 +773,12 @@ class DataSmart(MutableMapping):
if expand:
value = parser.value
if value and flag == "_content" and local_var is not None and ":remove" in local_var and not parsing:
if value and flag == "_content" and local_var is not None and "_remove" in local_var and not parsing:
self.need_overrides()
for (r, o) in local_var[":remove"]:
for (r, o) in local_var["_remove"]:
match = True
if o:
for o2 in o.split(":"):
for o2 in o.split("_"):
if not o2 in self.overrides:
match = False
if match:
@@ -883,7 +864,7 @@ class DataSmart(MutableMapping):
if local_var:
for i in local_var:
if i.startswith(("_", ":")) and not internalflags:
if i.startswith("_") and not internalflags:
continue
flags[i] = local_var[i]
if expand and i in expand:
@@ -981,8 +962,8 @@ class DataSmart(MutableMapping):
for (r, o) in self.overridedata[var]:
if o in self.overridesset:
overrides.add(var)
elif ":" in o:
if set(o.split(":")).issubset(self.overridesset):
elif "_" in o:
if set(o.split("_")).issubset(self.overridesset):
overrides.add(var)
for k in keylist(self.dict):
@@ -1024,7 +1005,7 @@ class DataSmart(MutableMapping):
else:
data.update({key:value})
varflags = d.getVarFlags(key, internalflags = True, expand=["vardepvalue"])
varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
continue
for f in varflags:

View File

@@ -10,17 +10,17 @@ BitBake build tools.
# SPDX-License-Identifier: GPL-2.0-only
#
import ast
import atexit
import collections
import logging
import pickle
import sys
import threading
import pickle
import logging
import atexit
import traceback
import ast
import threading
import bb.exceptions
import bb.utils
import bb.compat
import bb.exceptions
# This is the pid for which we should generate the event. This is set when
# the runqueue forks off.
@@ -56,7 +56,7 @@ def set_class_handlers(h):
_handlers = h
def clean_class_handlers():
return collections.OrderedDict()
return bb.compat.OrderedDict()
# Internal
_handlers = clean_class_handlers()
@@ -118,8 +118,6 @@ def fire_class_handlers(event, d):
if _eventfilter:
if not _eventfilter(name, handler, event, d):
continue
if d is not None and not name in (d.getVar("__BBHANDLERS_MC") or set()):
continue
execute_handler(name, handler, event, d)
ui_queue = []
@@ -229,19 +227,11 @@ def fire_from_worker(event, d):
fire_ui_handlers(event, d)
noop = lambda _: None
def register(name, handler, mask=None, filename=None, lineno=None, data=None):
def register(name, handler, mask=None, filename=None, lineno=None):
"""Register an Event handler"""
if data is not None and data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
# already registered
if name in _handlers:
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return AlreadyRegistered
if handler is not None:
@@ -278,20 +268,10 @@ def register(name, handler, mask=None, filename=None, lineno=None, data=None):
_event_handler_map[m] = {}
_event_handler_map[m][name] = True
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
bbhands_mc.add(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
return Registered
def remove(name, handler, data=None):
def remove(name, handler):
"""Remove an Event handler"""
if data is not None:
if data.getVar("BB_CURRENT_MC"):
mc = data.getVar("BB_CURRENT_MC")
name = '%s%s' % (mc.replace('-', '_'), name)
_handlers.pop(name)
if name in _catchall_handlers:
_catchall_handlers.pop(name)
@@ -299,12 +279,6 @@ def remove(name, handler, data=None):
if name in _event_handler_map[event]:
_event_handler_map[event].pop(name)
if data is not None:
bbhands_mc = (data.getVar("__BBHANDLERS_MC") or set())
if name in bbhands_mc:
bbhands_mc.remove(name)
data.setVar("__BBHANDLERS_MC", bbhands_mc)
def get_handlers():
return _handlers
@@ -415,10 +389,6 @@ class RecipeEvent(Event):
class RecipePreFinalise(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipePostKeyExpansion(RecipeEvent):
""" Recipe Parsing Complete but not yet finalised"""
class RecipeTaskPreProcess(RecipeEvent):
"""
Recipe Tasks about to be finalised
@@ -670,17 +640,6 @@ class ReachableStamps(Event):
Event.__init__(self)
self.stamps = stamps
class StaleSetSceneTasks(Event):
"""
An event listing setscene tasks which are 'stale' and will
be rerun. The metadata may use to clean up stale data.
tasks is a mapping of tasks and matching stale stamps.
"""
def __init__(self, tasks):
Event.__init__(self)
self.tasks = tasks
class FilesMatchingFound(Event):
"""
Event when a list of files matching the supplied pattern has

View File

@@ -290,7 +290,7 @@ class URI(object):
def _param_str_split(self, string, elmdelim, kvdelim="="):
ret = collections.OrderedDict()
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim) if x]:
for k, v in [x.split(kvdelim, 1) for x in string.split(elmdelim)]:
ret[k] = v
return ret
@@ -428,7 +428,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
uri_decoded = list(decodeurl(ud.url))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
logger.debug2("For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
logger.debug(2, "For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
result_decoded = ['', '', '', '', '', {}]
for loc, i in enumerate(uri_find_decoded):
result_decoded[loc] = uri_decoded[loc]
@@ -466,7 +466,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
# Kill parameters, they make no sense for mirror tarballs
uri_decoded[5] = {}
elif ud.localpath and ud.method.supports_checksum(ud):
basename = os.path.basename(uri_decoded[loc])
basename = os.path.basename(ud.localpath)
if basename and not result_decoded[loc].endswith(basename):
result_decoded[loc] = os.path.join(result_decoded[loc], basename)
else:
@@ -474,7 +474,7 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d, mirrortarball=None):
result = encodeurl(result_decoded)
if result == ud.url:
return None
logger.debug2("For url %s returning %s" % (ud.url, result))
logger.debug(2, "For url %s returning %s" % (ud.url, result))
return result
methods = []
@@ -499,9 +499,9 @@ def fetcher_init(d):
# When to drop SCM head revisions controlled by user policy
srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear"
if srcrev_policy == "cache":
logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
logger.debug(1, "Keeping SRCREV cache due to cache policy of: %s", srcrev_policy)
elif srcrev_policy == "clear":
logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
logger.debug(1, "Clearing SRCREV cache due to cache policy of: %s", srcrev_policy)
revs.clear()
else:
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
@@ -562,9 +562,6 @@ def verify_checksum(ud, d, precomputed={}):
checksum_expected = getattr(ud, "%s_expected" % checksum_id)
if checksum_expected == '':
checksum_expected = None
return {
"id": checksum_id,
"name": checksum_name,
@@ -615,7 +612,7 @@ def verify_checksum(ud, d, precomputed={}):
for ci in checksum_infos:
if ci["expected"] and ci["expected"] != ci["data"]:
messages.append("File: '%s' has %s checksum '%s' when '%s' was " \
messages.append("File: '%s' has %s checksum %s when %s was " \
"expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
bad_checksum = ci["data"]
@@ -754,11 +751,6 @@ def get_srcrev(d, method_name='sortable_revision'):
that fetcher provides a method with the given name and the same signature as sortable_revision.
"""
recursion = d.getVar("__BBINSRCREV")
if recursion:
raise FetchError("There are recursive references in fetcher variables, likely through SRC_URI")
d.setVar("__BBINSRCREV", True)
scms = []
fetcher = Fetch(d.getVar('SRC_URI').split(), d)
urldata = fetcher.ud
@@ -773,7 +765,6 @@ def get_srcrev(d, method_name='sortable_revision'):
autoinc, rev = getattr(urldata[scms[0]].method, method_name)(urldata[scms[0]], d, urldata[scms[0]].names[0])
if len(rev) > 10:
rev = rev[:10]
d.delVar("__BBINSRCREV")
if autoinc:
return "AUTOINC+" + rev
return rev
@@ -808,37 +799,12 @@ def get_srcrev(d, method_name='sortable_revision'):
if seenautoinc:
format = "AUTOINC+" + format
d.delVar("__BBINSRCREV")
return format
def localpath(url, d):
fetcher = bb.fetch2.Fetch([url], d)
return fetcher.localpath(url)
# Need to export PATH as binary could be in metadata paths
# rather than host provided
# Also include some other variables.
FETCH_EXPORT_VARS = ['HOME', 'PATH',
'HTTP_PROXY', 'http_proxy',
'HTTPS_PROXY', 'https_proxy',
'FTP_PROXY', 'ftp_proxy',
'FTPS_PROXY', 'ftps_proxy',
'NO_PROXY', 'no_proxy',
'ALL_PROXY', 'all_proxy',
'GIT_PROXY_COMMAND',
'GIT_SSH',
'GIT_SSL_CAINFO',
'GIT_SMART_HTTP',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
'SOCKS5_USER', 'SOCKS5_PASSWD',
'DBUS_SESSION_BUS_ADDRESS',
'P4CONFIG',
'SSL_CERT_FILE',
'AWS_PROFILE',
'AWS_ACCESS_KEY_ID',
'AWS_SECRET_ACCESS_KEY',
'AWS_DEFAULT_REGION']
def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
"""
Run cmd returning the command output
@@ -847,7 +813,25 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
Optionally remove the files/directories listed in cleanup upon failure
"""
exportvars = FETCH_EXPORT_VARS
# Need to export PATH as binary could be in metadata paths
# rather than host provided
# Also include some other variables.
# FIXME: Should really include all export varaiables?
exportvars = ['HOME', 'PATH',
'HTTP_PROXY', 'http_proxy',
'HTTPS_PROXY', 'https_proxy',
'FTP_PROXY', 'ftp_proxy',
'FTPS_PROXY', 'ftps_proxy',
'NO_PROXY', 'no_proxy',
'ALL_PROXY', 'all_proxy',
'GIT_PROXY_COMMAND',
'GIT_SSH',
'GIT_SSL_CAINFO',
'GIT_SMART_HTTP',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
'SOCKS5_USER', 'SOCKS5_PASSWD',
'DBUS_SESSION_BUS_ADDRESS',
'P4CONFIG']
if not cleanup:
cleanup = []
@@ -869,13 +853,18 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
if val:
cmd = 'export ' + var + '=\"%s\"; %s' % (val, cmd)
# Ensure that a _PYTHON_SYSCONFIGDATA_NAME value set by a recipe
# (for example via python3native.bbclass since warrior) is not set for
# host Python (otherwise tools like git-make-shallow will fail)
cmd = 'unset _PYTHON_SYSCONFIGDATA_NAME; ' + cmd
# Disable pseudo as it may affect ssh, potentially causing it to hang.
cmd = 'export PSEUDO_DISABLED=1; ' + cmd
if workdir:
logger.debug("Running '%s' in %s" % (cmd, workdir))
logger.debug(1, "Running '%s' in %s" % (cmd, workdir))
else:
logger.debug("Running %s", cmd)
logger.debug(1, "Running %s", cmd)
success = False
error_message = ""
@@ -884,7 +873,7 @@ def runfetchcmd(cmd, d, quiet=False, cleanup=None, log=None, workdir=None):
(output, errors) = bb.process.run(cmd, log=log, shell=True, stderr=subprocess.PIPE, cwd=workdir)
success = True
except bb.process.NotFoundError as e:
error_message = "Fetch command %s not found" % (e.command)
error_message = "Fetch command %s" % (e.command)
except bb.process.ExecutionError as e:
if e.stdout:
output = "output:\n%s\n%s" % (e.stdout, e.stderr)
@@ -916,7 +905,7 @@ def check_network_access(d, info, url):
elif not trusted_network(d, url):
raise UntrustedUrl(url, info)
else:
logger.debug("Fetcher accessed the network with the command %s" % info)
logger.debug(1, "Fetcher accessed the network with the command %s" % info)
def build_mirroruris(origud, mirrors, ld):
uris = []
@@ -942,7 +931,7 @@ def build_mirroruris(origud, mirrors, ld):
continue
if not trusted_network(ld, newuri):
logger.debug("Mirror %s not in the list of trusted networks, skipping" % (newuri))
logger.debug(1, "Mirror %s not in the list of trusted networks, skipping" % (newuri))
continue
# Create a local copy of the mirrors minus the current line
@@ -955,8 +944,8 @@ def build_mirroruris(origud, mirrors, ld):
newud = FetchData(newuri, ld)
newud.setup_localpath(ld)
except bb.fetch2.BBFetchException as e:
logger.debug("Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(str(e))
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
# setup_localpath of file:// urls may fail, we should still see
# if mirrors of the url exist
@@ -1059,8 +1048,8 @@ def try_mirror_url(fetch, origud, ud, ld, check = False):
elif isinstance(e, NoChecksumError):
raise
else:
logger.debug("Mirror fetch failure for url %s (original url: %s)" % (ud.url, origud.url))
logger.debug(str(e))
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (ud.url, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
@@ -1156,11 +1145,11 @@ def srcrev_internal_helper(ud, d, name):
pn = d.getVar("PN")
attempts = []
if name != '' and pn:
attempts.append("SRCREV_%s:pn-%s" % (name, pn))
attempts.append("SRCREV_%s_pn-%s" % (name, pn))
if name != '':
attempts.append("SRCREV_%s" % name)
if pn:
attempts.append("SRCREV:pn-%s" % pn)
attempts.append("SRCREV_pn-%s" % pn)
attempts.append("SRCREV")
for a in attempts:
@@ -1206,6 +1195,8 @@ def get_checksum_file_list(d):
paths = ud.method.localpaths(ud, d)
for f in paths:
pth = ud.decodedurl
if '*' in pth:
f = os.path.join(os.path.abspath(f), pth)
if f.startswith(dl_dir):
# The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
if os.path.exists(f):
@@ -1259,7 +1250,7 @@ class FetchData(object):
if checksum_name in self.parm:
checksum_expected = self.parm[checksum_name]
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3", "az"]:
elif self.type not in ["http", "https", "ftp", "ftps", "sftp", "s3"]:
checksum_expected = None
else:
checksum_expected = d.getVarFlag("SRC_URI", checksum_name)
@@ -1374,6 +1365,9 @@ class FetchMethod(object):
# We cannot compute checksums for directories
if os.path.isdir(urldata.localpath):
return False
if urldata.localpath.find("*") != -1:
return False
return True
def recommends_checksum(self, urldata):
@@ -1436,6 +1430,11 @@ class FetchMethod(object):
iterate = False
file = urldata.localpath
# Localpath can't deal with 'dir/*' entries, so it converts them to '.',
# but it must be corrected back for local files copying
if urldata.basename == '*' and file.endswith('/.'):
file = '%s/%s' % (file.rstrip('/.'), urldata.path)
try:
unpack = bb.utils.to_boolean(urldata.parm.get('unpack'), True)
except ValueError as exc:
@@ -1472,10 +1471,6 @@ class FetchMethod(object):
cmd = '7z x -so %s | tar x --no-same-owner -f -' % file
elif file.endswith('.7z'):
cmd = '7za x -y %s 1>/dev/null' % file
elif file.endswith('.tzst') or file.endswith('.tar.zst'):
cmd = 'zstd --decompress --stdout %s | tar x --no-same-owner -f -' % file
elif file.endswith('.zst'):
cmd = 'zstd --decompress --stdout %s > %s' % (file, efile)
elif file.endswith('.zip') or file.endswith('.jar'):
try:
dos = bb.utils.to_boolean(urldata.parm.get('dos'), False)
@@ -1535,7 +1530,7 @@ class FetchMethod(object):
if urlpath.find("/") != -1:
destdir = urlpath.rsplit("/", 1)[0] + '/'
bb.utils.mkdirhier("%s/%s" % (unpackdir, destdir))
cmd = 'cp -fpPRH "%s" "%s"' % (file, destdir)
cmd = 'cp -fpPRH %s %s' % (file, destdir)
if not cmd:
return
@@ -1618,15 +1613,10 @@ class FetchMethod(object):
"""
if os.path.exists(ud.localpath):
return True
if ud.localpath.find("*") != -1:
return True
return False
def implicit_urldata(self, ud, d):
"""
Get a list of FetchData objects for any implicit URLs that will also
be downloaded when we fetch the given URL.
"""
return []
class Fetch(object):
def __init__(self, urls, d, cache = True, localonly = False, connection_cache = None):
if localonly and cache:
@@ -1704,7 +1694,7 @@ class Fetch(object):
if m.verify_donestamp(ud, self.d) and not m.need_update(ud, self.d):
done = True
elif m.try_premirror(ud, self.d):
logger.debug("Trying PREMIRRORS")
logger.debug(1, "Trying PREMIRRORS")
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
if done:
@@ -1714,7 +1704,7 @@ class Fetch(object):
m.update_donestamp(ud, self.d)
except ChecksumError as e:
logger.warning("Checksum failure encountered with premirror download of %s - will attempt other sources." % u)
logger.debug(str(e))
logger.debug(1, str(e))
done = False
if premirroronly:
@@ -1726,7 +1716,7 @@ class Fetch(object):
try:
if not trusted_network(self.d, ud.url):
raise UntrustedUrl(ud.url)
logger.debug("Trying Upstream")
logger.debug(1, "Trying Upstream")
m.download(ud, self.d)
if hasattr(m, "build_mirror_data"):
m.build_mirror_data(ud, self.d)
@@ -1741,19 +1731,19 @@ class Fetch(object):
except BBFetchException as e:
if isinstance(e, ChecksumError):
logger.warning("Checksum failure encountered with download of %s - will attempt other sources if available" % u)
logger.debug(str(e))
logger.debug(1, str(e))
if os.path.exists(ud.localpath):
rename_bad_checksum(ud, e.checksum)
elif isinstance(e, NoChecksumError):
raise
else:
logger.warning('Failed to fetch URL %s, attempting MIRRORS if available' % u)
logger.debug(str(e))
logger.debug(1, str(e))
firsterr = e
# Remove any incomplete fetch
if not verified_stamp:
m.clean(ud, self.d)
logger.debug("Trying MIRRORS")
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS'))
done = m.try_mirrors(self, ud, self.d, mirrors)
@@ -1790,7 +1780,7 @@ class Fetch(object):
ud = self.ud[u]
ud.setup_localpath(self.d)
m = ud.method
logger.debug("Testing URL %s", u)
logger.debug(1, "Testing URL %s", u)
# First try checking uri, u, from PREMIRRORS
mirrors = mirror_from_string(self.d.getVar('PREMIRRORS'))
ret = m.try_mirrors(self, ud, self.d, mirrors, True)
@@ -1852,24 +1842,6 @@ class Fetch(object):
if ud.lockfile:
bb.utils.unlockfile(lf)
def expanded_urldata(self, urls=None):
"""
Get an expanded list of FetchData objects covering both the given
URLS and any additional implicit URLs that are added automatically by
the appropriate FetchMethod.
"""
if not urls:
urls = self.urls
urldata = []
for url in urls:
ud = self.ud[url]
urldata.append(ud)
urldata += ud.method.implicit_urldata(ud, self.d)
return urldata
class FetchConnectionCache(object):
"""
A class which represents an container for socket connections.
@@ -1924,7 +1896,6 @@ from . import repo
from . import clearcase
from . import npm
from . import npmsw
from . import az
methods.append(local.Local())
methods.append(wget.Wget())
@@ -1944,4 +1915,3 @@ methods.append(repo.Repo())
methods.append(clearcase.ClearCase())
methods.append(npm.Npm())
methods.append(npmsw.NpmShrinkWrap())
methods.append(az.Az())

View File

@@ -1,93 +0,0 @@
"""
BitBake 'Fetch' Azure Storage implementation
"""
# Copyright (C) 2021 Alejandro Hernandez Samaniego
#
# Based on bb.fetch2.wget:
# Copyright (C) 2003, 2004 Chris Larson
#
# SPDX-License-Identifier: GPL-2.0-only
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import shlex
import os
import bb
from bb.fetch2 import FetchError
from bb.fetch2 import logger
from bb.fetch2.wget import Wget
class Az(Wget):
def supports(self, ud, d):
"""
Check to see if a given url can be fetched from Azure Storage
"""
return ud.type in ['az']
def checkstatus(self, fetch, ud, d, try_again=True):
# checkstatus discards parameters either way, we need to do this before adding the SAS
ud.url = ud.url.replace('az://','https://').split(';')[0]
az_sas = d.getVar('AZ_SAS')
if az_sas and az_sas not in ud.url:
ud.url += az_sas
return Wget.checkstatus(self, fetch, ud, d, try_again)
# Override download method, include retries
def download(self, ud, d, retries=3):
"""Fetch urls"""
# If were reaching the account transaction limit we might be refused a connection,
# retrying allows us to avoid false negatives since the limit changes over time
fetchcmd = self.basecmd + ' --retry-connrefused --waitretry=5'
# We need to provide a localpath to avoid wget using the SAS
# ud.localfile either has the downloadfilename or ud.path
localpath = os.path.join(d.getVar("DL_DIR"), ud.localfile)
bb.utils.mkdirhier(os.path.dirname(localpath))
fetchcmd += " -O %s" % shlex.quote(localpath)
if ud.user and ud.pswd:
fetchcmd += " --user=%s --password=%s --auth-no-challenge" % (ud.user, ud.pswd)
# Check if a Shared Access Signature was given and use it
az_sas = d.getVar('AZ_SAS')
if az_sas:
azuri = '%s%s%s%s' % ('https://', ud.host, ud.path, az_sas)
else:
azuri = '%s%s%s' % ('https://', ud.host, ud.path)
if os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again.
fetchcmd += d.expand(" -c -P ${DL_DIR} '%s'" % azuri)
else:
fetchcmd += d.expand(" -P ${DL_DIR} '%s'" % azuri)
try:
self._runwget(ud, d, fetchcmd, False)
except FetchError as e:
# Azure fails on handshake sometimes when using wget after some stress, producing a
# FetchError from the fetcher, if the artifact exists retyring should succeed
if 'Unable to establish SSL connection' in str(e):
logger.debug2('Unable to establish SSL connection: Retries remaining: %s, Retrying...' % retries)
self.download(ud, d, retries -1)
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
if not os.path.exists(ud.localpath):
raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (azuri, ud.localpath), azuri)
if os.path.getsize(ud.localpath) == 0:
os.remove(ud.localpath)
raise FetchError("The fetch of %s resulted in a zero size file?! Deleting and failing since this isn't right." % (azuri), azuri)
return True

View File

@@ -74,16 +74,16 @@ class Bzr(FetchMethod):
if os.access(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir), '.bzr'), os.R_OK):
bzrcmd = self._buildbzrcommand(ud, d, "update")
logger.debug("BZR Update %s", ud.url)
logger.debug(1, "BZR Update %s", ud.url)
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
runfetchcmd(bzrcmd, d, workdir=os.path.join(ud.pkgdir, os.path.basename(ud.path)))
else:
bb.utils.remove(os.path.join(ud.pkgdir, os.path.basename(ud.pkgdir)), True)
bzrcmd = self._buildbzrcommand(ud, d, "fetch")
bb.fetch2.check_network_access(d, bzrcmd, ud.url)
logger.debug("BZR Checkout %s", ud.url)
logger.debug(1, "BZR Checkout %s", ud.url)
bb.utils.mkdirhier(ud.pkgdir)
logger.debug("Running %s", bzrcmd)
logger.debug(1, "Running %s", bzrcmd)
runfetchcmd(bzrcmd, d, workdir=ud.pkgdir)
scmdata = ud.parm.get("scmdata", "")
@@ -109,7 +109,7 @@ class Bzr(FetchMethod):
"""
Return the latest upstream revision number
"""
logger.debug2("BZR fetcher hitting network for %s", ud.url)
logger.debug(2, "BZR fetcher hitting network for %s", ud.url)
bb.fetch2.check_network_access(d, self._buildbzrcommand(ud, d, "revno"), ud.url)

View File

@@ -70,7 +70,7 @@ class ClearCase(FetchMethod):
return ud.type in ['ccrc']
def debug(self, msg):
logger.debug("ClearCase: %s", msg)
logger.debug(1, "ClearCase: %s", msg)
def urldata_init(self, ud, d):
"""

View File

@@ -51,10 +51,6 @@ class Cvs(FetchMethod):
ud.localfile = d.expand('%s_%s_%s_%s%s%s.tar.gz' % (ud.module.replace('/', '.'), ud.host, ud.tag, ud.date, norecurse, fullpath))
pkg = d.getVar('PN')
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
ud.pkgdir = os.path.join(cvsdir, pkg)
def need_update(self, ud, d):
if (ud.date == "now"):
return True
@@ -109,8 +105,11 @@ class Cvs(FetchMethod):
cvsupdatecmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvsupdatecmd)
# create module directory
logger.debug2("Fetch: checking for module directory")
moddir = os.path.join(ud.pkgdir, localdir)
logger.debug(2, "Fetch: checking for module directory")
pkg = d.getVar('PN')
cvsdir = d.getVar("CVSDIR") or (d.getVar("DL_DIR") + "/cvs")
pkgdir = os.path.join(cvsdir, pkg)
moddir = os.path.join(pkgdir, localdir)
workdir = None
if os.access(os.path.join(moddir, 'CVS'), os.R_OK):
logger.info("Update " + ud.url)
@@ -121,9 +120,9 @@ class Cvs(FetchMethod):
else:
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
workdir = ud.pkgdir
logger.debug("Running %s", cvscmd)
bb.utils.mkdirhier(pkgdir)
workdir = pkgdir
logger.debug(1, "Running %s", cvscmd)
bb.fetch2.check_network_access(d, cvscmd, ud.url)
cmd = cvscmd
@@ -141,7 +140,7 @@ class Cvs(FetchMethod):
# tar them up to a defined filename
workdir = None
if 'fullpath' in ud.parm:
workdir = ud.pkgdir
workdir = pkgdir
cmd = "tar %s -czf %s %s" % (tar_flags, ud.localpath, localdir)
else:
workdir = os.path.dirname(os.path.realpath(moddir))
@@ -152,6 +151,9 @@ class Cvs(FetchMethod):
def clean(self, ud, d):
""" Clean CVS Files and tarballs """
bb.utils.remove(ud.pkgdir, True)
pkg = d.getVar('PN')
pkgdir = os.path.join(d.getVar("CVSDIR"), pkg)
bb.utils.remove(pkgdir, True)
bb.utils.remove(ud.localpath)

View File

@@ -63,12 +63,10 @@ import errno
import fnmatch
import os
import re
import shlex
import subprocess
import tempfile
import bb
import bb.progress
from contextlib import contextmanager
from bb.fetch2 import FetchMethod
from bb.fetch2 import runfetchcmd
from bb.fetch2 import logger
@@ -169,11 +167,7 @@ class Git(FetchMethod):
if len(branches) != len(ud.names):
raise bb.fetch2.ParameterError("The number of name and branch parameters is not balanced", ud.url)
ud.noshared = d.getVar("BB_GIT_NOSHARED") == "1"
ud.cloneflags = "-n"
if not ud.noshared:
ud.cloneflags += " -s"
ud.cloneflags = "-s -n"
if ud.bareclone:
ud.cloneflags += " --mirror"
@@ -225,14 +219,9 @@ class Git(FetchMethod):
ud.shallow = False
if ud.usehead:
# When usehead is set let's associate 'HEAD' with the unresolved
# rev of this repository. This will get resolved into a revision
# later. If an actual revision happens to have also been provided
# then this setting will be overridden.
for name in ud.names:
ud.unresolvedrev[name] = 'HEAD'
ud.unresolvedrev['default'] = 'HEAD'
ud.basecmd = d.getVar("FETCHCMD_git") or "git -c core.fsyncobjectfiles=0 -c gc.autoDetach=false"
ud.basecmd = d.getVar("FETCHCMD_git") or "git -c core.fsyncobjectfiles=0"
write_tarballs = d.getVar("BB_GENERATE_MIRROR_TARBALLS") or "0"
ud.write_tarballs = write_tarballs != "0" or ud.rebaseable
@@ -247,7 +236,7 @@ class Git(FetchMethod):
ud.unresolvedrev[name] = ud.revisions[name]
ud.revisions[name] = self.latest_revision(ud, d, name)
gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.').replace(' ','_'))
gitsrcname = '%s%s' % (ud.host.replace(':', '.'), ud.path.replace('/', '.').replace('*', '.'))
if gitsrcname.startswith('.'):
gitsrcname = gitsrcname[1:]
@@ -353,7 +342,7 @@ class Git(FetchMethod):
# We do this since git will use a "-l" option automatically for local urls where possible
if repourl.startswith("file://"):
repourl = repourl[7:]
clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, shlex.quote(repourl), ud.clonedir)
clone_cmd = "LANG=C %s clone --bare --mirror %s %s --progress" % (ud.basecmd, repourl, ud.clonedir)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, clone_cmd, ud.url)
progresshandler = GitProgressHandler(d)
@@ -365,8 +354,8 @@ class Git(FetchMethod):
if "origin" in output:
runfetchcmd("%s remote rm origin" % ud.basecmd, d, workdir=ud.clonedir)
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, shlex.quote(repourl)), d, workdir=ud.clonedir)
fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, shlex.quote(repourl))
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d, workdir=ud.clonedir)
fetch_cmd = "LANG=C %s fetch -f --progress %s refs/*:refs/*" % (ud.basecmd, repourl)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
progresshandler = GitProgressHandler(d)
@@ -389,50 +378,7 @@ class Git(FetchMethod):
if missing_rev:
raise bb.fetch2.FetchError("Unable to find revision %s even from upstream" % missing_rev)
if self._contains_lfs(ud, d, ud.clonedir) and self._need_lfs(ud):
# Unpack temporary working copy, use it to run 'git checkout' to force pre-fetching
# of all LFS blobs needed at the the srcrev.
#
# It would be nice to just do this inline here by running 'git-lfs fetch'
# on the bare clonedir, but that operation requires a working copy on some
# releases of Git LFS.
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
try:
# Do the checkout. This implicitly involves a Git LFS fetch.
Git.unpack(self, ud, tmpdir, d)
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
# the bare clonedir.
#
# As this procedure is invoked repeatedly on incremental fetches as
# a recipe's SRCREV is bumped throughout its lifetime, this will
# result in a gradual accumulation of LFS blobs in <ud.clonedir>/lfs
# corresponding to all the blobs reachable from the different revs
# fetched across time.
#
# Only do this if the unpack resulted in a .git/lfs directory being
# created; this only happens if at least one blob needed to be
# downloaded.
if os.path.exists(os.path.join(tmpdir, "git", ".git", "lfs")):
runfetchcmd("tar -cf - lfs | tar -xf - -C %s" % ud.clonedir, d, workdir="%s/git/.git" % tmpdir)
finally:
bb.utils.remove(tmpdir, recurse=True)
def build_mirror_data(self, ud, d):
# Create as a temp file and move atomically into position to avoid races
@contextmanager
def create_atomic(filename):
fd, tfile = tempfile.mkstemp(dir=os.path.dirname(filename))
try:
yield tfile
umask = os.umask(0o666)
os.umask(umask)
os.chmod(tfile, (0o666 & ~umask))
os.rename(tfile, filename)
finally:
os.close(fd)
if ud.shallow and ud.write_shallow_tarballs:
if not os.path.exists(ud.fullshallow):
if os.path.islink(ud.fullshallow):
@@ -443,8 +389,7 @@ class Git(FetchMethod):
self.clone_shallow_local(ud, shallowclone, d)
logger.info("Creating tarball of git repository")
with create_atomic(ud.fullshallow) as tfile:
runfetchcmd("tar -czf %s ." % tfile, d, workdir=shallowclone)
runfetchcmd("tar -czf %s ." % ud.fullshallow, d, workdir=shallowclone)
runfetchcmd("touch %s.done" % ud.fullshallow, d)
finally:
bb.utils.remove(tempdir, recurse=True)
@@ -453,8 +398,7 @@ class Git(FetchMethod):
os.unlink(ud.fullmirror)
logger.info("Creating tarball of git repository")
with create_atomic(ud.fullmirror) as tfile:
runfetchcmd("tar -czf %s ." % tfile, d, workdir=ud.clonedir)
runfetchcmd("tar -czf %s ." % ud.fullmirror, d, workdir=ud.clonedir)
runfetchcmd("touch %s.done" % ud.fullmirror, d)
def clone_shallow_local(self, ud, dest, d):
@@ -529,10 +473,7 @@ class Git(FetchMethod):
if os.path.exists(destdir):
bb.utils.prunedir(destdir)
need_lfs = self._need_lfs(ud)
if not need_lfs:
ud.basecmd = "GIT_LFS_SKIP_SMUDGE=1 " + ud.basecmd
need_lfs = ud.parm.get("lfs", "1") == "1"
source_found = False
source_error = []
@@ -560,12 +501,12 @@ class Git(FetchMethod):
raise bb.fetch2.UnpackError("No up to date source found: " + "; ".join(source_error), ud.url)
repourl = self._get_repo_url(ud)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, shlex.quote(repourl)), d, workdir=destdir)
runfetchcmd("%s remote set-url origin %s" % (ud.basecmd, repourl), d, workdir=destdir)
if self._contains_lfs(ud, d, destdir):
if need_lfs and not self._find_git_lfs(d):
raise bb.fetch2.FetchError("Repository %s has LFS content, install git-lfs on host to download (or set lfs=0 to ignore it)" % (repourl))
elif not need_lfs:
else:
bb.note("Repository %s has LFS content but it is not being fetched" % (repourl))
if not ud.nocheckout:
@@ -618,28 +559,12 @@ class Git(FetchMethod):
raise bb.fetch2.FetchError("The command '%s' gave output with more then 1 line unexpectedly, output: '%s'" % (cmd, output))
return output.split()[0] != "0"
def _need_lfs(self, ud):
return ud.parm.get("lfs", "1") == "1"
def _contains_lfs(self, ud, d, wd):
"""
Check if the repository has 'lfs' (large file) content
"""
if not ud.nobranch:
branchname = ud.branches[ud.names[0]]
else:
branchname = "master"
# The bare clonedir doesn't use the remote names; it has the branch immediately.
if wd == ud.clonedir:
refname = ud.branches[ud.names[0]]
else:
refname = "origin/%s" % ud.branches[ud.names[0]]
cmd = "%s grep lfs %s:.gitattributes | wc -l" % (
ud.basecmd, refname)
cmd = "%s grep lfs HEAD:.gitattributes | wc -l" % (
ud.basecmd)
try:
output = runfetchcmd(cmd, d, quiet=True, workdir=wd)
if int(output) > 0:
@@ -659,11 +584,6 @@ class Git(FetchMethod):
"""
Return the repository URL
"""
# Note that we do not support passwords directly in the git urls. There are several
# reasons. SRC_URI can be written out to things like buildhistory and people don't
# want to leak passwords like that. Its also all too easy to share metadata without
# removing the password. ssh keys, ~/.netrc and ~/.ssh/config files can be used as
# alternatives so we will not take patches adding password support here.
if ud.user:
username = ud.user + '@'
else:
@@ -694,7 +614,7 @@ class Git(FetchMethod):
try:
repourl = self._get_repo_url(ud)
cmd = "%s ls-remote %s %s" % \
(ud.basecmd, shlex.quote(repourl), search)
(ud.basecmd, repourl, search)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, cmd, repourl)
output = runfetchcmd(cmd, d, True)

View File

@@ -78,7 +78,7 @@ class GitSM(Git):
module_hash = ""
if not module_hash:
logger.debug("submodule %s is defined, but is not initialized in the repository. Skipping", m)
logger.debug(1, "submodule %s is defined, but is not initialized in the repository. Skipping", m)
continue
submodules.append(m)
@@ -140,31 +140,15 @@ class GitSM(Git):
if Git.need_update(self, ud, d):
return True
need_update_list = []
def need_update_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
try:
# Check for the nugget dropped by the download operation
known_srcrevs = runfetchcmd("%s config --get-all bitbake.srcrev" % \
(ud.basecmd), d, workdir=ud.clonedir)
try:
newfetch = Fetch([url], d, cache=False)
new_ud = newfetch.ud[url]
if new_ud.method.need_update(new_ud, d):
need_update_list.append(modpath)
except Exception as e:
logger.error('gitsm: submodule update check failed: %s %s' % (type(e).__name__, str(e)))
need_update_result = True
# If we're using a shallow mirror tarball it needs to be unpacked
# temporarily so that we can examine the .gitmodules file
if ud.shallow and os.path.exists(ud.fullshallow) and not os.path.exists(ud.clonedir):
tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
runfetchcmd("tar -xzf %s" % ud.fullshallow, d, workdir=tmpdir)
self.process_submodules(ud, tmpdir, need_update_submodule, d)
shutil.rmtree(tmpdir)
else:
self.process_submodules(ud, ud.clonedir, need_update_submodule, d)
if len(need_update_list) > 0:
logger.debug('gitsm: Submodules requiring update: %s' % (' '.join(need_update_list)))
if ud.revisions[ud.names[0]] not in known_srcrevs.split():
return True
except bb.fetch2.FetchError:
# No srcrev nuggets, so this is new and needs to be updated
return True
return False
@@ -179,6 +163,9 @@ class GitSM(Git):
try:
newfetch = Fetch([url], d, cache=False)
newfetch.download()
# Drop a nugget to add each of the srcrevs we've fetched (used by need_update)
runfetchcmd("%s config --add bitbake.srcrev %s" % \
(ud.basecmd, ud.revisions[ud.names[0]]), d, workdir=workdir)
except Exception as e:
logger.error('gitsm: submodule download failed: %s %s' % (type(e).__name__, str(e)))
raise
@@ -236,24 +223,3 @@ class GitSM(Git):
# up the configuration and checks out the files. The main project config should remain
# unmodified, and no download from the internet should occur.
runfetchcmd("%s submodule update --recursive --no-fetch" % (ud.basecmd), d, quiet=True, workdir=ud.destdir)
def implicit_urldata(self, ud, d):
import shutil, subprocess, tempfile
urldata = []
def add_submodule(ud, url, module, modpath, workdir, d):
url += ";bareclone=1;nobranch=1"
newfetch = Fetch([url], d, cache=False)
urldata.extend(newfetch.expanded_urldata())
# If we're using a shallow mirror tarball it needs to be unpacked
# temporarily so that we can examine the .gitmodules file
if ud.shallow and os.path.exists(ud.fullshallow) and ud.method.need_update(ud, d):
tmpdir = tempfile.mkdtemp(dir=d.getVar("DL_DIR"))
subprocess.check_call("tar -xzf %s" % ud.fullshallow, cwd=tmpdir, shell=True)
self.process_submodules(ud, tmpdir, add_submodule, d)
shutil.rmtree(tmpdir)
else:
self.process_submodules(ud, ud.clonedir, add_submodule, d)
return urldata

View File

@@ -150,7 +150,7 @@ class Hg(FetchMethod):
def download(self, ud, d):
"""Fetch url"""
logger.debug2("Fetch: checking for module directory '" + ud.moddir + "'")
logger.debug(2, "Fetch: checking for module directory '" + ud.moddir + "'")
# If the checkout doesn't exist and the mirror tarball does, extract it
if not os.path.exists(ud.pkgdir) and os.path.exists(ud.fullmirror):
@@ -160,7 +160,7 @@ class Hg(FetchMethod):
if os.access(os.path.join(ud.moddir, '.hg'), os.R_OK):
# Found the source, check whether need pull
updatecmd = self._buildhgcommand(ud, d, "update")
logger.debug("Running %s", updatecmd)
logger.debug(1, "Running %s", updatecmd)
try:
runfetchcmd(updatecmd, d, workdir=ud.moddir)
except bb.fetch2.FetchError:
@@ -168,7 +168,7 @@ class Hg(FetchMethod):
pullcmd = self._buildhgcommand(ud, d, "pull")
logger.info("Pulling " + ud.url)
# update sources there
logger.debug("Running %s", pullcmd)
logger.debug(1, "Running %s", pullcmd)
bb.fetch2.check_network_access(d, pullcmd, ud.url)
runfetchcmd(pullcmd, d, workdir=ud.moddir)
try:
@@ -183,14 +183,14 @@ class Hg(FetchMethod):
logger.info("Fetch " + ud.url)
# check out sources there
bb.utils.mkdirhier(ud.pkgdir)
logger.debug("Running %s", fetchcmd)
logger.debug(1, "Running %s", fetchcmd)
bb.fetch2.check_network_access(d, fetchcmd, ud.url)
runfetchcmd(fetchcmd, d, workdir=ud.pkgdir)
# Even when we clone (fetch), we still need to update as hg's clone
# won't checkout the specified revision if its on a branch
updatecmd = self._buildhgcommand(ud, d, "update")
logger.debug("Running %s", updatecmd)
logger.debug(1, "Running %s", updatecmd)
runfetchcmd(updatecmd, d, workdir=ud.moddir)
def clean(self, ud, d):
@@ -247,9 +247,9 @@ class Hg(FetchMethod):
if scmdata != "nokeep":
proto = ud.parm.get('protocol', 'http')
if not os.access(os.path.join(codir, '.hg'), os.R_OK):
logger.debug2("Unpack: creating new hg repository in '" + codir + "'")
logger.debug(2, "Unpack: creating new hg repository in '" + codir + "'")
runfetchcmd("%s init %s" % (ud.basecmd, codir), d)
logger.debug2("Unpack: updating source in '" + codir + "'")
logger.debug(2, "Unpack: updating source in '" + codir + "'")
if ud.user and ud.pswd:
runfetchcmd("%s --config auth.default.prefix=* --config auth.default.username=%s --config auth.default.password=%s --config \"auth.default.schemes=%s\" pull %s" % (ud.basecmd, ud.user, ud.pswd, proto, ud.moddir), d, workdir=codir)
else:
@@ -259,5 +259,5 @@ class Hg(FetchMethod):
else:
runfetchcmd("%s up -C %s" % (ud.basecmd, revflag), d, workdir=codir)
else:
logger.debug2("Unpack: extracting source to '" + codir + "'")
logger.debug(2, "Unpack: extracting source to '" + codir + "'")
runfetchcmd("%s archive -t files %s %s" % (ud.basecmd, revflag, codir), d, workdir=ud.moddir)

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