Compare commits

...

279 Commits

Author SHA1 Message Date
zhengruoqin
f353ba0ec2 wireless-regdb: upgrade 2020.11.20 -> 2021.04.21
(From OE-Core rev: df540a630f87c02898f7ce5703f63e9c7bd2c156)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
zhengruoqin
f03a094f3e python3-numpy: upgrade 1.20.1 -> 1.20.2
(From OE-Core rev: dc98345d7b6c5d4342415723d0b578c0268c646e)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
zhengruoqin
eb31bf7ea3 libmicrohttpd: upgrade 0.9.72 -> 0.9.73
(From OE-Core rev: 079d56b24b4e1a577b58516c00000184542f2dfe)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Christophe Chapuis
2d96636ebc rootfs.py: find .ko.gz and .ko.xz kernel modules as well
* with xz PACKAGECONFIG enabled in kmod and xz module compression enabled in kernel
  the do_rootfs task doesn't run depmod in the image, because it thinks there are no modules:
  NOTE: No Kernel Modules found, not running depmod

(From OE-Core rev: 9c13ce05eae0f126eb150e48709e9bd06e9280fa)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Stefan Ghinea
cd618cc017 xserver-xorg: fix CVE-2021-3472
Insufficient checks on the lengths of the XInput extension
ChangeFeedbackControl request can lead to out of bounds memory accesses
in the X server.

References:
https://nvd.nist.gov/vuln/detail/CVE-2021-3472

Upstream patches:
7aaf54a188

(From OE-Core rev: 6fec5fea942ce88e33e5cf4c2102d69ce25e7180)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Zqiang
c52b46825f rt-tests: Update rt-tests
When run cyclictest, the parameter enable NUMA. but in some BSP
which not support NUMA, will causes the test program to exit
directly and does not carry out subsequent operations, the
latest changes have fixed this problem. so update to the
latest branch to resolve.

(From OE-Core rev: a8a9b0d9155ee9f233e46021eae896552428c51a)

Signed-off-by: Zqiang <qiang.zhang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
7cd4258049 libpam: Provide needed env for tst-pam_start_confdir ptest
tst-pam_start_confdir needs a file called confdir and it should reside
in directory pointed by srcdir env variable, therefore copy confdir into
ptest package and export srcdir before running the ptests

(From OE-Core rev: 149d84b7eba8240737a301d0fd75b69e8a767854)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
0a5079681e bash: Include files needed for run-heredoc ptest
These files are used by this ptest case

103,108d102
< cat: ../y.tab.c: No such file or directory
< cmp: ../y.tab.c: No such file or directory
< cat: /usr/lib/bash/ptest/config.h: No such file or directory
< cmp: /usr/lib/bash/ptest/config.h: No such file or directory
< cat: /usr/lib/bash/ptest/version.h: No such file or directory
< cmp: /usr/lib/bash/ptest/version.h: No such file or directory
FAIL: run-heredoc

(From OE-Core rev: 0672a3dae14462e590959e966fef22b6e2a2ad09)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Richard Purdie
86a66606fe pybootchart/draw: Avoid divide by zero error
When disk stats don't run frequenctly enough, we see divide by zero
errors. The code already has a fallback path so ensure we use it
for this case too.

[YOCTO #14360]

(From OE-Core rev: b71d30aef5dc2c360432c0dd4147859dd303ea48)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
b80e6aeffe findutils: Do not use SIGSTKSZ
(From OE-Core rev: d2962c51e5588166b0618cd37364df32f040f671)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
984ffe3ab4 valgrind: Disable leak_cpp_interior test
This test is known to fail and especially is prominent with GCC-11
where stdc++17 is enabled by default

(From OE-Core rev: 7f549d7c1f0a3f3cf312ebe00ce8cfc0e787bf15)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
3ca350ebe7 bluez: Fix shadowing of pause function from libc
(From OE-Core rev: d5e0d319fc714a5af59ebec0b3a89851c04a6c4f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
e4f7cdf988 m4: Do not use SIGSTKSZ
Fixes
../../m4-1.4.18/lib/c-stack.c:55:26: error: missing binary operator before token "("
   55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
      |                          ^~~~~~~~

(From OE-Core rev: 44ca8edd622782733d507e20a3d5ee9e44eb8be4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Khem Raj
d713988268 pkgconfig: Fix nativesdk builds for mingw sdk hosts
pkgconfig uses a vendored version of ancient glib-2.0, which does not
have many of fixes that current glib-2.0 will have, we enable this
internal version for nativesdk/native recipe, which on mingw hosts does
not work well, as its missing necessary mingw support. This patch
backports couple of fixes which makes GCC11 happy

but its going to be a constant source of pain as long as we support mingw

(From OE-Core rev: 348b1ebb917cdd65e6678078e23a3f9fa079badc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Joshua Watt <jpewhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:21:42 +01:00
Richard Purdie
c19e2c23be patchelf: Fix alignment patch
The previous fix was in the right direction but needed to account
for the section alignment of the current section. Tweak the patch
to handle this.

(From OE-Core rev: e464efc07a8997c43998a9c6a9544be11ab4f303)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-02 23:20:12 +01:00
Richard Purdie
93aaa5e994 bitbake: runqueue: Handle deferred task rehashing in multiconfig builds
If the hash of a task changes and that hash is a deferred task (e.g. a multiconfig
build), we need to ensure that the hash change propagates through to all the tasks
else the build will run multiple copies of the task, sometimes with oddly differing
results as the outhashes of native tasks built in differing locations can confuse
things.

(Bitbake rev: 2db571324f755edc4981deecbcfdf0aaa5a97627)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:51:06 +01:00
Richard Purdie
76891afd76 bitbake: runqueue: Fix multiconfig deferred task sstate validity caching issue
We were testing the validity of deferred tasks setscene status "up front" which
is very unlikely to succeed and leads to cache invalidation issues. With the
change to rebuild the deferred task list, this status becomes out of sync. The
result was tasks being executed when they should not have been leading to extra
work for the build unnecessarily.

Instead, don't process validity status for deferred tasks and assume their
data will become available. If it doesn't, this will now result in a build
error as the setscene task will fail and the main task will run instead.

In theory we could try and track the state changes in the deferred list and
re-test validity then but I'm not sure it is worth the effort when the other
code path and errors in setscene tasks will give a pretty good idea of what
is happening anyway.

(Bitbake rev: edcafac13b3b241b6687419e59018d21811507a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:51:06 +01:00
Joshua Watt
f3e1a668fb bitbake: knotty: Re-enable command line logging levels
The "-l" command line options to enable specific logging domains wasn't
working with the switch to structured logging because they were only
being used to set the legacy logging domains. Fix this by implementing
the logic to parse the user options into the logging configuration.

(Bitbake rev: 005fc7a8c588d0b0bca382469645cbf481ad8e30)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:51:06 +01:00
Przemyslaw Gorszkowski
6da327c788 bitbake: fetch/s3: Add progress handler for S3 cp command
Adds progress support for fetchers from S3.

(Bitbake rev: 90d31b2d5a81e5f41fe95907c78fd2f5f36e39ee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:51:06 +01:00
Przemyslaw Gorszkowski
a854068b52 bitbake: progress: LineFilterProgressHandler - Handle parsing line which ends with CR only
S3 commands need to handle different CR only line endings, update the handler
to cope with this.

(Bitbake rev: 3f7b9c1b429a4c68240e80832a8ef93ee210e5ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:51:06 +01:00
Minjae Kim
5e8e08df8b qemu: fix CVE-2021-3392
scsi: use-after-free in mptsas_process_scsi_io_request() of mptsas1068 emulator
(From OE-Core rev: 97ec10a1d7111dafde8609176ffa9e13cc1b8f1f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
a6ccd73562 libjitterentropy: upgrade 3.0.1 -> 3.0.2
(From OE-Core rev: 4c8a675e436e8e6b08baa5b4709244c04cc8f6f1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
67dfa8b02a libhandy: upgrade 1.2.1 -> 1.2.2
(From OE-Core rev: 9f36a62fc6ff59885b41d932a838ec9145a46dc6)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
00e4a35b82 hdparm: upgrade 9.60 -> 9.61
(From OE-Core rev: e6c73cfb01299b5a98fb18063a04baacb59346fc)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
db195e73bc glslang: upgrade 11.2.0 -> 11.4.0
(From OE-Core rev: 857f413e1db69e42262e230b4aff110a00a20429)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
4a68753196 glib-networking: upgrade 2.66.0 -> 2.68.1
(From OE-Core rev: 12a9bb0feed96a0f3e0795106c6d95755ccb42b0)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
4dfba049f4 gdb: upgrade 10.1 -> 10.2
(From OE-Core rev: 7505165ac90ba34a465eb707c7e6c8ccbeae024d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Paul Barker
f7f459bf65 prservice: Use new connect API
The new prserv connect() function decouples the code in oe-core from the
exact classes and implementation details used within bitbake. This
allows us to more easily switch over to a new asyncrpc based prservice.

(From OE-Core rev: 6bf39c5c8cf09e3f2ce6eba13b9d18193bce9655)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
fc5b3c78e5 reproducible_build.bbclass: Enable -Wdate-time
This will help identifying packages using __TIME__, __DATE__ and
__TIMESTAMP__ macros in code, its a warning from the compiler and the
packages which use -Werror will break the build with this and where they
don't we will atleast have a warning in the build logs

(From OE-Core rev: 20335cd89001f5fb159f5f1b0c3bd5e40b8b2fb5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
eb6154c46e gcc-runtime: Fix __FILE__ related reproducablity issues
libstdc++ uses assertion macros which use __FILE__ macros and

  if (__builtin_expect(!bool(_Condition), false))                      \
    std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \
                              #_Condition)

This ends up using absolute paths into build tree for the cases where
the charconv header is used, therefore replace the file prefix paths
with on-target paths to make them build dir independent

(From OE-Core rev: 972c50d6e46ee9dfba8b8ea3867ebdbf24001e6e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
3b33c0870e ltp: Filter out -ffile-prefix-map
ffile-prefix-map is also needed for reproduble builds and when
introduced can be handled

(From OE-Core rev: 1f8132450b0192ad0c9f35f8b5dbac186c240e29)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
bc0a58343b openssl: Filter out -ffile-prefix-map as well
(From OE-Core rev: 1829fa0bda9a9388c3134866c471f26ec5658c36)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
08989d4f56 libid3tag: Filter -ffile-prefix-map too
helps when compiler has -ffile-prefix-map flag which helps
reproducibility as well

(From OE-Core rev: c3799bfdcc37ef139061aef22d125873607b0965)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Khem Raj
be3912baf9 libjpeg-turbo: Use --reproducible option for nasm
This ensures that nasm version and timestamps do but appear in build
outputs

(From OE-Core rev: 2f69c00c4bc1de6cd518fd78f67ff3ca863392f3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Petr Vorel
efbef1daa3 ltp: Replace musl patches with do_patch[postfuncs]
MUSL related build fixes are not going to be upstreamed.  They just not
compile broken files, thus replace them with upstream solution for CI:
just deleting files for musl (easier to maintain).

(From OE-Core rev: c781677fd5f4e15bde17114468d9f66ba5dc38a2)

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
wangmy
3f657a908e mesa: upgrade 21.0.2 -> 21.0.3
(From OE-Core rev: a89ed8ce30a5830a0ac90aa633ec466b4e3a0ba1)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:48:17 +01:00
Richard Purdie
cde414f571 patchelf: Fix note section alignment issues
Improve note section normalization was added to patchelf in recent versions
however if fails if there are two note sections which aren't sized to match
section alignment. Tweak the code to account for section alignment.

This fixes patchelf failures on the autobuilder, particularly to ccache-native.

(From OE-Core rev: fee8dde0d597b511b37d8dcf215e8355980d5f2b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-05-01 22:43:11 +01:00
Richard Purdie
19c365d040 libxcrypt: Update to 4.4.19 release and fix symbol version issues
This patch upgrades to the 4.4.19 release and replaces a configure patch
from "libxcrypt: fix sporadic failures in nativesdk-libxcrypt-compat" with
a fix to avoid leading spaces in CFLAGS causing failures.

The license changed a few filenames listed in the license but the overall
license remains unchanged.

(From OE-Core rev: 7a2144f065c913ef189011b94d90de4dde51a347)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-30 16:42:25 +01:00
Sakib Sajal
c21419b1fe buildstats.bbclass: collect data in the same file.
Previously "at interval" and "on failure" logs were collected
in separate files. Collect both types of logging in the same
file for better analysis.

Introduced new variable which allows different set of commands
to be run by the different logging, interval or failure. The
variables are BB_LOG_HOST_STAT_CMDS_INTERVAL and
BB_LOG_HOST_STAT_CMDS_FAILURE respecteviely.

(From OE-Core rev: 4fbf422351668f755a14811ac39161c889087e81)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 23:43:57 +01:00
Paul Barker
ebb7adac03 bitbake: prserv: Add connect function
This function abstracts the setup of a PR service client connection so
that openembedded-core doesn't need to be updated any time the details
are changed.

(Bitbake rev: d892287b31f81b075983ba500be265f75b53df64)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Paul Barker
ad5c898808 bitbake: prserv: Drop unused dump_db method
(Bitbake rev: ecb7bf34eac02ff58dbc27b3768ceaf4adb1c9cd)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Paul Barker
ea647326d1 bitbake: prserv: Drop obsolete python version check
Bitbake no longer supports Python 2 so this version check is obsolete.

(Bitbake rev: 45eb6c6e124e507012df9c288f1fbde0e7899e5d)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Paul Barker
421e86e7ed bitbake: hashserv: Refactor to use asyncrpc
The asyncrpc module can now be used to provide the json & asyncio based
RPC system used by hashserv.

(Bitbake rev: 5afb9586b0a4a23a05efb0e8ff4a97262631ae4a)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Paul Barker
244b044fd6 bitbake: asyncrpc: Common implementation of RPC using json & asyncio
The hashserv module implements a flexible RPC mechanism based on sending
json formatted messages over unix or tcp sockets and uses Python's
asyncio features to build an efficient message loop on both the client
and server side. Much of this implementation is not specific to the
hash equivalency service and can be extracted into a new module for
easy re-use elsewhere in bitbake.

(Bitbake rev: 4105ffd967fa86154ad67366aaf0f898abf78d14)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Paul Barker
1023671823 bitbake: hashserv: Use generic ConnectionError
The Python built-in ConnectionError type can be used instead of a custom
HashConnectionError type. This will make code refactoring simpler.

(Bitbake rev: 8a796c3d6d99cfa8ef7aff0ae55bb0f23bbbeae1)

Signed-off-by: Paul Barker <pbarker@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:12:57 +01:00
Alexander Kanavin
bf348561f3 core-image-multilib-example: base on weston, and not sato
(From OE-Core rev: 56cd96651c6304712fd544fbc9b69c986d2b2efe)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Alexander Kanavin
06413d33b3 oeqa/selftest: transition to weston images
For readonly rootfs tests core-image-weston
is appended; everywhere else it replaces core-image-sato.

(From OE-Core rev: 75e042db853b9bf9a70ff8a5abe6d45ebb0b77a9)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Alexander Kanavin
377a73d5b7 oeqa/core/tests/test_data.py: use weston image instead of sato
(From OE-Core rev: c2ccd8c8144cdda52b858589f7d5d3a15ab28b90)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Alexander Kanavin
f66d90a06f core-image-weston: add sdk/ptest images
This is the first step towards rebasing the AB matrix from sato to
weston; the eventual goal is to keep sato only in core-image-sato
image.

The broader rationale is that X11 is effectively deprecated technology
at this point with only minimal maintenance; standalone X server will not
be developed any further, and all attention currently is towards making
it work well under Wayland.

I believe YP should be defaulting to Wayland and not X11.

(From OE-Core rev: 3a6996f87a9e32f2e6e668dce98f77d0b40fceb8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Reto Schneider
73bdeae2fc license_image.bbclass: Fix symlink to generic license files
Link to the canonical filename of a license as only this one exists.

Fixes commit 670fe71dd18ea675f35581db4a61fda137f8bf00
[license_image.bbclass: use canonical name for license files].

(From OE-Core rev: 64b1ba978e079c345e1f7fbd1bf44052fc3dd857)

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Reto Schneider
62eb846232 license_image.bbclass: Detect broken symlinks
Find and report symlinks which point to a non-existing file.

(From OE-Core rev: 81809a1ffe67aade1b2ed66fe95044ffbf7d3df8)

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Sakib Sajal
f8b2e0f600 oe-time-dd-test.sh: collect cooker log when timeout is exceeded
Collect the last 30 lines from the cooker.log
whenever the timeout is exceeded.

(From OE-Core rev: 58f7cd4d6186525f08f3027975530d647cbfa26b)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Khem Raj
6db9f63412 gnutls: Point to staging area for finding seccomp libs and includes
This ensures that if libseccomp is installed on build host then it does
not resort to use it.

Fixes
checking for libseccomp... (cached) yes
checking how to link with libseccomp... /usr/lib/libseccomp.so

(From OE-Core rev: 3751ac58720a500e3b749b2296922d7c82db49a1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Saul Wold
3acbec85b0 qemurunner: Add support for qmp commands
This adds support for the Qemu Machine Protocol [0] extending
the current dump process for Host and Target. The commands are
added in the testimage.bbclass.

Currently, we setup qemu to stall until qmp gets connected and
sends the initialization and continue commands, this works
correctly. If the UNIX Socket does not exist, we wait an timeout
to ensure to socket file is created.

With this version, the monitor_dumper is created in OEQemuTarget
but then set in OESSHTarget as that's where we get the SSH failure
happens. Python's @property is used to create a setter/getter type
of setup in OESSHTarget to get overridden by OEQemuTarget.

By default the data is currently dumped to files for each command in
TMPDIR/log/runtime-hostdump/<date>_qmp/unknown_<seq>_qemu_monitor as
this is the naming convenstion in the dump.py code.

We use the qmp.py from qemu, which needs to get installed in the
recipe-sysroot-native of the target image.

[0] https://github.com/qemu/qemu/blob/master/docs/interop/qmp-spec.txt

(From OE-Core rev: 42af4cd2df72fc8ed9deb3fde4312909842fcf91)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Saul Wold
2c86aba6f0 qemu-system-native: install qmp python module
The qmp python module supports the Qemu Machine Protocol [0].
This module needs to be installed in a known location so the
qemurunner python script can find the qmp module.

This change causes it to be installed in the recipe-sysroot-native
of the target image and that directory can be added to the python
sys.path that needs to use the qmp.py module.

[0] https://github.com/qemu/qemu/blob/master/docs/interop/qmp-spec.txt

(From OE-Core rev: 46a60f67562a6ae227e018228212fc797d1f2795)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Khem Raj
8cf9b6529e gcc-cross-canadian: Install LTO linker plugin to BFD searchable location
This helps binutils provided tools ar/ranlib/nm to find the LTO linker
plugin automatically as well which makes it equivalent to gcc-ar/gcc-nm/gcc-ranlib

(From OE-Core rev: 7d8d0b90bea7ea01e1e9ab0ff98f22431f68a506)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Khem Raj
fb21d2e147 gcc-cross: Install linker LTO plugin for binutils tools
This will ensure that ar/ranlib/nm can load the lto linker plugin like
gcc-ar, gcc-nm, gcc-ranlib does, this will let the behaviour match
between gcc wrappers for these tools, this should help LTO builds for
packages

(From OE-Core rev: d6658505089234476c1b35fc08fef1eb4f121e85)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Khem Raj
dfc632785d bitbake.conf: Use gcc-nm as default NM
This ensures linker LTO plugin is loaded correctly

(From OE-Core rev: d6ffd683bf635548e0bfb3fd6458ed03e26ec2bf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Khem Raj
d18f8178b8 gcc-target: Create a LTO plugin symlink in bfd-plugins directory
This directory is scanned by binutils provided ar,ranlib,nm for plugins
that it can load automatically, putting liblto_plugin.so in their means
we do not need gcc-ar, gcc-nm, gcc-ranlib particularly as normal
ar/ranlib/nm tools will work equally well as they can now use this
linker plugin by default

This also mean we can revert back to using ar/ranlib/nm as default
providers for AR/NM/RANLIB on target

(From OE-Core rev: 5aae5812223792d5e5bd57e024de50fbcd1e6da5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-27 15:11:47 +01:00
Nicolas Dechesne
b3426e89f5 bitbake: doc: bitbake-user-manual: fix typo left over from Sphinx migration
Fixes d99760cc687c (sphinx: last manual round of fixes/improvements)

Reported-by: Michal Piechowski <m.z.piechowski@gmail.com>
(Bitbake rev: 00ce48919de720639eda2b6f7065a82b641e5167)

Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 15:26:14 +01:00
Michael Opdenacker
7e9305613d bitbake: doc: bitbake-user-manual: code insertion simplification over two lines
This simplifies paragraphs ending with a colon and followed
by code insertion.

Automatically substituted through the command:
sed -i -z "s/:\n\s*::/::/g" file.rst

This generates identical HTML output.

(Bitbake rev: 51c80fc3497eecc8e50194fe1ff8069b59f03eda)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 15:26:14 +01:00
Michael Opdenacker
91aacf4ed3 bitbake: doc: bitbake-user-manual: simplify colon usage
- This replaces instances of ": ::" by "::", which
  generates identical HTML output

(Bitbake rev: fd8ce4dcaff3aae395f9945fb0a3be54905e1727)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 15:26:14 +01:00
Khem Raj
a836bd6fc0 default-distrovars.inc: Remove seccomp for riscv32
libseccomp needs too be ported to rv32 first

(From OE-Core rev: ecf167c6419afd483f5291043a1d5072d388866b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:16:31 +01:00
Chen Qi
c9e8724e26 rsync: fix CVE-2020-14387
Backport patch to fix CVE-2020-14387.

(From OE-Core rev: 13f331436747ebb8e9211feee3aa774f1acd0fee)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Armin Kuster
71c216b4be default-distrovars.inc: Add seccomp to DISTRO_FEATURES_DEFAULT
Since xattr is included, seccomp should be too

(From OE-Core rev: e164bd55ef5becf691c2755d8d6af45a490fe9b2)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Khem Raj
3db18236b9 apt: Fix build on musl when seccomp is enabled
(From OE-Core rev: 3ffce694d75977895557ff61f27b627c1a11be12)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Richard Purdie
0086576160 apt: Disable libseccomp
This isn't in DEPENDS and isn't configured. It can detect the library when
pulled in via other dependencies meaning the build isn't deterministic.

Ultimately this could become a PACKAGECONFIG. It doesn't build on musl
so disable it for now until someone fixes and sorts this out properly.

(From OE-Core rev: 1425fe0f28a31b1d4004736b9edb036680e12c92)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Armin Kuster
f7c278c330 qemu: Enable seccomp if FEATURE is set
(From OE-Core rev: c057509306319cc0c2c7ef89154995ffd96c5646)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Armin Kuster
528547a46a systemd: Enable seccomp if FEATURE is set
(From OE-Core rev: c9d4fb93429a90191dc77e1dbc183535d66952cb)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Armin Kuster
65ecffc430 gnutls: Enable seccomp if FEATURE is set
(From OE-Core rev: f2527b5567252c7da4fbd863e119c8114e6debcd)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Richard Purdie
280a83d4af libseccomp: Fix reproducibility issue
Rather than installing libtool wrapper scripts which won't work on target
and aren't reproducible, use the real binaries.

(From OE-Core rev: 8afdf055b7b8bad6f0f13c3cd184d019c50a1e25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Richard Purdie
e07821846b libseccomp: Add MAINTAINERS entry and HOMEPAGE
Add entries for the migrated recipe to passify the various checks.

(From OE-Core rev: cd49367af2b3daa8d3012ae2b8ace380d41cc0b9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Armin Kuster
241c7d2e67 libseccomp: move recipe from meta-security to core
ptest results:
Regression Test Summary
 tests run: 1404
 tests skipped: 369
 tests passed: 1402
 tests failed: 2
 tests errored: 154

Add feature_check so that the other recipes who can take
advantage of this funtionality can enable it.

(From OE-Core rev: 5b0182f5c01c8b10b4b65f8af55d682be4839947)

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Marek Vasut
4d05decb97 linux-firmware: Package RSI 911x WiFi firmware
The RSI 911x WiFi firmware is already part of the linux-firmware
repository, package it to make it easily available.

(From OE-Core rev: cc44b71f6ea68ca0f483d635df7dc7b9905b1593)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-26 14:14:42 +01:00
Richard Purdie
bf59f39653 yocto-check-layer: Avoid bug when iterating and autoadding dependencies
If iterating a layer with multiple components and auto-adding dependencies
the tests can break since layers are never removed and order isn't guaranteed
to account for that.

Fix this by resetting the layer list back to the original list each time
before auto-adding the dependencies in each case.

This fixes scanning of meta-openembedded in particular where the sublayers
may not be added in order of minimal dependency.

(From OE-Core rev: bf1b467dacf345379cd5d84a1c9b3b0d844d5c91)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Stefan Ghinea
01bd284339 libssh2: fix build failure with option no-ecdsa
libssh2 fails at do_compile if
DEPRECATED_CRYPTO_FLAGS = "no-ecdsa" is set in recipe:

../src/.libs/libssh2.so: undefined reference to
`LIBSSH2_KEX_METHOD_EC_SHA_HASH_CREATE_VERIFY'

References:
https://github.com/libssh2/libssh2/issues/549

Upstream patches:
1f76151c92

(From OE-Core rev: 2bb146e7315f8080cb49a95212231ccb76a4a822)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Richard Purdie
35d6da6fe5 pyyaml: Add missing HOMEPAGE
Add a HOMEPAGE to the new recipe to avoid sanity test failures.

(From OE-Core rev: 23be2a27e16d711f928561d96f901a25f5f29998)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Khem Raj
9be7098de3 python3-pyyaml: Add recipe
This is migrated from meta-python

(From OE-Core rev: 0a8600f9cec0a88b90693302554c82cfe28152ae)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Khem Raj
c3a3153810 python3-jinja2: Enable ptests
Needed dependencies on toml and pytest and unixadmin
are in core now

(From OE-Core rev: c983359eae9d7e3d729af36755612916dabe32d6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Khem Raj
b39ea6620f python3-markupsafe: Enable ptests
pytest is now in OE-Core

(From OE-Core rev: 48c83fc1141ff22c9ede0c82acec896937d61357)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Khem Raj
64e26d1e6b python3-docutils: Upgrade to 0.17.1
This was in meta-python for a while so merge the changes here
and  upgrade, once applied, delete from meta-python

License-Change: Deleted legacy stylesheets from LICENSE [1]
                Updated URI for BSD-2 [2]

[1] https://sourceforge.net/p/docutils/code/8487/
[2] https://sourceforge.net/p/docutils/code/8554/

(From OE-Core rev: 757d87f676d542f49760ef4ed8bea238719af159)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Changqing Li
770532164f gcr: fix one parallel build failure
ui/gcr-live-search.c includes gcr/gcr-marshal.h. Because missing
dependency, following error occurred intermittently during doing parallel
build:

 -o ui/libgcr-ui-3.so.1.0.0.p/gcr-live-search.c.o -c ../gcr-3.38.1/ui/gcr-live-search.c
../gcr-3.38.1/ui/gcr-live-search.c:32:10: fatal error: gcr/gcr-marshal.h: No such file or directory
   32 | #include "gcr/gcr-marshal.h"
      |          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

(From OE-Core rev: a6690c22952a315e6c6734a5936d9eb18e1b3004)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Mikko Rapeli
7d228861e8 unzip: use optimization from bitbake
Build with bitbake default optimizations, e.g. O2,
instead of custom O3. Reduces unzip binary package
size from 304401 to 283921 bytes, and enables building
with Os to even further reduce binary size if needed
and configured for the whole system.

(From OE-Core rev: 1330ac1902360cc5e01b69a6065963bf7b92d4bb)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
dcfdecb9ff qemu: fix CVE-2021-20257
(From OE-Core rev: 547ac986a74cfcae39b691ebb92aadc8436443ea)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
4284f80d1f qemu: fix CVE-2021-3416
(From OE-Core rev: e2b5bc11d1b26b73b62e1a63cb75572793282dcb)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
ea7850cd83 qemu: fix CVE-2021-3409
(From OE-Core rev: e2fb8c15a64e1f5db678e8e95924da8c88a188c0)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
2c01852bcb qemu: fix CVE-2021-20221
(From OE-Core rev: 59a44f8c70d4a026ae74e44b9d70100029c691b5)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
5c59b634a2 qemu: fix CVE-2020-29443
(From OE-Core rev: 481e012de865ee232fa5a233e9f1d4fc7a2232ab)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Sakib Sajal
640c6d1191 qemu: fix CVE-2021-20181
(From OE-Core rev: c2f79065ef0684f2c0bdb92f1b03e690ab730b8c)

Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Kai Kang
e7746189de kernel-yocto.bbclass: chdir to ${WORKDIR} for do_kernel_checkout
It chdirs to ${S} at the beginning of task do_kernel_checkout. Then it
removes ${S} when it still resides in ${S}. It may fail to run the task
do_kernel_checkout when bitbake is called by third-part wrapper script.
So chdir to ${WORKDIR} by default for do_kernel_checkout. And it will
chdir to ${S} afterwards in task do_kernel_checkout.

(From OE-Core rev: cf0e3397d3f86c7ea1f3c66c50a44d6205f5921b)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Kai Kang
9bbd9cab86 cmake.bbclass: remove ${B} before cmake_do_configure
It is fallible to remove ${B} in directory ${B} itself. And it does fail
when call bitbake by third-party wrapper script.

Use flag 'cleandirs' to remove ${B} first if build out of source tree.

(From OE-Core rev: 0fb6280432a36985590d9a714a5f11164aaebb51)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:05 +01:00
Mikko Rapeli
d2c176d1ca lz4: use CFLAGS from bitbake
Currently lz4 uses it's own defaults which include O3 optimization.
Switch from O3 to bitbake default O2 reduces binary package size
from 467056 to 331888 bytes. Enables also building with Os if needed.

(From OE-Core rev: abaaf8c6bcd368728d298937a9406eb2aebc7a7d)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:04 +01:00
Paulo Cesar Zaneti
de0c3226ab perl: fix startperl configuration option for perl-native
Unlike vanilla Perl "Configure" script, perl-cross "configure" does not
derive "startperl" from "bin". It instead derives from "perlpath".

This patch aims to fix "startperl" configuration option for perl-native by
correctly setting "perlpath" on perl-cross "configure" script.

It also changes do_install_append_class-native task to comply with
cpan_do_install task.

(From OE-Core rev: f2d1523b19cb066a4a06609f036822fe4a8b43f0)

Signed-off-by: Paulo Cesar Zaneti <paulo.zaneti@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-24 17:53:04 +01:00
Trevor Gamblin
4aff77c851 ref-manual/variables.rst: Add incompatibility warning for SERIAL_CONSOLES_CHECK
See [YOCTO #13921]

Add details to the SERIAL_CONSOLES_CHECK entry to clarify that it
doesn't work with read-only rootfs.

(From yocto-docs rev: cefd66301a40f9048499879674e467543f704c44)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Reviewed-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Reviewed-by: Quentin Schulz <foss@0leil.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 16:39:03 +01:00
Michael Opdenacker
c3c6de2187 manuals: code insertion simplification over two lines
This simplifies paragraphs ending with a colon and followed
by code insertion.

Automatically substituted through the command:
sed -i -z "s/:\n\s*::/::/g" file.rst

This generates identical HTML output.

(From yocto-docs rev: 28e2192a7c12d64b68061138a9f6c796453eebb1)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 16:39:03 +01:00
Michael Opdenacker
773536c333 manuals: simplify code insertion
This replaces instances of ": ::" by "::", which
generates identical HTML output

(From yocto-docs rev: 1f410dfc7c16c09af612de659f8574ef6cff4636)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 16:39:03 +01:00
Michael Opdenacker
21b42cc54f dev-manual: fix code insertion
Fix a misaligned code insertion statement, causing
the code block to be misaligned compared to the other ones
in subsequent paragraphs

(From yocto-docs rev: bc03d122a35ac027d0aab5bfd70b366933fd7356)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 16:39:03 +01:00
Vineela Tummalapalli
1ea11c5c20 Adding dunfell 3.1.7 to the switcher and release list.
(From yocto-docs rev: bed221137de77340280d71b4a8b0f2f60addc566)

Signed-off-by: Vineela Tummalapalli <vineela.tummalapalli@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 16:39:03 +01:00
Diego Sueiro
cda69e0166 bitbake: layerindex: Add --fetchdir parameter to layerindex-fetch
Introduce --fetchdir parameter to layerindex-fetch enabling users to choose
the directory to fetch the layers different from BBLAYERS_FETCH_DIR.

[YOCTO #14347]

(Bitbake rev: 784a904faffac723ddf58ba765b9dd11ac068de5)

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:13:13 +01:00
Diego Sueiro
9fae310dd2 bitbake: layerindex: Fix bitbake-layers layerindex-show-depends command
Running 'bitbake-layers layerindex-show-depends meta-filesystems' fails with:
```
Traceback (most recent call last):
  File "<...>/poky/bitbake/bin/bitbake-layers", line 93, in <module>
    ret = main()
  File "<...>/poky/bitbake/bin/bitbake-layers", line 86, in main
    return args.func(args)
  File "<...>/poky/bitbake/lib/bblayers/layerindex.py", line 209, in do_layerindex_show_depends
    self.do_layerindex_fetch(args)
  File "<...>/poky/bitbake/lib/bblayers/layerindex.py", line 182, in do_layerindex_fetch
    args.shallow)
AttributeError: 'Namespace' object has no attribute 'shallow'
```

Initialize the shallow attribute to fix it.

(Bitbake rev: 71f095c147fe6aa7b5e6272002e0498cf9494256)

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:13:13 +01:00
Khem Raj
93c73856f4 llvm: Upgrade to LLVM 12 release
Drop backported patch

(From OE-Core rev: ca72375a3bbebcb9a7af4dce3c06716ac2c0f5fc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
cc6b1e2b1d wpebackend-fdo: upgrade 1.8.2 -> 1.8.3
(From OE-Core rev: 3aa145d326cf22aa423940e8b09f609fe9c27cbe)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
aac6941d84 boost: upgrade 1.75.0 -> 1.76.0
(From OE-Core rev: 14b597845ad7b97e84c652ce56e137dc4b9d23b9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
fa1208406e tiff: upgrade 4.2.0 -> 4.3.0
(From OE-Core rev: 702c5c7973c77c51d5ce8de11e73c708c55927a3)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
05343e7611 python3-cython: upgrade 0.29.22 -> 0.29.23
(From OE-Core rev: 7f0482bf6709277f2506e71d828f6bed3ab72263)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
7bc3a900a6 mtools: upgrade 4.0.26 -> 4.0.27
(From OE-Core rev: 86777da8f46e6ddf9b04a80fa1ecbcf41faff21c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
wangmy
41334b0064 openssh: upgrade 8.5p1 -> 8.6p1
(From OE-Core rev: 5fd4497e7ad156fa426bb1913846c2b65a9fbd1b)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
zhengruoqin
b02c5193c2 libsolv: upgrade 0.7.18 -> 0.7.19
(From OE-Core rev: 74355aff39b4bbed9dc3ecb403e679d1aa0edbb5)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
zhengruoqin
00bfb40b68 libical: upgrade 3.0.9 -> 3.0.10
(From OE-Core rev: 8f67f233c77ef03572aee8b8c484b634f42b668b)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
zhengruoqin
73639903c2 libhandy: upgrade 1.2.0 -> 1.2.1
(From OE-Core rev: 089d75b47d4d1a7b2c68b8b310cddf40b4b83199)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
zhengruoqin
6d774dadd2 libedit: upgrade 20210216-3.1 -> 20210419-3.1
(From OE-Core rev: be628ddfbc401242e0884916ccf4abea336c4ad9)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Khem Raj
e165bf75b1 musl: Update to latest master
changelog [1]

* aad50fcd fix regression in dl_iterate_phdr reporting of modules with no TLS
* 0ea78a64 nscd: fall back gracefully on kernels without AF_UNIX support
* 95a540e1 mallocng/aligned_alloc: check for malloc failure
* 2c00f95c make epoll_[p]wait a cancellation point
* 521b4d27 fix dl_iterate_phdr dlpi_tls_data reporting to match spec
* 122002f0 remove no-longer-needed special case handling in popen
* 8ef9d46f use internal malloc for posix_spawn file actions objects
* cfdfd5ea don't fail to map library/executable with zero-length segment maps
* e48e99c1 suppress isascii() macro for C++
* b129cd86 guard against compilers failing to handle setjmp specially by default
* 3309e2d7 aarch64/bits/mman.h: add PROT_MTE from linux v5.10
* 44331150 aarch64/bits/hwcap.h: add HWCAP2_MTE from linux v5.10
* 42aa19a0 add aarch64/bits/mman.h with PROT_BTI from linux v5.8
* b7554b5e aarch64/bits/hwcap.h: add HWCAP2_BTI from linux v5.8
* 87b8f148 signal.h: add MTE specific SIGSEGV codes from linux v5.10
* 19239cde sys/prctl.h: add MTE related constants from linux v5.10
* 8b29f023 elf.h: add NT_ARM_TAGGED_ADDR_CTRL from linux v5.10
* d7210f0c sys/mman.h: add MAP_HUGE_16KB from linux v5.10
* a7456524 sys/mount.h: add MS_NOSYMFOLLOW from linux v5.10
* 54ca1cc7 sys/membarrier.h: add new constants from linux v5.10
* fd285f9d bits/syscall.h: add process_madvise from linux v5.10
* 49b6df3d fix error return value for cuserid
* cc577d0e fix misuse of getpwuid_r in cuserid
* a75283d7 cuserid: don't return truncated results
* ef137da6 cuserid: support invocation with a null pointer argument

[1] https://git.musl-libc.org/cgit/musl/log/\?qt\=range\&q\=e5d2823631bbfebacf48e1a34ed28f28d7cb2570..aad50fcd791e009961621ddfbe3d4c245fd689a3

(From OE-Core rev: 601d8e87a7c796bd9d91d1ffa090d3b1afcf2a2d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Yi Fan Yu
c707bf9f80 valgrind: Enable drd/tests/bar_bad* ptest
Revert some of 7f7d2fa18267090891754d976cbc3e628324d3dd

Was not able to reproduce the reported non-deterministic failure.
(ran 20 times on qemux86-64 on a relatively isolated machine)
it might be related to the AB-INT issues,
but it seems to only affect ARM builders now.

Also no action taken by upstream valgrind to fix
https://bugs.kde.org/show_bug.cgi?id=430321

Let it run on AB to see if failure was fixed by uprev to 3.17.0.
if not, we can gather more data from the AB failure.

[YOCTO #14051]

(From OE-Core rev: c0ea23832a96352d8eeda5cebc9d37a22c5d5439)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Yi Fan Yu
223ef10436 re2c: Upgrade 2.0.3 -> 2.1.1
(From OE-Core rev: 09bfe5cbd68f2e837c99c9d7554e9fadd009ad65)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Khem Raj
4118415d4b go: Use dl.google.com for SRC_URI
golang.org/dl is resolving to this anyway

(From OE-Core rev: 8470e38ac1d9f9bb6d8a4ee43724af452d080057)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Khem Raj
70a757bbec binutils: Fix linking failures when using dwarf-5
Since GCC 11 will switch to dwarf-5 as default, this patch will be
required soon

(From OE-Core rev: 9dc9bf85f53c6712dd047df5fd718e9895946fd5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Alexander Kanavin
c13be2e1dc meta/lib/oeqa/core/tests/cases/timeout.py: add a testcase for the previous fix
This is the sequence that didn't properly operate:

- a test case that skips and isn't executed
- a second test case that is skipped via a dependency decorator, and sets a timeout
- a third test case that takes longer than the timeout from the second
test case

Without the fix, the timeout is not cleared, and the third test case is
erroneously aborted. With the fix, the timeout is cleared and the third
test case is able to complete.

(From OE-Core rev: 54ef07a9aa1af8f41cfb9a4802929c918efc43c8)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Alexander Kanavin
b40f78a5c7 oeqa: tear down oeqa decorators if one of them raises an exception in setup
Some of the decorators need proper cleanup, such as OETimeout
which sets a signal handler that needs to be cleared via teardown.
If this is not done then the signal gets called later with unpredictable effects.

This can be seen if there's a test that is skipped via a decorator and sets a timeout
at the same time: the timeout isn't cleared, and is invoked later in a
completely unrelated context. The test case for this is added in the
next commit.

(From OE-Core rev: f42a08e1aabf1ca57e0c09d69fb69cc717c7f156)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Chen Qi
942b80e82e weston: fix build failure due to race condition
The wayland.c actually include 'xdg-shell-client-protocol.h' instead of
the server one, so fix it. Otherwise, it's possible to get build failure
due to race condition.

(From OE-Core rev: bd2a9a4d82f66f1ff414c392bcf234d8dbd5e553)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Mingli Yu
ce9e341775 rpm: Upgrade to 4.16.1.3
Fixes some security vulnerabilities such as CVE-2021-3421 and
CVE-2021-20271.

Rebase 0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
to avoid fuzz warnings.

(From OE-Core rev: 5dcd9c673502dab276b4fb4e6b4c7c1d1d9425ef)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Martin Jansa
a8ae23104c ofono: prevent using bundled ell headers and fix build with ell-0.39
* -I../ofono-1.31 is included when building drivers/mbimmodem/mbim.c and then
  ell.h will happily include ell/util.h from there:

  # 1 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/ell/ell.h" 1 3 4
  # 23 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/ell/ell.h" 3 4
  # 1 "../ofono-1.31/ell/util.h" 1 3 4
  # 26 "../ofono-1.31/ell/util.h" 3 4
  # 1 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/string.h" 1 3 4
  # 26 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/string.h" 3 4
  # 1 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/bits/libc-header-start.h" 1 3 4
  # 27 "/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/ofono/1.31-r0/recipe-sysroot/usr/include/string.h" 2 3 4

* and it gets more interesting because unlikely() macro was dropped from ell/util.h in:
  https://git.kernel.org/pub/scm/libs/ell/ell.git/commit/?id=2a682421b06e41c45098217a686157f576847021
  and ofono builds from git (which doesn't bundle ell) were failing with:

drivers/mbimmodem/mbim-message.c: In function 'message_iter_next_entry_valist':
drivers/mbimmodem/mbim-message.c:504:8: warning: implicit declaration of function 'unlikely' [-Wimplicit-function-declaration]
  504 |    if (unlikely(indent > MAX_NESTING))
      |        ^~~~~~~~
...
x86_64-webos-linux-libtool: link: x86_64-webos-linux-gcc -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot -I/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot/usr/include/dbus-1.0 -I/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot/usr/lib/dbus-1.0/include -I/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot/usr/include/glib-2.0 -I/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot/usr/lib/glib-2.0/include -DOFONO_PLUGIN_BUILTIN -DPLUGINDIR=\"/usr/lib/ofono/plugins\" -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0=/usr/src/debug/ofono/1.31+gitAUTOINC+0db662bd6b-r0 -fdebug-prefix-map=/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0=/usr/src/debug/ofono/1.31+gitAUTOINC+0db662bd6b-r0 -fdebug-prefix-map=/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-honister/webos-ports/tmp-glibc/work/core2-64-webos-linux/ofono/1.31+gitAUTOINC+0db662bd6b-r0/recipe-sysroot-native= -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o unit/test-mbim unit/test-mbim.o drivers/mbimmodem/mbim-message.o drivers/mbimmodem/mbim.o  -lell
drivers/mbimmodem/mbim-message.c:1389: error: undefined reference to 'unlikely'
drivers/mbimmodem/mbim-message.c:1255: error: undefined reference to 'unlikely'
drivers/mbimmodem/mbim-message.c:514: error: undefined reference to 'unlikely'
drivers/mbimmodem/mbim-message.c:504: error: undefined reference to 'unlikely'
collect2: error: ld returned 1 exit status

  while build from 1.31 tarball was passing OK, because using this older
  bundled ell/util.h

  delete bundled ell as we always enable external ell to make sure this
  doesn't happen again and fix mbimmodem to build with ell-0.39

(From OE-Core rev: 25f44ce327aff94c956d431c3cdf92adc39b2eeb)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Diego Sueiro
d00d7e6621 oeqa/selftest/bblayers: Add test case for bitbake-layers layerindex-show-depends
(From OE-Core rev: 80090c31164d62a169431ab71c4aaee5475b6f40)

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:10 +01:00
Alexander Kanavin
dd35211b69 default-distrovars.inc: add debuginfod to default DISTRO_FEATURES
Obtaining debug information by having it served automatically via http
is far more pleasant than messing about with debugfs and gdbserver or
transferring and installing -dbg packages by hand.

I believe we should follow the desktop distros and have it enabled
out of the box. Please see the following commit for the description
of how it works.

(From OE-Core rev: 024c88c82791a113b614abf61ffd82e097bf21d1)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:09 +01:00
Khem Raj
972888296c elfutils: Make 64bit time_t fix generic
Apply it always since more than x32 needs it

(From OE-Core rev: faf5034876c319aa51d6b3e21265d0984566bb9e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Alexander Kanavin
2cd3d10d36 elfutils: adjust ptests for correct debuginfod testing
(From OE-Core rev: fdfe429dad9b9ab685caf3a61876f7a23453aedd)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Alexander Kanavin
1b349efbc2 elfutils: correct debuginfod builds on x32
(From OE-Core rev: 53cd394a6fe409eef3542832ad81ae3dd2cc6aad)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Changqing Li
46edbab0b3 libpam: make volatile files created successfully
(From OE-Core rev: f0de19e31122abd225bd75c6202839094194a36d)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
d601dfdb74 oeqa/manual/bsp-hw.json : remove Test_if_usb_hid_device_works_well_after_resume_from_suspend_state manual test
Remove the Test_if_usb_hid_device_works_well_after_resume_from_suspend_state test as it was replaced by the new automated runtime oeqa/runtime/cases/usb_hid.py.

(From OE-Core rev: 61b0eba90ba4676967b96b5561f99ee2294352a0)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
7542a292de oeqa/manual/bsp-hw.json :remove Check_if_RTC_(Real_Time_Clock)_can_work_correctly manual test
Remove the Check_if_RTC_(Real_Time_Clock)_can_work_correctly test as it was replaced by the new automated runtime oeqa/runtime/cases/rtc.py.

(From OE-Core rev: ea5d87f014b33b88402176ae7e07f8ff216415a0)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
711039f052 oeqa/manual/bsp-hw.json : remove click_terminal_icon_on_X_desktop manual test
Remove the click_terminal_icon_on_X_desktop test as it was replaced by the new automated runtime oeqa/runtime/cases/terminal.py.

(From OE-Core rev: ce10543b03349a68dd2639990b8c267110dcab2e)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
3d02cc072e oeqa/manual/bsp-hw.json : remove standby and Test_if_LAN_device_works_well_after_resume_from_suspend_state manual test
Remove standby and Test_if_LAN_device_works_well_after_resume_from_suspend_state test as they was replaced by the new automated runtime oeqa/runtime/cases/suspend.py.

(From OE-Core rev: 2b99a35f0131300a121304ac46f2d29b593128c0)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
495f029389 oeqa/manual/bsp-hw.json : remove ethernet_static_ip_set_in_connman and ethernet_get_IP_in_connman_via_DHCP manual test
Remove ethernet_static_ip_set_in_connman and ethernet_get_IP_in_connman_via_DHCP test as they was replaced by the new automated runtime oeqa/runtime/cases/ethernet_ip_connman.py.

(From OE-Core rev: bb7d753e636c81d1a9d48210da6910c711e4f2df)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Teoh Jay Shen
99d8cd1201 oeqa/manual/bsp-hw.json : remove boot_from_runlevel_3 and boot_from_runlevel_5 manual test
Remove boot_from_runlevel_3 and boot_from_runlevel_5 test as they was replaced by the new automated runtime oeqa/runtime/cases/runlevel.py.

(From OE-Core rev: f4f9dffddf699cef63ab5554e2f92ae026574e89)

Signed-off-by: Teoh Jay Shen <jay.shen.teoh@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Richard Purdie
63b0992ab7 patchelf: Backport fix from upstream for note section overlap error
Backport a patch from upstream to fix an error:
patchelf: cannot normalize PT_NOTE segment: non-contiguous SHT_NOTE sections

seen on our ubuntu1604 autobuilder worker.

(From OE-Core rev: 80e8f7d34d7032cc94b61bf155eac7648e6b6c74)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Khem Raj
c365e38233 weston: Drop loading xwayland.so module
This module is no longer installed by x11 instead it uses a stand along
server for xwayland, as a result when xwayland is enabled in
packageconfig in weston then it fails to load xwayland.so during runtime

Fixes

[21:07:12.-100663296] Old Xwayland module loading detected: Please use --xwayland command line option or set xwayland=true in the [core] section in weston.ini
[21:07:12.-100663296] Loading module '/usr/lib/libweston-9/xwayland.so'
[21:07:12.-100663296] Failed to load module: /usr/lib/libweston-9/xwayland.so: cannot open shared object file: No such file or directory
[21:07:12.-100663296] Destroying fbdev output.

(From OE-Core rev: aa829e27a0d3bda3ed943005c1622e71d38bb872)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Martin Jansa
5625fbdfa5 xwayland: add opengl to REQUIRED_DISTRO_FEATURES
* it depends on libepoxy which has this restriction
* fixes:
  ERROR: Nothing PROVIDES 'libepoxy' (but openembedded-core/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb DEPENDS on or otherwise requires it)
  libepoxy was skipped: missing required distro feature 'opengl' (not in DISTRO_FEATURES)
  ERROR: Nothing RPROVIDES 'xwayland' (but openembedded-core/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb RDEPENDS on or otherwise requires it)
  No eligible RPROVIDERs exist for 'xwayland'
  NOTE: Runtime target 'xwayland' is unbuildable, removing...
  Missing or unbuildable dependency chain was: ['xwayland']
  ERROR: Nothing RPROVIDES 'xwayland-dev' (but openembedded-core/meta/recipes-graphics/xwayland/xwayland_21.1.1.bb RDEPENDS on or otherwise requires it)
  No eligible RPROVIDERs exist for 'xwayland-dev'
  NOTE: Runtime target 'xwayland-dev' is unbuildable, removing...
  Missing or unbuildable dependency chain was: ['xwayland-dev']

(From OE-Core rev: d5455a8f636599d6be8c36ea1578274148d558df)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:12:08 +01:00
Konrad Weihmann
df2a1f37f7 cve-update-db-native: skip on empty cpe23Uri
Recently an entry in the NVD DB appeared that looks like that
{'vulnerable': True, 'cpe_name': []}.
As besides all the vulnerable flag no data is present we would get
a KeyError exception on acccess.
Use get method on dictionary and return if no meta data is present
Also quit if the length of the array after splitting is less than 6

(From OE-Core rev: 00ce2796d97de2bc376b038d0ea7969088791d34)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 10:06:04 +01:00
Richard Purdie
d5eb86b3aa runqemu: Ensure we cleanup snapshot files after image run
We need to cleanup snapshot files if we make a copy of them to ensure
the tmpfs doesn't run out of space. There is already NFS code needing
this so make it a generic code path.

(From OE-Core rev: a3e0eec5a4785a0c4859455eb10b43aa832e606d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-23 00:08:38 +01:00
Richard Purdie
6f7bc9e4af poky.conf: Post release version bump
(From meta-yocto rev: 63b7374d9053f4f585d7e30fc2347fafa4381528)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
1f75873390 linux-yocto/5.10: fix arm defconfig warnings
A recent fix to the kern-tools promoted some previously unseen
issues to warnings. This commit fixes them by tagging some BT
options as non-hardware so they won't generate warnings if they
don't appear in the final .config. These are sub BT options and
shouldn't warn when/if their controlling option is disabled by
a fragment.

    40a967b115f base: exclude some BT options as non-hardware

(From OE-Core rev: fc7875ce3c68a253f8b8e5d8855c1814731b5a45)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
afb15a8817 linux-yocto/5.4: fix arm defconfig warnings
A recent fix to the kern-tools promoted some previously unseen
issues to warnings. This commit fixes them by tagging some BT
options as non-hardware so they won't generate warnings if they
don't appear in the final .config. These are sub BT options and
shouldn't warn when/if their controlling option is disabled by
a fragment.

    d7fd0213b75 base: exclude some BT options as non-hardware

(From OE-Core rev: a86c8251905baf5bf4714f3db01cdfae02383839)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
64d8607232 linux-yocto/5.4: update to v5.4.112
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    8f55ad4daf00 Linux 5.4.112
    ea42fd91d304 Revert "cifs: Set CIFS_MOUNT_USE_PREFIX_PATH flag on setting cifs_sb->prepath."
    7ee5bde3164c net: ieee802154: stop dump llsec params for monitors
    b4042ecc12cb net: ieee802154: forbid monitor for del llsec seclevel
    e82f8b7713ab net: ieee802154: forbid monitor for set llsec params
    948a2817f71d net: ieee802154: fix nl802154 del llsec devkey
    b3a105e15cd6 net: ieee802154: fix nl802154 add llsec key
    4097afd93df7 net: ieee802154: fix nl802154 del llsec dev
    7d32fc7964d6 net: ieee802154: fix nl802154 del llsec key
    8f4c815c74f4 net: ieee802154: nl-mac: fix check on panid
    38ea2b3ed00f net: mac802154: Fix general protection fault
    6e7098f56c83 drivers: net: fix memory leak in peak_usb_create_dev
    32e2f9a708e1 drivers: net: fix memory leak in atusb_probe
    0a790ad1358b net: tun: set tun->dev->addr_len during TUNSETLINK processing
    ed13df88c6d5 cfg80211: remove WARN_ON() in cfg80211_sme_connect
    628ac886dfba net: sched: bump refcount for new action in ACT replace mode
    3dbafee8426f dt-bindings: net: ethernet-controller: fix typo in NVMEM
    f4c5968da773 clk: socfpga: fix iomem pointer cast on 64-bit
    35ba6d9240ee RAS/CEC: Correct ce_add_elem()'s returned values
    f666ad4f8d87 RDMA/addr: Be strict with gid size
    44d03319fe77 RDMA/cxgb4: check for ipv6 address properly while destroying listener
    3ca5345db92c net/mlx5: Fix PBMC register mapping
    798d94a274fb net/mlx5: Fix placement of log_max_flow_counter
    9716aac17419 net: hns3: clear VF down state bit before request link status
    9dd7092d1a96 openvswitch: fix send of uninitialized stack memory in ct limit reply
    731abf396e37 net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit()
    d0aab59f0993 perf inject: Fix repipe usage
    d3343a35d108 s390/cpcmd: fix inline assembly register clobbering
    c88fa8d4f994 workqueue: Move the position of debug_work_activate() in __queue_work()
    14060454cdb9 clk: fix invalid usage of list cursor in unregister
    bedda47d5dce clk: fix invalid usage of list cursor in register
    b3717885865c net: macb: restore cmp registers on resume path
    c61fe6b7e21f scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs
    81fddc7be649 scsi: ufs: core: Fix task management request completion timeout
    f6abec1a3172 scsi: ufs: Use blk_{get,put}_request() to allocate and free TMFs
    a8d2d45c70c7 scsi: ufs: Avoid busy-waiting by eliminating tag conflicts
    c5efc9d26c84 scsi: ufs: Fix irq return code
    537a2449cc6f net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...);
    de8c5962bdae drm/msm: Set drvdata to NULL when msm_drm_init() fails
    e22ce1d21b42 i40e: Fix display statistics for veb_tc
    7c0d2372298f soc/fsl: qbman: fix conflicting alignment attributes
    c178e8a19937 net/rds: Fix a use after free in rds_message_map_pages
    73f88cc2bf5c net/mlx5: Don't request more than supported EQs
    029416e14be2 net/mlx5e: Fix ethtool indication of connector type
    1f3010fc3fe6 ASoC: sunxi: sun4i-codec: fill ASoC card owner
    db4600aa938c net: phy: broadcom: Only advertise EEE for supported modes
    6aa7d2621b19 nfp: flower: ignore duplicate merge hints from FW
    bbbee59f4f32 net/ncsi: Avoid channel_monitor hrtimer deadlock
    c66b672a231c ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces
    c991ca6a2c79 net:tipc: Fix a double free in tipc_sk_mcast_rcv
    200c8453287f cxgb4: avoid collecting SGE_QBASE regs during traffic
    e9bdd3e45f0e gianfar: Handle error code at MAC address change
    516c436ff5d6 can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE
    ca443546f8d4 arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0
    840a181729ac sch_red: fix off-by-one checks in red_check_params()
    accb27006595 amd-xgbe: Update DMA coherency values
    e472f6814ceb hostfs: fix memory handling in follow_link()
    613f35568a5d hostfs: Use kasprintf() instead of fixed buffer formatting
    fec47d458add i40e: Fix kernel oops when i40e driver removes VF's
    c0aacaa0a8f2 i40e: Added Asym_Pause to supported link modes
    f819977ad42c xfrm: Fix NULL pointer dereference on policy lookup
    bac7e764e5d5 ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
    b32969aaed1c ASoC: SOF: Intel: HDA: fix core status verification
    99b4e9af8f00 ASoC: SOF: Intel: hda: remove unnecessary parentheses
    540ddeed5c51 esp: delete NETIF_F_SCTP_CRC bit from features for esp offload
    a128e07b472b net: xfrm: Localize sequence counter per network namespace
    34659399e713 regulator: bd9571mwv: Fix AVS and DVFS voltage range
    d78e99dd4960 xfrm: interface: fix ipv4 pmtu check to honor ip header df
    7977d5fe3d5b net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits
    249908ed36a8 net: dsa: lantiq_gswip: Don't use PHY auto polling
    910e785ba8de virtio_net: Add XDP meta data support
    0534f1f1bc76 i2c: turn recovery error on init to debug
    cafced041915 usbip: synchronize event handler with sysfs code paths
    37168011d427 usbip: vudc synchronize sysfs code paths
    06fedcc6870e usbip: stub-dev synchronize sysfs code paths
    6a435364b608 usbip: add sysfs_lock to synchronize sysfs code paths
    b02bded94b91 net: let skb_orphan_partial wake-up waiters.
    fd8a95d56050 net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
    b5e7653ffdd1 net: hsr: Reset MAC header for Tx path
    a9311be5f617 mac80211: fix TXQ AC confusion
    5a4f39f19e6f net: sched: sch_teql: fix null-pointer dereference
    2f5edf14f62a i40e: Fix sparse error: 'vsi->netdev' could be null
    b31d91e9e8c8 i40e: Fix sparse warning: missing error code 'err'
    599200ad44e7 net: ensure mac header is set in virtio_net_hdr_to_skb()
    158a9b815c54 bpf, sockmap: Fix sk->prot unhash op reset
    0242251d6a97 ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx
    4a2933c88399 net: hso: fix null-ptr-deref during tty device unregistration
    ef2ccf84071f ice: Cleanup fltr list in case of allocation issues
    0df579b3de8c ice: Fix for dereference of NULL pointer
    1aecc5781101 ice: Increase control queue timeout
    9de1caa1103f batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
    79407ae3475e ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
    9dfd74a8c015 parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
    957d0308aa36 parisc: parisc-agp requires SBA IOMMU driver
    507c2009dc4c fs: direct-io: fix missing sdio->boundary
    f495bedb001b ocfs2: fix deadlock between setattr and dio_end_io_write
    52999a66c0b3 nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
    75fd54ea1b60 ia64: fix user_stack_pointer() for ptrace()
    7a92396bf8dd gcov: re-fix clang-11+ support
    c2b3cf2c70d6 drm/i915: Fix invalid access to ACPI _DSM objects
    0e8f850e26b2 net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock
    6649b5eda131 net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
    a09acbb53934 xen/evtchn: Change irq_info lock to raw_spinlock_t
    aa0cff2e0751 nfc: Avoid endless loops caused by repeated llcp_sock_connect()
    404daa4d62a3 nfc: fix memory leak in llcp_sock_connect()
    41bc58ba0945 nfc: fix refcount leak in llcp_sock_connect()
    c89903c9eff2 nfc: fix refcount leak in llcp_sock_bind()
    12289d9840d6 ASoC: intel: atom: Stop advertising non working S24LE support
    c99780f782aa ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1
    da8f3cc5771e ALSA: aloop: Fix initialization of controls
    8732c2df9d15 counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register

(From OE-Core rev: bd41c1b7170b4d27bebac0a4387cad070c41e03d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
c6f0f24dba linux-yocto-rt/5.10: update to -rt34
Integrating the following commit(s) to linux-yocto/5.10:

    ac98a75ef2bc net/xfrm: fixup 5.10.30 -stable merge

(From OE-Core rev: 2e7dd8afd0dbe7803170006297309b6699b98f34)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
6698385521 linux-yocto/5.10: update to v5.10.30
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    1e798745fa8e Linux 5.10.30
    b451aed56348 Revert "net: sched: bump refcount for new action in ACT replace mode"
    a22115c3492f net: ieee802154: stop dump llsec params for monitors
    f872fb3feadd net: ieee802154: forbid monitor for del llsec seclevel
    a933bcbb1f7f net: ieee802154: forbid monitor for set llsec params
    0238c7b47f77 net: ieee802154: fix nl802154 del llsec devkey
    d06a96e72803 net: ieee802154: fix nl802154 add llsec key
    399f38c420ee net: ieee802154: fix nl802154 del llsec dev
    07699fcce052 net: ieee802154: fix nl802154 del llsec key
    8bfb45fa131d net: ieee802154: nl-mac: fix check on panid
    38731bbcd9f0 net: mac802154: Fix general protection fault
    9f51a42d81f6 drivers: net: fix memory leak in peak_usb_create_dev
    160ac0d55d52 drivers: net: fix memory leak in atusb_probe
    4d9117b7404a net: tun: set tun->dev->addr_len during TUNSETLINK processing
    26ab092615f5 cfg80211: remove WARN_ON() in cfg80211_sme_connect
    138a6e1dc35e gpiolib: Read "gpio-line-names" from a firmware node
    300368c59cf0 net: sched: bump refcount for new action in ACT replace mode
    982dd14fba0f dt-bindings: net: ethernet-controller: fix typo in NVMEM
    c65a000a236e lockdep: Address clang -Wformat warning printing for %hd
    4c4aa344edf4 clk: socfpga: fix iomem pointer cast on 64-bit
    674ddb52f94b RAS/CEC: Correct ce_add_elem()'s returned values
    253acf2e983b vdpa/mlx5: Fix wrong use of bit numbers
    0ddb34c2ccce vdpa/mlx5: should exclude header length and fcs from mtu
    5700c3d4abb2 RDMA/addr: Be strict with gid size
    e53ff6e59144 i40e: Fix parameters in aq_get_phy_register()
    999852207464 drm/vc4: crtc: Reduce PV fifo threshold on hvs4
    d8a0861e269d RDMA/qedr: Fix kernel panic when trying to access recv_cq
    3fa7ae3f3754 perf report: Fix wrong LBR block sorting
    7f40e9332898 RDMA/cxgb4: check for ipv6 address properly while destroying listener
    03ad6a2521a0 net/mlx5: Fix PBMC register mapping
    1312f11eb33d net/mlx5: Fix PPLM register mapping
    f92faf0bdd25 net/mlx5: Fix placement of log_max_flow_counter
    f780a0808827 net: hns3: clear VF down state bit before request link status
    f473789db536 tipc: increment the tmp aead refcnt before attaching it
    3292c4fc9ce2 can: mcp251x: fix support for half duplex SPI host controllers
    a96f1ed70927 iwlwifi: fix 11ax disabled bit in the regulatory capability flags
    363d610a9652 i2c: designware: Adjust bus_freq_hz when refuse high speed mode set
    cc5418973cc9 openvswitch: fix send of uninitialized stack memory in ct limit reply
    3e288c3a7d55 net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit()
    3b70c6f26364 perf inject: Fix repipe usage
    d9dc1b406cb9 s390/cpcmd: fix inline assembly register clobbering
    7943f749f0d2 workqueue: Move the position of debug_work_activate() in __queue_work()
    b3f29ed5dd4b clk: fix invalid usage of list cursor in unregister
    2307baac56af clk: fix invalid usage of list cursor in register
    d9c55b2d3368 net: macb: restore cmp registers on resume path
    af36da5becfb net: cls_api: Fix uninitialised struct field bo->unlocked_driver_cb
    ffd5f1e87c15 scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs
    ff9231ddfec8 scsi: ufs: core: Fix task management request completion timeout
    71ee255d0698 mptcp: forbit mcast-related sockopt on MPTCP sockets
    24bbfe89b1c7 net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...);
    a08d5d3bec53 drm/msm: Set drvdata to NULL when msm_drm_init() fails
    7290bf419894 RDMA/rtrs-clt: Close rtrs client conn before destroying rtrs clt session files
    49cfa2b20193 i40e: Fix display statistics for veb_tc
    e8c96b57a781 soc/fsl: qbman: fix conflicting alignment attributes
    553290002aa8 xdp: fix xdp_return_frame() kernel BUG throw for page_pool memory model
    4cfae7b23889 net/rds: Fix a use after free in rds_message_map_pages
    05bbe9d85a4c net/mlx5: Don't request more than supported EQs
    86530effd18f net/mlx5e: Fix ethtool indication of connector type
    bde64eac2379 net/mlx5e: Fix mapping of ct_label zero
    d65b66ca3334 ASoC: sunxi: sun4i-codec: fill ASoC card owner
    dcdf0876b040 I2C: JZ4780: Fix bug for Ingenic X1000.
    f295dfc831bc net: phy: broadcom: Only advertise EEE for supported modes
    7a896e189361 nfp: flower: ignore duplicate merge hints from FW
    6af631d1caf2 net: qrtr: Fix memory leak on qrtr_tx_wait failure
    dfe7805e6aa6 net/ncsi: Avoid channel_monitor hrtimer deadlock
    ae4a8d10ac8b ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces
    e5e5ecc9d9fd net:tipc: Fix a double free in tipc_sk_mcast_rcv
    f273e3726e14 cxgb4: avoid collecting SGE_QBASE regs during traffic
    63a64c366ce0 net: dsa: Fix type was not set for devlink port
    ed613d96842e gianfar: Handle error code at MAC address change
    1eb5f4e00755 ethernet: myri10ge: Fix a use after free in myri10ge_sw_tso
    759b44d247c6 mlxsw: spectrum: Fix ECN marking in tunnel decapsulation
    d02b68a92905 can: isotp: fix msg_namelen values depending on CAN_REQUIRED_SIZE
    1d3837ca7335 can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE
    58f8f1074039 xfrm: Provide private skb extensions for segmented and hw offloaded ESP packets
    bc0b89a9a28f arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0
    d9670f5e77e5 drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit
    d38bce5adcd9 sch_red: fix off-by-one checks in red_check_params()
    985c9bb1b594 geneve: do not modify the shared tunnel info when PMTU triggers an ICMP reply
    f3bc1885746f vxlan: do not modify the shared tunnel info when PMTU triggers an ICMP reply
    f33f79703a4e amd-xgbe: Update DMA coherency values
    e5a3449ce16a hostfs: fix memory handling in follow_link()
    3cc4db1213a4 i40e: Fix kernel oops when i40e driver removes VF's
    9856607c9c29 i40e: Added Asym_Pause to supported link modes
    d4d4c6a4ca7c virtchnl: Fix layout of RSS structures
    95d58bf5ed43 xfrm: Fix NULL pointer dereference on policy lookup
    48a443026bb6 ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
    f6db9dbfa6b6 ASoC: SOF: Intel: HDA: fix core status verification
    ef4ddd1d6d93 esp: delete NETIF_F_SCTP_CRC bit from features for esp offload
    0224432a8fc1 net: xfrm: Localize sequence counter per network namespace
    1e6a3b41cf2a ARM: OMAP4: PM: update ROM return address for OSWR and OFF
    042b2cad81de ARM: OMAP4: Fix PMIC voltage domains for bionic
    1f51cb88e788 regulator: bd9571mwv: Fix AVS and DVFS voltage range
    b267688ce007 remoteproc: qcom: pil_info: avoid 64-bit division
    c7a175a24b0e xfrm: Use actual socket sk instead of skb socket for xfrm_output_resume
    3b74ce529ece xfrm: interface: fix ipv4 pmtu check to honor ip header df
    2d62d6980c2b ice: Recognize 860 as iSCSI port in CEE mode
    fd92e7aacc16 ice: Refactor DCB related variables out of the ice_port_info struct
    4a78ae127803 net: sched: fix err handler in tcf_action_init()
    3c7d3d188ca7 KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp
    25fc773b21ce KVM: x86/mmu: Don't allow TDP MMU to yield when recovering NX pages
    be2c527b5d39 KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping
    0aa4dd9e5132 KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap
    3c7a18440638 KVM: x86/mmu: Yield in TDU MMU iter even if no SPTES changed
    85f4ff2b06af KVM: x86/mmu: Ensure forward progress when yielding in TDP MMU iter
    1cd17c5c9b8a KVM: x86/mmu: Rename goal_gfn to next_last_level_gfn
    b4a3a0d27924 KVM: x86/mmu: Merge flush and non-flush tdp_mmu_iter_cond_resched
    8f90432d7f59 KVM: x86/mmu: change TDP MMU yield function returns to match cond_resched
    5ea9e6038d29 i2c: turn recovery error on init to debug
    efa869b68be9 percpu: make pcpu_nr_empty_pop_pages per chunk type
    c441949184a9 scsi: target: iscsi: Fix zero tag inside a trace event
    d8e7fa8509d7 scsi: pm80xx: Fix chip initialization failure
    0c47d8a55f7f driver core: Fix locking bug in deferred_probe_timeout_work_func()
    f06cb4641b15 usbip: synchronize event handler with sysfs code paths
    28dc9237fe83 usbip: vudc synchronize sysfs code paths
    513765b186c9 usbip: stub-dev synchronize sysfs code paths
    68be610c19a5 usbip: add sysfs_lock to synchronize sysfs code paths
    126ce97d39cf thunderbolt: Fix off by one in tb_port_find_retimer()
    256ece954961 thunderbolt: Fix a leak in tb_retimer_add()
    b830650c1a0c net: let skb_orphan_partial wake-up waiters.
    5d9216b85100 net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
    b82816d77875 net: hsr: Reset MAC header for Tx path
    9b9c910ccc19 mac80211: fix TXQ AC confusion
    cc357c29358d mac80211: fix time-is-after bug in mlme
    cc1a702e6ec0 cfg80211: check S1G beacon compat element length
    fea52345f422 nl80211: fix potential leak of ACL params
    42e4450e3790 nl80211: fix beacon head validation
    81692c6add7e net: sched: fix action overwrite reference counting
    cdcf3829f418 net: sched: sch_teql: fix null-pointer dereference
    422eda625516 vdpa/mlx5: Fix suspend/resume index restoration
    89e406e95278 i40e: Fix sparse errors in i40e_txrx.c
    12e1438a0946 i40e: Fix sparse error: uninitialized symbol 'ring'
    2472ba1c46b4 i40e: Fix sparse error: 'vsi->netdev' could be null
    792387118204 i40e: Fix sparse warning: missing error code 'err'
    f0b4c9acf5fe net: ensure mac header is set in virtio_net_hdr_to_skb()
    72c5de25ba83 bpf, sockmap: Fix incorrect fwd_alloc accounting
    00c01de1a994 bpf, sockmap: Fix sk->prot unhash op reset
    d921baabd964 bpf: Refcount task stack in bpf_get_task_stack
    caef7806141a libbpf: Only create rx and tx XDP rings when necessary
    4cc9177b099e libbpf: Restore umem state after socket create failure
    5aa7df172207 libbpf: Ensure umem pointer is non-NULL before dereferencing
    b52e88638f71 ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx
    d86046a77535 bpf: link: Refuse non-O_RDWR flags in BPF_OBJ_GET
    b7004ecafade bpf: Enforce that struct_ops programs be GPL-only
    3015db3de715 libbpf: Fix bail out from 'ringbuf_process_ring()' on error
    dc195928d7e4 net: hso: fix null-ptr-deref during tty device unregistration
    c2743e0a631c ice: fix memory leak of aRFS after resuming from suspend
    6bd4e822925d iwlwifi: pcie: properly set LTR workarounds on 22000 devices
    e5386e87f8aa ice: Cleanup fltr list in case of allocation issues
    9d1c342c5018 ice: Use port number instead of PF ID for WoL
    b69686110291 ice: Fix for dereference of NULL pointer
    4d73a6143d40 ice: remove DCBNL_DEVRESET bit from PF state
    286830a8469c ice: fix memory allocation call
    4686a26e9536 ice: prevent ice_open and ice_stop during reset
    ef7ed8c77d1c ice: Increase control queue timeout
    6590b7bfbc2b ice: Continue probe on link/PHY errors
    9a7bc0c40367 batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
    d1173effc574 ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
    4941889535f3 parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
    597121792eb4 parisc: parisc-agp requires SBA IOMMU driver
    9b54dad28def of: property: fw_devlink: do not link ".*,nr-gpios"
    009c5665278b ethtool: fix incorrect datatype in set_eee ops
    3a675c1b507f fs: direct-io: fix missing sdio->boundary
    b1a5122554ae ocfs2: fix deadlock between setattr and dio_end_io_write
    4fabcf229477 nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
    7d9da660affc ia64: fix user_stack_pointer() for ptrace()
    8e5bfafedf6d gcov: re-fix clang-11+ support
    43908139368e LOOKUP_MOUNTPOINT: we are cleaning "jumped" flag too late
    de427b662bfb IB/hfi1: Fix probe time panic when AIP is enabled with a buggy BIOS
    856f60e3e800 ACPI: processor: Fix build when CONFIG_ACPI_PROCESSOR=m
    8599a39adca8 drm/i915: Fix invalid access to ACPI _DSM objects
    bf991df9535e net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits
    c4ae852ec940 net: dsa: lantiq_gswip: Don't use PHY auto polling
    ba39959bfebd net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock
    40375bc3d0f9 net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
    005c5afa9f85 xen/evtchn: Change irq_info lock to raw_spinlock_t
    a28124e8ad03 selinux: fix race between old and new sidtab
    fd75d73aa214 selinux: fix cond_list corruption when changing booleans
    4f29b08e238f selinux: make nslot handling in avtab more robust
    a12a2fa9a129 nfc: Avoid endless loops caused by repeated llcp_sock_connect()
    568ac94df580 nfc: fix memory leak in llcp_sock_connect()
    99b596199e84 nfc: fix refcount leak in llcp_sock_connect()
    6fb003e5ae18 nfc: fix refcount leak in llcp_sock_bind()
    117557711974 ASoC: intel: atom: Stop advertising non working S24LE support
    c4a6fb0e8389 ALSA: hda/conexant: Apply quirk for another HP ZBook G5 model
    6c9119de7ffe ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1
    6efe4c1f4d17 ALSA: aloop: Fix initialization of controls
    4c933ff31f21 xfrm/compat: Cleanup WARN()s that can be user-triggered

(From OE-Core rev: aec9a6d709f14decd65013434f13a26c57e9196f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
55d65fc106 linux-yocto/5.4: update to v5.4.111
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    a49e5ea5e045 Linux 5.4.111
    45f540622d5b init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
    43dd03f08819 init/Kconfig: make COMPILE_TEST depend on !S390
    f5eb7e12a75d nvme-mpath: replace direct_make_request with generic_make_request
    6cce30548058 bpf, x86: Validate computation of branch displacements for x86-32
    a0b3927a07be bpf, x86: Validate computation of branch displacements for x86-64
    20c60bbc1c54 cifs: Silently ignore unknown oplock break handle
    754c82a6bf48 cifs: revalidate mapping when we open files for SMB1 POSIX
    e5991b4fcedb ia64: fix format strings for err_inject
    3e9292b39862 ia64: mca: allocate early mca with GFP_ATOMIC
    9b872bac1923 scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
    e2db0e66139a x86/build: Turn off -fcf-protection for realmode targets
    0465098898ef platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
    5a8c30e8acad netfilter: conntrack: Fix gre tunneling over ipv6
    e84a795b8a0b drm/msm: Ratelimit invalid-fence message
    daf5aaa8e6e0 drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs
    6abe3dad0afe mac80211: choose first enabled channel for monitor
    37b51460b25a mISDN: fix crash in fritzpci
    901d39f7b2ce net: pxa168_eth: Fix a potential data race in pxa168_eth_remove
    dc7c4d30d6e0 net/mlx5e: Enforce minimum value check for ICOSQ size
    b0e2b3271236 bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp
    e5868baa1e3c platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
    422c68101110 bus: ti-sysc: Fix warning on unbind if reset is not deasserted
    bec7103b04a9 ARM: dts: am33xx: add aliases for mmc interfaces
    59c8e3329268 Linux 5.4.110
    cde4e338c2b2 drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
    0ca13611d33f staging: rtl8192e: Change state information from u16 to u8
    f9974f189c67 staging: rtl8192e: Fix incorrect source in memcpy()
    fd5ce87aee48 usb: dwc2: Prevent core suspend when port connection flag is 0
    85e1752ae0ed usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
    26d2284a0580 usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
    25c13ca8302f USB: cdc-acm: fix use-after-free after probe failure
    b5aedddb621e USB: cdc-acm: fix double free on probe failure
    7220bba3066e USB: cdc-acm: downgrade message to debug
    62da51d0e7b7 USB: cdc-acm: untangle a circular dependency between callback and softint
    7443350af8cb cdc-acm: fix BREAK rx code path adding necessary calls
    58cace45f84b usb: xhci-mtk: fix broken streams issue on 0.96 xHCI
    a22e35f7b4fb usb: musb: Fix suspend with devices connected for a64
    e94dec2765b5 USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
    2ecf5803557b usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
    5ecfad1efbc3 firewire: nosy: Fix a use-after-free bug in nosy_ioctl()
    58073dc536a6 extcon: Fix error handling in extcon_dev_register
    e3a3d5005e63 extcon: Add stubs for extcon_register_notifier_all() functions
    67ff75be1ab1 pinctrl: rockchip: fix restore error in resume
    c92e8a8ecb9d vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends
    7f93d47677dd reiserfs: update reiserfs_xattrs_initialized() condition
    4dc52ce56d63 drm/amdgpu: check alignment on CPU page for bo map
    f9b3b70fd468 drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
    00bd9c22409e mm: fix race by making init_zero_pfn() early_initcall
    558ab52776c0 tracing: Fix stack trace event size
    07b19a118d2f PM: runtime: Fix ordering in pm_runtime_get_suppliers()
    72a667681cc4 PM: runtime: Fix race getting/putting suppliers at probe
    b6e7dbf0ed9c xtensa: move coprocessor_flush to the .text section
    c3715f06f9ad ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
    09a08fd89996 ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
    3acbf473a885 ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks
    65f92e40cc6d ALSA: hda: Re-add dropped snd_poewr_change_state() calls
    05dd1a4223c5 ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
    42c83e3bca43 bpf: Remove MTU check in __bpf_skb_max_len
    aca623d79cb7 net: wan/lmc: unregister device when no matching device is found
    f22854911523 appletalk: Fix skb allocation size in loopback case
    4ff476b88135 net: ethernet: aquantia: Handle error cleanup of start on open
    ee898d95f446 ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
    0b8dfb61f29a brcmfmac: clear EAP/association status bits on linkdown events
    2d0e594c1316 can: tcan4x5x: fix max register value
    4ac1feff6ea6 net: introduce CAN specific pointer in the struct net_device
    23394679aa56 can: dev: move driver related infrastructure into separate subdir
    7ca4feb37e9e flow_dissector: fix TTL and TOS dissection on IPv4 fragments
    ee5055593d0e net: mvpp2: fix interrupt mask/unmask skip condition
    aa9345d10f0a ext4: do not iput inode under running transaction in ext4_rename()
    5e39a73e47ef locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
    84bd602c14b7 thermal/core: Add NULL pointer check before using cooling device stats
    50c38f76b51d ASoC: rt5659: Update MCLK rate in set_sysclk()
    b6408fd7eb89 staging: comedi: cb_pcidas64: fix request_irq() warn
    b9fe8673b874 staging: comedi: cb_pcidas: fix request_irq() warn
    7390a1cdf304 scsi: qla2xxx: Fix broken #endif placement
    6e79f829e791 scsi: st: Fix a use after free in st_open()
    98052c40e3ac vhost: Fix vhost_vq_reset()
    57aa4f30911a powerpc: Force inlining of cpu_has_feature() to avoid build failure
    dcf4b6e710c7 NFSD: fix error handling in NFSv4.0 callbacks
    990a0fa1ccbb ASoC: cs42l42: Always wait at least 3ms after reset
    6d197691a1c5 ASoC: cs42l42: Fix mixer volume control
    aa74bf73937c ASoC: cs42l42: Fix channel width support
    47ae33d5b32b ASoC: cs42l42: Fix Bitclock polarity inversion
    5952cf385ceb ASoC: es8316: Simplify adc_pga_gain_tlv table
    381679aec216 ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe
    57b8a192872a ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
    b75073a37c65 ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
    ca3f8dcd6d94 iomap: Fix negative assignment to unsigned sis->pages in iomap_swapfile_activate
    c899b8391a54 rpc: fix NULL dereference on kmalloc failure
    0e71c59b2450 fs: nfsd: fix kconfig dependency warning for NFSD_V4
    9b68d3ed8aa8 ext4: fix bh ref count on error paths
    721a6f64c0bc ext4: shrink race window in ext4_should_retry_alloc()
    05d891e76dde module: harden ELF info handling
    6a8df0821f67 module: avoid *goto*s in module_sig_check()
    d9b98ccdfed0 module: merge repetitive strings in module_sig_check()
    1a8c5fbe2f1d modsign: print module name along with error message
    120589bb0970 ipv6: weaken the v4mapped source check
    1225bb45c87b selinux: vsock: Set SID for socket returned by accept()

(From OE-Core rev: 199566a40671ac273028cb44d0bb4494be22c4aa)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
376f5cc843 linux-yocto/5.10: update to v5.10.29
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    d8cf82b410b4 Linux 5.10.29
    cef13a04376b init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
    ba02635769f1 init/Kconfig: make COMPILE_TEST depend on !S390
    faa30969f66e bpf, x86: Validate computation of branch displacements for x86-32
    3edb8967d91e bpf, x86: Validate computation of branch displacements for x86-64
    f890246ae75c tools/resolve_btfids: Add /libbpf to .gitignore
    76983e244908 kbuild: Do not clean resolve_btfids if the output does not exist
    0945d67e5d43 kbuild: Add resolve_btfids clean to root clean target
    eff1e0465727 tools/resolve_btfids: Set srctree variable unconditionally
    f60c918b07b7 tools/resolve_btfids: Check objects before removing
    249719092447 tools/resolve_btfids: Build libbpf and libsubcmd in separate directories
    2934985086b9 math: Export mul_u64_u64_div_u64
    7345d4b2d421 io_uring: fix timeout cancel return code
    8f9049e70cd6 cifs: Silently ignore unknown oplock break handle
    fee111089cc9 cifs: revalidate mapping when we open files for SMB1 POSIX
    42498ee67296 ia64: fix format strings for err_inject
    bc30fdd598e3 ia64: mca: allocate early mca with GFP_ATOMIC
    b008489d8b86 selftests/vm: fix out-of-tree build
    47f8bc68ae95 scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
    266d3106efbd ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation
    f135b89e286b platform/x86: intel_pmc_core: Ignore GBE LTR on Tiger Lake platforms
    037950869be3 block: clear GD_NEED_PART_SCAN later in bdev_disk_changed
    7c73059bf849 x86/build: Turn off -fcf-protection for realmode targets
    6372aa9a78f8 drm/msm/disp/dpu1: icc path needs to be set before dpu runtime resume
    6deb9d9a84a2 kselftest/arm64: sve: Do not use non-canonical FFR register value
    bcd57b07fd90 platform/x86: thinkpad_acpi: Allow the FnLock LED to change state
    6304295c6190 net: ipa: fix init header command validation
    8a57256e0548 netfilter: nftables: skip hook overlap logic if flowtable is stale
    b0c795f4cc53 netfilter: conntrack: Fix gre tunneling over ipv6
    439c2c22fb85 drm/msm: Ratelimit invalid-fence message
    57e0546f01ca drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs
    b9ec77ef36af drm/msm/dsi_pll_7nm: Fix variable usage for pll_lockdet_rate
    0a66bd60b1ce mac80211: choose first enabled channel for monitor
    7705c48b8695 mac80211: Check crypto_aead_encrypt for errors
    05878b681981 mISDN: fix crash in fritzpci
    4ca265610cc6 kunit: tool: Fix a python tuple typing error
    f0ed115feccc net: pxa168_eth: Fix a potential data race in pxa168_eth_remove
    4b4ce9895e64 net/mlx5e: Enforce minimum value check for ICOSQ size
    198afc3b0c01 bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp
    107875a53868 platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2
    4c875e034dfb bus: ti-sysc: Fix warning on unbind if reset is not deasserted
    5c6f778e8f7d ARM: dts: am33xx: add aliases for mmc interfaces
    ecdfb9d70fb8 Linux 5.10.28
    7973a0dad073 bpf: Use NOP_ATOMIC5 instead of emit_nops(&prog, 5) for BPF_TRAMP_F_CALL_ORIG
    12b5f9dae410 Revert "kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing"
    6ae5eaee1ea5 riscv: evaluate put_user() arg before enabling user access
    61f0c3e8098f drivers: video: fbcon: fix NULL dereference in fbcon_cursor()
    d06d0b3cf626 driver core: clear deferred probe reason on probe retry
    d29c38dd926d staging: rtl8192e: Change state information from u16 to u8
    538b96315375 staging: rtl8192e: Fix incorrect source in memcpy()
    84e5203fd277 soc: qcom-geni-se: Cleanup the code to remove proxy votes
    996a5782faef usb: dwc3: gadget: Clear DEP flags after stop transfers in ep disable
    1808ee421ce5 usb: dwc3: qcom: skip interconnect init for ACPI probe
    137dfed1552a usb: dwc2: Prevent core suspend when port connection flag is 0
    4e28aca96729 usb: dwc2: Fix HPRT0.PrtSusp bit setting for HiKey 960 board.
    77c0d6af858b usb: gadget: udc: amd5536udc_pci fix null-ptr-dereference
    6f86681691c2 USB: cdc-acm: fix use-after-free after probe failure
    64deff1f4e0f USB: cdc-acm: fix double free on probe failure
    439a27521112 USB: cdc-acm: downgrade message to debug
    511302531eb8 USB: cdc-acm: untangle a circular dependency between callback and softint
    e700e3aec303 cdc-acm: fix BREAK rx code path adding necessary calls
    9efa606a83e0 usb: xhci-mtk: fix broken streams issue on 0.96 xHCI
    1addcb1f77d6 usb: musb: Fix suspend with devices connected for a64
    15e61d9ae7ac USB: quirks: ignore remote wake-up on Fibocom L850-GL LTE modem
    4027d6e88fef usbip: vhci_hcd fix shift out-of-bounds in vhci_hub_control()
    c04adcc819d3 firewire: nosy: Fix a use-after-free bug in nosy_ioctl()
    2c7d85026324 video: hyperv_fb: Fix a double free in hvfb_probe
    a267a7e1c0ca usb: dwc3: pci: Enable dis_uX_susphy_quirk for Intel Merrifield
    bf4c643192b3 firmware: stratix10-svc: reset COMMAND_RECONFIG_FLAG_PARTIAL to 0
    3b681a1c43b6 extcon: Fix error handling in extcon_dev_register
    023d13952e9b extcon: Add stubs for extcon_register_notifier_all() functions
    0fe56e294cef pinctrl: rockchip: fix restore error in resume
    80ee9e02be3d vfio/nvlink: Add missing SPAPR_TCE_IOMMU depends
    d2308dd5119b drm/tegra: sor: Grab runtime PM reference across reset
    f552f95853f8 drm/tegra: dc: Restore coupling of display controllers
    77a8e6f792d5 drm/imx: fix memory leak when fails to init
    74612ecdf263 reiserfs: update reiserfs_xattrs_initialized() condition
    8c71f5b30955 drm/amdgpu: check alignment on CPU page for bo map
    78ceecd2ed45 drm/amdgpu: fix offset calculation in amdgpu_vm_bo_clear_mappings()
    28f901fe1634 drm/amdkfd: dqm fence memory corruption
    ec3e06e06f76 mm: fix race by making init_zero_pfn() early_initcall
    d88b557b9b73 s390/vdso: fix tod_steering_delta type
    b332265430c8 s390/vdso: copy tod_steering_delta value to vdso_data page
    f706acc9312b tracing: Fix stack trace event size
    cc038ab785a8 PM: runtime: Fix ordering in pm_runtime_get_suppliers()
    da2976cd711b PM: runtime: Fix race getting/putting suppliers at probe
    e6d8eb65532e KVM: SVM: ensure that EFER.SVME is set when running nested guest or on nested vmexit
    5f6625f5cd5c KVM: SVM: load control fields from VMCB12 before checking them
    6aaa3c2ebb4f xtensa: move coprocessor_flush to the .text section
    a3be911a5fee xtensa: fix uaccess-related livelock in do_page_fault
    bcd7999c03ed ALSA: hda/realtek: fix mute/micmute LEDs for HP 640 G8
    ee58eee4501f ALSA: hda/realtek: call alc_update_headset_mode() in hp_automute_hook
    f235ffa56b8e ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO
    6d91f3afb632 ALSA: hda: Add missing sanity checks in PM prepare/complete callbacks
    b3116cda4e52 ALSA: hda: Re-add dropped snd_poewr_change_state() calls
    474d3d65784e ALSA: usb-audio: Apply sample rate quirk to Logitech Connect
    e525cd364c09 ACPI: processor: Fix CPU0 wakeup in acpi_idle_play_dead()
    cdd192a20b06 ACPI: tables: x86: Reserve memory occupied by ACPI tables
    fd38d4e6757b bpf: Remove MTU check in __bpf_skb_max_len
    ff64f33bc93b net: 9p: advance iov on empty read
    84877db1cdea net: wan/lmc: unregister device when no matching device is found
    33a6b3eea44b net: ipa: fix register write command validation
    44d76042c038 net: ipa: remove two unused register definitions
    c805f215e9c5 appletalk: Fix skb allocation size in loopback case
    f2294a707f63 net: ethernet: aquantia: Handle error cleanup of start on open
    7d3ffc0993fe ath10k: hold RCU lock when calling ieee80211_find_sta_by_ifaddr()
    221528c20e5e iwlwifi: pcie: don't disable interrupts for reg_lock
    f33d87047323 netdevsim: dev: Initialize FIB module after debugfs
    660bf76aec07 rtw88: coex: 8821c: correct antenna switch function
    b5777172cce2 ath11k: add ieee80211_unregister_hw to avoid kernel crash caused by NULL pointer
    731c4447e6db brcmfmac: clear EAP/association status bits on linkdown events
    4094194d103b can: tcan4x5x: fix max register value
    1a5751d58b14 net: introduce CAN specific pointer in the struct net_device
    9e35159c6e9a can: dev: move driver related infrastructure into separate subdir
    e3ccad57ac09 flow_dissector: fix TTL and TOS dissection on IPv4 fragments
    8fe47a33944f net: mvpp2: fix interrupt mask/unmask skip condition
    44c816c8b9ab io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL
    5038c1122e13 ext4: do not iput inode under running transaction in ext4_rename()
    eb8049d85a92 static_call: Align static_call_is_init() patching condition
    21c2bbc17b6b io_uring: imply MSG_NOSIGNAL for send[msg]()/recv[msg]() calls
    fa068ee3f37e nvmet-tcp: fix kmap leak when data digest in use
    3ac4aaff387b locking/ww_mutex: Fix acquire/release imbalance in ww_acquire_init()/ww_acquire_fini()
    905ef030bdf9 locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
    1e2a75c24a48 thermal/core: Add NULL pointer check before using cooling device stats
    cf51b6145b9d ASoC: rt711: add snd_soc_component remove callback
    805645d89a20 ASoC: rt5659: Update MCLK rate in set_sysclk()
    7d4344fd3ee0 staging: comedi: cb_pcidas64: fix request_irq() warn
    e833d5716fbb staging: comedi: cb_pcidas: fix request_irq() warn
    4cd96a0de7a1 scsi: qla2xxx: Fix broken #endif placement
    3860814ef620 scsi: st: Fix a use after free in st_open()
    861fc287e036 io_uring: fix ->flags races by linked timeouts
    e1f8c95c1110 vhost: Fix vhost_vq_reset()
    7f6518ec6ee9 kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing
    540a1ebf3c23 NFSD: fix error handling in NFSv4.0 callbacks
    73df108e3aec ASoC: cs42l42: Always wait at least 3ms after reset
    9b7b92c4b92d ASoC: cs42l42: Fix mixer volume control
    20b39eb99598 ASoC: cs42l42: Fix channel width support
    0d3753babfa7 ASoC: cs42l42: Fix Bitclock polarity inversion
    ed47acc0c888 ASoC: soc-core: Prevent warning if no DMI table is present
    294d4c2b4fda ASoC: es8316: Simplify adc_pga_gain_tlv table
    f134a436d766 ASoC: sgtl5000: set DAP_AVC_CTRL register to correct default value on probe
    b057d540ad2c ASoC: rt5651: Fix dac- and adc- vol-tlv values being off by a factor of 10
    ed4cdb772680 ASoC: rt5640: Fix dac- and adc- vol-tlv values being off by a factor of 10
    4bac395e0b8a ASoC: rt1015: fix i2c communication error
    4eff80b14014 iomap: Fix negative assignment to unsigned sis->pages in iomap_swapfile_activate
    5fb71b231c4e rpc: fix NULL dereference on kmalloc failure
    9e9aa1c03c33 fs: nfsd: fix kconfig dependency warning for NFSD_V4
    e178f362f095 ext4: fix bh ref count on error paths
    4b3139576a20 ext4: shrink race window in ext4_should_retry_alloc()
    1bfb046d29e3 virtiofs: Fail dax mount if device does not support it
    e21d2b92354b bpf: Fix fexit trampoline.
    68abc0115617 arm64: mm: correct the inside linear map range during hotplug check

(From OE-Core rev: 255ec8ff86d31c3464c30c26bdb15f01563b088e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
7f7281cb6d linux-yocto/5.10: BSP configuration fixes
Integrating the following commit(s) to linux-yocto/5.10.:

    fa039db710c qemuppc64: Enable the RTC driver
    f6cfc23fbfc nxp-s32g2xx: add HSE UIO related configs to make hse demo work
    2b445fb1e0b firmware: fix CONFIG_FW_LOADER option mismatch warning
    60dde01d949 nxp-imx8: Correct DRM_TTM config and delete redundant config
    07119316ee5 xlnx: bsp: drop obsolete kernel options for xilinx-zynqmp and xilinx-zynq
    0cf78165f8e bcm-2xxx-rpi: update v5.10 kernel config for raspberrypi 4b platform
    9b5a9e46778 marvell-cn96xx: Add the preempt-rt support

(From OE-Core rev: 6186f21b29e7a152d34c620e81878bf6eff6519d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
He Zhe
0596dc8d51 linux-yocto-dev: add features/scsi/scsi-debug.scc features/gpio/mockup.scc to KERNEL_FEATURES
Add features/scsi/scsi-debug.scc and features/gpio/mockup.scc to
KERNEL_FEATURES to meet ptest requirement as what we did for other
linux-yocto*.

(From OE-Core rev: fd27f302df886c27cb424191c27152ad9d0e8d80)

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
995acdd74e linux-yocto/5.10: update to v5.10.27
Updating linux-yocto/5.10 to the latest korg -stable release that comprises
the following commits:

    472493c8a425 Linux 5.10.27
    3a1ca9bd4f5a xen-blkback: don't leak persistent grants from xen_blkbk_map()
    03a1c3253f25 can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"
    f12d05f70282 nvme: fix the nsid value to print in nvme_validate_or_alloc_ns
    36478a9ec5af Revert "net: bonding: fix error return code of bond_neigh_init()"
    451ba16cc5b7 Revert "xen: fix p2m size in dom0 for disabled memory hotplug case"
    df61d3cff422 fs/ext4: fix integer overflow in s_log_groups_per_flex
    0229b5926dc9 ext4: add reclaim checks to xattr code
    25e809bf8bec mac80211: fix double free in ibss_leave
    39e1a35ea65a net: dsa: b53: VLAN filtering is global to all users
    d3b5a04b8ce5 r8169: fix DMA being used after buffer free if WoL is enabled
    8dc08a2962c8 can: dev: Move device back to init netns on owning netns delete
    24256b4d87eb ch_ktls: fix enum-conversion warning
    6f15c02ebbe9 fs/cachefiles: Remove wait_bit_key layout dependency
    002ea848d7fd mm/memcg: fix 5.10 backport of splitting page memcg
    2c163520e12b x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()
    c6c9bc4f261d locking/mutex: Fix non debug version of mutex_lock_io_nested()
    d4ce2a8f465d cifs: Adjust key sizes and key generation routines for AES256 encryption
    86cc799e1d9d smb3: fix cached file size problems in duplicate extents (reflink)
    2423511cc5ba scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()
    6b977fea78de scsi: qedi: Fix error return code of qedi_alloc_global_queues()
    62bb066cdfb6 scsi: Revert "qla2xxx: Make sure that aborted commands are freed"
    fc062d21c011 block: recalculate segment count for multi-segment discards correctly
    dcf2dfc1614d io_uring: fix provide_buffers sign extension
    efb334c4e5ff perf synthetic events: Avoid write of uninitialized memory when generating PERF_RECORD_MMAP* records
    5febe60a8021 perf auxtrace: Fix auxtrace queue conflict
    4a5891992c68 ACPI: scan: Use unique number for instance_no
    2ba9964a9653 ACPI: scan: Rearrange memory allocation in acpi_device_add()
    c33f918758fa Revert "netfilter: x_tables: Update remaining dereference to RCU"
    de2e6b4e32d6 mm/mmu_notifiers: ensure range_end() is paired with range_start()
    42aa210795d8 dm table: Fix zoned model check and zone sectors check
    3fdebc2d8e79 netfilter: x_tables: Use correct memory barriers.
    520be4d1af9c Revert "netfilter: x_tables: Switch synchronization to RCU"
    87771c9b09bb net: phy: broadcom: Fix RGMII delays for BCM50160 and BCM50610M
    485335a637c8 net: phy: broadcom: Set proper 1000BaseX/SGMII interface mode for BCM54616S
    837a3ae33459 net: phy: broadcom: Avoid forward for bcm54xx_config_clock_delay()
    9a5267264fc2 net: phy: introduce phydev->port
    c4934e65c8bc net: axienet: Fix probe error cleanup
    3e08fd4a8298 net: axienet: Properly handle PCS/PMA PHY for 1000BaseX mode
    d65e7d0c7449 igb: avoid premature Rx buffer reuse
    c7eb3e12f18f net, bpf: Fix ip6ip6 crash with collect_md populated skbs
    0a245acbce89 net: Consolidate common blackhole dst ops
    33cd5f88b5bf bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs
    d95696f537d6 RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server
    b740e58324c8 xen/x86: make XEN_BALLOON_MEMORY_HOTPLUG_LIMIT depend on MEMORY_HOTPLUG
    889c56ea941e octeontx2-af: Fix memory leak of object buf
    558454ec5170 net: bridge: don't notify switchdev for local FDB addresses
    7d019b2d0f27 PM: EM: postpone creating the debugfs dir till fs_initcall
    08a5f812ad6c net/mlx5e: Fix error path for ethtool set-priv-flag
    624f0dc8f7f4 net/mlx5e: Offload tuple rewrite for non-CT flows
    c83207bb02d6 net/mlx5e: Allow to match on MPLS parameters only for MPLS over UDP
    0be13d01473a net/mlx5: Add back multicast stats for uplink representor
    65c021e73590 PM: runtime: Defer suspending suppliers
    3db5fc556515 arm64: kdump: update ppos when reading elfcorehdr
    447a011bb40d drm/msm: Fix suspend/resume on i.MX5
    c7552dee62a0 drm/msm: fix shutdown hook in case GPU components failed to bind
    0b7bc92c1986 can: isotp: tx-path: zero initialize outgoing CAN frames
    ccd5565feea3 bpf: Fix umd memory leak in copy_process()
    eeadce8811d3 libbpf: Fix BTF dump of pointer-to-array-of-struct
    7693b64ae508 selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value
    5ebb9947b488 selinux: vsock: Set SID for socket returned by accept()
    1e01729999c0 net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes
    961d9a6e47b9 r8152: limit the RX buffer size of RTL8153A for USB 2.0
    2330d46db081 igb: check timestamp validity
    421e0d731070 net: cdc-phonet: fix data-interface release on probe failure
    943e1583bf8a net: check all name nodes in __dev_alloc_name
    748a158359d7 octeontx2-af: fix infinite loop in unmapping NPC counter
    b553f45c76ec octeontx2-pf: Clear RSS enable flag on interace down
    11e94cfa9dd8 octeontx2-af: Fix irq free in rvu teardown
    da517ca38dc6 octeontx2-af: Remove TOS field from MKEX TX
    1055796ca031 octeontx2-af: Modify default KEX profile to extract TX packet fields
    f896ae2886d1 octeontx2-af: Formatting debugfs entry rsrc_alloc.
    5f64c4c550c8 ipv6: weaken the v4mapped source check
    9e48a3bc8ba2 ARM: dts: imx6ull: fix ubi filesystem mount failed
    b4c574e4b471 libbpf: Use SOCK_CLOEXEC when opening the netlink socket
    86e525bc04f2 libbpf: Fix error path in bpf_object__elf_init()
    4280132339ce netfilter: flowtable: Make sure GC works periodically in idle system
    186d8dc40a65 netfilter: nftables: allow to update flowtable flags
    4a741b4df032 netfilter: nftables: report EOPNOTSUPP on unsupported flowtable flags
    a96a8cb0500a net/sched: cls_flower: fix only mask bit check in the validate_ct_state
    6233c2d09633 ionic: linearize tso skb with too many frags
    7637048707e5 drm/msm/dsi: fix check-before-set in the 7nm dsi_pll code
    126aa8f23424 ftrace: Fix modify_ftrace_direct.
    29b8834cf828 nfp: flower: fix pre_tun mask id allocation
    47dae14b21f7 nfp: flower: add ipv6 bit to pre_tunnel control message
    259b0122dea5 nfp: flower: fix unsupported pre_tunnel flows
    aeff815e76ef selftests/net: fix warnings on reuseaddr_ports_exhausted
    bd63bd78d303 mac80211: Allow HE operation to be longer than expected.
    f865127b1d26 mac80211: fix rate mask reset
    48d0b548b49e can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors
    afaca48e3017 can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
    4fcf59c24990 can: c_can: move runtime PM enable/disable to c_can_platform
    524320e8034a can: c_can_pci: c_can_pci_remove(): fix use-after-free
    f9a5974b9719 can: kvaser_pciefd: Always disable bus load reporting
    af3e6c3dcf54 can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate
    0cbadc0fb54c can: peak_usb: add forgotten supported devices
    3b3d9279be6c can: isotp: TX-path: ensure that CAN frame flags are initialized
    f88517dae95b can: isotp: isotp_setsockopt(): only allow to set low level TX flags for CAN-FD
    63f2a9bd3133 tcp: relookup sock for RST+ACK packets handled by obsolete req sock
    50f41f2e29ff tipc: better validate user input in tipc_nl_retrieve_key()
    ddeba5b39cca net: phylink: Fix phylink_err() function name error in phylink_major_config
    375f5169f231 net: hdlc_x25: Prevent racing between "x25_close" and "x25_xmit"/"x25_rx"
    ee39ee5f437c netfilter: ctnetlink: fix dump of the expect mask attribute
    d5380ceede6f selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed
    33cc382c5830 flow_dissector: fix byteorder of dissected ICMP ID
    fce6fb902189 net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
    6d3635ed12e7 net: ipa: terminate message handler arrays
    1701bd22b05d clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk
    b50c46ef67d6 ftgmac100: Restart MAC HW once
    e64a5a5b8e93 net: phy: broadcom: Add power down exit reset state delay
    87378c850fee net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
    648b62f10cec e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
    8ed431fec355 e1000e: add rtnl_lock() to e1000_reset_task
    5994a096570f igc: Fix igc_ptp_rx_pktstamp()
    0963fadcf536 igc: Fix Supported Pause Frame Link Setting
    d5330d5cc3ad igc: Fix Pause Frame Advertising
    d85ffade499a igc: reinit_locked() should be called with rtnl_lock
    4c91fc60e3f6 net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
    f64270027928 net: sched: validate stab values
    400199d6e6f6 macvlan: macvlan_count_rx() needs to be aware of preemption
    2514c7ad115e drop_monitor: Perform cleanup upon probe registration failure
    7f041ee8effd ipv6: fix suspecious RCU usage warning
    61219de46413 net/mlx5e: Don't match on Geneve options in case option masks are all zero
    d0be25fa4f96 net/mlx5e: When changing XDP program without reset, take refs for XSK RQs
    60b5ff15b41d net/mlx5e: RX, Mind the MPWQE gaps when calculating offsets
    9857de932b30 libbpf: Fix INSTALL flag order
    f7c3d7615e6c bpf: Change inode_storage's lookup_elem return value from NULL to -EBADF
    926cde9eec67 veth: Store queue_mapping independently of XDP prog presence
    f47a9b2570ad soc: ti: omap-prm: Fix occasional abort on reset deassert for dra7 iva
    1f798907b435 ARM: OMAP2+: Fix smartreflex init regression after dropping legacy data
    965e6cb8d4c9 bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
    921aae17bb0f dm ioctl: fix out of bounds array access when no devices
    d8b36c483d47 dm verity: fix DM_VERITY_OPTS_MAX value
    1e2d70d08ade drm/i915: Fix the GT fence revocation runtime PM logic
    da6a9b5b1799 drm/amdgpu: Add additional Sienna Cichlid PCI ID
    dc28098f40b4 drm/amdgpu/display: restore AUX_DPHY_TX_CONTROL for DCN2.x
    e02f765fa784 drm/amd/pm: workaround for audio noise issue
    f771b2b3eb2f drm/etnaviv: Use FOLL_FORCE for userptr
    546f7fcc451c integrity: double check iint_cache was initialized
    5f7b515df003 ARM: dts: at91-sama5d27_som1: fix phy address to 7
    2a0d35962ff1 ARM: dts: at91: sam9x60: fix mux-mask to match product's datasheet
    0b6cd8802d32 ARM: dts: at91: sam9x60: fix mux-mask for PA7 so it can be set to A, B and C
    1c103f512251 arm64: dts: ls1043a: mark crypto engine dma coherent
    4f35b64ba823 arm64: dts: ls1012a: mark crypto engine dma coherent
    3883f335b5ee arm64: dts: ls1046a: mark crypto engine dma coherent
    1ced45535d4b arm64: stacktrace: don't trace arch_stack_walk()
    53d3c8063590 ACPICA: Always create namespace nodes using acpi_ns_create_node()
    36fe73bd0af9 ACPI: video: Add missing callback back for Sony VPCEH3U1E
    1f5c9efad9fe gcov: fix clang-11+ support
    6e63cc1fe253 kasan: fix per-page tags for non-page_alloc pages
    fe03ccc3ce90 hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings
    269042e8ffed squashfs: fix xattr id and id lookup sanity checks
    61d72c5952c4 squashfs: fix inode lookup sanity checks
    1d215fcbc4ef z3fold: prevent reclaim/free race for headless pages
    e4642090734e psample: Fix user API breakage
    a4be7e4ed5d9 platform/x86: intel-vbtn: Stop reporting SW_DOCK events
    4f67d3e8c0ac netsec: restore phy power state after controller reset
    19c9967e495e selinux: fix variable scope issue in live sidtab conversion
    9731e08a3381 selinux: don't log MAC_POLICY_LOAD record on failed policy load
    3b87d0c5834b btrfs: fix sleep while in non-sleep context during qgroup removal
    771dfb3c531d KVM: x86: Protect userspace MSR filter with SRCU, and set atomically-ish
    394e4fd67946 static_call: Fix static_call_set_init()
    0fefb5f3e574 static_call: Fix the module key fixup
    a63068e93917 static_call: Allow module use without exposing static_call_key
    433cd7ca386c static_call: Pull some static_call declarations to the type headers
    533c293f737c ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
    d76e207991c4 ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
    7077d5e7f074 mm/fork: clear PASID for new mm
    07feac84efc6 block: Suppress uevent for hidden device when removed
    9f704608010b nfs: we don't support removing system.nfs4_acl
    3dab008e23bd nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
    8f0534c96ac8 nvme-rdma: Fix a use after free in nvmet_rdma_write_data_done
    c7b3f6db97c2 nvme-core: check ctrl css before setting up zns
    9083dc773d67 nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
    4d6aea29a795 nvme-fc: set NVME_REQ_CANCELLED in nvme_fc_terminate_exchange()
    7e62a89b51dd nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
    d8b17df7bf80 nvme: simplify error logic in nvme_validate_ns()
    b91230a0013f drm/radeon: fix AGP dependency
    35d4f0712828 drm/amdgpu: fb BO should be ttm_bo_type_device
    a255d14eb5dc drm/amd/display: Revert dram_clock_change_latency for DCN2.1
    d27b0964ade9 block: Fix REQ_OP_ZONE_RESET_ALL handling
    c9d1f6ad1e25 regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
    6366a5bb888b kselftest: arm64: Fix exit code of sve-ptrace
    da5bc0c21c04 u64_stats,lockdep: Fix u64_stats_init() vs lockdep
    f89338395545 staging: rtl8192e: fix kconfig dependency on CRYPTO
    eb4154fb61e2 habanalabs: Call put_pid() when releasing control device
    f2b38f03a3f7 sparc64: Fix opcode filtering in handling of no fault loads
    58b34195b33f umem: fix error return code in mm_pci_probe()
    feaa91193ad3 kbuild: dummy-tools: fix inverted tests for gcc
    ede8be3ae078 kbuild: add image_name to no-sync-config-targets
    264bb27b9fe4 irqchip/ingenic: Add support for the JZ4760
    b684c380f0b9 cifs: change noisy error message to FYI
    758bca385a79 atm: idt77252: fix null-ptr-dereference
    f35954a3961b atm: uPD98402: fix incorrect allocation
    852143ed96e2 net: enetc: set MAC RX FIFO to recommended value
    697082b125b0 net: davicom: Use platform_get_irq_optional()
    e6946ef43848 net: wan: fix error return code of uhdlc_init()
    184dc037575c net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
    9d1a5392aca1 NFS: Correct size calculation for create reply length
    2479c6b9ef36 nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
    b48779c863c0 gpiolib: acpi: Add missing IRQF_ONESHOT
    9443aef16fca cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
    6d7dce3bdfc4 gfs2: fix use-after-free in trans_drain
    419ebba40dbf cifs: ask for more credit on async read/write code paths
    b8bfda6e08b8 gianfar: fix jumbo packets+napi+rx overrun crash
    2d0fba5a2e9f sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
    81b1a8f14436 net: intel: iavf: fix error return code of iavf_init_get_resources()
    5f86016bdfa7 net: tehuti: fix error return code in bdx_probe()
    71b996c9b883 blk-cgroup: Fix the recursive blkg rwstat
    b171748b7953 scsi: ufs: ufs-qcom: Disable interrupt in reset path
    028210541b3c ixgbe: Fix memleak in ixgbe_configure_clsu32
    4dc123500c3b ALSA: hda: ignore invalid NHLT table
    18f27fc6bcc2 Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
    f8f6190094a3 atm: lanai: dont run lanai_dev_close if not open
    6f6e45947572 atm: eni: dont release is never initialized
    75e967a04d37 powerpc/4xx: Fix build errors from mfdcr()
    4a104e4d4d9d net: fec: ptp: avoid register access when ipg clock is disabled
    50c75680bdce net: stmmac: fix dma physical address of descriptor when display ring
    a9daba140178 mt76: fix tx skb error handling in mt76_dma_tx_queue_skb
    efb12c03fcd0 mm/memcg: set memcg when splitting page
    6143a1d193e9 mm/memcg: rename mem_cgroup_split_huge_fixup to split_page_memcg and add nr_pages argument
    856cd02bbdd4 Linux 5.10.26
    de1126ea44bb cifs: Fix preauth hash corruption
    21536d7b7e6f x86/apic/of: Fix CPU devicetree-node lookups
    95247d24c4d4 genirq: Disable interrupts for force threaded handlers
    80b2787789af firmware/efi: Fix a use after bug in efi_mem_reserve_persistent
    47ba0d4d2afb efi: use 32-bit alignment for efi_guid_t literals
    e5154ea8e48f static_call: Fix static_call_update() sanity check
    51ccdd25d7e5 MAINTAINERS: move the staging subsystem to lists.linux.dev
    4c9a74798ef1 MAINTAINERS: move some real subsystems off of the staging mailing list
    35ecf664fd6c ext4: fix rename whiteout with fast commit
    e8fa569465e5 ext4: fix potential error in ext4_do_update_inode
    6163a0662b79 ext4: do not try to set xattr into ea_inode if value is empty
    d130b802f98a ext4: stop inode update before return
    258db8e6ffdc ext4: find old entry again if failed to rename whiteout
    9689ecadf8a7 ext4: fix error handling in ext4_end_enable_verity()
    e4ea2a28d068 efivars: respect EFI_UNSUPPORTED return from firmware
    a548acde9608 x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall()
    97c608959c27 x86: Move TS_COMPAT back to asm/thread_info.h
    4523e648b7b7 kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data()
    0e245256e34d x86/ioapic: Ignore IRQ2 again
    4fdf5f4ba61f perf/x86/intel: Fix unchecked MSR access error caused by VLBR_EVENT
    514ea597be8e perf/x86/intel: Fix a crash caused by zero PEBS status
    be1f58e58f76 PCI: rpadlpar: Fix potential drc_name corruption in store functions
    6d4e1fed18d0 counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register
    cbc4c42dbec0 counter: stm32-timer-cnt: fix ceiling write max value
    dcdde25844d4 iio: hid-sensor-temperature: Fix issues of timestamp channel
    7de97c4bba51 iio: hid-sensor-prox: Fix scale not correct issue
    fd8efe16d867 iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
    b477c121a287 iio: adc: adi-axi-adc: add proper Kconfig dependencies
    d894acab2844 iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
    533ee1e28455 iio: adc: ab8500-gpadc: Fix off by 10 to 3
    f8bfbd3917fa iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
    06c281c23ace iio: adis16400: Fix an error code in adis16400_initial_setup()
    531231485844 iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
    3ce2e7b2d360 iio:adc:stm32-adc: Add HAS_IOMEM dependency
    6c3c90058b95 thunderbolt: Increase runtime PM reference count on DP tunnel discovery
    f4ca082e3f59 thunderbolt: Initialize HopID IDAs in tb_switch_alloc()
    c7bb96a37dd2 usb: dwc3: gadget: Prevent EP queuing while stopping transfers
    395d273f2998 usb: dwc3: gadget: Allow runtime suspend if UDC unbinded
    8b8a84234c38 usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy-
    0ea3fb15a87e usb: typec: Remove vdo[3] part of tps6598x_rx_identity_reg struct
    0f882bcc6407 usb: gadget: configfs: Fix KASAN use-after-free
    22e85a6a35cc usbip: Fix incorrect double assignment to udc->ud.tcp_rx
    7046e5f7a2f6 usb-storage: Add quirk to defeat Kindle's automatic unload
    5a62d6d7afa0 powerpc: Force inlining of cpu_has_feature() to avoid build failure
    2bdef2b476e2 gfs2: bypass signal_our_withdraw if no journal
    a602e830ddaf gfs2: move freeze glock outside the make_fs_rw and _ro functions
    49787b1bba1f gfs2: Add common helper for holding and releasing the freeze glock
    db37238f3452 regulator: pca9450: Clear PRESET_EN bit to fix BUCK1/2/3 voltage setting
    cfbff8bd9efc regulator: pca9450: Enable system reset on WDOG_B assertion
    775691b94ce7 regulator: pca9450: Add SD_VSEL GPIO for LDO5
    9392b8219b62 net: bonding: fix error return code of bond_neigh_init()
    76f496681d6a io_uring: clear IOCB_WAITQ for non -EIOCBQUEUED return
    3c08f772ad0d io_uring: don't attempt IO reissue from the ring exit path
    40345b9c9d90 drm/amd/pm: fulfill the Polaris implementation for get_clock_by_type_with_latency()
    e8e99acd0830 s390/qeth: schedule TX NAPI on QAOB completion
    f3f6765fd0e8 ibmvnic: remove excessive irqsave
    96823c1e9997 media: cedrus: h264: Support profile controls
    1c20e9040f49 io_uring: fix inconsistent lock state
    e1a69079edc4 iwlwifi: Add a new card for MA family
    e7f6ebde21cf drm/amd/display: turn DPMS off on connector unplug
    559b842a64ff MIPS: compressed: fix build with enabled UBSAN
    8545519b1f51 net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ8081
    33cafc7952a4 i40e: Fix endianness conversions
    41d4c889b274 powerpc/sstep: Fix darn emulation
    8a335142f1c5 powerpc/sstep: Fix load-store and update emulation
    8b4a797e86a0 RDMA/mlx5: Allow creating all QPs even when non RDMA profile is used
    bb38c1c03384 scsi: isci: Pass gfp_t flags in isci_port_bc_change_received()
    d74238028a11 scsi: isci: Pass gfp_t flags in isci_port_link_up()
    d9f5efd1afc4 scsi: isci: Pass gfp_t flags in isci_port_link_down()
    1eda358e37e5 scsi: mvsas: Pass gfp_t flags to libsas event notifiers
    58bdc321beb5 scsi: libsas: Introduce a _gfp() variant of event notifiers
    18c3c04e8e53 scsi: libsas: Remove notifier indirection
    29c5b80327b7 scsi: pm8001: Neaten debug logging macros and uses
    c4186c00adc1 scsi: pm80xx: Fix pm8001_mpi_get_nvmd_resp() race condition
    3e4b3770744d scsi: pm80xx: Make running_req atomic
    6075c84a98ce scsi: pm80xx: Make mpi_build_cmd locking consistent
    d802672c7f00 module: harden ELF info handling
    e2c8978a75e0 module: avoid *goto*s in module_sig_check()
    8587715b65fa module: merge repetitive strings in module_sig_check()
    c02a33f0fd28 RDMA/rtrs: Fix KASAN: stack-out-of-bounds bug
    904a52dd9e50 RDMA/rtrs: Introduce rtrs_post_send
    9e97c211b701 RDMA/rtrs-srv: Jump to dereg_mr label if allocate iu fails
    5abee8b1fc4f RDMA/rtrs: Remove unnecessary argument dir of rtrs_iu_free
    4ebd8f0c82a5 bpf: Declare __bpf_free_used_maps() unconditionally
    0e44f1e18398 serial: stm32: fix DMA initialization error handling
    5f8659adf7a2 tty: serial: stm32-usart: Remove set but unused 'cookie' variables
    20c0bd2b6579 ibmvnic: serialize access to work queue on remove
    f8ba6913c40a ibmvnic: add some debugs
    b4be6e6e2696 nvme-rdma: fix possible hang when failing to set io queues
    b3901ceb120d gpiolib: Assign fwnode to parent's if no primary one provided
    c5fe922eaf1a counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
    f854abe46b0e RISC-V: correct enum sbi_ext_rfence_fid
    359d8ff40a09 scsi: ufs: ufs-mediatek: Correct operator & -> &&
    38089ba4b20c scsi: myrs: Fix a double free in myrs_cleanup()
    eb9d08b34351 scsi: lpfc: Fix some error codes in debugfs
    e95c0d43509c riscv: Correct SPARSEMEM configuration
    04eb2b2fa12f cifs: fix allocation size on newly created files
    bb2e41e65c33 kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again
    72714560fbc7 net/qrtr: fix __netdev_alloc_skb call
    6cae8095490c io_uring: ensure that SQPOLL thread is started for exit
    a7acb614287b pstore: Fix warning in pstore_kill_sb()
    5f7d470696ad i915/perf: Start hrtimer only if sampling the OA buffer
    cb14e99e886f sunrpc: fix refcount leak for rpc auth modules
    2ea2d3a79800 vhost_vdpa: fix the missing irq_bypass_unregister_producer() invocation
    3e5a1bb6ea20 vfio: IOMMU_API should be selected
    c2219627091c svcrdma: disable timeouts on rdma backchannel
    982b899ba672 NFSD: fix dest to src mount in inter-server COPY
    800369d61add NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
    12628e7779f8 nfsd: don't abort copies early
    5ea0aa29ad4b nfsd: Don't keep looking up unhashed files in the nfsd file cache
    628f39a57a46 nvmet: don't check iosqes,iocqes for discovery controllers
    b4f911e3a982 nvme-tcp: fix a NULL deref when receiving a 0-length r2t PDU
    7089cdfce32f nvme-tcp: fix possible hang when failing to set io queues
    a83e5c6c35fa nvme-tcp: fix misuse of __smp_processor_id with preemption enabled
    fd9e2b999740 nvme: fix Write Zeroes limitations
    2d202085d2dd ALSA: usb-audio: Fix unintentional sign extension issue
    64195f022ae8 afs: Stop listxattr() from listing "afs.*" attributes
    78ba4793b084 afs: Fix accessing YFS xattrs on a non-YFS server
    07fa872bf79c ASoC: simple-card-utils: Do not handle device clock
    d1ab87e31761 ASoC: qcom: lpass-cpu: Fix lpass dai ids parse
    1ae54de79fba ASoC: codecs: wcd934x: add a sanity check in set channel map
    03079a0f1bf7 ASoC: qcom: sdm845: Fix array out of range on rx slim channels
    26b08c08a5f3 ASoC: qcom: sdm845: Fix array out of bounds access
    47a6cadb6cfd ASoC: SOF: intel: fix wrong poll bits in dsp power down
    b94b71a7a6f6 ASoC: SOF: Intel: unregister DMIC device on probe error
    4da5a9a73c4c ASoC: Intel: bytcr_rt5640: Fix HP Pavilion x2 10-p0XX OVCD current threshold
    118cfdc770cd ASoC: fsl_ssi: Fix TDM slot setup for I2S mode
    223dc51caa51 drm/amd/display: Correct algorithm for reversed gamma
    4daa70a80c68 vhost-vdpa: set v->config_ctx to NULL if eventfd_ctx_fdget() fails
    49ca3100fbaf vhost-vdpa: fix use-after-free of v->config_ctx
    2c8d6a9474f0 btrfs: fix slab cache flags for free space tree bitmap
    38ffe9eaeb7c btrfs: fix race when cloning extent buffer during rewind of an old root
    78486cf1f31e zonefs: fix to update .i_wr_refcnt correctly in zonefs_open_zone()
    9c1c5e81a002 zonefs: prevent use of seq files as swap file
    dfbdbf0f359a zonefs: Fix O_APPEND async write handling
    38c74f2f2318 s390/pci: fix leak of PCI device structure
    075e3034740c s390/pci: remove superfluous zdev->zbus check
    bd37d9b9c4fb s390/pci: refactor zpci_create_device()
    015916ca0266 s390/vtime: fix increased steal time accounting
    5c0a3a331dc5 Revert "PM: runtime: Update device status before letting suppliers suspend"
    68525e424175 ALSA: hda/realtek: fix mute/micmute LEDs for HP 850 G8
    f086deab2c64 ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8
    7b00df1894c6 ALSA: hda/realtek: fix mute/micmute LEDs for HP 840 G8
    14af4bf8d481 ALSA: hda/realtek: Apply headset-mic quirks for Xiaomi Redmibook Air
    4c698a3b8fb7 ALSA: hda: generic: Fix the micmute led init state
    e6c7cdf0baf3 ALSA: hda/realtek: apply pin quirk for XiaomiNotebook Pro
    cd7b17ba8e4d ALSA: dice: fix null pointer dereference when node is disconnected
    422806f8d289 spi: cadence: set cqspi to the driver_data field of struct device
    f8d5ced57b07 ASoC: ak5558: Add MODULE_DEVICE_TABLE
    064a7289b445 ASoC: ak4458: Add MODULE_DEVICE_TABLE

(From OE-Core rev: cbb5c4392c63f896f204c0c15b0cfa7a364feed2)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
94afd49286 linux-yocto/5.4: update to v5.4.109
Updating linux-yocto/5.4 to the latest korg -stable release that comprises
the following commits:

    4e85f8a712cd Linux 5.4.109
    057dd3e6986b xen-blkback: don't leak persistent grants from xen_blkbk_map()
    ce934540ff09 can: peak_usb: Revert "can: peak_usb: add forgotten supported devices"
    2638770e793b ext4: add reclaim checks to xattr code
    92b9e3deffb6 mac80211: fix double free in ibss_leave
    ae23957bd1fb net: qrtr: fix a kernel-infoleak in qrtr_recvmsg()
    f7a962970001 net: dsa: b53: VLAN filtering is global to all users
    f866d1fa48e4 can: dev: Move device back to init netns on owning netns delete
    dfd6627c83dd x86/mem_encrypt: Correct physical address calculation in __set_clr_pte_enc()
    f989059cd22a locking/mutex: Fix non debug version of mutex_lock_io_nested()
    1260d8dc2d66 scsi: mpt3sas: Fix error return code of mpt3sas_base_attach()
    d31747705762 scsi: qedi: Fix error return code of qedi_alloc_global_queues()
    063c3cfb264b scsi: Revert "qla2xxx: Make sure that aborted commands are freed"
    fdc61af371db block: recalculate segment count for multi-segment discards correctly
    8ce9f6efa655 perf auxtrace: Fix auxtrace queue conflict
    bc0b1a2036dd ACPI: scan: Use unique number for instance_no
    b382f9d61609 ACPI: scan: Rearrange memory allocation in acpi_device_add()
    cc578c3e612b Revert "netfilter: x_tables: Update remaining dereference to RCU"
    19a5fb4ceada netfilter: x_tables: Use correct memory barriers.
    c46cd29b89da Revert "netfilter: x_tables: Switch synchronization to RCU"
    e74d46e69a45 bpf: Don't do bpf_cgroup_storage_set() for kuprobe/tp programs
    01398e024ba6 RDMA/cxgb4: Fix adapter LE hash errors while destroying ipv6 listening server
    78aafa0240bc PM: EM: postpone creating the debugfs dir till fs_initcall
    f54b10114d63 net/mlx5e: Fix error path for ethtool set-priv-flag
    fa4addf30c2c PM: runtime: Defer suspending suppliers
    c82d289fe958 arm64: kdump: update ppos when reading elfcorehdr
    8bf90e000c10 drm/msm: fix shutdown hook in case GPU components failed to bind
    4fda26d2f7e1 libbpf: Fix BTF dump of pointer-to-array-of-struct
    4f71aacd6c92 selftests: forwarding: vxlan_bridge_1d: Fix vxlan ecn decapsulate value
    4ecf6d486e45 net: stmmac: dwmac-sun8i: Provide TX and RX fifo sizes
    1f103ca31c51 r8152: limit the RX buffer size of RTL8153A for USB 2.0
    048d0bf8ad19 net: cdc-phonet: fix data-interface release on probe failure
    ecc62c3b1b57 octeontx2-af: fix infinite loop in unmapping NPC counter
    7e9a48ceccae octeontx2-af: Fix irq free in rvu teardown
    e15823801229 libbpf: Use SOCK_CLOEXEC when opening the netlink socket
    7722378c4a0a nfp: flower: fix pre_tun mask id allocation
    060deac22f87 mac80211: fix rate mask reset
    52cc7bad1275 can: m_can: m_can_rx_peripheral(): fix RX being blocked by errors
    059c1996017d can: m_can: m_can_do_rx_poll(): fix extraneous msg loss warning
    e484616a9600 can: c_can: move runtime PM enable/disable to c_can_platform
    4f71965ee897 can: c_can_pci: c_can_pci_remove(): fix use-after-free
    42e49b3aa536 can: kvaser_pciefd: Always disable bus load reporting
    e3ca9fbfcdf5 can: flexcan: flexcan_chip_freeze(): fix chip freeze for missing bitrate
    fb4a6ac4851a can: peak_usb: add forgotten supported devices
    0a8046daba17 tcp: relookup sock for RST+ACK packets handled by obsolete req sock
    67319a8df5d3 netfilter: ctnetlink: fix dump of the expect mask attribute
    c4dd0b36cce4 selftests/bpf: Set gopt opt_class to 0 if get tunnel opt failed
    9d06cabe3bf4 ftgmac100: Restart MAC HW once
    81c591299da3 net/qlcnic: Fix a use after free in qlcnic_83xx_get_minidump_template
    d00db63edd0a e1000e: Fix error handling in e1000_set_d0_lplu_state_82571
    9f02a5658413 e1000e: add rtnl_lock() to e1000_reset_task
    71fa8051f2f4 igc: Fix Supported Pause Frame Link Setting
    35d8a780fa2b igc: Fix Pause Frame Advertising
    da8af444b325 net: dsa: bcm_sf2: Qualify phydev->dev_flags based on port
    267b79a11046 net: sched: validate stab values
    76909a298ebb macvlan: macvlan_count_rx() needs to be aware of preemption
    c6b6c7a92fe5 ipv6: fix suspecious RCU usage warning
    40fa14bbe3fe net/mlx5e: Don't match on Geneve options in case option masks are all zero
    e64e327c7fab libbpf: Fix INSTALL flag order
    53f1483984bf veth: Store queue_mapping independently of XDP prog presence
    f259a7fdeb12 bus: omap_l3_noc: mark l3 irqs as IRQF_NO_THREAD
    e6587d142d02 dm ioctl: fix out of bounds array access when no devices
    7b6944f18cec dm verity: fix DM_VERITY_OPTS_MAX value
    752589cd4ea8 integrity: double check iint_cache was initialized
    f3404a677770 ARM: dts: at91-sama5d27_som1: fix phy address to 7
    1815a24b9483 arm64: dts: ls1043a: mark crypto engine dma coherent
    7447c05e06c4 arm64: dts: ls1012a: mark crypto engine dma coherent
    b6f866bbf7ca arm64: dts: ls1046a: mark crypto engine dma coherent
    e980bd1f7f60 ACPI: video: Add missing callback back for Sony VPCEH3U1E
    431aaecd24ac gcov: fix clang-11+ support
    4748b6d56efe kasan: fix per-page tags for non-page_alloc pages
    037ecab65eb6 squashfs: fix xattr id and id lookup sanity checks
    79b8814d6765 squashfs: fix inode lookup sanity checks
    5b1abfe7d620 platform/x86: intel-vbtn: Stop reporting SW_DOCK events
    599cbcda68ee netsec: restore phy power state after controller reset
    8aa97ae0f5d9 ia64: fix ptrace(PTRACE_SYSCALL_INFO_EXIT) sign
    cb1504b30b6f ia64: fix ia64_syscall_get_set_arguments() for break-based syscalls
    37732ea82e09 block: Suppress uevent for hidden device when removed
    a2d07d077eb3 nfs: we don't support removing system.nfs4_acl
    eed4e1abc997 nvme-pci: add the DISABLE_WRITE_ZEROES quirk for a Samsung PM1725a
    5fc284999c4a nvme-fc: return NVME_SC_HOST_ABORTED_CMD when a command has been aborted
    526abcb05c61 nvme: add NVME_REQ_CANCELLED flag in nvme_cancel_request()
    8cdbee05b83f drm/radeon: fix AGP dependency
    5a0e3fcbeb5a drm/amdgpu: fb BO should be ttm_bo_type_device
    fc8e4af4c3ef drm/amd/display: Revert dram_clock_change_latency for DCN2.1
    6292d84c8af4 regulator: qcom-rpmh: Correct the pmic5_hfsmps515 buck
    c45182707277 u64_stats,lockdep: Fix u64_stats_init() vs lockdep
    f59604786a48 habanalabs: Call put_pid() when releasing control device
    694761bfdd76 sparc64: Fix opcode filtering in handling of no fault loads
    11efb0cda655 irqchip/ingenic: Add support for the JZ4760
    69423418c5eb cifs: change noisy error message to FYI
    981ba9c9a529 atm: idt77252: fix null-ptr-dereference
    6b2844ad7b17 atm: uPD98402: fix incorrect allocation
    40d0a9297f83 net: davicom: Use platform_get_irq_optional()
    b90de232a806 net: wan: fix error return code of uhdlc_init()
    0da0f199e767 net: hisilicon: hns: fix error return code of hns_nic_clear_all_rx_fetch()
    ab60e4f5eb3a NFS: Correct size calculation for create reply length
    785be28d360f nfs: fix PNFS_FLEXFILE_LAYOUT Kconfig default
    d605afb11945 gpiolib: acpi: Add missing IRQF_ONESHOT
    f6c1da94ddb3 cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
    1d2c9669135f cifs: ask for more credit on async read/write code paths
    ec7ce1e337ec gianfar: fix jumbo packets+napi+rx overrun crash
    7ef7d296b154 sun/niu: fix wrong RXMAC_BC_FRM_CNT_COUNT count
    d25f579ec557 net: intel: iavf: fix error return code of iavf_init_get_resources()
    d4dd6de6fc90 net: tehuti: fix error return code in bdx_probe()
    e224a789d4a6 ixgbe: Fix memleak in ixgbe_configure_clsu32
    537653a0698b ALSA: hda: ignore invalid NHLT table
    bd272f11a9d4 Revert "r8152: adjust the settings about MAC clock speed down for RTL8153"
    7a12167636bf atm: lanai: dont run lanai_dev_close if not open
    fb0067fcda6a atm: eni: dont release is never initialized
    614a4ba66854 powerpc/4xx: Fix build errors from mfdcr()
    45c1ca3e5784 net: fec: ptp: avoid register access when ipg clock is disabled
    d0f5726ab1df hugetlbfs: hugetlb_fault_mutex_hash() cleanup
    b90344f7d600 Linux 5.4.108
    819eb4d7a85e cifs: Fix preauth hash corruption
    cf113ffd620d x86/apic/of: Fix CPU devicetree-node lookups
    288be0ed9b36 genirq: Disable interrupts for force threaded handlers
    b8ebe853abca firmware/efi: Fix a use after bug in efi_mem_reserve_persistent
    31e17169a116 efi: use 32-bit alignment for efi_guid_t literals
    886dbe0e338b ext4: fix potential error in ext4_do_update_inode
    2f65ae3a7ee3 ext4: do not try to set xattr into ea_inode if value is empty
    474aab448436 ext4: find old entry again if failed to rename whiteout
    de2e1603c125 x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall()
    076b60af926b x86: Move TS_COMPAT back to asm/thread_info.h
    27ddd2b59045 kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data()
    f546965c3aac x86/ioapic: Ignore IRQ2 again
    da326ba3b84a perf/x86/intel: Fix a crash caused by zero PEBS status
    51a2b19b554c PCI: rpadlpar: Fix potential drc_name corruption in store functions
    796fc331c3cf counter: stm32-timer-cnt: fix ceiling write max value
    850ca1c0130a iio: hid-sensor-temperature: Fix issues of timestamp channel
    31a2e804ad4a iio: hid-sensor-prox: Fix scale not correct issue
    3fa27c8749cf iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
    4458ae8d4001 iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
    a605c095bb46 iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
    87163fbba6d2 iio: adis16400: Fix an error code in adis16400_initial_setup()
    ed0625334b94 iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
    08414c498b4b iio:adc:stm32-adc: Add HAS_IOMEM dependency
    b0a595269e62 usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy-
    4baade6fd6e5 usb: gadget: configfs: Fix KASAN use-after-free
    c92aebf2b0f3 USB: replace hardcode maximum usb string length by definition
    f89366164693 usbip: Fix incorrect double assignment to udc->ud.tcp_rx
    251949ec9d95 usb-storage: Add quirk to defeat Kindle's automatic unload
    81b56afc2841 nvme-rdma: fix possible hang when failing to set io queues
    b891d41d01f4 counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
    86fd6c0d22a5 scsi: myrs: Fix a double free in myrs_cleanup()
    eb46392d329a scsi: lpfc: Fix some error codes in debugfs
    1f925558e3f1 riscv: Correct SPARSEMEM configuration
    7db8f3be034d kbuild: Fix <linux/version.h> for empty SUBLEVEL or PATCHLEVEL again
    1dad483b1ebc net/qrtr: fix __netdev_alloc_skb call
    f0b09d547713 sunrpc: fix refcount leak for rpc auth modules
    3c57ea09365f vfio: IOMMU_API should be selected
    b439aac77360 svcrdma: disable timeouts on rdma backchannel
    d1ae8f16c223 NFSD: Repair misuse of sv_lock in 5.10.16-rt30.
    4c5fab560cb0 nfsd: Don't keep looking up unhashed files in the nfsd file cache
    49545a7b8b30 nvmet: don't check iosqes,iocqes for discovery controllers
    cf7d7728d8a5 nvme-tcp: fix a NULL deref when receiving a 0-length r2t PDU
    36a4f9164cf6 nvme-tcp: fix possible hang when failing to set io queues
    81c1dbe1070c nvme: fix Write Zeroes limitations
    6712b7fcef9d afs: Stop listxattr() from listing "afs.*" attributes
    c71b93323f37 ASoC: simple-card-utils: Do not handle device clock
    e029384c1835 ASoC: SOF: intel: fix wrong poll bits in dsp power down
    626a484d1ec2 ASoC: SOF: Intel: unregister DMIC device on probe error
    db3d39bcd66a ASoC: fsl_ssi: Fix TDM slot setup for I2S mode
    24c553371add btrfs: fix slab cache flags for free space tree bitmap
    5b3b99525c4f btrfs: fix race when cloning extent buffer during rewind of an old root
    a3e438db75fb ARM: 9044/1: vfp: use undef hook for VFP support detection
    a47b395d441d ARM: 9030/1: entry: omit FP emulation for UND exceptions taken in kernel mode
    34794bc0e768 s390/vtime: fix increased steal time accounting
    ba4342094d71 Revert "PM: runtime: Update device status before letting suppliers suspend"
    62cf220630a0 ALSA: hda/realtek: Apply headset-mic quirks for Xiaomi Redmibook Air
    613fd762d188 ALSA: hda: generic: Fix the micmute led init state
    5a5f85603e6e ALSA: hda/realtek: apply pin quirk for XiaomiNotebook Pro
    4d35c01a3645 ALSA: dice: fix null pointer dereference when node is disconnected
    d0fc0e7bfda2 ASoC: ak5558: Add MODULE_DEVICE_TABLE
    a592a4c2889e ASoC: ak4458: Add MODULE_DEVICE_TABLE

(From OE-Core rev: a6aecb7e564f067b786cdec5b2eedd7fc3f2f13d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Bruce Ashfield
0f9ce18071 kern-tools: add dropped options to audit output
The rewrite of the configuration audit code dropped the ability to
generate warnings for configuration options that didn't make it into
the final .config.

We integrated the following commit to restore those warnings:

    symbol_why: classify based on config.queue hints

    The config.queue has typing hints inline with each fragment,
    we should be using them to further classify the options, and
    not only relying on the special hardware.cfg, etc, files that
    are part of the meta data

    We also should be checking for options that were set to a
    non 'no' value, and that don't make it into the final .config,
    since without that check it means we are missing some warnings.

(From OE-Core rev: f5e8a8c52386317607e333e55f710bf0393186c8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-21 22:43:58 +01:00
Michael Halstead
6204a3f5f4 releases: update to include 3.3
Adding Hardknott to documentation switcher and release list.

(From yocto-docs rev: d1578f6ae84d0c44c63632bd5f3146653f1310a3)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 14:04:56 +01:00
Richard Purdie
8c5b67bec2 bitbake: doc/user-manual-fetching: Remove basepath unpack parameter docs
The code for this was removed in 2016 in commit
e659a3b0c2771679057ee3e13cd42e6c62383ff2. Nobody seems to have missed it
so remove the documentation so we match the code.

[YOCTO #13449]

(Bitbake rev: 76bf42ea41a28b19d0377c2e548b0a59119fdf67)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:57:51 +01:00
Niels Avonds
d12a06cd49 bitbake: fetch/gitsm: Fix crash when using git LFS and submodules
Gitsm fetcher crashes when cloning a repository that contains LFS files.
This happens because the unpack method is called during download, but the
submodules have not been downloaded yet at this point.

This issue was introduced in this
commit: 977b7268bf

[YOCTO #14283]

(Bitbake rev: 26caedc4d2e9b5a0f1d57f9291754a7f6c5e437e)

Signed-off-by: Niels Avonds <niels@codebits.be>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:57:50 +01:00
Richard Purdie
6584e59ff0 bitbake: bitbake-server: Remove now unneeded code
With the previous patch this code is now pointless as we'd have hit a TypeError
before now.

(Bitbake rev: 6301a99055c79d89b715f72182cd0ef1b781b89a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:57:50 +01:00
Ross Burton
01066a584a bitbake: bitbake-server: ensure server timeout is a float
bitbake-server is spawned by process.py and passes the arguments it is
given to ProcessServer.  There's some type confusion here:

bitbake-server is called with a string representation of the timeout,
which may be None.  If the timeout is not set, pass 0 instead of None.

Inside bitbake-server a ProcessServer is created which expects the
timeout to be a float not a string, so always float() the value.

[ YOCTO #14350 ]

(Bitbake rev: c93ae1f861208f6d39fd15c84fbcd0e2b54331f5)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:57:50 +01:00
Trevor Gamblin
f39676bf56 nettle: upgrade 3.7.1 -> 3.7.2
Version 3.7.2 includes a fix for CVE-2021-20305.

(From OE-Core rev: 29f0ef2e32a9b55d8271fde240a4469070d57729)

Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Richard Purdie
ad2206b3fa sanity: Further improve directory sanity tests
Add tests to ensure COREBASE/TMPDIR doon't contain ".." as this causes
hard to understand build failures.

Also rework the code to test TMPDIR and COREBASE for all the patterns
since they may be set differently and one may contain problematic
characters.

[YOCTO #14111]

(From OE-Core rev: f22a6e46d003aba516a9a0cc7f94eae678d846b7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
1e6a42e923 ca-certificates: Fix openssl runtime cert dependencies
With commit dc778c70449ee5401b5a24ad18b22b88338c47c5, dependency was
moved to openssl-bin which in itself was a fine change, but dropping
dependency on openssl too should have been kept along, dropping this
meant that openssl binary wont be able to validate secure connections as
the CApath files wont be installed, which infact are required for
openssl bins to work, following call e.g. fails

$ openssl s_client -connect google.com:443

....
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 256 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 20 (unable to get local issuer certificate)
....

The local issuer certs are not found in default location
/usr/lib/ssh-1.1/certs, this dir and its content is installed by openssl package
therefore re-add the dependency on openssl

(From OE-Core rev: eaf377315efc73d6ffe361372a873918b3bb3bf5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Alexander Kanavin
9fc863bcdb weston: use standalone xwayland instead of outdated xserver-xorg version
(From OE-Core rev: e933962061ac3fa1c0c1069b8075a5f7645001c4)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Alexander Kanavin
07d33c8ec8 xwayland: add a standalone recipe
Please see here for the rationale for splitting XWayland out of
main xserver-xorg tree:
https://fedoraproject.org/wiki/Changes/XwaylandStandalone

Release announcement:
https://lists.x.org/archives/xorg-announce/2021-March/003076.html

(From OE-Core rev: 1533d913af0aac5524d2f9ebacaeafb5891124e2)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Alexander Kanavin
be76f499ad maintainers.inc: add libmicrohttpd entry
(From OE-Core rev: 3e588abaa081b2de238bbeead867204ff485e5ba)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Alexander Kanavin
76a9b01ff3 libmicrohttpd: add a recipe from meta-oe
This is required to enable debuginfod in elfutils.

(From OE-Core rev: e6035099772a0ccbb4835c0c782317c19527876c)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Alexander Kanavin
5aa20fe1b9 scripts/oe-debuginfod: correct several issues
Particularly:
- nesting subprocess.run() inside subprocess.check_output() does not work at all.
How was this tested?
- -R and -U options can be combined; no need to separate the invocations based
on packaging format
- both exception handlers are unnecessary; we can simply print the hint if
invocation did not succeed
- to run debuginfod from its own sysroot, '-c addto_recipe_sysroot' for elfutils-native
must be executed

(From OE-Core rev: 9e57bf636ec63e74d56f1ac48b5a27c5b80f1877)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Randy MacLeod
193251b8d0 oe-time-dd-test.sh: increase timeout to 15 sec
With the previous timeout of 5 seconds, there would be
builds such as:
   https://autobuilder.yocto.io/pub/non-release/20210417-13/
which produced 17 files with top output with top running 454 times
and that's a bit too much data to analyze for each run. By
increasing the timeout, we'll find the worse problems
first, fix them and then we can decrease the timeout if needed.

(From OE-Core rev: 92b29a09b4c442597d212337b785afb76129ac7c)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
c226e49cd5 gstreamer1.0-plugins-bad: Add packageconfigs for hls crypto backends
Use openssl by default

(From OE-Core rev: 4959563e59e0a829b9526009b14f71500624cced)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
268888f484 glib-networking: Prefer openssl backend instead of gnutls
Change the defaults to use openSSL

(From OE-Core rev: e63a422a407ed941a0d31522a8016d4c784bd87b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
1ceb808fb7 libpsl: Add config knobs for runtime/builtin conversion choices
Use libicu by default

(From OE-Core rev: 20fc11919e2cec656685dab3fad07862b0b90610)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
96b4ed1e93 curl: Use openssl backend
use openssl instead of gnutls

(From OE-Core rev: c39452bf65a8baa0eac15e6c4d39cc0f88e089d0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
7bfe0a4e7d wpa-supplicant: Enable openssl
Use openSSL for TLS/SSL implementation

(From OE-Core rev: 2bd4702d68ef79320c8194934568c56b4cc87aa3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
2d07f91008 cups: Turn gnutls into a packageconfig knob
Disable it by default

(From OE-Core rev: 438d00af14a0cc108a25b36bf37502f1383865be)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Khem Raj
397f7130e5 epiphany: Add missing dependency on gnutls
This was being pulled in by other dependencies thus far

(From OE-Core rev: de944399fa3dadecd3faa5054145fe0cd7adbbf7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Robert Joslyn
b129f2edda btrfs-tools: Try to follow style guide
Cosmetic changes to better follow the style guide.

(From OE-Core rev: e478013830700580c25877ab55b70ff73072bb81)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Robert Joslyn
769004c34a btrfs-tools: Add PACKAGECONFIG options
Add options to make it easier to control which features are enabled. All
of these default to enabled by upstream, so keep them enabled to
maintain previous behavior.

The convert option also supports reiserfs, but no recipes exist in the
layer index. Limit the option to ext filesystems until someone cares
enough to make reiserfs recipes.

Remove acl and attr from DEPENDS, as they do not apper to be needed. Add
zlib since it is required.

(From OE-Core rev: 7452cab85b65ce4b6e8309ab85ad40555c24435f)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Robert Joslyn
46b49025f3 btrfs-tools: Update to 5.11.1
Update licensing, as libtrfsutil is under LGPLv3+. Note that libtrfsutil
is in the process of being relicensed to LGPLv2.1+:
	https://github.com/kdave/btrfs-progs/issues/323

(From OE-Core rev: 0f75bb0e4d99c658302e28435d055b4f99dcc247)

Signed-off-by: Robert Joslyn <robert.joslyn@redrectangle.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Oleksandr Kravchuk
bd2c93374e autoconf-archive: update to 2021.02.19
(From OE-Core rev: f7417480667e7a06206239e3aac48dd1149d42fb)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Wes Lindauer
ada30f1091 oeqa/runtime/cases: Only disable/enable for current boot
Previously doing a stop/start worked, but using a disable/enable does
not work on a read-only rootfs. Add a --runtime flag to systemctl so
that systemd only modifies the current boot and does not attempt to
write to the filesystem.

This also keeps the test from making a permanent (one could argue
policy) change to the running system being tested. i.e. What if the
image being tested had intentionally disabled the timesyncd service in
preference to using chrony or ntpd? The test shouldn't assume that the
user wants the timesyncd service enabled.

(From OE-Core rev: 43dd83b6a325589368c980a3f17cab90935aaeb0)

Signed-off-by: Wes Lindauer <wesley.lindauer@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-20 13:56:48 +01:00
Richard Purdie
d08d362cf9 bitbake: tinfoil/data_smart: Allow variable history emit() to function remotely
We can't access the emit() function of varhistory currently as the datastore parameter
isn't handled correctly, nor is the output stream. Add a custom wrapper for this
function which handles the two details correctly.

(Bitbake rev: ba0fa084ccd2b1ade96425d158fd31e49e42f286)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Henning Schild
46654e14a5 bitbake: tests/fetch: add tests for local and remote "noshared" git fetching
(Bitbake rev: e0267fe43bda208856af939b17e39beb9e5586c3)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Henning Schild
d274cf0cf8 bitbake: tests/fetch: deduplicate local git testing code
Purely cosmetic change that probably improves the code.

(Bitbake rev: 9c0733f0062f3cf19514c891cc06c9a8e0db429b)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Henning Schild
2cb6ce7788 bitbake: fetch/git: add support for disabling shared clones on unpack
By default the unpacker will create a "shared" clone when cloning from
the DL_DIR to the WORKDIR. This patch introduces an option to control
that behaviour.

Imagine some recipe steps are executed in a namespace that is different
from the one your downloader and unpacker ran in. (chroot) Because a
"shared" clone has an absolute reference to its "alternate" you now
have to make that "alternate" visible in that new namespace (chroot) at
the exact place.

With this patch you can unpack "noshared" and get a stand-alone copy.
This copy will also work if the "alternate" is not visible or existant.

The switch is a global bitbake switch and will affect all git urls.
Build systems that need "noshared" most likely need it for everything
they do with git.

(Bitbake rev: 6ae6f1865d5e666ebc670f70b7401a7b41648102)

Signed-off-by: Henning Schild <henning.schild@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Mikko Rapeli
33650ffdc7 bitbake: bitbake: tests/fetch: remove write protected files too
For some reason several git-annex files in Debian 10 buster
are read-only and removing them with "rm -rf" fails.

Fixes test failures like:

$ bitbake-selftest
...
rm: cannot remove '/tmp/tmpwmfn4w64/download/git2/tmp.tmpwmfn4w64.gitsource/annex/objects/f87/4d5/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855': Permission denied
rm: cannot remove '/tmp/tmpwmfn4w64/download/git2/tmp.tmpwmfn4w64.gitsource/annex/objects/f87/4d5/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855': Permission denied
EE..................................ssss.sssssssssssssss.sssss.......................................................................................................
======================================================================
ERROR: test_shallow_annex (bb.tests.fetch.GitShallowTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/builder/src/base/poky/bitbake/lib/bb/tests/fetch.py", line 1773, in test_shallow_annex
    fetcher, ud = self.fetch_shallow(uri)
  File "/home/builder/src/base/poky/bitbake/lib/bb/tests/fetch.py", line 1541, in fetch_shallow
    bb.utils.remove(ud.clonedir, recurse=True)
  File "/home/builder/src/base/poky/bitbake/lib/bb/utils.py", line 700, in remove
    subprocess.check_call(cmd + ['rm', '-rf'] + glob.glob(path))
  File "/usr/lib/python3.7/subprocess.py", line 347, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['rm', '-rf', '/tmp/tmpwmfn4w64/download/git2/tmp.tmpwmfn4w64.gitsource']' returned non-zero exit status 1.

Also, one "chmod" call was failing since the .git/annex subdirectory doesn't exist so just chmod
the whole temporary directory which should cover any directory name differences between
different git-annex versions. Fixes tests failing after chmod call:

Running 'export PSEUDO_DISABLED=1; unset _PYTHON_SYSCONFIGDATA_NAME; chmod u+w -R /tmp/tmpwmfn4w64/git//.git/annex' in /tmp/tmpwmfn4w64/git/

(Bitbake rev: 7729ef2983c72867e99fad82d671069ba5cb32b2)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Mikko Rapeli
490fb73e34 bitbake: bitbake: tests/fetch: fix test execution without .gitconfig
A CI user validating changes does not have any git push rights or
even a .gitconfig file so fix tests so that they run
by setting the user.name and user.email for the repo before
committing changes.

Fixes errors like:

ERROR: test_that_unpack_throws_an_error_when_the_git_clone_nor_shallow_tarball_exist (bb.tests.fetch.GitShallowTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/builder/src/base/poky/bitbake/lib/bb/tests/fetch.py", line 2055, in test_that_unpack_throws_an_error_when_the_git_clone_nor_shallow_tarball_exist
    self.add_empty_file('a')
  File "/home/builder/src/base/poky/bitbake/lib/bb/tests/fetch.py", line 1562, in add_empty_file
    self.git(['commit', '-m', msg, path], cwd)
  File "/home/builder/src/base/poky/bitbake/lib/bb/tests/fetch.py", line 1553, in git
    return bb.process.run(cmd, cwd=cwd)[0]
  File "/home/builder/src/base/poky/bitbake/lib/bb/process.py", line 184, in run
    raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
bb.process.ExecutionError: Execution of 'git commit -m a a' failed with exit code 128:

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

(Bitbake rev: 57c0811f1ee19b6619f4840a39e01e3cb98c34c4)

Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Richard Purdie
7ea37b9291 bitbake: runqueue: Fix deferred task issues
In a multiconfig situation there are circumstances where firstly, tasks
are deferred when they shouldn't be, then later, tasks can end up as
both covered and not covered.

This patch fixes two related issues. Firstly, the stamp validity checking
is done up front in the build and not reevaulated. When rebuilding the
deferred task list after scenequeue hash change updates, we need therefore
need to check if a task was in notcovered *or* covered when deciding to
defer it. This avoids strange logs like:

NOTE: Running setscene task X of Y (mc:initrfs_guest:/A/alsa-state.bb:do_deploy_source_date_epoch_setscene)
NOTE: Deferring mc:initrfs_guest:/A/alsa-state.bb:do_deploy_source_date_epoch after mc:host:/A/alsa-state.bb:do_deploy_source_date_epoch

where tasks have run but are then deferred.

Since we're recalculating the whole list, we also need to clear it before
iterating to rebuild it. By ensuring covered tasks aren't added to the
deferred queue, the covered + notcovered issue should also be avoided.
in the task deadlock forcing code.

[YOCTO #14342]

(Bitbake rev: 3c8717fb9ee1114dd80fc1ad22ee6c9e312bdac7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:38:22 +01:00
Oleksandr Kravchuk
3f1ccea75e python3-setuptools: update to 56.0.0
(From OE-Core rev: 589a5695befb887f290746a3fc85d291fcb881ff)

Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Alejandro Enedino Hernandez Samaniego
a8ec0d8cfd python3: Upgrade 3.9.2 -> 3.9.4
- Rebased patch 0001-test_locale.py-correct-the-test-output-format
  Maintainer needs to sign CLA and resubmit
- configure now explicitly requires autoconf-archive to be present

(From OE-Core rev: 34cb8f2a2ed36ad929dca9055c96f2f843656b8f)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Alejandro Enedino Hernandez Samaniego
51b7ecfef3 python3: Improve logging, syntax and update deprecated modules to create_manifest
The imp module has een deprecated by upstream python, drop its usage
  (imp.get_tag) in favor of sys.implementation.cache_tag.

Avoid incorrectly getting dependencies for running script and
multiprocessing module.

Improve logging behavior of the create_manifest task:
- Use indentation.
- Logs on temp directory.
- Use a proper debug flag.
- Standarize syntax.

(From OE-Core rev: a3ac339f5b8549a050308ba94c4ef9093f10e303)

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Khem Raj
18007c25bd systemd: Fix build on mips/musl
(From OE-Core rev: b4a0d8799af0a3d1b685dd7200b545fdb2c79d64)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Otavio Salvador
44b37abc66 gstreamer1.0-plugins-base: Use bb.utils.filter to reduce code
(From OE-Core rev: ec3a1cb77131a3cf61fc005c84295d282a2eb80a)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Otavio Salvador
8569ec6e7e gstreamer1.0-plugins-base: Add 'viv-fb' OpenGL Window System option
This adds the 'viv-fb' PACKAGECONFIG option to allow Vivante GPU window
system to work.

(From OE-Core rev: 846564f1a999ea044f580bd61f7bcd527af62dce)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
zhengruoqin
7117390a42 python3-pygobject: upgrade 3.38.0 -> 3.40.1
(From OE-Core rev: 3a274301edc359fba086e36da1272af93d59d178)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
zangrc
a369684a85 maintainers.inc: Modify email address
zangrc.fnst@cn.fujitsu.com -> zangrc.fnst@fujitsu.com
wangmy@cn.fujitsu.com -> wangmy@fujitsu.com

(From OE-Core rev: 6e8562e5b924e6c10625c2e9b660eed89fdfbdf4)

Signed-off-by: Zang Ruochen <zangrc.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
313c21d257 mesa: upgrade 21.0.1 -> 21.0.2
(From OE-Core rev: 58ad359da1b05820ea3dc4ae3f789ccb8991fc32)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
3d389d46d7 go: update SRC_URI to use https protocol
(From OE-Core rev: 2a1eb731ed3bcb049192550e362b771c3a9ea6eb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Yanfei Xu
6a58e0c4ad parselogs: ignore floppy error on qemu-system-x86 at boot stage
We can disable floppy drive by BIOS on a hardware, but an empty floppy
drive is connected by default on qemu-system-x86. Linux usually detect
the device and modprode the matched floppy.ko at the boot stage. Due to
we don't specify a floppy deivce in qemu boot arguments, then the errors
about floppy reading comes out.

It is harmless and normal, so we could ignore this error message on
qemux86.

Seen if kernel-modules is included in the image which pulls in the
relavent kernel module.

https://lists.gnu.org/archive/html/qemu-devel/2021-04/msg01402.html

(From OE-Core rev: 3359f23ee9351c70997d5e0a17d17d1e47d59623)

Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Jon Mason
f349bce59e oeqa/runtime: space needed
Messages are currently being printed as:
	Test requires dropbear, oropenssh-sshd to be installed
but should be
	Test requires dropbear, or openssh-sshd to be installed
Adding the space after the 'or' corrects this.

(From OE-Core rev: 51596e0f8cebe1607ab64ffb018d51e815c0ee4b)

Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
c3bd6ba29a man-pages: upgrade 5.10 -> 5.11
(From OE-Core rev: 40b0cd87c6677220168bfa029e68437b43d51df5)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
e88cb57ea8 mpg123: upgrade 1.26.4 -> 1.26.5
(From OE-Core rev: f277c3bbde507ae1830b1ba6c5ce9c0878f42491)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Mingli Yu
d186f922ef groff: not ship /usr/bin/grap2graph
grap2graph which converts a GRAP diagram into a cropped image fails
to run as below:
 $ grap2graph
 /usr/bin/grap2graph: line 89: convert: command not found
 /usr/bin/grap2graph: warning: falling back to old '-crop 0x0' trim method
 /usr/bin/grap2graph: line 104: convert: command not found
 /usr/bin/grap2graph: line 103: grap: command not found

Considering we don't often need to convert a GRAP diagram into
a cropped image and the recipe ImageMagick which provides convert
command is in meta-oe layer, so don't ship the related files to
avoid the confusion about the above run time error.

(From OE-Core rev: 251be7279a475ee18c0c53fe9795bb37bffc2b45)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
67609b751e icu: upgrade 68.2 -> 69.1
refresh 0001-icu-Added-armeb-support.patch

(From OE-Core rev: 6b22fce3a8a3567c794d0d701ffd14b61ea859c8)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
zhengruoqin
2e95ad1e67 libdrm: upgrade 2.4.104 -> 2.4.105
0001-meson-Also-search-for-rst2man.py.patch
removed since it is included in 2.4.105

(From OE-Core rev: 7871f85a9fe610f600c4234fce38d24808f5a2fd)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
zhengruoqin
9ff374170d librepo: upgrade 1.13.0 -> 1.14.0
(From OE-Core rev: 7017725b14888c9668efcad92bca46b4d1ce9a68)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
zhengruoqin
86f2dff78b libdazzle: upgrade 3.38.0 -> 3.40.0
(From OE-Core rev: 5c184382bd9e952d91993bd29320357360d79cb3)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
fb2be3e462 libcomps: upgrade 0.1.15 -> 0.1.16
refresh 0001-Add-crc32.c-to-sources-list.patch

(From OE-Core rev: f1f66e20eeea7bb1c370991490d34f868cd8a964)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
wangmy
98d10b1c42 libcap: upgrade 2.48 -> 2.49
License-Update: add description of GPL v2.0

(From OE-Core rev: 2a02e5622d07146687f72615e9bcb8612cce03e3)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Richard Purdie
b3092cf96d sanity: Add error check for '%' in build path
It has been reported that '%' characters in build paths break with python
exceptions, probably due to confusion with python string escaping. Whilst it
is probably fixable, showing the user a human readable error is better given
it doesn't work.

[YOCTO #14282]

(From OE-Core rev: 31a3cf78452270131a657be45e76569515cff7ef)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Ross Burton
9230ef121d insane: clean up some more warning messages
(From OE-Core rev: 2abe18682192e7b38b9af5a5043906f2f069648f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Armin Kuster
190a53a942 binutils: rename BRANCH var
If BRANCH is defined in local.conf then that name is used to d/l sources
for binutils. You will get this error:

Fetcher failure for URL: 'git://sourceware.org/git/binutils-gdb.git;branch=hardknott;protocol=git'. Unable to fetch URL from any source.

Rename to SRCBRANCH like glibc has to avoid the more common variable name BRANCH.

(From OE-Core rev: 40d18272cd765420080fffc0e4bde7e3e79982af)

Signed-off-by: Armin Kuster <akuster808@gmail.com>

--
V2]
Remove commented out BINUPV and function

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Kevin Hao
a24d0161f6 Revert "inittab: Add getty launch on hvc0 for qemuppc64"
This reverts commit ed69ef2016.

The console entry has already been added into /etc/inittab based
on the SERIAL_CONSOLES. So drop this redundant entry.

(From OE-Core rev: 633f0c6b74e3caa2bae52ca60c61b811b7b2215d)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Kevin Hao
bfbccfd85f sysvinit-inittab/start_getty: Check /sys for the tty device existence
The hvc tty driver doesn't populate a file like /proc/tty/driver/serial,
so the current implementation of start_getty doesn't work for the hvc
console. By checking the /sys/class/tty/ for the tty device existence,
it should support more console types and also make the codes more simple.

(From OE-Core rev: 670ceef0f6584ece5ce4176610255226a6148570)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Kevin Hao
7d9a47e623 modutils-initscripts: Bail out when no module is installed
Fix the following warning when boot with a core-image-minimal rootfs:
  depmod: can't change directory to 'lib/modules/5.10.25-yocto-standard': No such file or directory

(From OE-Core rev: c34650400182a1104a5fbe03e54f5cea69eb1900)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Mingli Yu
25e1aabea6 libtool: make sure autoheader run before automake
When use automake to generate Makefile.in from Makefile.am, there
comes below race:
 | configure.ac:45: error: required file 'config-h.in' not found

It is because the file config-h.in in updating process by autoheader,
so make automake run after autoheader to avoid the above race.

(From OE-Core rev: 1fc0a4a98e65db7efba8bb5cb835101ea5dd865b)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Gavin Li
55c1c00456 kmod: do not symlink config.guess/config.sub during autoreconf
I was encountering the following race condition on poky:

- automake-native does do_install.
- automake-native does do_populate_sysroot. This hardlinks config.guess
  and config.sub into ${D}.
- kmod-native does do_configure. This runs `autoreconf`, which runs
  `automake --add-missing` (symlinks config.guess/config.sub from
  recipe-sysroot-native to build dir), then runs `gnu-configize` (copies
  _its own_ config.guess/config.sub _on top_ of the already existing
  ones). Since the destinations already had symlinks, the copy would
  overwrite config.guess/config.sub in recipe-sysroot-native, which
  would in turn overwrite the same in ${D} due to being hardlinked.
- automake-native does do_package. The outhash is thus calculated on the
  clobbered config.guess/config.sub files.

With hash equivalency enabled, the different outhash produced a
different unihash, which kept me from reusing sstate between my laptop
and my build server. This race condition would happen only on the build
server (BB_NUMBER_THREADS = 32) but never on my laptop
(BB_NUMBER_THREADS = 6).

I didn't see the --install and --symlink flags being used by any other
recipe, so I removed them, and that fixed the issue.

(From OE-Core rev: 89d675efd633b495daa4a3a57420b9c309497035)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Saul Wold
984dddf288 pango: re-enable ptest
The run-ptest script got accidently dropped from the SRC_URI during
a past update and ptest patch.

(From OE-Core rev: 4479f810c1a3ab2badf4f9610c309bc0e23e2a5f)

Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:26 +01:00
Anthony Bagwell
77ee8ef875 systemd: upgrade 247.4 -> 247.6
(From OE-Core rev: 63fbf39b8aa3d94ca2db719d1a53190045dbb86d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
bdda15e0f3 go: upgrade 1.16.2 -> 1.16.3
This is bugfix release in 1.16 series [1]

[1] https://github.com/golang/go/issues?q=milestone%3AGo1.16.3+label%3ACherryPickApproved

(From OE-Core rev: 84188e7b78aa40b168b526fa5d681a8a21d3b77c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Jose Quaresma
cac76cef79 gstreamer1.0: update patch upstream status
(From OE-Core rev: 0bd65127a249ce8a1199d4961e2351dbd6d83dd6)

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Konrad Weihmann
ded1504299 cpan-base: set default UPSTREAM_CHECK_REGEX
as cpan release versions are almost always follow an a.b version scheme,
it's better to filter out beta releases such as a.b.c.
Use the first resource fetched from https://cpan.metacpan.org as base
for calculating the needed regex.
In case nothing can be calculated fall back to nothing.
Add this to cpan-base to enable it for new & old style cpan integration.

(From OE-Core rev: 3df2cf383b58a3100bd78ebb0369047221121512)

Signed-off-by: Konrad Weihmann <kweihmann@outlook.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Ross Burton
da24dbf7b9 glslang: strip whitespace in pkgconfig file
Whilst pkg-config is fine with .pc files containing leading whitespace,
pkgconf is less forgiving.

(From OE-Core rev: 14bfe5f15f78c1bc049868633fd6fa19feb5a70c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Jonas Höppner
bcb4246fa6 ltp: fix empty ltp-dev package
Currently the headers are not installed and the ltp-dev package is
empty.

This patch adds an include-install make target in the do_install step to
install them in sysroot which ends up as a working ltp-dev package.

(From OE-Core rev: f6943da4444cd71053650be0c9212bc25ac53137)

Signed-off-by: Jonas Höppner <jonas.hoeppner@garz-fricke.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Anatol Belski
036a8d4330 cross-canadian: Whitelist "mingw32" as TARGET_OS
If a recipe inherits cross-canadian and contains "nativesdk" in
BBCLASSEXTEND and meta-mingw is included and multiconfig is enabled,
bitbake will generate the correspending recipe. As meta-mingw sets
SDK_OS to "mingw32", that's what TARGET_OS will be set to as well.
Thus, currently such a recipe won't pass the check and fail with
a message:

Building cross-candian for an unknown TARGET_SYS
(x86_64-mysdk-mingw32), please update cross-canadian.bbclass

Even when building an SDK targeting Linux, but the mentioned conditions
are met, bitbake will try to generate the corresponding recipe and fail.

As the described combination seems valid, including "mingw32" into the
whitelist unconditionally as a fix is suggested.

(From OE-Core rev: d9306e8f9dbdbd30382f0bc0f0a1af75e702a2aa)

Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Mingli Yu
0ae3f1edd6 packagegroup-core-tools-testapps.bb: Remove kexec for riscv32
kexec is not yet ported to riscv32.

(From OE-Core rev: f1e7da7737b3d6df27cc5af002fd1eb0c202d0b4)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Mingli Yu
5228f37b7e packagegroup-core-tools-profile: Remove valgrind for riscv32
valgrind is not yet ported to riscv32.

(From OE-Core rev: df70bc4c60838af1dd7e7f31aba43e8d190def77)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Mingli Yu
8cf34c3517 libxshmfence: Build fixes for riscv32
NR_futex is not defined by newer architectures e.g. riscv32 as
they only have 64bit variant of time_t. Glibc defines SYS_futex
interface based on __NR_futex, since this is used in applications,
such applications start to fail to build for these newer architectures.

Define a fallback to alias __NR_futex to __NR_futex_time64 to make
SYS_futex keep working.

Reference: https://git.openembedded.org/openembedded-core/commit/?id=7a218adf9990f5e18d0b6a33eb34091969f979c7

(From OE-Core rev: 81599bf32135187b34726d41e9f619d22ca1bdd1)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Ulrich Ölmann
91aa850998 arch-armv6m.inc: fix access rights
(From OE-Core rev: 2f7ebe444c2a78ef149b8c5f0f005ab23f24a176)

Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Douglas Royds
a7c950d7b5 externalsrc: Detect code changes in submodules
Further to 50ff9afb39, only detect code changes in submodules that are
subdirectories of the EXTERNALSRC directory.

The (undocumented) git submodule--helper returns a path
for each submodule relative to the top of the repo.
Don't add submodules that are not within our source subtree.

[YOCTO #14333]

(From OE-Core rev: 1c18225d3ef94a41fc073ae87c163b68e6d46571)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Douglas Royds
52c1cb2a9d Revert "externalsrc: Detect code changes in submodules"
This reverts commit 4525310d49d115a37705f04ac5c03d639e5e8f8c.

Further to 50ff9afb39, only detect code changes in submodules that are
subdirectories of the EXTERNALSRC directory.

The (undocumented) git submodule--helper returns a path
for each submodule relative to the top of the repo.
Don't add submodules that are not within our EXTERNALSRC subtree.

If we unpack one git repo inside another, like this:

    SRC_URI = "git://${GIT_SERVER}/repo1;name=repo1;destsuffix=repo1 \
               git://${GIT_SERVER}/repo2;name=repo2;destsuffix=repo1/repo2 \
               "

Git status reports, for repo1:

    Untracked files:
      (use "git add <file>..." to include in what will be committed)
	repo2/

If we run `devtool modify` on this recipe, do_patch runs with:

    PATCHTOOL = "git"
    PATCH_COMMIT_FUNCTIONS = "1"

The `patch_task_postfunc` (patch.bbclass, line 82) runs a `git add .` on the
top-level repo1, leaving the checkout in an invalid state. The following git
warning does not appear in the log:

    $ git add .
    warning: adding embedded git repository: repo2
    hint: You've added another git repository inside your current repository.
    hint: Clones of the outer repository will not contain the contents of
    hint: the embedded repository and will not know how to obtain it.
    hint: If you meant to add a submodule, use:
    hint:
    hint: 	git submodule add <url> repo2
    hint:
    hint: If you added this path by mistake, you can remove it from the
    hint: index with:
    hint:
    hint: 	git rm --cached repo2
    hint:
    hint: See "git help submodule" for more information.

    $ git submodule status
    fatal: no submodule mapping found in .gitmodules for path 'repo2'

No further git submodule commands can be run on the checkout.

We could enhance the `patch_task_postfunc` to look for any embedded git
checkouts and add them as submodules, but this seems unnecessary complexity for
an obscure edge-case. Although the git repo is left in an invalid state with
respect to the submodules, it still serves the purpose required by devtool:
To take further commits, and generate patch files from them.

We are still able to run these commands to examine any submodules,
where git submodule--helper reports paths relative to the top of the checkout:

    $ git ls-files --stage | grep ^160000
    160000 5feee12d6e974dd8c0614cf5b593380b046439a5 0   repo2

    $ git submodule--helper list
    160000 5feee12d6e974dd8c0614cf5b593380b046439a5 0   repo2

When a recipe sets EXTERNALSRC to a subdirectory of the git checkout, we test
for the existence of the reported submodule paths within the EXTERNALSRC
directory.

The latest versions of git submodule--helper accept a path to a subdirectory and
correctly report no submodules within that subdirectory. Regrettably, we still
support git versions that don't accept a path to a subdirectory.

[YOCTO #14333]

(From OE-Core rev: 2055718fdd19f925e236d67823017323bbd92a4b)

Signed-off-by: Douglas Royds <douglas.royds@taitradio.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Samuli Piippo
91cb0b9645 assimp: BBCLASSEXTEND to native and nativesdk
At least some Qt tooling depends on assimp.

(From OE-Core rev: 49c6742eba328236cb73c0ac59b6288f29c46c81)

Signed-off-by: Samuli Piippo <samuli.piippo@qt.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
40f1ab6a53 libksba: upgrade 1.5.0 -> 1.5.1
(From OE-Core rev: 506a99a9f2dd49bacc06821ad5e953c15d44b5e2)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
c2804bba62 libportal: upgrade 0.3 -> 0.4
(From OE-Core rev: c6517d33eed8b092d2eda04b9173892139090b4c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
82fb0385a9 help2man: upgrade 1.48.2 -> 1.48.3
(From OE-Core rev: 27a2cbc0fa14ed8f6bdf5e75c38203238ed82931)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
8c1dff642c libva-utils: upgrade 2.10.0 -> 2.11.1
(From OE-Core rev: e296fc53b738c3a2b72831a6d6d003f28f19d062)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
122293878e ruby: upgrade 3.0.0 -> 3.0.1
(From OE-Core rev: b6949a028fd31bd04ed0478fb34a58b971f31e1f)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
32710bff53 libva: upgrade 2.10.0 -> 2.11.0
(From OE-Core rev: 47360e2dacf0521260ef5883f4a741eb8c69a18e)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Yi Fan Yu
1a42923505 Revert "glib-2.0: add workaround to fix codegen.py.test failing"
This reverts commit afc9ba7d546f3f2e60fb6f46f740dc925542df16.

Ptest-runner was upgraded in e3fd8f17dfb41173dbe037c25087a69f90b1346f,
which means we no longer need to limit glib-2.0 ptest output.

[YOCTO #14170]

(From OE-Core rev: e7be3901e43645796e195348924739d03495a079)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
hongxu
9ca4b13bd5 deb: apply postinstall on sdk
If not postinstall applied, some nativesdk command could not be found
in sdk due to update-alternatives in postinst not be executed, such as chroot:

$ which chroot
/sbin/chroot
$ which chroot.coreutils
path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils

After applying the fix
$ which chroot
path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot
$ which chroot.coreutils
path-to-sdk/sysroots/x86_64-wrlinuxsdk-linux/usr/bin/chroot.coreutils

(From OE-Core rev: 2a9bf19502766baa4087456649d5471483d04f6a)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Anders Wallin
9e0f210179 scripts/contrib/image-manifest: add new script
image-manifest: script to generate product/image specific BOM

The image-manifest script generates image specific reports based on
an image manifest file. Currently there is data generated by buildhistory,
pkgdata, and license manifest but this data is poorly formated and spread
across multiple text files. This script can generate a single JSON output
file that is machine readable by other tools.

The manifest-info collects package information and stores the information
in a tarball. manifest-info can be configured using a json configuration
file. The default configuration including all possible options can be
dumped using the dump-config subcommand.

image-manifest takes an image manifest file as input to get the runtime
dependencies. As an option image-manifest can also use the build dependency
file, pn-buildlist, to get the build dependencies excluding native
packages.

This script extends the oe-image-manifest script [0] done by Paul Eggleton

[0]
https://github.com/intel/clear-linux-dissector-web/blob/master/layerindex/static/files/oe-image-manifest

------------------------------------------------------
usage: image-manifest [-h] [-d] [-q] <subcommand> ...

Image manifest utility

options:
  -h, --help     show this help message and exit
  -d, --debug    Enable debug output
  -q, --quiet    Print only errors

subcommands:
  recipe-info    Get recipe info
  list-depends   List dependencies
  list-recipes   List recipes producing packages within an image
  list-packages  List packages within an image
  list-layers    List included layers
  dump-config    Dump default config
  manifest-info  Export recipe info for a manifest
Use image-manifest <subcommand> --help to get help on a specific command

Co-developed-by: Paul Eggleton <bluelightning@bluelightning.org>
(From OE-Core rev: ad8fec9ce1704866df925bda18a240d6889b1ed5)

Signed-off-by: Anders Wallin <anders.wallin@windriver.com>
Signed-off-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Stefan Ghinea
f07d4c2234 wpa-supplicant: fix CVE-2021-30004
In wpa_supplicant and hostapd 2.9, forging attacks may occur because
AlgorithmIdentifier parameters are mishandled in tls/pkcs1.c and
tls/x509v3.c.

References:
https://nvd.nist.gov/vuln/detail/CVE-2021-30004

Upstream patches:
https://w1.fi/cgit/hostap/commit/?id=a0541334a6394f8237a4393b7372693cd7e96f15

(From OE-Core rev: b32b671bf430b36a5547f8d822dbb760d6be47f7)

Signed-off-by: Stefan Ghinea <stefan.ghinea@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
317907d736 acpica: upgrade 20210105 -> 20210331
(From OE-Core rev: 5165d2e38406c29809dcdbbde4fbc48bcda01b43)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
218e1e3f47 curl: upgrade 7.75.0 -> 7.76.0
(From OE-Core rev: c1dfe36c5641ce1ddc1424e56037e23fd927c058)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
3db91ef623 file: upgrade 5.39 -> 5.40
0001-src-compress.c-correct-header-define-for-xz-lzma.patch
removed since it is included in 5.40

(From OE-Core rev: ae73c5fa666c0e0a7d1d7a04acd6246542b744aa)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Anders Wallin
565cbd773d lttng-tools: Fix path for test_python_looging
" was missing

(From OE-Core rev: e1780ccfc89e9ff4e260276f28ffa0bb8e9b44e1)

Signed-off-by: Anders Wallin <anders.wallin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Anders Wallin
beb01f1820 lttng-tools: Fix missing legacy test files
tests/regression/tools/save-load

(From OE-Core rev: 2e892895e25d148b4c522e3a30bfb1bb4e9a9506)

Signed-off-by: Anders Wallin <anders.wallin@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
Khem Raj
5765253344 vte: Upgrade to 0.64.0 release
Use git for SRC_URI as thi release has not appeared on gnome downloads yet
Drop LGPL-2.0 as it has fully moved to LGPL-3.1+ see [1] that also
covers for change in License checksums for GPL-3

Add license information to cover for Xterm files in libvte

Add new glade files into -dev package

[1] 5e14529d42

(From OE-Core rev: 4a1a20325e2d40256e03ab1a5be348a4c213d181)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
wangmy
54dff05002 glib-2.0: upgrade 2.66.7 -> 2.68.0
the following patches are refreshed:
0001-Set-host_machine-correctly-when-building-with-mingw3.patch
0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
0001-tests-codegen.py-removing-unecessary-print-statement.patch
relocate-modules.patch

the following patches are removed since they are included
in 2.68.0:
0001-gobject-Drop-use-of-volatile-from-get_type-macros.patch
0002-tests-Fix-non-atomic-access-to-a-shared-variable.patch
0003-tests-Fix-non-atomic-access-to-a-shared-variable.patch
0004-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
0005-tests-Fix-non-atomic-access-to-some-shared-variables.patch
0006-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
0007-gdbusconnection-Drop-unnecessary-volatile-qualifiers.patch
0008-gdbuserror-Drop-unnecessary-volatile-qualifiers-from.patch
0009-gio-Drop-unnecessary-volatile-qualifiers-from-intern.patch
0010-kqueue-Fix-unlocked-access-to-shared-variable.patch
0011-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
0012-tests-Fix-non-atomic-access-to-some-shared-variables.patch
0013-gatomic-Drop-unnecessary-volatile-qualifiers-from-in.patch
0014-gatomic-Drop-unnecessary-volatile-qualifiers-from-ma.patch
0015-glib-Drop-unnecessary-volatile-qualifiers-from-inter.patch
0016-gobject-Drop-unnecessary-volatile-qualifiers-from-in.patch
0017-gmessages-Drop-unnecessary-volatile-qualifiers-from-.patch
0018-gtypes-Drop-volatile-qualifier-from-gatomicrefcount.patch
0019-gatomicarray-Drop-volatile-qualifier-from-GAtomicArr.patch
0020-gobject-Drop-volatile-qualifier-from-GObject.ref_cou.patch
0021-tests-Drop-unnecessary-volatile-qualifiers-from-test.patch
0022-build-Drop-unnecessary-volatile-qualifiers-from-conf.patch
0023-gdbusprivate-Avoid-a-warning-about-a-statement-with-.patch
0024-tests-Add-comment-to-volatile-atomic-tests.patch
0025-gthread-Use-g_atomic-primitives-correctly-in-destruc.patch
0026-gtype-Fix-some-typos-in-comments.patch
0027-gtype-Add-some-missing-atomic-accesses-to-init_state.patch
0028-gresource-Fix-a-pointer-mismatch-with-an-atomic-load.patch
0029-docs-Document-not-to-use-volatile-qualifiers.patch

(From OE-Core rev: fde4cb18e28e98f934c0742292f7ec183a568233)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
d7e0475b50 python3-gitdb: upgrade 4.0.5 -> 4.0.7
(From OE-Core rev: 4abef6ce5093ce62fb583eba1f103f1b79723723)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
4ca98c14a6 python3-dbusmock: upgrade 0.22.0 -> 0.23.0
(From OE-Core rev: 114950983c82a7412301ed88bf1f74d7f2d2ac14)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:25 +01:00
zhengruoqin
075ac6ca72 netbase: upgrade 6.2 -> 6.3
(From OE-Core rev: 9fd991163cfce6c4a1cf481b42c493eccb0a5a1a)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
2e7c5829fc libsolv: upgrade 0.7.17 -> 0.7.18
(From OE-Core rev: a06a4d19b102c4b1fbdb969c8b6e96c2ffba3ef9)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
bf8055edad ghostscript: upgrade 9.53.3 -> 9.54.0
(From OE-Core rev: bb4cdbda73b77808ebbd17cce3420fab767b496d)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
446a078ad5 gcr: upgrade 3.38.1 -> 3.40.0
(From OE-Core rev: d9f8925864d80d959b2b145c00fb36423f6dd08e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
6852a907dc ccache: upgrade 4.2 -> 4.2.1
License-Update: add license information of src/third_party/win32/winerror_to_errno.h

(From OE-Core rev: 12f0aa9533edc7ac5a65b1c165797b049349b19e)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
49652a4910 dbus-glib: upgrade 0.110 -> 0.112
License-Update:add the following information of license
     SPDX-License-Identifier: AFL-2.1 OR GPL-2.0-or-later

(From OE-Core rev: fbc9e6f5c2a45ff917b7c255487616d922bdeb7a)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
wangmy
da9f221f70 ell: upgrade 0.38 -> 0.39
(From OE-Core rev: dba7774a0f34eea86707a011941c7b3ef2fa5c1c)

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Randy MacLeod
0b16b83dff sqlite3: upgrade 3.35.0 -> 3.35.3
(From OE-Core rev: 7d511f9b2b1f739e0c96a063d85428b3ab5767b3)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
af42c1a8ad vte: upgrade 0.62.2 -> 0.62.3
(From OE-Core rev: f258154135980c054c220a34c6a9c4278d2038c3)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
b676111c64 webkitgtk: upgrade 2.30.5 -> 2.30.6
(From OE-Core rev: 9a3a925cc90f1b882463f3e885af441177a8215c)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
zhengruoqin
7b4b6ff618 wpebackend-fdo: upgrade 1.8.0 -> 1.8.2
(From OE-Core rev: c65d04d555df94ad3b5c1076d8b5097de699f8c5)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
zhengruoqin
19ff739725 epiphany: upgrade 3.38.2 -> 3.38.3
(From OE-Core rev: 5062a5a0e7d2228051721346bbc2abb4ab7c9ecc)

Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
31e395f4ba libassuan: upgrade 2.5.4 -> 2.5.5
refresh libassuan-add-pkgconfig-support.patch

(From OE-Core rev: e4948654311034d75352ffd74d7f602d7f8394de)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
8c88d149c8 valgrind: Add libstdc++ debug symbols for ptest
new/delete symbols are needed by overloaded-new.post test

(From OE-Core rev: 11bb1fe42590fd35ae5f24196d263f93dd063d35)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
5015e6711d valgrind: Add glibc-src to ptest rdeps
gdbserver tests look for glibc sources ( rtld.c )
or else they are flagged as differences and tests marked as failures

(From OE-Core rev: 3824f811db82c6f2360eea19a9df9129f4330291)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
5751bf6e14 valgrind: Delete trailing whitespaces
(From OE-Core rev: 2a049dd918e565c37b03af03973c695420b9599a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Yi Fan Yu
e90519f1b5 valgrind: Fix ptest swapcontext.vgtest
Backport an upstream patch.
to limit the amount of stackstrace present.

Revert "valgrind: Disable ptest swapcontext.vgtest"
Effectively reverts commit 9dff5766f5795bb02677050045f24365f68bbc1a.

[YOCTO #14324]

(From OE-Core rev: a9baae5994354ba6410793f8a54e224e9dc21b5a)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Yi Fan Yu
0f51493992 valgrind: Disable ptest swapcontext.vgtest
New test introduced in valgrind 3.17.0.
Test fails on both qemuarm64 and qemux64.

[YOCTO #14324]

(From OE-Core rev: 2c21e5dda1d88280be3062eabb8c2788ff543600)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Yi Fan Yu
70dcfaea5e valgrind: update 3.16.1 -> 3.17.0
Notable changes:
* library is now in libexecdir instead of libdir

Added patches:
* Add musl.supp: missing musl.supp in 3.17.0

Dropped backport patches:
* nlcontrolc: found in c79180a3afcf65902e578646c3b716cc749db406
* drd Fedora33: found in 15330adf7c2471fbaa6a0818db07078d81dbff97
* lmw lswi ppc64le: found in 74b74174d572fee4015b8f4e326db3cd949bcdc3

Other dropped patches
* helgrind intercept: found in d2d54dbcc74244adfc0c80b40862edf2b82f53b9
* drd musl fix: found in d2d54dbcc74244adfc0c80b40862edf2b82f53b9

TESTING RESULTS:
qemux86-64:
FAIL: drd/tests/swapcontext

      3.17.0  3.16.1
===================
TOTAL:  736    726
PASSED: 694    688
FAILED:   1      0
SKIPPED: 41     38

(From OE-Core rev: 7c8c04ad933be38a806da355158c1e13e2c1b84c)

Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
ea6c56ed89 boost-build-native: upgrade 4.3.0 -> 4.4.1
(From OE-Core rev: 9c8cc168d215d5eb784997a40c31262904ff8145)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
583a26f346 babeltrace2: upgrade 2.0.3 -> 2.0.4
(From OE-Core rev: 628d335300ac378f8b7af5d1437873990fffa9e5)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Wang Mingyu
0732afc6e9 at-spi2-core: upgrade 2.38.0 -> 2.40.0
(From OE-Core rev: 3e3e158839b57221919d1dd54eb54fffc1f9ac1b)

Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Richard Purdie
83b9c24889 layer.conf: Update to add post 3.3 release honister series
(From OE-Core rev: c0f43f19fecfd16f973c2d2f8227106c46b451bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Chen Qi
bbec2f3f29 busybox: fix CVE-2021-28831
Backport patch to fix CVE-2021-28831.

(From OE-Core rev: e579dbd9a6b2472ca90f411c0b594da9e38c9aca)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Daniel Ammann
cf80f79422 archiver: Fix typos
(From OE-Core rev: 36de56496bc07c321162555d603fac756297911a)

Signed-off-by: Daniel Ammann <daniel.ammann@bytesatwork.ch>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
27eadb84fe gcc-runtime: Make DEBUG_PREFIX_MAP relative to S
Current definition of SLIB is actually equal to S but is hardcoded, this
means when we have altered location of S, then the regexp for
DEBUG_PREFIX_MAP will not be effective, which could result in S being
emitted into debug_line sections. Simplify the maps to use S variable
instead of SLIB

Secondly, rename SLIB_NEW to REL_S to make it more appropritate to what
it represents

(From OE-Core rev: 2c8e130adb5d4d55ba732a042ec157498460ee29)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
f715025381 glibc: Rename glibc src package
Since glibc uses custom PACKAGES, it misses using ${PN}-src and as a
result it uses libc-src for name which means creating rdep on glibc src
package becomes difficult since bitbake can not resolve rdep = glibc-src
back to glibc recipe and bails out on builds

Missing or unbuildable dependency chain was: ['glibc-src']
ERROR: Required build target 'valgrind' has no buildable providers.
Missing or unbuildable dependency chain was: ['valgrind', 'glibc-src']

(From OE-Core rev: 816c8529f05271aba3d414ab2e68506ac7b6ec69)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khem Raj
e237e345fb gcc: Upgrade to 10.3.0 bug-fix release
Drop aarch64 backports which are already upstream
List of bugs fixed is [1]

[1] https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&list_id=298084&resolution=FIXED&target_milestone=10.3

(From OE-Core rev: 023806e0e0de2b0e814e6e38d78bf2faa9661f19)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Khairul Rohaizzat Jamaluddin
b50e51b1c8 qemu: Fix CVE-2020-35517
CVE:
CVE-2020-35517

(From OE-Core rev: 51376edb13eed748395ebe1e56081c092565be9b)

Signed-off-by: Khairul Rohaizzat Jamaluddin <khairul.rohaizzat.jamaluddin@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Richard Purdie
84a6d97670 oeqa/selftest: Ensure packages classes are set correctly for maintainers test
The dnf packages aren't parsed if rpm isn't in PACKAGE_CLASSES which means
the aintainers test failes for OE-Core (where ipk is the default) but not
for poky (where the default is rpm).

Ensure PACKAGE_CLASSES is set so it works in all cases.

[YOCTO #14277]

(From OE-Core rev: 842b11107363357ed933cfcf619f1cf23f0d841e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:24 +01:00
Richard Purdie
773f19df44 pseudo: Upgrade to add trailing slashes ignore path fix
Pull in:
  client: strip trailing slashes when opening an ignored path

(From OE-Core rev: 9fb92bc13b8a78ef98798f14e728058feb180ba6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:23 +01:00
Peter Budny
16aeb6e94f lib/oe/terminal: Fix tmux new-session on older tmux versions (<1.9)
`tmux new -c` fails on tmux older than 1.9, when that flag was added.
We can omit the flag for older versions of tmux, and the working
directory gets set even without it.

(From OE-Core rev: c55c294be6f5119f4c58a4e7a0bc052904126569)

Signed-off-by: Peter Budny <pbbudny@amazon.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-04-18 11:37:23 +01:00
461 changed files with 7524 additions and 9395 deletions

View File

@@ -26,12 +26,10 @@ readypipeinfd = int(sys.argv[3])
logfile = sys.argv[4]
lockname = sys.argv[5]
sockname = sys.argv[6]
timeout = sys.argv[7]
timeout = float(sys.argv[7])
xmlrpcinterface = (sys.argv[8], int(sys.argv[9]))
if xmlrpcinterface[0] == "None":
xmlrpcinterface = (None, xmlrpcinterface[1])
if timeout == "None":
timeout = None
# Replace standard fds with our own
with open('/dev/null', 'r') as si:

View File

@@ -16,7 +16,7 @@ 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: ::
using the following command form::
$ bitbake target
@@ -32,7 +32,7 @@ the BitBake command and its options, see ":ref:`The BitBake Command
your project's ``local.conf`` configuration file.
A common method to determine this value for your build host is to run
the following: ::
the following::
$ grep processor /proc/cpuinfo
@@ -139,7 +139,7 @@ in ``BBPATH`` in the same way as configuration files.
A good way to get an idea of the configuration files and the class files
used in your execution environment is to run the following BitBake
command: ::
command::
$ bitbake -e > mybb.log
@@ -155,7 +155,7 @@ execution environment.
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: ::
Here is an example that causes BitBake to produce a parsing error::
fakeroot create_shar() {
cat << "EOF" > ${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.sh
@@ -185,7 +185,7 @@ During the configuration phase, BitBake will have set
:term:`BBFILES`. BitBake now uses it to construct a
list of recipes to parse, along with any append files (``.bbappend``) to
apply. ``BBFILES`` is a space-separated list of available files and
supports wildcards. An example would be: ::
supports wildcards. An example would be::
BBFILES = "/path/to/bbfiles/*.bb /path/to/appends/*.bbappend"
@@ -206,7 +206,7 @@ parses in order any append files found in ``BBFILES``.
One common convention is to use the recipe filename to define pieces of
metadata. For example, in ``bitbake.conf`` the recipe name and version
are used to set the variables :term:`PN` and
:term:`PV`: ::
:term:`PV`::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
@@ -238,7 +238,7 @@ 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: ::
want upstream. Here is an example::
BBFILES = "/stuff/openembedded/*/*.bb /stuff/openembedded.modified/*/*.bb"
BBFILE_COLLECTIONS = "upstream local"
@@ -270,7 +270,7 @@ variable, which is optional.
When a recipe uses ``PROVIDES``, that recipe's functionality can be
found under an alternative name or names other than the implicit ``PN``
name. As an example, suppose a recipe named ``keyboard_1.0.bb``
contained the following: ::
contained the following::
PROVIDES += "fullkeyboard"
@@ -291,7 +291,7 @@ needs to prioritize providers by determining provider preferences.
A common example in which a target has multiple providers is
"virtual/kernel", which is on the ``PROVIDES`` list for each kernel
recipe. Each machine often selects the best kernel provider by using a
line similar to the following in the machine configuration file: ::
line similar to the following in the machine configuration file::
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
@@ -331,7 +331,7 @@ If the first recipe is named ``a_1.1.bb``, then the
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: ::
file that BitBake parses, you can change that preference::
PREFERRED_VERSION_a = "1.1"
@@ -498,7 +498,7 @@ 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: ::
to ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
@@ -508,7 +508,7 @@ 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: ::
following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
@@ -536,7 +536,7 @@ 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: ::
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 \
@@ -557,7 +557,7 @@ 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: ::
``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"

View File

@@ -27,7 +27,7 @@ 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: ::
something like the following::
src_uri = (d.getVar('SRC_URI') or "").split()
fetcher = bb.fetch2.Fetch(src_uri, d)
@@ -37,7 +37,7 @@ 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: ::
The instantiation of the fetch class is usually followed by::
rootdir = l.getVar('WORKDIR')
fetcher.unpack(rootdir)
@@ -72,7 +72,7 @@ URLs by looking for source files in a specific search order:
For each URL passed to the fetcher, the fetcher calls the submodule that
handles that particular URL type. This behavior can be the source of
some confusion when you are providing URLs for the ``SRC_URI`` variable.
Consider the following two URLs: ::
Consider the following two URLs::
http://git.yoctoproject.org/git/poky;protocol=git
git://git.yoctoproject.org/git/poky;protocol=http
@@ -81,7 +81,7 @@ 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: ::
Here are some examples that show commonly used mirror definitions::
PREMIRRORS ?= "\
bzr://.*/.\* http://somemirror.org/sources/ \\n \
@@ -111,19 +111,19 @@ File integrity is of key importance for reproducing builds. For
non-local archive downloads, the fetcher code can verify SHA-256 and MD5
checksums to ensure the archives have been downloaded correctly. You can
specify these checksums by using the ``SRC_URI`` variable with the
appropriate varflags as follows: ::
appropriate varflags as follows::
SRC_URI[md5sum] = "value"
SRC_URI[sha256sum] = "value"
You can also specify the checksums as
parameters on the ``SRC_URI`` as shown below: ::
parameters on the ``SRC_URI`` as shown below::
SRC_URI = "http://example.com/foobar.tar.bz2;md5sum=4a8e0f237e961fd7785d19d07fdb994d"
If multiple URIs exist, you can specify the checksums either directly as
in the previous example, or you can name the URLs. The following syntax
shows how you name the URIs: ::
shows how you name the URIs::
SRC_URI = "http://example.com/foobar.tar.bz2;name=foo"
SRC_URI[foo.md5sum] = 4a8e0f237e961fd7785d19d07fdb994d
@@ -163,9 +163,6 @@ govern the behavior of the unpack stage:
- *dos:* Applies to ``.zip`` and ``.jar`` files and specifies whether
to use DOS line ending conversion on text files.
- *basepath:* Instructs the unpack stage to strip the specified
directories from the source path when unpacking.
- *subdir:* Unpacks the specific URL to the specified subdirectory
within the root directory.
@@ -204,7 +201,7 @@ 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: ::
absolute::
SRC_URI = "file://relativefile.patch"
SRC_URI = "file:///Users/ich/very_important_software"
@@ -225,7 +222,7 @@ 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: ::
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"
@@ -235,15 +232,13 @@ Some example URLs are as follows: ::
Because URL parameters are delimited by semi-colons, this can
introduce ambiguity when parsing URLs that also contain semi-colons,
for example:
::
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:
::
characters::
SRC_URI = "http://abc123.org/git/?p=gcc/gcc.git&a=snapshot&h=a5dd47"
@@ -251,8 +246,7 @@ Some example URLs are as follows: ::
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:
::
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"
@@ -321,7 +315,7 @@ The supported parameters are as follows:
- *"port":* The port to which the CVS server connects.
Some example URLs are as follows: ::
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"
@@ -363,7 +357,7 @@ The supported parameters are as follows:
username is different than the username used in the main URL, which
is passed to the subversion command.
Following are three examples using svn: ::
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"
@@ -436,7 +430,7 @@ This fetcher supports the following parameters:
parameter implies no branch and only works when the transfer protocol
is ``file://``.
Here are some example URLs: ::
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"
@@ -484,7 +478,7 @@ repository.
To use this fetcher, make sure your recipe has proper
:term:`SRC_URI`, :term:`SRCREV`, and
:term:`PV` settings. Here is an example: ::
:term:`PV` settings. Here is an example::
SRC_URI = "ccrc://cc.example.org/ccrc;vob=/example_vob;module=/example_module"
SRCREV = "EXAMPLE_CLEARCASE_TAG"
@@ -506,7 +500,7 @@ Following are options for the ``SRC_URI`` statement:
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: ::
results in the following::
load /example_vob/example_module
@@ -558,7 +552,7 @@ the server's URL and port number, and you can specify a username and
password directly in your recipe within ``SRC_URI``.
Here is an example that relies on ``P4CONFIG`` to specify the server URL
and port, username, and password, and fetches the Head Revision: ::
and port, username, and password, and fetches the Head Revision::
SRC_URI = "p4://example-depot/main/source/..."
SRCREV = "${AUTOREV}"
@@ -566,7 +560,7 @@ and port, username, and password, and fetches the Head Revision: ::
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: ::
password, and fetches a Revision based on a Label::
P4PORT = "tcp:p4server.example.net:1666"
SRC_URI = "p4://user:passwd@example-depot/main/source/..."
@@ -592,7 +586,7 @@ paths locally is desirable, the fetcher supports two parameters:
paths locally for the specified location, even in combination with the
``module`` parameter.
Here is an example use of the the ``module`` parameter: ::
Here is an example use of the the ``module`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/..."
@@ -600,7 +594,7 @@ 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: ::
Here is an example use of the the ``remotepath`` parameter::
SRC_URI = "p4://user:passwd@example-depot/main;module=source/...;remotepath=keep"
@@ -628,7 +622,7 @@ This fetcher supports the following parameters:
- *"manifest":* Name of the manifest file (default: ``default.xml``).
Here are some example URLs: ::
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"
@@ -651,11 +645,11 @@ Such functionality is set by the variable:
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: ::
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: ::
Here is an example URL::
SRC_URI = "az://<azure-storage-account>.blob.core.windows.net/<foo_container>/<bar_file>"

View File

@@ -20,7 +20,7 @@ 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: ::
your machine, the BitBake directory appears as follows::
$ ls -al
total 100
@@ -49,7 +49,7 @@ 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: ::
command::
$ ./bin/bitbake --version
BitBake Build Tool Core version 1.23.0, bitbake version 1.23.0
@@ -61,14 +61,14 @@ 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: ::
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: ::
``PATH`` variable::
$ export PATH=/home/scott-lenovo/bitbake/bin:$PATH
@@ -116,7 +116,7 @@ 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: ::
directory::
$ mkdir ~/hello
$ cd ~/hello
@@ -127,7 +127,7 @@ Following is the complete "Hello World" example.
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: ::
directory. Run the ``bitbake`` command and see what it does::
$ bitbake
The BBPATH variable is not set and bitbake did not
@@ -161,7 +161,7 @@ Following is the complete "Hello World" example.
``BBPATH`` variable up in a configuration file for each project.
From your shell, enter the following commands to set and export the
``BBPATH`` variable: ::
``BBPATH`` variable::
$ BBPATH="projectdirectory"
$ export BBPATH
@@ -176,7 +176,7 @@ Following is the complete "Hello World" example.
shell would.
#. **Run BitBake:** Now that you have ``BBPATH`` defined, run the
``bitbake`` command again: ::
``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
@@ -208,13 +208,13 @@ Following is the complete "Hello World" example.
http://git.openembedded.org/bitbake/tree/conf/bitbake.conf.
Use the following commands to create the ``conf`` directory in the
project directory: ::
project directory::
$ mkdir conf
From within the ``conf`` directory,
use some editor to create the ``bitbake.conf`` so that it contains
the following: ::
the following::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
@@ -251,7 +251,7 @@ Following is the complete "Hello World" example.
glossary.
#. **Run BitBake:** After making sure that the ``conf/bitbake.conf`` file
exists, you can run the ``bitbake`` command again: ::
exists, you can run the ``bitbake`` command again::
$ bitbake
ERROR: Traceback (most recent call last):
@@ -278,7 +278,7 @@ Following is the complete "Hello World" example.
in the ``classes`` directory of the project (i.e ``hello/classes``
in this example).
Create the ``classes`` directory as follows: ::
Create the ``classes`` directory as follows::
$ cd $HOME/hello
$ mkdir classes
@@ -291,7 +291,7 @@ Following is the complete "Hello World" example.
environments BitBake is supporting.
#. **Run BitBake:** After making sure that the ``classes/base.bbclass``
file exists, you can run the ``bitbake`` command again: ::
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.
@@ -314,7 +314,7 @@ Following is the complete "Hello World" example.
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: ::
and the ``conf`` directory::
$ cd $HOME
$ mkdir mylayer
@@ -322,12 +322,12 @@ Following is the complete "Hello World" example.
$ mkdir conf
Move to the ``conf`` directory and create a ``layer.conf`` file that has the
following: ::
following::
BBPATH .= ":${LAYERDIR}"
BBFILES += "${LAYERDIR}/\*.bb"
BBFILES += "${LAYERDIR}/*.bb"
BBFILE_COLLECTIONS += "mylayer"
`BBFILE_PATTERN_mylayer := "^${LAYERDIR_RE}/"
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>`
@@ -335,7 +335,7 @@ Following is the complete "Hello World" example.
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: ::
``printhello.bb`` that has the following::
DESCRIPTION = "Prints Hello World"
PN = 'printhello'
@@ -356,7 +356,7 @@ Following is the complete "Hello World" example.
follow the links to the glossary.
#. **Run BitBake With a Target:** Now that a BitBake target exists, run
the command and provide that target: ::
the command and provide that target::
$ cd $HOME/hello
$ bitbake printhello
@@ -376,7 +376,7 @@ Following is the complete "Hello World" example.
``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: ::
create the ``bblayers.conf`` file so that it contains the following::
BBLAYERS ?= " \
/home/<you>/mylayer \
@@ -386,7 +386,7 @@ Following is the complete "Hello World" example.
#. **Run BitBake With a Target:** Now that you have supplied the
``bblayers.conf`` file, run the ``bitbake`` command and provide the
target: ::
target::
$ bitbake printhello
Parsing recipes: 100% |##################################################################################|

View File

@@ -248,13 +248,13 @@ 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: ::
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: ::
the append file would match the following recipe names::
busybox_1.21.1.bb
busybox_1.21.2.bb
@@ -290,7 +290,7 @@ You can obtain BitBake several different ways:
are using. The metadata is generally backwards compatible but not
forward compatible.
Here is an example that clones the BitBake repository: ::
Here is an example that clones the BitBake repository::
$ git clone git://git.openembedded.org/bitbake
@@ -298,7 +298,7 @@ You can obtain BitBake several different ways:
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``: ::
is an example that names the directory ``bbdev``::
$ git clone git://git.openembedded.org/bitbake bbdev
@@ -317,7 +317,7 @@ You can obtain BitBake several different ways:
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: ::
The following example downloads a snapshot of BitBake version 1.17.0::
$ wget http://git.openembedded.org/bitbake/snapshot/bitbake-1.17.0.tar.gz
$ tar zxpvf bitbake-1.17.0.tar.gz
@@ -347,7 +347,7 @@ execution examples.
Usage and syntax
----------------
Following is the usage and syntax for BitBake: ::
Following is the usage and syntax for BitBake::
$ bitbake -h
Usage: bitbake [options] [recipename/target recipe:do_task ...]
@@ -469,11 +469,11 @@ 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: ::
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: ::
The following command runs the clean task on the ``foo.bb`` recipe file::
$ bitbake -b foo.bb -c clean
@@ -497,13 +497,13 @@ 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: ::
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: ::
execute the ``do_clean`` task::
$ bitbake -c clean foo
@@ -514,7 +514,7 @@ 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: ::
recipe and ``taskB`` for the second recipe::
$ bitbake myfirstrecipe:do_taskA mysecondrecipe:do_taskB
@@ -540,7 +540,7 @@ produce more readable graphs. This way, you can remove from the graph
``DEPENDS`` from inherited classes such as ``base.bbclass``.
Here are two examples that create dependency graphs. The second example
omits depends common in OpenEmbedded from the graph: ::
omits depends common in OpenEmbedded from the graph::
$ bitbake -g foo
@@ -582,17 +582,17 @@ accomplished by setting the
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: ::
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: ::
command form to start the builds::
$ bitbake [mc:multiconfigname:]target [[[mc:multiconfigname:]target] ... ]
Here is an example for two extra multiconfigs: ``target1`` and ``target2``: ::
Here is an example for two extra multiconfigs: ``target1`` and ``target2``::
$ bitbake mc::target mc:target1:target mc:target2:target
@@ -613,12 +613,12 @@ multiconfig.
To enable dependencies in a multiple configuration build, you must
declare the dependencies in the recipe using the following statement
form: ::
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``: ::
multiconfigs: ``target1`` and ``target2``::
image_task[mcdepends] = "mc:target1:target2:image2:rootfs_task"
@@ -629,7 +629,7 @@ 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: ::
using a BitBake command as follows::
$ bitbake mc:target1:image1
@@ -639,7 +639,7 @@ 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: ::
recipe::
image_task[mcdepends] = "mc:target1:target2:image2:image_task"

View File

@@ -26,7 +26,7 @@ assignment. ::
VARIABLE = "value"
As expected, if you include leading or
trailing spaces as part of an assignment, the spaces are retained: ::
trailing spaces as part of an assignment, the spaces are retained::
VARIABLE = " value"
VARIABLE = "value "
@@ -40,7 +40,7 @@ blank space (i.e. these are not the same values). ::
You can use single quotes instead of double quotes when setting a
variable's value. Doing so allows you to use values that contain the
double quote character: ::
double quote character::
VARIABLE = 'I have a " in my value'
@@ -77,7 +77,7 @@ occurs, you can use BitBake to check the actual value of the suspect
variable. You can make these checks for both configuration and recipe
level changes:
- For configuration changes, use the following: ::
- For configuration changes, use the following::
$ bitbake -e
@@ -91,7 +91,7 @@ level changes:
Variables that are exported to the environment are preceded by the
string "export" in the command's output.
- For recipe changes, use the following: ::
- For recipe changes, use the following::
$ bitbake recipe -e \| grep VARIABLE="
@@ -105,7 +105,7 @@ Outside of :ref:`functions <bitbake-user-manual/bitbake-user-manual-metadata:fun
BitBake joins any line ending in
a backslash character ("\") with the following line before parsing
statements. The most common use for the "\" character is to split
variable assignments over multiple lines, as in the following example: ::
variable assignments over multiple lines, as in the following example::
FOO = "bar \
baz \
@@ -116,7 +116,7 @@ character that follow it are removed when joining lines. Thus, no
newline characters end up in the value of ``FOO``.
Consider this additional example where the two assignments both assign
"barbaz" to ``FOO``: ::
"barbaz" to ``FOO``::
FOO = "barbaz"
FOO = "bar\
@@ -149,7 +149,7 @@ The "=" operator does not immediately expand variable references in the
right-hand side. Instead, expansion is deferred until the variable
assigned to is actually used. The result depends on the current values
of the referenced variables. The following example should clarify this
behavior: ::
behavior::
A = "${B} baz"
B = "${C} bar"
@@ -177,7 +177,7 @@ Setting a default value (?=)
You can use the "?=" operator to achieve a "softer" assignment for a
variable. This type of assignment allows you to define a variable if it
is undefined when the statement is parsed, but to leave the value alone
if the variable has a value. Here is an example: ::
if the variable has a value. Here is an example::
A ?= "aval"
@@ -199,7 +199,7 @@ by using the "??=" operator. This assignment behaves identical to "?="
except that the assignment is made at the end of the parsing process
rather than immediately. Consequently, when multiple "??=" assignments
exist, the last one is used. Also, any "=" or "?=" assignment will
override the value set with "??=". Here is an example: ::
override the value set with "??=". Here is an example::
A ??= "somevalue"
A ??= "someothervalue"
@@ -215,7 +215,7 @@ Immediate variable expansion (:=)
---------------------------------
The ":=" operator results in a variable's contents being expanded
immediately, rather than when the variable is actually used: ::
immediately, rather than when the variable is actually used::
T = "123"
A := "test ${T}"
@@ -241,7 +241,7 @@ the "+=" and "=+" operators. These operators insert a space between the
current value and prepended or appended value.
These operators take immediate effect during parsing. Here are some
examples: ::
examples::
B = "bval"
B += "additionaldata"
@@ -260,7 +260,7 @@ If you want to append or prepend values without an inserted space, use
the ".=" and "=." operators.
These operators take immediate effect during parsing. Here are some
examples: ::
examples::
B = "bval"
B .= "additionaldata"
@@ -278,7 +278,7 @@ style syntax. When you use this syntax, no spaces are inserted.
These operators differ from the ":=", ".=", "=.", "+=", and "=+"
operators in that their effects are applied at variable expansion time
rather than being immediately applied. Here are some examples: ::
rather than being immediately applied. Here are some examples::
B = "bval"
B_append = " additional data"
@@ -309,7 +309,7 @@ syntax. Specifying a value for removal causes all occurrences of that
value to be removed from the variable.
When you use this syntax, BitBake expects one or more strings.
Surrounding spaces and spacing are preserved. Here is an example: ::
Surrounding spaces and spacing are preserved. Here is an example::
FOO = "123 456 789 123456 123 456 123 456"
FOO_remove = "123"
@@ -334,27 +334,27 @@ An advantage of the override style operations "_append", "_prepend", and
"_remove" as compared to the "+=" and "=+" operators is that the
override style operators provide guaranteed operations. For example,
consider a class ``foo.bbclass`` that needs to add the value "val" to
the variable ``FOO``, and a recipe that uses ``foo.bbclass`` as follows: ::
the variable ``FOO``, and a recipe that uses ``foo.bbclass`` as follows::
inherit foo
FOO = "initial"
If ``foo.bbclass`` uses the "+=" operator,
as follows, then the final value of ``FOO`` will be "initial", which is
not what is desired: ::
not what is desired::
FOO += "val"
If, on the other hand, ``foo.bbclass``
uses the "_append" operator, then the final value of ``FOO`` will be
"initial val", as intended: ::
"initial val", as intended::
FOO_append = " val"
.. note::
It is never necessary to use "+=" together with "_append". The following
sequence of assignments appends "barbaz" to FOO: ::
sequence of assignments appends "barbaz" to FOO::
FOO_append = "bar"
FOO_append = "baz"
@@ -381,7 +381,7 @@ standard syntax operations previously mentioned work for variable flags
except for override style syntax (i.e. "_prepend", "_append", and
"_remove").
Here are some examples showing how to set variable flags: ::
Here are some examples showing how to set variable flags::
FOO[a] = "abc"
FOO[b] = "123"
@@ -393,7 +393,7 @@ respectively. The ``[a]`` flag becomes "abc 456".
No need exists to pre-define variable flags. You can simply start using
them. One extremely common application is to attach some brief
documentation to a BitBake variable as follows: ::
documentation to a BitBake variable as follows::
CACHE[doc] = "The directory holding the cache of the metadata."
@@ -401,7 +401,7 @@ Inline Python Variable Expansion
--------------------------------
You can use inline Python variable expansion to set variables. Here is
an example: ::
an example::
DATE = "${@time.strftime('%Y%m%d',time.gmtime())}"
@@ -410,7 +410,7 @@ This example results in the ``DATE`` variable being set to the current date.
Probably the most common use of this feature is to extract the value of
variables from BitBake's internal data dictionary, ``d``. The following
lines select the values of a package name and its version number,
respectively: ::
respectively::
PN = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(d.getVar('FILE', False),d)[1] or '1.0'}"
@@ -419,12 +419,12 @@ respectively: ::
Inline Python expressions work just like variable expansions insofar as the
"=" and ":=" operators are concerned. Given the following assignment, foo()
is called each time FOO is expanded: ::
is called each time FOO is expanded::
FOO = "${@foo()}"
Contrast this with the following immediate assignment, where foo() is only
called once, while the assignment is parsed: ::
called once, while the assignment is parsed::
FOO := "${@foo()}"
@@ -437,7 +437,7 @@ Unsetting variables
It is possible to completely remove a variable or a variable flag from
BitBake's internal data dictionary by using the "unset" keyword. Here is
an example: ::
an example::
unset DATE
unset do_fetch[noexec]
@@ -452,7 +452,7 @@ When specifying pathnames for use with BitBake, do not use the tilde
cause BitBake to not recognize the path since BitBake does not expand
this character in the same way a shell would.
Instead, provide a fuller path as the following example illustrates: ::
Instead, provide a fuller path as the following example illustrates::
BBLAYERS ?= " \
/home/scott-lenovo/LayerA \
@@ -463,7 +463,7 @@ Exporting Variables to the Environment
You can export variables to the environment of running tasks by using
the ``export`` keyword. For example, in the following example, the
``do_foo`` task prints "value from the environment" when run: ::
``do_foo`` task prints "value from the environment" when run::
export ENV_VARIABLE
ENV_VARIABLE = "value from the environment"
@@ -481,7 +481,7 @@ It does not matter whether ``export ENV_VARIABLE`` appears before or
after assignments to ``ENV_VARIABLE``.
It is also possible to combine ``export`` with setting a value for the
variable. Here is an example: ::
variable. Here is an example::
export ENV_VARIABLE = "variable-value"
@@ -518,7 +518,7 @@ variable.
to satisfy conditions. Thus, if you have a variable that is
conditional on "arm", and "arm" is in ``OVERRIDES``, then the
"arm"-specific version of the variable is used rather than the
non-conditional version. Here is an example: ::
non-conditional version. Here is an example::
OVERRIDES = "architecture:os:machine"
TEST = "default"
@@ -535,7 +535,7 @@ variable.
an OpenEmbedded metadata-based Linux kernel recipe file. The
following lines from the recipe file first set the kernel branch
variable ``KBRANCH`` to a default value, then conditionally override
that value based on the architecture of the build: ::
that value based on the architecture of the build::
KBRANCH = "standard/base"
KBRANCH_qemuarm = "standard/arm-versatile-926ejs"
@@ -547,7 +547,7 @@ variable.
- *Appending and Prepending:* BitBake also supports append and prepend
operations to variable values based on whether a specific item is
listed in ``OVERRIDES``. Here is an example: ::
listed in ``OVERRIDES``. Here is an example::
DEPENDS = "glibc ncurses"
OVERRIDES = "machine:local"
@@ -557,14 +557,14 @@ variable.
Again, using an OpenEmbedded metadata-based kernel recipe file as an
example, the following lines will conditionally append to the
``KERNEL_FEATURES`` variable based on the architecture: ::
``KERNEL_FEATURES`` variable based on the architecture::
KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
- *Setting a Variable for a Single Task:* BitBake supports setting a
variable just for the duration of a single task. Here is an example: ::
variable just for the duration of a single task. Here is an example::
FOO_task-configure = "val 1"
FOO_task-compile = "val 2"
@@ -580,7 +580,7 @@ variable.
``do_compile`` task.
You can also use this syntax with other combinations (e.g.
"``_prepend``") as shown in the following example: ::
"``_prepend``") as shown in the following example::
EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
@@ -588,7 +588,7 @@ Key Expansion
-------------
Key expansion happens when the BitBake datastore is finalized. To better
understand this, consider the following example: ::
understand this, consider the following example::
A${B} = "X"
B = "2"
@@ -614,7 +614,7 @@ There is often confusion concerning the order in which overrides and
various "append" operators take effect. Recall that an append or prepend
operation using "_append" and "_prepend" does not result in an immediate
assignment as would "+=", ".=", "=+", or "=.". Consider the following
example: ::
example::
OVERRIDES = "foo"
A = "Z"
@@ -631,7 +631,7 @@ Applying overrides, however, changes things. Since "foo" is listed in
version, which is equal to "X". So effectively, ``A_foo`` replaces
``A``.
This next example changes the order of the override and the append: ::
This next example changes the order of the override and the append::
OVERRIDES = "foo"
A = "Z"
@@ -644,7 +644,7 @@ appended with "X". Consequently, ``A`` becomes "ZX". Notice that spaces
are not appended.
This next example has the order of the appends and overrides reversed
back as in the first example: ::
back as in the first example::
OVERRIDES = "foo"
A = "Y"
@@ -658,7 +658,7 @@ leaving the variable set to "ZX". Finally, applying the override for
"foo" results in the conditional variable ``A`` becoming "ZX" (i.e.
``A`` is replaced with ``A_foo``).
This final example mixes in some varying operators: ::
This final example mixes in some varying operators::
A = "1"
A_append = "2"
@@ -720,7 +720,7 @@ file and then have your recipe inherit that class file.
As an example, your recipes could use the following directive to inherit
an ``autotools.bbclass`` file. The class file would contain common
functionality for using Autotools that could be shared across recipes: ::
functionality for using Autotools that could be shared across recipes::
inherit autotools
@@ -734,7 +734,7 @@ In this case, BitBake would search for the directory
If you want to use the directive to inherit multiple classes, separate
them with spaces. The following example shows how to inherit both the
``buildhistory`` and ``rm_work`` classes: ::
``buildhistory`` and ``rm_work`` classes::
inherit buildhistory rm_work
@@ -742,19 +742,19 @@ An advantage with the inherit directive as compared to both the
:ref:`include <bitbake-user-manual/bitbake-user-manual-metadata:\`\`include\`\` directive>` and :ref:`require <bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>`
directives is that you can inherit class files conditionally. You can
accomplish this by using a variable expression after the ``inherit``
statement. Here is an example: ::
statement. Here is an example::
inherit ${VARNAME}
If ``VARNAME`` is
going to be set, it needs to be set before the ``inherit`` statement is
parsed. One way to achieve a conditional inherit in this case is to use
overrides: ::
overrides::
VARIABLE = ""
VARIABLE_someoverride = "myclass"
Another method is by using anonymous Python. Here is an example: ::
Another method is by using anonymous Python. Here is an example::
python () {
if condition == value:
@@ -764,7 +764,7 @@ Another method is by using anonymous Python. Here is an example: ::
}
Alternatively, you could use an in-line Python expression in the
following form: ::
following form::
inherit ${@'classname' if condition else ''}
inherit ${@functionname(params)}
@@ -790,7 +790,7 @@ encapsulated functionality or configuration that does not suit a
``.bbclass`` file.
As an example, suppose you needed a recipe to include some self-test
definitions: ::
definitions::
include test_defs.inc
@@ -831,7 +831,7 @@ include file named ``foo.inc`` that contains the common definitions
needed to build "foo". You need to be sure ``foo.inc`` is located in the
same directory as your two recipe files as well. Once these conditions
are set up, you can share the functionality using a ``require``
directive from within each recipe: ::
directive from within each recipe::
require foo.inc
@@ -844,7 +844,7 @@ class. BitBake only supports this directive when used within a
configuration file.
As an example, suppose you needed to inherit a class file called
``abc.bbclass`` from a configuration file as follows: ::
``abc.bbclass`` from a configuration file as follows::
INHERIT += "abc"
@@ -862,7 +862,7 @@ subdirectory in one of the directories specified in ``BBPATH``.
If you want to use the directive to inherit multiple classes, you can
provide them on the same line in the ``local.conf`` file. Use spaces to
separate the classes. The following example shows how to inherit both
the ``autotools`` and ``pkgconfig`` classes: ::
the ``autotools`` and ``pkgconfig`` classes::
INHERIT += "autotools pkgconfig"
@@ -895,7 +895,7 @@ Shell Functions
Functions written in shell script and executed either directly as
functions, tasks, or both. They can also be called by other shell
functions. Here is an example shell function definition: ::
functions. Here is an example shell function definition::
some_function () {
echo "Hello World"
@@ -912,7 +912,7 @@ can also be applied to shell functions. Most commonly, this application
would be used in a ``.bbappend`` file to modify functions in the main
recipe. It can also be used to modify functions inherited from classes.
As an example, consider the following: ::
As an example, consider the following::
do_foo() {
bbplain first
@@ -931,7 +931,7 @@ As an example, consider the following: ::
bbplain fourth
}
Running ``do_foo`` prints the following: ::
Running ``do_foo`` prints the following::
recipename do_foo: first
recipename do_foo: second
@@ -952,7 +952,7 @@ BitBake-Style Python Functions
These functions are written in Python and executed by BitBake or other
Python functions using ``bb.build.exec_func()``.
An example BitBake function is: ::
An example BitBake function is::
python some_python_function () {
d.setVar("TEXT", "Hello World")
@@ -975,7 +975,7 @@ import these modules. Also in these types of functions, the datastore
Similar to shell functions, you can also apply overrides and
override-style operators to BitBake-style Python functions.
As an example, consider the following: ::
As an example, consider the following::
python do_foo_prepend() {
bb.plain("first")
@@ -989,7 +989,7 @@ As an example, consider the following: ::
bb.plain("third")
}
Running ``do_foo`` prints the following: ::
Running ``do_foo`` prints the following::
recipename do_foo: first
recipename do_foo: second
@@ -1004,7 +1004,7 @@ Python Functions
These functions are written in Python and are executed by other Python
code. Examples of Python functions are utility functions that you intend
to call from in-line Python or from within other Python functions. Here
is an example: ::
is an example::
def get_depends(d):
if d.getVar('SOMECONDITION'):
@@ -1056,7 +1056,7 @@ functions and regular Python functions defined with "def":
- Regular Python functions are called with the usual Python syntax.
BitBake-style Python functions are usually tasks and are called
directly by BitBake, but can also be called manually from Python code
by using the ``bb.build.exec_func()`` function. Here is an example: ::
by using the ``bb.build.exec_func()`` function. Here is an example::
bb.build.exec_func("my_bitbake_style_function", d)
@@ -1094,7 +1094,7 @@ Sometimes it is useful to set variables or perform other operations
programmatically during parsing. To do this, you can define special
Python functions, called anonymous Python functions, that run at the end
of parsing. For example, the following conditionally sets a variable
based on the value of another variable: ::
based on the value of another variable::
python () {
if d.getVar('SOMEVAR') == 'value':
@@ -1107,7 +1107,7 @@ the name "__anonymous", rather than no name.
Anonymous Python functions always run at the end of parsing, regardless
of where they are defined. If a recipe contains many anonymous
functions, they run in the same order as they are defined within the
recipe. As an example, consider the following snippet: ::
recipe. As an example, consider the following snippet::
python () {
d.setVar('FOO', 'foo 2')
@@ -1122,7 +1122,7 @@ recipe. As an example, consider the following snippet: ::
BAR = "bar 1"
The previous example is conceptually
equivalent to the following snippet: ::
equivalent to the following snippet::
FOO = "foo 1"
BAR = "bar 1"
@@ -1136,7 +1136,7 @@ available to tasks, which always run after parsing.
Overrides and override-style operators such as "``_append``" are applied
before anonymous functions run. In the following example, ``FOO`` ends
up with the value "foo from anonymous": ::
up with the value "foo from anonymous"::
FOO = "foo"
FOO_append = " from outside"
@@ -1173,24 +1173,24 @@ version of the function.
To make use of this technique, you need the following things in place:
- The class needs to define the function as follows: ::
- The class needs to define the function as follows::
classname_functionname
For example, if you have a class file
``bar.bbclass`` and a function named ``do_foo``, the class must
define the function as follows: ::
define the function as follows::
bar_do_foo
- The class needs to contain the ``EXPORT_FUNCTIONS`` statement as
follows: ::
follows::
EXPORT_FUNCTIONS functionname
For example, continuing with
the same example, the statement in the ``bar.bbclass`` would be as
follows: ::
follows::
EXPORT_FUNCTIONS do_foo
@@ -1199,7 +1199,7 @@ To make use of this technique, you need the following things in place:
class version of the function, it should call ``bar_do_foo``.
Assuming ``do_foo`` was a shell function and ``EXPORT_FUNCTIONS`` was
used as above, the recipe's function could conditionally call the
class version of the function as follows: ::
class version of the function as follows::
do_foo() {
if [ somecondition ] ; then
@@ -1233,7 +1233,7 @@ Tasks are either :ref:`shell functions <bitbake-user-manual/bitbake-user-manual-
that have been promoted to tasks by using the ``addtask`` command. The
``addtask`` command can also optionally describe dependencies between
the task and other tasks. Here is an example that shows how to define a
task and declare some dependencies: ::
task and declare some dependencies::
python do_printdate () {
import time
@@ -1264,12 +1264,12 @@ Additionally, the ``do_printdate`` task becomes dependent upon the
rerun for experimentation purposes, you can make BitBake always
consider the task "out-of-date" by using the
:ref:`[nostamp] <bitbake-user-manual/bitbake-user-manual-metadata:Variable Flags>`
variable flag, as follows: ::
variable flag, as follows::
do_printdate[nostamp] = "1"
You can also explicitly run the task and provide the
-f option as follows: ::
-f option as follows::
$ bitbake recipe -c printdate -f
@@ -1278,7 +1278,7 @@ Additionally, the ``do_printdate`` task becomes dependent upon the
name.
You might wonder about the practical effects of using ``addtask``
without specifying any dependencies as is done in the following example: ::
without specifying any dependencies as is done in the following example::
addtask printdate
@@ -1286,7 +1286,7 @@ In this example, assuming dependencies have not been
added through some other means, the only way to run the task is by
explicitly selecting it with ``bitbake`` recipe ``-c printdate``. You
can use the ``do_listtasks`` task to list all tasks defined in a recipe
as shown in the following example: ::
as shown in the following example::
$ bitbake recipe -c listtasks
@@ -1312,7 +1312,7 @@ Deleting a Task
As well as being able to add tasks, you can delete them. Simply use the
``deltask`` command to delete a task. For example, to delete the example
task used in the previous sections, you would use: ::
task used in the previous sections, you would use::
deltask printdate
@@ -1328,7 +1328,7 @@ to run before ``do_a``.
If you want dependencies such as these to remain intact, use the
``[noexec]`` varflag to disable the task instead of using the
``deltask`` command to delete it: ::
``deltask`` command to delete it::
do_b[noexec] = "1"
@@ -1356,7 +1356,7 @@ environment, you must take these two steps:
example, assume you want to prevent the build system from accessing
your ``$HOME/.ccache`` directory. The following command "whitelists"
the environment variable ``CCACHE_DIR`` causing BitBake to allow that
variable into the datastore: ::
variable into the datastore::
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
@@ -1366,7 +1366,7 @@ environment, you must take these two steps:
available in the datastore. To export it to the task environment of
every running task, use a command similar to the following in your
local configuration file ``local.conf`` or your distribution
configuration file: ::
configuration file::
export CCACHE_DIR
@@ -1385,7 +1385,7 @@ environment into a special variable named :term:`BB_ORIGENV`.
The ``BB_ORIGENV`` variable returns a datastore object that can be
queried using the standard datastore operators such as
``getVar(, False)``. The datastore object is useful, for example, to
find the original ``DISPLAY`` variable. Here is an example: ::
find the original ``DISPLAY`` variable. Here is an example::
origenv = d.getVar("BB_ORIGENV", False)
bar = origenv.getVar("BAR", False)
@@ -1398,7 +1398,7 @@ Variable Flags
Variable flags (varflags) help control a task's functionality and
dependencies. BitBake reads and writes varflags to the datastore using
the following command forms: ::
the following command forms::
variable = d.getVarFlags("variable")
self.d.setVarFlags("FOO", {"func": True})
@@ -1537,7 +1537,7 @@ intent is to make it easy to do things like email notification on build
failures.
Following is an example event handler that prints the name of the event
and the content of the ``FILE`` variable: ::
and the content of the ``FILE`` variable::
addhandler myclass_eventhandler
python myclass_eventhandler() {
@@ -1676,7 +1676,7 @@ incarnations are buildable. These features are enabled through the
also specify conditional metadata (using the
:term:`OVERRIDES` mechanism) for a single
version, or an optionally named range of versions. Here is an
example: ::
example::
BBVERSIONS = "1.0 2.0 git"
SRC_URI_git = "git://someurl/somepath.git"
@@ -1719,7 +1719,7 @@ Dependencies Internal to the ``.bb`` File
BitBake uses the ``addtask`` directive to manage dependencies that are
internal to a given recipe file. You can use the ``addtask`` directive
to indicate when a task is dependent on other tasks or when other tasks
depend on that recipe. Here is an example: ::
depend on that recipe. Here is an example::
addtask printdate after do_fetch before do_build
@@ -1743,7 +1743,7 @@ task depends on the completion of the ``do_printdate`` task.
- The directive ``addtask mytask after do_configure`` by itself
never causes ``do_mytask`` to run. ``do_mytask`` can still be run
manually as follows: ::
manually as follows::
$ bitbake recipe -c mytask
@@ -1757,7 +1757,7 @@ Build Dependencies
BitBake uses the :term:`DEPENDS` variable to manage
build time dependencies. The ``[deptask]`` varflag for tasks signifies
the task of each item listed in ``DEPENDS`` that must complete before
that task can be executed. Here is an example: ::
that task can be executed. Here is an example::
do_configure[deptask] = "do_populate_sysroot"
@@ -1799,7 +1799,7 @@ dependencies are discovered and added.
The ``[recrdeptask]`` flag is most commonly used in high-level recipes
that need to wait for some task to finish "globally". For example,
``image.bbclass`` has the following: ::
``image.bbclass`` has the following::
do_rootfs[recrdeptask] += "do_packagedata"
@@ -1808,7 +1808,7 @@ the current recipe and all recipes reachable (by way of dependencies)
from the image recipe must run before the ``do_rootfs`` task can run.
BitBake allows a task to recursively depend on itself by
referencing itself in the task list: ::
referencing itself in the task list::
do_a[recrdeptask] = "do_a do_b"
@@ -1825,7 +1825,7 @@ Inter-Task Dependencies
BitBake uses the ``[depends]`` flag in a more generic form to manage
inter-task dependencies. This more generic form allows for
inter-dependency checks for specific tasks rather than checks for the
data in ``DEPENDS``. Here is an example: ::
data in ``DEPENDS``. Here is an example::
do_patch[depends] = "quilt-native:do_populate_sysroot"
@@ -1920,7 +1920,7 @@ To help understand how BitBake does this, the section assumes an
OpenEmbedded metadata-based example.
These checksums are stored in :term:`STAMP`. You can
examine the checksums using the following BitBake command: ::
examine the checksums using the following BitBake command::
$ bitbake-dumpsigs

View File

@@ -130,7 +130,7 @@ overview of their function and contents.
you to control the build based on these parameters.
Disk space monitoring is disabled by default. When setting this
variable, use the following form: ::
variable, use the following form::
BB_DISKMON_DIRS = "<action>,<dir>,<threshold> [...]"
@@ -166,7 +166,7 @@ overview of their function and contents.
not specify G, M, or K, Kbytes is assumed by
default. Do not use GB, MB, or KB.
Here are some examples: ::
Here are some examples::
BB_DISKMON_DIRS = "ABORT,${TMPDIR},1G,100K WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_DIRS = "STOPTASKS,${TMPDIR},1G"
@@ -207,7 +207,7 @@ overview of their function and contents.
BB_DISKMON_WARNINTERVAL = "50M,5K"
When specifying the variable in your configuration file, use the
following form: ::
following form::
BB_DISKMON_WARNINTERVAL = "<disk_space_interval>,<disk_inode_interval>"
@@ -223,7 +223,7 @@ overview of their function and contents.
G, M, or K for Gbytes, Mbytes, or Kbytes,
respectively. You cannot use GB, MB, or KB.
Here is an example: ::
Here is an example::
BB_DISKMON_DIRS = "WARN,${SSTATE_DIR},1G,100K"
BB_DISKMON_WARNINTERVAL = "50M,5K"
@@ -329,7 +329,7 @@ overview of their function and contents.
Specifies the name of the log files saved into
``${``\ :term:`T`\ ``}``. By default, the ``BB_LOGFMT``
variable is undefined and the log file names get created using the
following form: ::
following form::
log.{task}.{pid}
@@ -383,7 +383,7 @@ overview of their function and contents.
Specifies the name of the executable script files (i.e. run files)
saved into ``${``\ :term:`T`\ ``}``. By default, the
``BB_RUNFMT`` variable is undefined and the run file names get
created using the following form: ::
created using the following form::
run.{task}.{pid}
@@ -511,7 +511,7 @@ overview of their function and contents.
This variable works similarly to the :term:`BB_TASK_NICE_LEVEL`
variable except with a task's I/O priorities.
Set the variable as follows: ::
Set the variable as follows::
BB_TASK_IONICE_LEVEL = "class.prio"
@@ -529,7 +529,7 @@ overview of their function and contents.
In order for your I/O priority settings to take effect, you need the
Completely Fair Queuing (CFQ) Scheduler selected for the backing block
device. To select the scheduler, use the following command form where
device is the device (e.g. sda, sdb, and so forth): ::
device is the device (e.g. sda, sdb, and so forth)::
$ sudo sh -c "echo cfq > /sys/block/device/queu/scheduler"
@@ -570,7 +570,7 @@ overview of their function and contents.
To build a different variant of the recipe with a minimal amount of
code, it usually is as simple as adding the variable to your recipe.
Here are two examples. The "native" variants are from the
OpenEmbedded-Core metadata: ::
OpenEmbedded-Core metadata::
BBCLASSEXTEND =+ "native nativesdk"
BBCLASSEXTEND =+ "multilib:multilib_name"
@@ -658,12 +658,12 @@ overview of their function and contents.
``.bb`` files in case a layer is not present. Use this avoid hard
dependency on those other layers.
Use the following form for ``BBFILES_DYNAMIC``: ::
Use the following form for ``BBFILES_DYNAMIC``::
collection_name:filename_pattern
The following example identifies two collection names and two filename
patterns: ::
patterns::
BBFILES_DYNAMIC += "\
clang-layer:${LAYERDIR}/bbappends/meta-clang/*/*/*.bbappend \
@@ -671,14 +671,14 @@ overview of their function and contents.
"
When the collection name is prefixed with "!" it will add the file pattern in case
the layer is absent: ::
the layer is absent::
BBFILES_DYNAMIC += "\
!clang-layer:${LAYERDIR}/backfill/meta-clang/*/*/*.bb \
"
This next example shows an error message that occurs because invalid
entries are found, which cause parsing to abort: ::
entries are found, which cause parsing to abort::
ERROR: BBFILES_DYNAMIC entries must be of the form {!}<collection name>:<filename pattern>, not:
/work/my-layer/bbappends/meta-security-isafw/*/*/*.bbappend
@@ -701,7 +701,7 @@ overview of their function and contents.
:term:`BBLAYERS`
Lists the layers to enable during the build. This variable is defined
in the ``bblayers.conf`` configuration file in the build directory.
Here is an example: ::
Here is an example::
BBLAYERS = " \
/home/scottrif/poky/meta \
@@ -735,13 +735,13 @@ overview of their function and contents.
The following example uses a complete regular expression to tell
BitBake to ignore all recipe and recipe append files in the
``meta-ti/recipes-misc/`` directory: ::
``meta-ti/recipes-misc/`` directory::
BBMASK = "meta-ti/recipes-misc/"
If you want to mask out multiple directories or recipes, you can
specify multiple regular expression fragments. This next example
masks out multiple directories and individual recipes: ::
masks out multiple directories and individual recipes::
BBMASK += "/meta-ti/recipes-misc/ meta-ti/recipes-ti/packagegroup/"
BBMASK += "/meta-oe/recipes-support/"
@@ -762,7 +762,7 @@ overview of their function and contents.
``conf/local.conf`` configuration file.
As an example, the following line specifies three multiconfigs, each
having a separate configuration file: ::
having a separate configuration file::
BBMULTIFONFIG = "configA configB configC"
@@ -783,7 +783,7 @@ overview of their function and contents.
If you run BitBake from a directory outside of the build directory,
you must be sure to set ``BBPATH`` to point to the build directory.
Set the variable as you would any environment variable and then run
BitBake: ::
BitBake::
$ BBPATH="build_directory"
$ export BBPATH
@@ -852,7 +852,7 @@ overview of their function and contents.
Consider this simple example for two recipes named "a" and "b" that
produce similarly named packages. In this example, the ``DEPENDS``
statement appears in the "a" recipe: ::
statement appears in the "a" recipe::
DEPENDS = "b"
@@ -1074,7 +1074,7 @@ overview of their function and contents.
recipes provide the same item. You should always suffix the variable
with the name of the provided item, and you should set it to the
:term:`PN` of the recipe to which you want to give
precedence. Some examples: ::
precedence. Some examples::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
@@ -1086,11 +1086,11 @@ overview of their function and contents.
``PREFERRED_PROVIDERS`` is identical to
:term:`PREFERRED_PROVIDER`. However, the ``PREFERRED_PROVIDERS`` variable
lets you define preferences for multiple situations using the following
form: ::
form::
PREFERRED_PROVIDERS = "xxx:yyy aaa:bbb ..."
This form is a convenient replacement for the following: ::
This form is a convenient replacement for the following::
PREFERRED_PROVIDER_xxx = "yyy"
PREFERRED_PROVIDER_aaa = "bbb"
@@ -1106,7 +1106,7 @@ overview of their function and contents.
through the "``%``" character. You can use the character to match any
number of characters, which can be useful when specifying versions
that contain long revision numbers that potentially change. Here are
two examples: ::
two examples::
PREFERRED_VERSION_python = "2.7.3"
PREFERRED_VERSION_linux-yocto = "4.12%"
@@ -1130,7 +1130,7 @@ overview of their function and contents.
Typically, you would add a specific server for the build system to
attempt before any others by adding something like the following to
your configuration: ::
your configuration::
PREMIRRORS_prepend = "\
git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -1152,7 +1152,7 @@ overview of their function and contents.
``DEPENDS``.
Consider the following example ``PROVIDES`` statement from a recipe
file ``libav_0.8.11.bb``: ::
file ``libav_0.8.11.bb``::
PROVIDES += "libpostproc"
@@ -1175,7 +1175,7 @@ overview of their function and contents.
:term:`PRSERV_HOST`
The network based :term:`PR` service host and port.
Following is an example of how the ``PRSERV_HOST`` variable is set: ::
Following is an example of how the ``PRSERV_HOST`` variable is set::
PRSERV_HOST = "localhost:0"
@@ -1196,7 +1196,7 @@ overview of their function and contents.
you should always use the variable in a form with an attached package
name. For example, suppose you are building a development package
that depends on the ``perl`` package. In this case, you would use the
following ``RDEPENDS`` statement: ::
following ``RDEPENDS`` statement::
RDEPENDS_${PN}-dev += "perl"
@@ -1207,11 +1207,11 @@ overview of their function and contents.
BitBake supports specifying versioned dependencies. Although the
syntax varies depending on the packaging format, BitBake hides these
differences from you. Here is the general syntax to specify versions
with the ``RDEPENDS`` variable: ::
with the ``RDEPENDS`` variable::
RDEPENDS_${PN} = "package (operator version)"
For ``operator``, you can specify the following: ::
For ``operator``, you can specify the following::
=
<
@@ -1220,7 +1220,7 @@ overview of their function and contents.
>=
For example, the following sets up a dependency on version 1.2 or
greater of the package ``foo``: ::
greater of the package ``foo``::
RDEPENDS_${PN} = "foo (>= 1.2)"
@@ -1249,7 +1249,7 @@ overview of their function and contents.
As with all package-controlling variables, you must always use the
variable in conjunction with a package name override. Here is an
example: ::
example::
RPROVIDES_${PN} = "widget-abi-2"
@@ -1263,11 +1263,11 @@ overview of their function and contents.
BitBake supports specifying versioned recommends. Although the syntax
varies depending on the packaging format, BitBake hides these
differences from you. Here is the general syntax to specify versions
with the ``RRECOMMENDS`` variable: ::
with the ``RRECOMMENDS`` variable::
RRECOMMENDS_${PN} = "package (operator version)"
For ``operator``, you can specify the following: ::
For ``operator``, you can specify the following::
=
<
@@ -1276,7 +1276,7 @@ overview of their function and contents.
>=
For example, the following sets up a recommend on version
1.2 or greater of the package ``foo``: ::
1.2 or greater of the package ``foo``::
RRECOMMENDS_${PN} = "foo (>= 1.2)"

View File

@@ -0,0 +1,31 @@
#
# 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

@@ -0,0 +1,145 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import socket
from . import chunkify, DEFAULT_MAX_CHUNK
class AsyncClient(object):
def __init__(self, proto_name, proto_version, logger):
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
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():
line = await self.reader.readline()
if not line:
raise ConnectionError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise ConnectionError("Bad message %r" % msg)
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)
class Client(object):
def __init__(self):
self.client = self._get_async_client()
self.loop = asyncio.new_event_loop()
self._add_methods('connect_tcp', 'close')
@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

View File

@@ -0,0 +1,218 @@
#
# SPDX-License-Identifier: GPL-2.0-only
#
import abc
import asyncio
import json
import os
import signal
import socket
import sys
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,
}
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)
class AsyncServer(object):
def __init__(self, logger, loop=None):
if loop is None:
self.loop = asyncio.new_event_loop()
self.close_loop = True
else:
self.loop = loop
self.close_loop = False
self._cleanup_socket = None
self.logger = logger
def start_tcp_server(self, host, port):
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port, loop=self.loop)
)
for s in self.server.sockets:
self.logger.info('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])
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
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), loop=self.loop)
)
finally:
os.chdir(cwd)
self.logger.info('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
@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.info('Client disconnected')
def run_loop_forever(self):
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
def signal_handler(self):
self.loop.stop()
def serve_forever(self):
asyncio.set_event_loop(self.loop)
try:
self.loop.add_signal_handler(signal.SIGTERM, self.signal_handler)
self.run_loop_forever()
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
self.logger.info('Server shutting down')
finally:
if self.close_loop:
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
if self._cleanup_socket is not None:
self._cleanup_socket()

View File

@@ -20,6 +20,7 @@ Commands are queued in a CommandQueue
from collections import OrderedDict, defaultdict
import io
import bb.event
import bb.cooker
import bb.remotedata
@@ -500,6 +501,17 @@ 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]

View File

@@ -168,7 +168,11 @@ 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.cloneflags = "-s -n"
ud.noshared = d.getVar("BB_GIT_NOSHARED") == "1"
ud.cloneflags = "-n"
if not ud.noshared:
ud.cloneflags += " -s"
if ud.bareclone:
ud.cloneflags += " --mirror"
@@ -394,7 +398,7 @@ class Git(FetchMethod):
tmpdir = tempfile.mkdtemp(dir=d.getVar('DL_DIR'))
try:
# Do the checkout. This implicitly involves a Git LFS fetch.
self.unpack(ud, tmpdir, d)
Git.unpack(self, ud, tmpdir, d)
# Scoop up a copy of any stuff that Git LFS downloaded. Merge them into
# the bare clonedir.

View File

@@ -18,10 +18,47 @@ The aws tool must be correctly installed and configured prior to use.
import os
import bb
import urllib.request, urllib.parse, urllib.error
import re
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import runfetchcmd
def convertToBytes(value, unit):
value = float(value)
if (unit == "KiB"):
value = value*1024.0;
elif (unit == "MiB"):
value = value*1024.0*1024.0;
elif (unit == "GiB"):
value = value*1024.0*1024.0*1024.0;
return value
class S3ProgressHandler(bb.progress.LineFilterProgressHandler):
"""
Extract progress information from s3 cp output, e.g.:
Completed 5.1 KiB/8.8 GiB (12.0 MiB/s) with 1 file(s) remaining
"""
def __init__(self, d):
super(S3ProgressHandler, self).__init__(d)
# Send an initial progress event so the bar gets shown
self._fire_progress(0)
def writeline(self, line):
percs = re.findall(r'^Completed (\d+.{0,1}\d*) (\w+)\/(\d+.{0,1}\d*) (\w+) (\(.+\)) with\s+', line)
if percs:
completed = (percs[-1][0])
completedUnit = (percs[-1][1])
total = (percs[-1][2])
totalUnit = (percs[-1][3])
completed = convertToBytes(completed, completedUnit)
total = convertToBytes(total, totalUnit)
progress = (completed/total)*100.0
rate = percs[-1][4]
self.update(progress, rate)
return False
return True
class S3(FetchMethod):
"""Class to fetch urls via 'aws s3'"""
@@ -52,7 +89,9 @@ class S3(FetchMethod):
cmd = '%s cp s3://%s%s %s' % (ud.basecmd, ud.host, ud.path, ud.localpath)
bb.fetch2.check_network_access(d, cmd, ud.url)
runfetchcmd(cmd, d)
progresshandler = S3ProgressHandler(d)
runfetchcmd(cmd, d, False, log=progresshandler)
# Additional sanity checks copied from the wget class (although there
# are no known issues which mean these are required, treat the aws cli

View File

@@ -94,12 +94,15 @@ class LineFilterProgressHandler(ProgressHandler):
while True:
breakpos = self._linebuffer.find('\n') + 1
if breakpos == 0:
break
# for the case when the line with progress ends with only '\r'
breakpos = self._linebuffer.find('\r') + 1
if breakpos == 0:
break
line = self._linebuffer[:breakpos]
self._linebuffer = self._linebuffer[breakpos:]
# Drop any line feeds and anything that precedes them
lbreakpos = line.rfind('\r') + 1
if lbreakpos:
if lbreakpos and lbreakpos != breakpos:
line = line[lbreakpos:]
if self.writeline(filter_color(line)):
super().write(line)

View File

@@ -2030,8 +2030,6 @@ class RunQueueExecute:
logger.debug("%s didn't become valid, skipping setscene" % nexttask)
self.sq_task_failoutright(nexttask)
return True
else:
self.sqdata.outrightfail.remove(nexttask)
if nexttask in self.sqdata.outrightfail:
logger.debug2('No package found, so skipping setscene task %s', nexttask)
self.sq_task_failoutright(nexttask)
@@ -2296,10 +2294,16 @@ class RunQueueExecute:
self.updated_taskhash_queue.remove((tid, unihash))
if unihash != self.rqdata.runtaskentries[tid].unihash:
hashequiv_logger.verbose("Task %s unihash changed to %s" % (tid, unihash))
self.rqdata.runtaskentries[tid].unihash = unihash
bb.parse.siggen.set_unihash(tid, unihash)
toprocess.add(tid)
# Make sure we rehash any other tasks with the same task hash that we're deferred against.
torehash = [tid]
for deftid in self.sq_deferred:
if self.sq_deferred[deftid] == tid:
torehash.append(deftid)
for hashtid in torehash:
hashequiv_logger.verbose("Task %s unihash changed to %s" % (hashtid, unihash))
self.rqdata.runtaskentries[hashtid].unihash = unihash
bb.parse.siggen.set_unihash(hashtid, unihash)
toprocess.add(hashtid)
# Work out all tasks which depend upon these
total = set()
@@ -2827,6 +2831,8 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
sqdata.stamppresent.remove(tid)
if tid in sqdata.valid:
sqdata.valid.remove(tid)
if tid in sqdata.outrightfail:
sqdata.outrightfail.remove(tid)
noexec, stamppresent = check_setscene_stamps(tid, rqdata, rq, stampcache, noexecstamp=True)
@@ -2845,6 +2851,7 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
sqdata.valid |= rq.validate_hashes(tocheck, cooker.data, len(sqdata.stamppresent), False, summary=summary)
sqdata.hashes = {}
sqrq.sq_deferred = {}
for mc in sorted(sqdata.multiconfigs):
for tid in sorted(sqdata.sq_revdeps):
if mc_from_tid(tid) != mc:
@@ -2857,10 +2864,13 @@ def update_scenequeue_data(tids, sqdata, rqdata, rq, cooker, stampcache, sqrq, s
continue
if tid in sqrq.scenequeue_notcovered:
continue
sqdata.outrightfail.add(tid)
if tid in sqrq.scenequeue_covered:
continue
h = pending_hash_index(tid, rqdata)
if h not in sqdata.hashes:
if tid in tids:
sqdata.outrightfail.add(tid)
sqdata.hashes[h] = tid
else:
sqrq.sq_deferred[tid] = sqdata.hashes[h]

View File

@@ -509,7 +509,7 @@ class BitBakeServer(object):
os.set_inheritable(self.bitbake_lock.fileno(), True)
os.set_inheritable(self.readypipein, True)
serverscript = os.path.realpath(os.path.dirname(__file__) + "/../../../bin/bitbake-server")
os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
os.execl(sys.executable, "bitbake-server", serverscript, "decafbad", str(self.bitbake_lock.fileno()), str(self.readypipein), self.logfile, self.bitbake_lock.name, self.sockname, str(self.server_timeout or 0), str(self.xmlrpcinterface[0]), str(self.xmlrpcinterface[1]))
def execServer(lockfd, readypipeinfd, lockname, sockname, server_timeout, xmlrpcinterface):

View File

@@ -542,7 +542,7 @@ class SignatureGeneratorUniHashMixIn(object):
hashequiv_logger.debug((1, 2)[unihash == taskhash], 'Found unihash %s in place of %s for %s from %s' % (unihash, taskhash, tid, self.server))
else:
hashequiv_logger.debug2('No reported unihash for %s:%s from %s' % (tid, taskhash, self.server))
except hashserv.client.HashConnectionError as e:
except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
self.set_unihash(tid, unihash)
@@ -621,7 +621,7 @@ class SignatureGeneratorUniHashMixIn(object):
d.setVar('BB_UNIHASH', new_unihash)
else:
hashequiv_logger.debug('Reported task %s as unihash %s to %s' % (taskhash, unihash, self.server))
except hashserv.client.HashConnectionError as e:
except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
finally:
if sigfile:
@@ -661,7 +661,7 @@ class SignatureGeneratorUniHashMixIn(object):
# TODO: What to do here?
hashequiv_logger.verbose('Task %s unihash reported as unwanted hash %s' % (tid, finalunihash))
except hashserv.client.HashConnectionError as e:
except ConnectionError as e:
bb.warn('Error contacting Hash Equivalence Server %s: %s' % (self.server, str(e)))
return False

View File

@@ -390,6 +390,7 @@ class FetcherTest(unittest.TestCase):
if os.environ.get("BB_TMPDIR_NOCLEAN") == "yes":
print("Not cleaning up %s. Please remove manually." % self.tempdir)
else:
bb.process.run('chmod u+rw -R %s' % self.tempdir)
bb.utils.prunedir(self.tempdir)
class MirrorUriTest(FetcherTest):
@@ -673,12 +674,14 @@ class FetcherLocalTest(FetcherTest):
with self.assertRaises(bb.fetch2.UnpackError):
self.fetchUnpack(['file://a;subdir=/bin/sh'])
def test_local_gitfetch_usehead(self):
def dummyGitTest(self, suffix):
# Create dummy local Git repo
src_dir = tempfile.mkdtemp(dir=self.tempdir,
prefix='gitfetch_localusehead_')
src_dir = os.path.abspath(src_dir)
bb.process.run("git init", cwd=src_dir)
bb.process.run("git config user.email 'you@example.com'", cwd=src_dir)
bb.process.run("git config user.name 'Your Name'", cwd=src_dir)
bb.process.run("git commit --allow-empty -m'Dummy commit'",
cwd=src_dir)
# Use other branch than master
@@ -690,7 +693,7 @@ class FetcherLocalTest(FetcherTest):
# Fetch and check revision
self.d.setVar("SRCREV", "AUTOINC")
url = "git://" + src_dir + ";protocol=file;usehead=1"
url = "git://" + src_dir + ";protocol=file;" + suffix
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
@@ -699,31 +702,23 @@ class FetcherLocalTest(FetcherTest):
unpack_rev = stdout[0].strip()
self.assertEqual(orig_rev, unpack_rev)
def test_local_gitfetch_usehead(self):
self.dummyGitTest("usehead=1")
def test_local_gitfetch_usehead_withname(self):
# Create dummy local Git repo
src_dir = tempfile.mkdtemp(dir=self.tempdir,
prefix='gitfetch_localusehead_')
src_dir = os.path.abspath(src_dir)
bb.process.run("git init", cwd=src_dir)
bb.process.run("git commit --allow-empty -m'Dummy commit'",
cwd=src_dir)
# Use other branch than master
bb.process.run("git checkout -b my-devel", cwd=src_dir)
bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
cwd=src_dir)
stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
orig_rev = stdout[0].strip()
self.dummyGitTest("usehead=1;name=newName")
# Fetch and check revision
self.d.setVar("SRCREV", "AUTOINC")
url = "git://" + src_dir + ";protocol=file;usehead=1;name=newName"
fetcher = bb.fetch.Fetch([url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
stdout = bb.process.run("git rev-parse HEAD",
cwd=os.path.join(self.unpackdir, 'git'))
unpack_rev = stdout[0].strip()
self.assertEqual(orig_rev, unpack_rev)
def test_local_gitfetch_shared(self):
self.dummyGitTest("usehead=1;name=sharedName")
alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
self.assertTrue(os.path.exists(alt))
def test_local_gitfetch_noshared(self):
self.d.setVar('BB_GIT_NOSHARED', '1')
self.unpackdir += '_noshared'
self.dummyGitTest("usehead=1;name=noSharedName")
alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
self.assertFalse(os.path.exists(alt))
class FetcherNoNetworkTest(FetcherTest):
def setUp(self):
@@ -1390,6 +1385,8 @@ class GitMakeShallowTest(FetcherTest):
self.gitdir = os.path.join(self.tempdir, 'gitshallow')
bb.utils.mkdirhier(self.gitdir)
bb.process.run('git init', cwd=self.gitdir)
bb.process.run('git config user.email "you@example.com"', cwd=self.gitdir)
bb.process.run('git config user.name "Your Name"', cwd=self.gitdir)
def assertRefs(self, expected_refs):
actual_refs = self.git(['for-each-ref', '--format=%(refname)']).splitlines()
@@ -1513,6 +1510,8 @@ class GitShallowTest(FetcherTest):
bb.utils.mkdirhier(self.srcdir)
self.git('init', cwd=self.srcdir)
self.git('config user.email "you@example.com"', cwd=self.srcdir)
self.git('config user.name "Your Name"', cwd=self.srcdir)
self.d.setVar('WORKDIR', self.tempdir)
self.d.setVar('S', self.gitdir)
self.d.delVar('PREMIRRORS')
@@ -1594,6 +1593,7 @@ class GitShallowTest(FetcherTest):
# fetch and unpack, from the shallow tarball
bb.utils.remove(self.gitdir, recurse=True)
bb.process.run('chmod u+w -R "%s"' % ud.clonedir)
bb.utils.remove(ud.clonedir, recurse=True)
bb.utils.remove(ud.clonedir.replace('gitsource', 'gitsubmodule'), recurse=True)
@@ -1746,6 +1746,8 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
self.git('init', cwd=smdir)
self.git('config user.email "you@example.com"', cwd=smdir)
self.git('config user.name "Your Name"', cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1776,6 +1778,8 @@ class GitShallowTest(FetcherTest):
smdir = os.path.join(self.tempdir, 'gitsubmodule')
bb.utils.mkdirhier(smdir)
self.git('init', cwd=smdir)
self.git('config user.email "you@example.com"', cwd=smdir)
self.git('config user.name "Your Name"', cwd=smdir)
# Make this look like it was cloned from a remote...
self.git('config --add remote.origin.url "%s"' % smdir, cwd=smdir)
self.git('config --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"', cwd=smdir)
@@ -1818,8 +1822,8 @@ class GitShallowTest(FetcherTest):
self.git('annex init', cwd=self.srcdir)
open(os.path.join(self.srcdir, 'c'), 'w').close()
self.git('annex add c', cwd=self.srcdir)
self.git('commit -m annex-c -a', cwd=self.srcdir)
bb.process.run('chmod u+w -R %s' % os.path.join(self.srcdir, '.git', 'annex'))
self.git('commit --author "Foo Bar <foo@bar>" -m annex-c -a', cwd=self.srcdir)
bb.process.run('chmod u+w -R %s' % self.srcdir)
uri = 'gitannex://%s;protocol=file;subdir=${S}' % self.srcdir
fetcher, ud = self.fetch_shallow(uri)
@@ -2094,6 +2098,8 @@ class GitLfsTest(FetcherTest):
bb.utils.mkdirhier(self.srcdir)
self.git('init', cwd=self.srcdir)
self.git('config user.email "you@example.com"', cwd=self.srcdir)
self.git('config user.name "Your Name"', cwd=self.srcdir)
with open(os.path.join(self.srcdir, '.gitattributes'), 'wt') as attrs:
attrs.write('*.mp3 filter=lfs -text')
self.git(['add', '.gitattributes'], cwd=self.srcdir)
@@ -2634,3 +2640,29 @@ class NPMTest(FetcherTest):
fetcher = bb.fetch.Fetch(['npmsw://' + swfile], self.d)
fetcher.download()
self.assertTrue(os.path.exists(ud.localpath))
class GitSharedTest(FetcherTest):
def setUp(self):
super(GitSharedTest, self).setUp()
self.recipe_url = "git://git.openembedded.org/bitbake"
self.d.setVar('SRCREV', '82ea737a0b42a8b53e11c9cde141e9e9c0bd8c40')
@skipIfNoNetwork()
def test_shared_unpack(self):
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
self.assertTrue(os.path.exists(alt))
@skipIfNoNetwork()
def test_noshared_unpack(self):
self.d.setVar('BB_GIT_NOSHARED', '1')
self.unpackdir += '_noshared'
fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
alt = os.path.join(self.unpackdir, 'git/.git/objects/info/alternates')
self.assertFalse(os.path.exists(alt))

View File

@@ -52,6 +52,10 @@ class TinfoilDataStoreConnectorVarHistory:
def remoteCommand(self, cmd, *args, **kwargs):
return self.tinfoil.run_command('dataStoreConnectorVarHistCmd', self.dsindex, cmd, args, kwargs)
def emit(self, var, oval, val, o, d):
ret = self.tinfoil.run_command('dataStoreConnectorVarHistCmdEmit', self.dsindex, var, oval, val, d.dsindex)
o.write(ret)
def __getattr__(self, name):
if not hasattr(bb.data_smart.VariableHistory, name):
raise AttributeError("VariableHistory has no such method %s" % name)

View File

@@ -21,6 +21,7 @@ import fcntl
import struct
import copy
import atexit
from itertools import groupby
from bb.ui import uihelper
@@ -539,6 +540,13 @@ def main(server, eventHandler, params, tf = TerminalFilter):
except OSError:
pass
# Add the logging domains specified by the user on the command line
for (domainarg, iterator) in groupby(params.debug_domains):
dlevel = len(tuple(iterator))
l = logconfig["loggers"].setdefault("BitBake.%s" % domainarg, {})
l["level"] = logging.DEBUG - dlevel + 1
l.setdefault("handlers", []).extend(["BitBake.verbconsole"])
conf = bb.msg.setLoggingConfig(logconfig, logconfigfile)
if sys.stdin.isatty() and sys.stdout.isatty():

View File

@@ -159,12 +159,17 @@ class LayerIndexPlugin(ActionPlugin):
logger.plain(' recommended by: %s' % ' '.join(recommendedby))
if dependencies:
fetchdir = self.tinfoil.config_data.getVar('BBLAYERS_FETCH_DIR')
if not fetchdir:
logger.error("Cannot get BBLAYERS_FETCH_DIR")
return 1
if args.fetchdir:
fetchdir = args.fetchdir
else:
fetchdir = self.tinfoil.config_data.getVar('BBLAYERS_FETCH_DIR')
if not fetchdir:
logger.error("Cannot get BBLAYERS_FETCH_DIR")
return 1
if not os.path.exists(fetchdir):
os.makedirs(fetchdir)
addlayers = []
for deplayerbranch in dependencies:
@@ -206,6 +211,8 @@ class LayerIndexPlugin(ActionPlugin):
"""
args.show_only = True
args.ignore = []
args.fetchdir = ""
args.shallow = True
self.do_layerindex_fetch(args)
def register_commands(self, sp):
@@ -214,6 +221,7 @@ class LayerIndexPlugin(ActionPlugin):
parser_layerindex_fetch.add_argument('-b', '--branch', help='branch name to fetch')
parser_layerindex_fetch.add_argument('-s', '--shallow', help='do only shallow clones (--depth=1)', action='store_true')
parser_layerindex_fetch.add_argument('-i', '--ignore', help='assume the specified layers do not need to be fetched/added (separate multiple layers with commas, no spaces)', metavar='LAYER')
parser_layerindex_fetch.add_argument('-f', '--fetchdir', help='directory to fetch the layer(s) into (will be created if it does not exist)')
parser_layerindex_fetch.add_argument('layername', nargs='+', help='layer to fetch')
parser_layerindex_show_depends = self.add_command(sp, 'layerindex-show-depends', self.do_layerindex_show_depends, parserecipes=False)

View File

@@ -8,110 +8,26 @@ import json
import logging
import socket
import os
from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client
import bb.asyncrpc
from . import create_async_client
logger = logging.getLogger("hashserv.client")
class HashConnectionError(Exception):
pass
class AsyncClient(object):
class AsyncClient(bb.asyncrpc.AsyncClient):
MODE_NORMAL = 0
MODE_GET_STREAM = 1
def __init__(self):
self.reader = None
self.writer = None
super().__init__('OEHASHEQUIV', '1.1', logger)
self.mode = self.MODE_NORMAL
self.max_chunk = DEFAULT_MAX_CHUNK
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 connect(self):
if self.reader is None or self.writer is None:
(self.reader, self.writer) = await self._connect_sock()
self.writer.write("OEHASHEQUIV 1.1\n\n".encode("utf-8"))
await self.writer.drain()
cur_mode = self.mode
self.mode = self.MODE_NORMAL
await self._set_mode(cur_mode)
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,
HashConnectionError,
json.JSONDecodeError,
UnicodeDecodeError,
) as e:
logger.warning("Error talking to server: %s" % e)
if count >= 3:
if not isinstance(e, HashConnectionError):
raise HashConnectionError(str(e))
raise e
await self.close()
count += 1
async def send_message(self, msg):
async def get_line():
line = await self.reader.readline()
if not line:
raise HashConnectionError("Connection closed")
line = line.decode("utf-8")
if not line.endswith("\n"):
raise HashConnectionError("Bad message %r" % message)
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 setup_connection(self):
await super().setup_connection()
cur_mode = self.mode
self.mode = self.MODE_NORMAL
await self._set_mode(cur_mode)
async def send_stream(self, msg):
async def proc():
@@ -119,7 +35,7 @@ class AsyncClient(object):
await self.writer.drain()
l = await self.reader.readline()
if not l:
raise HashConnectionError("Connection closed")
raise ConnectionError("Connection closed")
return l.decode("utf-8").rstrip()
return await self._send_wrapper(proc)
@@ -128,11 +44,11 @@ class AsyncClient(object):
if new_mode == self.MODE_NORMAL and self.mode == self.MODE_GET_STREAM:
r = await self.send_stream("END")
if r != "ok":
raise HashConnectionError("Bad response from server %r" % r)
raise ConnectionError("Bad response from server %r" % r)
elif new_mode == self.MODE_GET_STREAM and self.mode == self.MODE_NORMAL:
r = await self.send_message({"get-stream": None})
if r != "ok":
raise HashConnectionError("Bad response from server %r" % r)
raise ConnectionError("Bad response from server %r" % r)
elif new_mode != self.mode:
raise Exception(
"Undefined mode transition %r -> %r" % (self.mode, new_mode)
@@ -189,12 +105,10 @@ class AsyncClient(object):
return (await self.send_message({"backfill-wait": None}))["tasks"]
class Client(object):
class Client(bb.asyncrpc.Client):
def __init__(self):
self.client = AsyncClient()
self.loop = asyncio.new_event_loop()
for call in (
super().__init__()
self._add_methods(
"connect_tcp",
"close",
"get_unihash",
@@ -204,30 +118,7 @@ class Client(object):
"get_stats",
"reset_stats",
"backfill_wait",
):
downcall = getattr(self.client, call)
setattr(self, call, self._get_downcall_wrapper(downcall))
)
def _get_downcall_wrapper(self, downcall):
def wrapper(*args, **kwargs):
return self.loop.run_until_complete(downcall(*args, **kwargs))
return wrapper
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 _get_async_client(self):
return AsyncClient()

View File

@@ -14,7 +14,9 @@ import signal
import socket
import sys
import time
from . import chunkify, DEFAULT_MAX_CHUNK, create_async_client, TABLE_COLUMNS
from . import create_async_client, TABLE_COLUMNS
import bb.asyncrpc
logger = logging.getLogger('hashserv.server')
@@ -109,12 +111,6 @@ class Stats(object):
return {k: getattr(self, k) for k in ('num', 'total_time', 'max_time', 'average', 'stdev')}
class ClientError(Exception):
pass
class ServerError(Exception):
pass
def insert_task(cursor, data, ignore=False):
keys = sorted(data.keys())
query = '''INSERT%s INTO tasks_v2 (%s) VALUES (%s)''' % (
@@ -149,7 +145,7 @@ async def copy_outhash_from_upstream(client, db, method, outhash, taskhash):
return d
class ServerClient(object):
class ServerClient(bb.asyncrpc.AsyncServerConnection):
FAST_QUERY = 'SELECT taskhash, method, unihash FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
ALL_QUERY = 'SELECT * FROM tasks_v2 WHERE method=:method AND taskhash=:taskhash ORDER BY created ASC LIMIT 1'
OUTHASH_QUERY = '''
@@ -168,21 +164,19 @@ class ServerClient(object):
'''
def __init__(self, reader, writer, db, request_stats, backfill_queue, upstream, read_only):
self.reader = reader
self.writer = writer
super().__init__(reader, writer, 'OEHASHEQUIV', logger)
self.db = db
self.request_stats = request_stats
self.max_chunk = DEFAULT_MAX_CHUNK
self.max_chunk = bb.asyncrpc.DEFAULT_MAX_CHUNK
self.backfill_queue = backfill_queue
self.upstream = upstream
self.handlers = {
self.handlers.update({
'get': self.handle_get,
'get-outhash': self.handle_get_outhash,
'get-stream': self.handle_get_stream,
'get-stats': self.handle_get_stats,
'chunk-stream': self.handle_chunk,
}
})
if not read_only:
self.handlers.update({
@@ -192,56 +186,19 @@ class ServerClient(object):
'backfill-wait': self.handle_backfill_wait,
})
def validate_proto_version(self):
return (self.proto_version > (1, 0) and self.proto_version <= (1, 1))
async def process_requests(self):
if self.upstream is not None:
self.upstream_client = await create_async_client(self.upstream)
else:
self.upstream_client = None
try:
await super().process_requests()
self.addr = self.writer.get_extra_info('peername')
logger.debug('Client %r connected' % (self.addr,))
# Read protocol and version
protocol = await self.reader.readline()
if protocol is None:
return
(proto_name, proto_version) = protocol.decode('utf-8').rstrip().split()
if proto_name != 'OEHASHEQUIV':
return
proto_version = tuple(int(v) for v in proto_version.split('.'))
if proto_version < (1, 0) or proto_version > (1, 1):
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:
logger.error(str(e))
finally:
if self.upstream_client is not None:
await self.upstream_client.close()
self.writer.close()
if self.upstream_client is not None:
await self.upstream_client.close()
async def dispatch_message(self, msg):
for k in self.handlers.keys():
@@ -255,47 +212,7 @@ class ServerClient(object):
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:
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:
logger.error('Bad message from client: %r' % message)
raise e
if 'chunk-stream' in msg:
raise ClientError("Nested chunks are not allowed")
await self.dispatch_message(msg)
raise bb.asyncrpc.ClientError("Unrecognized command %r" % msg)
async def handle_get(self, request):
method = request['method']
@@ -499,74 +416,20 @@ class ServerClient(object):
cursor.close()
class Server(object):
class Server(bb.asyncrpc.AsyncServer):
def __init__(self, db, loop=None, upstream=None, read_only=False):
if upstream and read_only:
raise ServerError("Read-only hashserv cannot pull from an upstream server")
raise bb.asyncrpc.ServerError("Read-only hashserv cannot pull from an upstream server")
super().__init__(logger, loop)
self.request_stats = Stats()
self.db = db
if loop is None:
self.loop = asyncio.new_event_loop()
self.close_loop = True
else:
self.loop = loop
self.close_loop = False
self.upstream = upstream
self.read_only = read_only
self._cleanup_socket = None
def start_tcp_server(self, host, port):
self.server = self.loop.run_until_complete(
asyncio.start_server(self.handle_client, host, port, loop=self.loop)
)
for s in self.server.sockets:
logger.info('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])
def start_unix_server(self, path):
def cleanup():
os.unlink(path)
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), loop=self.loop)
)
finally:
os.chdir(cwd)
logger.info('Listening on %r' % path)
self._cleanup_socket = cleanup
self.address = "unix://%s" % os.path.abspath(path)
async def handle_client(self, reader, writer):
# writer.transport.set_write_buffer_limits(0)
try:
client = ServerClient(reader, writer, self.db, self.request_stats, self.backfill_queue, self.upstream, self.read_only)
await client.process_requests()
except Exception as e:
import traceback
logger.error('Error from client: %s' % str(e), exc_info=True)
traceback.print_exc()
writer.close()
logger.info('Client disconnected')
def accept_client(self, reader, writer):
return ServerClient(reader, writer, self.db, self.request_stats, self.backfill_queue, self.upstream, self.read_only)
@contextmanager
def _backfill_worker(self):
@@ -597,31 +460,8 @@ class Server(object):
else:
yield
def serve_forever(self):
def signal_handler():
self.loop.stop()
def run_loop_forever(self):
self.backfill_queue = asyncio.Queue()
asyncio.set_event_loop(self.loop)
try:
self.backfill_queue = asyncio.Queue()
self.loop.add_signal_handler(signal.SIGTERM, signal_handler)
with self._backfill_worker():
try:
self.loop.run_forever()
except KeyboardInterrupt:
pass
self.server.close()
self.loop.run_until_complete(self.server.wait_closed())
logger.info('Server shutting down')
finally:
if self.close_loop:
if sys.version_info >= (3, 6):
self.loop.run_until_complete(self.loop.shutdown_asyncgens())
self.loop.close()
if self._cleanup_socket is not None:
self._cleanup_socket()
with self._backfill_worker():
super().run_loop_forever()

View File

@@ -6,7 +6,6 @@
#
from . import create_server, create_client
from .client import HashConnectionError
import hashlib
import logging
import multiprocessing
@@ -277,7 +276,7 @@ class HashEquivalenceCommonTests(object):
outhash2 = '3c979c3db45c569f51ab7626a4651074be3a9d11a84b1db076f5b14f7d39db44'
unihash2 = '90e9bc1d1f094c51824adca7f8ea79a048d68824'
with self.assertRaises(HashConnectionError):
with self.assertRaises(ConnectionError):
ro_client.report_unihash(taskhash2, self.METHOD, outhash2, unihash2)
# Ensure that the database was not modified

View File

@@ -18,10 +18,6 @@ import select
logger = logging.getLogger("BitBake.PRserv")
if sys.hexversion < 0x020600F0:
print("Sorry, python 2.6 or later is required.")
sys.exit(1)
class Handler(SimpleXMLRPCRequestHandler):
def _dispatch(self,method,params):
try:
@@ -60,7 +56,6 @@ class PRServer(SimpleXMLRPCServer):
self.register_function(self.quit, "quit")
self.register_function(self.ping, "ping")
self.register_function(self.export, "export")
self.register_function(self.dump_db, "dump_db")
self.register_function(self.importone, "importone")
self.register_introspection_functions()
@@ -122,26 +117,6 @@ class PRServer(SimpleXMLRPCServer):
logger.error(str(exc))
return None
def dump_db(self):
"""
Returns a script (string) that reconstructs the state of the
entire database at the time this function is called. The script
language is defined by the backing database engine, which is a
function of server configuration.
Returns None if the database engine does not support dumping to
script or if some other error is encountered in processing.
"""
buff = io.StringIO()
try:
self.table.sync()
self.table.dump_db(buff)
return buff.getvalue()
except Exception as exc:
logger.error(str(exc))
return None
finally:
buff.close()
def importone(self, version, pkgarch, checksum, value):
return self.table.importone(version, pkgarch, checksum, value)
@@ -339,9 +314,6 @@ class PRServerConnection(object):
def export(self,version=None, pkgarch=None, checksum=None, colinfo=True):
return self.connection.export(version, pkgarch, checksum, colinfo)
def dump_db(self):
return self.connection.dump_db()
def importone(self, version, pkgarch, checksum, value):
return self.connection.importone(version, pkgarch, checksum, value)
@@ -510,3 +482,6 @@ def auto_shutdown():
def ping(host, port):
conn=PRServerConnection(host, port)
return conn.ping()
def connect(host, port):
return PRServerConnection(host, port)

View File

@@ -238,7 +238,7 @@ an entire Linux distribution, including the toolchain, from source.
You can significantly speed up your build and guard against fetcher
failures by using mirrors. To use mirrors, add these lines to your
local.conf file in the Build directory: ::
local.conf file in the Build directory::
SSTATE_MIRRORS = "\
file://.* http://sstate.yoctoproject.org/dev/PATH;downloadfilename=PATH \n \

View File

@@ -26,7 +26,7 @@ A BSP consists of a file structure inside a base directory.
Collectively, you can think of the base directory, its file structure,
and the contents as a BSP layer. Although not a strict requirement, BSP
layers in the Yocto Project use the following well-established naming
convention: ::
convention::
meta-bsp_root_name
@@ -58,7 +58,7 @@ Each repository is a BSP layer supported by the Yocto Project (e.g.
``meta-raspberrypi`` and ``meta-intel``). Each of these layers is a
repository unto itself and clicking on the layer name displays two URLs
from which you can clone the layer's repository to your local system.
Here is an example that clones the Raspberry Pi BSP layer: ::
Here is an example that clones the Raspberry Pi BSP layer::
$ git clone git://git.yoctoproject.org/meta-raspberrypi
@@ -84,7 +84,7 @@ established after you run the OpenEmbedded build environment setup
script (i.e. :ref:`ref-manual/structure:\`\`oe-init-build-env\`\``).
Adding the root directory allows the :term:`OpenEmbedded Build System`
to recognize the BSP
layer and from it build an image. Here is an example: ::
layer and from it build an image. Here is an example::
BBLAYERS ?= " \
/usr/local/src/yocto/meta \
@@ -113,7 +113,7 @@ this type of layer is OpenEmbedded's
`meta-openembedded <https://github.com/openembedded/meta-openembedded>`__
layer. The ``meta-openembedded`` layer contains many ``meta-*`` layers.
In cases like this, you need to include the names of the actual layers
you want to work with, such as: ::
you want to work with, such as::
BBLAYERS ?= " \
/usr/local/src/yocto/meta \
@@ -193,7 +193,7 @@ section.
#. *Check Out the Proper Branch:* The branch you check out for
``meta-intel`` must match the same branch you are using for the
Yocto Project release (e.g. ``&DISTRO_NAME_NO_CAP;``): ::
Yocto Project release (e.g. ``&DISTRO_NAME_NO_CAP;``)::
$ cd meta-intel
$ git checkout -b &DISTRO_NAME_NO_CAP; remotes/origin/&DISTRO_NAME_NO_CAP;
@@ -216,7 +216,7 @@ section.
The process is identical to the process used for the ``meta-intel``
layer except for the layer's name. For example, if you determine that
your hardware most closely matches the ``meta-raspberrypi``, clone
that layer: ::
that layer::
$ git clone git://git.yoctoproject.org/meta-raspberrypi
Cloning into 'meta-raspberrypi'...
@@ -451,7 +451,7 @@ The following sections describe each part of the proposed BSP format.
License Files
-------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/bsp_license_file
@@ -469,7 +469,7 @@ section in the Yocto Project Development Tasks Manual.
README File
-----------
You can find this file in the BSP Layer at: ::
You can find this file in the BSP Layer at::
meta-bsp_root_name/README
@@ -484,7 +484,7 @@ name of the BSP maintainer with his or her contact information.
README.sources File
-------------------
You can find this file in the BSP Layer at: ::
You can find this file in the BSP Layer at::
meta-bsp_root_name/README.sources
@@ -503,7 +503,7 @@ used to generate the images that ship with the BSP.
Pre-built User Binaries
-----------------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/binary/bootable_images
@@ -526,7 +526,7 @@ information on the Metadata.
Layer Configuration File
------------------------
You can find this file in the BSP Layer at: ::
You can find this file in the BSP Layer at::
meta-bsp_root_name/conf/layer.conf
@@ -550,7 +550,7 @@ template). ::
LAYERDEPENDS_bsp = "intel"
To illustrate the string substitutions, here are the corresponding
statements from the Raspberry Pi ``conf/layer.conf`` file: ::
statements from the Raspberry Pi ``conf/layer.conf`` file::
# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -576,7 +576,7 @@ recognize the BSP.
Hardware Configuration Options
------------------------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/conf/machine/*.conf
@@ -607,14 +607,14 @@ For example, many ``tune-*`` files (e.g. ``tune-arm1136jf-s.inc``,
To use an include file, you simply include them in the machine
configuration file. For example, the Raspberry Pi BSP
``raspberrypi3.conf`` contains the following statement: ::
``raspberrypi3.conf`` contains the following statement::
include conf/machine/include/rpi-base.inc
Miscellaneous BSP-Specific Recipe Files
---------------------------------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-bsp/*
@@ -624,7 +624,7 @@ Raspberry Pi BSP, there is the ``formfactor_0.0.bbappend`` file, which
is an append file used to augment the recipe that starts the build.
Furthermore, there are machine-specific settings used during the build
that are defined by the ``machconfig`` file further down in the
directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
directory. Here is the ``machconfig`` file for the Raspberry Pi BSP::
HAVE_TOUCHSCREEN=0
HAVE_KEYBOARD=1
@@ -644,7 +644,7 @@ directory. Here is the ``machconfig`` file for the Raspberry Pi BSP: ::
Display Support Files
---------------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-graphics/*
@@ -655,7 +655,7 @@ to support a display are kept here.
Linux Kernel Configuration
--------------------------
You can find these files in the BSP Layer at: ::
You can find these files in the BSP Layer at::
meta-bsp_root_name/recipes-kernel/linux/linux*.bbappend
meta-bsp_root_name/recipes-kernel/linux/*.bb
@@ -678,7 +678,7 @@ Suppose you are using the ``linux-yocto_4.4.bb`` recipe to build the
kernel. In other words, you have selected the kernel in your
``"bsp_root_name".conf`` file by adding
:term:`PREFERRED_PROVIDER` and :term:`PREFERRED_VERSION`
statements as follows: ::
statements as follows::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "4.4%"
@@ -698,7 +698,7 @@ in the Yocto Project Linux Kernel Development Manual.
An alternate scenario is when you create your own kernel recipe for the
BSP. A good example of this is the Raspberry Pi BSP. If you examine the
``recipes-kernel/linux`` directory you see the following: ::
``recipes-kernel/linux`` directory you see the following::
linux-raspberrypi-dev.bb
linux-raspberrypi.inc
@@ -1042,7 +1042,7 @@ BSP-specific configuration file named ``interfaces`` to the
also supports several other machines:
#. Edit the ``init-ifupdown_1.0.bbappend`` file so that it contains the
following: ::
following::
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
@@ -1050,14 +1050,14 @@ also supports several other machines:
directory.
#. Create and place the new ``interfaces`` configuration file in the
BSP's layer here: ::
BSP's layer here::
meta-xyz/recipes-core/init-ifupdown/files/xyz-machine-one/interfaces
.. note::
If the ``meta-xyz`` layer did not support multiple machines, you would place
the interfaces configuration file in the layer here: ::
the interfaces configuration file in the layer here::
meta-xyz/recipes-core/init-ifupdown/files/interfaces
@@ -1210,7 +1210,7 @@ BSP Layer Configuration Example
-------------------------------
The layer's ``conf`` directory contains the ``layer.conf`` configuration
file. In this example, the ``conf/layer.conf`` is the following: ::
file. In this example, the ``conf/layer.conf`` is the following::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -1242,7 +1242,7 @@ configuration file is what makes a layer a BSP layer as compared to a
general or kernel layer.
One or more machine configuration files exist in the
``bsp_layer/conf/machine/`` directory of the layer: ::
``bsp_layer/conf/machine/`` directory of the layer::
bsp_layer/conf/machine/machine1\.conf
bsp_layer/conf/machine/machine2\.conf
@@ -1252,7 +1252,7 @@ One or more machine configuration files exist in the
For example, the machine configuration file for the `BeagleBone and
BeagleBone Black development boards <https://beagleboard.org/bone>`__ is
located in the layer ``poky/meta-yocto-bsp/conf/machine`` and is named
``beaglebone-yocto.conf``: ::
``beaglebone-yocto.conf``::
#@TYPE: Machine
#@NAME: Beaglebone-yocto machine
@@ -1447,7 +1447,7 @@ BSP Kernel Recipe Example
-------------------------
The kernel recipe used to build the kernel image for the BeagleBone
device was established in the machine configuration: ::
device was established in the machine configuration::
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.0%"
@@ -1458,7 +1458,7 @@ metadata used to build the kernel. In this case, a kernel append file
kernel recipe (i.e. ``linux-yocto_5.0.bb``), which is located in
:yocto_git:`/poky/tree/meta/recipes-kernel/linux`.
Following is the contents of the append file: ::
Following is the contents of the append file::
KBRANCH_genericx86 = "v5.0/standard/base"
KBRANCH_genericx86-64 = "v5.0/standard/base"

File diff suppressed because it is too large Load Diff

View File

@@ -55,16 +55,14 @@ available. Follow these general steps to run QEMU:
- If you cloned the ``poky`` repository or you downloaded and
unpacked a Yocto Project release tarball, you can source the build
environment script (i.e. :ref:`structure-core-script`):
::
environment script (i.e. :ref:`structure-core-script`)::
$ cd poky
$ source oe-init-build-env
- If you installed a cross-toolchain, you can run the script that
initializes the toolchain. For example, the following commands run
the initialization script from the default ``poky_sdk`` directory:
::
the initialization script from the default ``poky_sdk`` directory::
. poky_sdk/environment-setup-core2-64-poky-linux
@@ -86,8 +84,7 @@ available. Follow these general steps to run QEMU:
Extensible Software Development Kit (eSDK) manual for information on
how to extract a root filesystem.
4. *Run QEMU:* The basic ``runqemu`` command syntax is as follows:
::
4. *Run QEMU:* The basic ``runqemu`` command syntax is as follows::
$ runqemu [option ] [...]
@@ -222,18 +219,15 @@ using an NFS server.
Should you need to start, stop, or restart the NFS share, you can use
the following commands:
- The following command starts the NFS share:
::
- The following command starts the NFS share::
runqemu-export-rootfs start file-system-location
- The following command stops the NFS share:
::
- The following command stops the NFS share::
runqemu-export-rootfs stop file-system-location
- The following command restarts the NFS share:
::
- The following command restarts the NFS share::
runqemu-export-rootfs restart file-system-location
@@ -313,8 +307,7 @@ present, the toolchain is also automatically used.
QEMU Command-Line Syntax
========================
The basic ``runqemu`` command syntax is as follows:
::
The basic ``runqemu`` command syntax is as follows::
$ runqemu [option ] [...]
@@ -325,8 +318,7 @@ timestamp when it needs to look for an image. Minimally, through the use
of options, you must provide either a machine name, a virtual machine
image (``*wic.vmdk``), or a kernel image (``*.bin``).
Following is the command-line help output for the ``runqemu`` command:
::
Following is the command-line help output for the ``runqemu`` command::
$ runqemu --help

View File

@@ -486,8 +486,7 @@ your Yocto Project build host:
distribution.
3. *Check your Linux distribution is using WSLv2:* Open a Windows
PowerShell and run:
::
PowerShell and run::
C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
@@ -514,8 +513,7 @@ your Yocto Project build host:
1. *Find the location of your VHDX file:* First you need to find the
distro app package directory, to achieve this open a Windows
Powershell as Administrator and run:
::
Powershell as Administrator and run::
C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName
PackageFamilyName
@@ -525,8 +523,7 @@ your Yocto Project build host:
You should now
replace the PackageFamilyName and your user on the following path
to find your VHDX file:
::
to find your VHDX file::
ls C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\
Mode LastWriteTime Length Name
@@ -536,8 +533,7 @@ your Yocto Project build host:
``C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx``
2. *Optimize your VHDX file:* Open a Windows Powershell as
Administrator to optimize your VHDX file, shutting down WSL first:
::
Administrator to optimize your VHDX file, shutting down WSL first::
C:\WINDOWS\system32> wsl --shutdown
C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full
@@ -741,8 +737,7 @@ Follow these steps to create a local version of the upstream
2. *Clone the Repository:* The following example command clones the
``poky`` repository and uses the default name "poky" for your local
repository:
::
repository::
$ git clone git://git.yoctoproject.org/poky
Cloning into 'poky'...
@@ -764,8 +759,7 @@ Follow these steps to create a local version of the upstream
Once the local repository is created, you can change to that
directory and check its status. Here, the single "master" branch
exists on your system and by default, it is checked out:
::
exists on your system and by default, it is checked out::
$ cd poky
$ git status
@@ -826,8 +820,7 @@ and then specifically check out that development branch.
3. *Check out the Branch:* Check out the development branch in which you
want to work. For example, to access the files for the Yocto Project
&DISTRO; Release (&DISTRO_NAME;), use the following command:
::
&DISTRO; Release (&DISTRO_NAME;), use the following command::
$ git checkout -b &DISTRO_NAME_NO_CAP; origin/&DISTRO_NAME_NO_CAP;
Branch &DISTRO_NAME_NO_CAP; set up to track remote branch &DISTRO_NAME_NO_CAP; from origin.
@@ -839,8 +832,7 @@ and then specifically check out that development branch.
The following command displays the branches that are now part of your
local poky repository. The asterisk character indicates the branch
that is currently checked out for work:
::
that is currently checked out for work::
$ git branch
master
@@ -867,14 +859,12 @@ similar to checking out by branch name except you use tag names.
section.
2. *Fetch the Tag Names:* To checkout the branch based on a tag name,
you need to fetch the upstream tags into your local repository:
::
you need to fetch the upstream tags into your local repository::
$ git fetch --tags
$
3. *List the Tag Names:* You can list the tag names now:
::
3. *List the Tag Names:* You can list the tag names now::
$ git tag
1.1_M1.final

View File

@@ -67,8 +67,7 @@ to indicate the branch.
.. note::
You can use the ``KBRANCH`` value to define an alternate branch typically
with a machine override as shown here from the ``meta-yocto-bsp`` layer:
::
with a machine override as shown here from the ``meta-yocto-bsp`` layer::
KBRANCH_edgerouter = "standard/edgerouter"
@@ -106,15 +105,13 @@ You can use the
variable to include features (configuration fragments, patches, or both)
that are not already included by the ``KMACHINE`` and
``LINUX_KERNEL_TYPE`` variable combination. For example, to include a
feature specified as "features/netfilter/netfilter.scc", specify:
::
feature specified as "features/netfilter/netfilter.scc", specify::
KERNEL_FEATURES += "features/netfilter/netfilter.scc"
To include a
feature called "cfg/sound.scc" just for the ``qemux86`` machine,
specify:
::
specify::
KERNEL_FEATURES_append_qemux86 = " cfg/sound.scc"
@@ -157,8 +154,7 @@ types to form the final description of what will be assembled and built.
While the kernel Metadata syntax does not enforce any logical separation
of configuration fragments, patches, features or kernel types, best
practices dictate a logical separation of these types of Metadata. The
following Metadata file hierarchy is recommended:
::
following Metadata file hierarchy is recommended::
base/
bsp/
@@ -222,8 +218,7 @@ used with the ``linux-yocto-4.12`` kernel as defined outside of the
recipe space (i.e. ``yocto-kernel-cache``). This Metadata consists of
two files: ``smp.scc`` and ``smp.cfg``. You can find these files in the
``cfg`` directory of the ``yocto-4.12`` branch in the
``yocto-kernel-cache`` Git repository:
::
``yocto-kernel-cache`` Git repository::
cfg/smp.scc:
define KFEATURE_DESCRIPTION "Enable SMP for 32 bit builds"
@@ -265,8 +260,7 @@ non-hardware fragment.
As described in the
":ref:`kernel-dev/common:validating configuration`" section, you can
use the following BitBake command to audit your configuration:
::
use the following BitBake command to audit your configuration::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -287,8 +281,7 @@ in the ``patches/build`` directory of the ``yocto-4.12`` branch in the
``yocto-kernel-cache`` Git repository.
The following listings show the ``build.scc`` file and part of the
``modpost-mask-trivial-warnings.patch`` file:
::
``modpost-mask-trivial-warnings.patch`` file::
patches/build/build.scc:
patch arm-serialize-build-targets.patch
@@ -334,8 +327,7 @@ Features
Features are complex kernel Metadata types that consist of configuration
fragments, patches, and possibly other feature description files. As an
example, consider the following generic listing:
::
example, consider the following generic listing::
features/myfeature.scc
define KFEATURE_DESCRIPTION "Enable myfeature"
@@ -371,15 +363,13 @@ the ``linux-yocto_4.12.bb`` kernel recipe found in
``poky/meta/recipes-kernel/linux``, a
:ref:`require <bitbake:bitbake-user-manual/bitbake-user-manual-metadata:\`\`require\`\` directive>` directive
includes the ``poky/meta/recipes-kernel/linux/linux-yocto.inc`` file,
which has the following statement that defines the default kernel type:
::
which has the following statement that defines the default kernel type::
LINUX_KERNEL_TYPE ??= "standard"
Another example would be the real-time kernel (i.e.
``linux-yocto-rt_4.12.bb``). This kernel recipe directly sets the kernel
type as follows:
::
type as follows::
LINUX_KERNEL_TYPE = "preempt-rt"
@@ -412,8 +402,7 @@ for Linux Yocto kernels:
For any given kernel type, the Metadata is defined by the ``.scc`` (e.g.
``standard.scc``). Here is a partial listing for the ``standard.scc``
file, which is found in the ``ktypes/standard`` directory of the
``yocto-kernel-cache`` Git repository:
::
``yocto-kernel-cache`` Git repository::
# Include this kernel type fragment to get the standard features and
# configuration values.
@@ -482,15 +471,13 @@ Description Overview
For simplicity, consider the following root BSP layer description files
for the BeagleBone board. These files employ both a structure and naming
convention for consistency. The naming convention for the file is as
follows:
::
follows::
bsp_root_name-kernel_type.scc
Here are some example root layer
BSP filenames for the BeagleBone Board BSP, which is supported by the
Yocto Project:
::
Yocto Project::
beaglebone-standard.scc
beaglebone-preempt-rt.scc
@@ -498,8 +485,7 @@ Yocto Project:
Each file uses the root name (i.e "beaglebone") BSP name followed by the
kernel type.
Examine the ``beaglebone-standard.scc`` file:
::
Examine the ``beaglebone-standard.scc`` file::
define KMACHINE beaglebone
define KTYPE standard
@@ -533,8 +519,7 @@ description file match.
To separate your kernel policy from your hardware configuration, you
include a kernel type (``ktype``), such as "standard". In the previous
example, this is done using the following:
::
example, this is done using the following::
include ktypes/standard/standard.scc
@@ -544,13 +529,11 @@ policy. See the ":ref:`kernel-dev/advanced:kernel types`" section for more
information.
To aggregate common configurations and features specific to the kernel
for `mybsp`, use the following:
::
for `mybsp`, use the following::
include mybsp.scc
You can see that in the BeagleBone example with the following:
::
You can see that in the BeagleBone example with the following::
include beaglebone.scc
@@ -558,15 +541,13 @@ For information on how to break a complete ``.config`` file into the various
configuration fragments, see the ":ref:`kernel-dev/common:creating configuration fragments`" section.
Finally, if you have any configurations specific to the hardware that
are not in a ``*.scc`` file, you can include them as follows:
::
are not in a ``*.scc`` file, you can include them as follows::
kconf hardware mybsp-extra.cfg
The BeagleBone example does not include these
types of configurations. However, the Malta 32-bit board does
("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file:
::
("mti-malta32"). Here is the ``mti-malta32-le-standard.scc`` file::
define KMACHINE mti-malta32-le
define KMACHINE qemumipsel
@@ -623,8 +604,7 @@ found on the machine. This ``minnow.scc`` description file is then
included in each of the three "minnow" description files for the
supported kernel types (i.e. "standard", "preempt-rt", and "tiny").
Consider the "minnow" description for the "standard" kernel type (i.e.
``minnow-standard.scc``):
::
``minnow-standard.scc``)::
define KMACHINE minnow
define KTYPE standard
@@ -656,8 +636,7 @@ that defines all enabled hardware for the BSP that is common to all
kernel types. Using this command significantly reduces duplication.
Now consider the "minnow" description for the "tiny" kernel type (i.e.
``minnow-tiny.scc``):
::
``minnow-tiny.scc``)::
define KMACHINE minnow
define KTYPE tiny
@@ -720,8 +699,7 @@ See the ":ref:`kernel-dev/common:modifying an existing recipe`"
section for more information.
Here is an example that shows a trivial tree of kernel Metadata stored
in recipe-space within a BSP layer:
::
in recipe-space within a BSP layer::
meta-my_bsp_layer/
`-- recipes-kernel
@@ -744,8 +722,7 @@ value when changing the content of files not explicitly listed in the
If the BSP description is in recipe space, you cannot simply list the
``*.scc`` in the ``SRC_URI`` statement. You need to use the following
form from your kernel append file:
::
form from your kernel append file::
SRC_URI_append_myplatform = " \
file://myplatform;type=kmeta;destsuffix=myplatform \
@@ -759,8 +736,7 @@ reside in a separate repository. The OpenEmbedded build system adds the
Metadata to the build as a "type=kmeta" repository through the
:term:`SRC_URI` variable. As an
example, consider the following ``SRC_URI`` statement from the
``linux-yocto_4.12.bb`` kernel recipe:
::
``linux-yocto_4.12.bb`` kernel recipe::
SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.12.git;name=machine;branch=${KBRANCH}; \
git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -844,14 +820,12 @@ patches into a feature.
Once you have a new branch, you can set up your kernel Metadata to use
the branch a couple different ways. In the recipe, you can specify the
new branch as the ``KBRANCH`` to use for the board as follows:
::
new branch as the ``KBRANCH`` to use for the board as follows::
KBRANCH = "mynewbranch"
Another method is to use the ``branch`` command in the BSP
description:
::
description::
mybsp.scc:
define KMACHINE mybsp
@@ -865,15 +839,13 @@ description:
If you find yourself with numerous branches, you might consider using a
hierarchical branching system similar to what the Yocto Linux Kernel Git
repositories use:
::
repositories use::
common/kernel_type/machine
If you had two kernel types, "standard" and "small" for instance, three
machines, and common as ``mydir``, the branches in your Git repository
might look like this:
::
might look like this::
mydir/base
mydir/standard/base
@@ -905,8 +877,7 @@ that have to be regularly updated. The Yocto Project Linux kernel tools
provide for this with the ``git merge`` command.
To merge a feature branch into a BSP, insert the ``git merge`` command
after any ``branch`` commands:
::
after any ``branch`` commands::
mybsp.scc:
define KMACHINE mybsp

View File

@@ -54,8 +54,7 @@ section:
1. *Initialize the BitBake Environment:* Before building an extensible
SDK, you need to initialize the BitBake build environment by sourcing
the build environment script (i.e. :ref:`structure-core-script`):
::
the build environment script (i.e. :ref:`structure-core-script`)::
$ cd poky
$ source oe-init-build-env
@@ -83,16 +82,14 @@ section:
In this example we wish to build for qemux86 so we must set the
``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
As described we do this by appending to ``conf/local.conf``:
::
As described we do this by appending to ``conf/local.conf``::
MACHINE = "qemux86"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
3. *Create a Layer for Patches:* You need to create a layer to hold
patches created for the kernel image. You can use the
``bitbake-layers create-layer`` command as follows:
::
``bitbake-layers create-layer`` command as follows::
$ cd poky/build
$ bitbake-layers create-layer ../../meta-mylayer
@@ -116,8 +113,7 @@ section:
4. *Inform the BitBake Build Environment About Your Layer:* As directed
when you created your layer, you need to add the layer to the
:term:`BBLAYERS` variable in the
``bblayers.conf`` file as follows:
::
``bblayers.conf`` file as follows::
$ cd poky/build
$ bitbake-layers add-layer ../../meta-mylayer
@@ -125,16 +121,14 @@ section:
$
5. *Build the Extensible SDK:* Use BitBake to build the extensible SDK
specifically for use with images to be run using QEMU:
::
specifically for use with images to be run using QEMU::
$ cd poky/build
$ bitbake core-image-minimal -c populate_sdk_ext
Once
the build finishes, you can find the SDK installer file (i.e.
``*.sh`` file) in the following directory:
::
``*.sh`` file) in the following directory::
poky/build/tmp/deploy/sdk
@@ -143,8 +137,7 @@ section:
6. *Install the Extensible SDK:* Use the following command to install
the SDK. For this example, install the SDK in the default
``poky_sdk`` directory:
::
``poky_sdk`` directory::
$ cd poky/build/tmp/deploy/sdk
$ ./poky-glibc-x86_64-core-image-minimal-i586-toolchain-ext-&DISTRO;.sh
@@ -172,8 +165,7 @@ section:
BitBake shell used to build the installer.
After opening a new shell, run the SDK environment setup script as
directed by the output from installing the SDK:
::
directed by the output from installing the SDK::
$ source poky_sdk/environment-setup-i586-poky-linux
"SDK environment now set up; additionally you may now run devtool to perform development tasks.
@@ -186,8 +178,7 @@ section:
8. *Build the Clean Image:* The final step in preparing to work on the
kernel is to build an initial image using ``devtool`` in the new
terminal you just set up and initialized for SDK work:
::
terminal you just set up and initialized for SDK work::
$ devtool build-image
Parsing recipes: 100% |##########################################| Time: 0:00:05
@@ -269,16 +260,14 @@ section:
In this example we wish to build for qemux86 so we must set the
``MACHINE`` variable to "qemux86" and also add the "kernel-modules".
As described we do this by appending to ``conf/local.conf``:
::
As described we do this by appending to ``conf/local.conf``::
MACHINE = "qemux86"
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"
3. *Create a Layer for Patches:* You need to create a layer to hold
patches created for the kernel image. You can use the
``bitbake-layers create-layer`` command as follows:
::
``bitbake-layers create-layer`` command as follows::
$ cd poky/build
$ bitbake-layers create-layer ../../meta-mylayer
@@ -301,8 +290,7 @@ section:
4. *Inform the BitBake Build Environment About Your Layer:* As directed
when you created your layer, you need to add the layer to the
:term:`BBLAYERS` variable in the
``bblayers.conf`` file as follows:
::
``bblayers.conf`` file as follows::
$ cd poky/build
$ bitbake-layers add-layer ../../meta-mylayer
@@ -350,8 +338,7 @@ section:
the ``yocto-4.12`` branch.
The following commands show how to create a local copy of the
``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch:
::
``yocto-kernel-cache`` and be in the ``yocto-4.12`` branch::
$ cd ~
$ git clone git://git.yoctoproject.org/yocto-kernel-cache --branch yocto-4.12
@@ -394,8 +381,7 @@ following section describes how to create a layer without the aid of
tools. These steps assume creation of a layer named ``mylayer`` in your
home directory:
1. *Create Structure*: Create the layer's structure:
::
1. *Create Structure*: Create the layer's structure::
$ mkdir meta-mylayer
$ mkdir meta-mylayer/conf
@@ -409,8 +395,7 @@ home directory:
2. *Create the Layer Configuration File*: Move to the
``meta-mylayer/conf`` directory and create the ``layer.conf`` file as
follows:
::
follows::
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
@@ -429,8 +414,7 @@ home directory:
``meta-mylayer/recipes-kernel/linux`` directory and create the
kernel's append file. This example uses the ``linux-yocto-4.12``
kernel. Thus, the name of the append file is
``linux-yocto_4.12.bbappend``:
::
``linux-yocto_4.12.bbappend``::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -483,8 +467,7 @@ The append file should initially extend the
:term:`FILESPATH` search path by
prepending the directory that contains your files to the
:term:`FILESEXTRAPATHS`
variable as follows:
::
variable as follows::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -492,8 +475,7 @@ The path ``${``\ :term:`THISDIR`\ ``}/${``\ :term:`PN`\ ``}``
expands to "linux-yocto" in the current directory for this example. If
you add any new files that modify the kernel recipe and you have
extended ``FILESPATH`` as described above, you must place the files in
your layer in the following area:
::
your layer in the following area::
your-layer/recipes-kernel/linux/linux-yocto/
@@ -582,8 +564,7 @@ To group related configurations into multiple files, you perform a
similar procedure. Here is an example that groups separate
configurations specifically for Ethernet and graphics into their own
files and adds the configurations by using a ``SRC_URI`` statement like
the following in your append file:
::
the following in your append file::
SRC_URI += "file://myconfig.cfg \
file://eth.cfg \
@@ -627,8 +608,7 @@ reference them in :term:`SRC_URI`
statements.
For example, you can apply a three-patch series by adding the following
lines to your linux-yocto ``.bbappend`` file in your layer:
::
lines to your linux-yocto ``.bbappend`` file in your layer::
SRC_URI += "file://0001-first-change.patch"
SRC_URI += "file://0002-second-change.patch"
@@ -658,8 +638,7 @@ If you have a complete, working Linux kernel ``.config`` file you want
to use for the configuration, as before, copy that file to the
appropriate ``${PN}`` directory in your layer's ``recipes-kernel/linux``
directory, and rename the copied file to "defconfig". Then, add the
following lines to the linux-yocto ``.bbappend`` file in your layer:
::
following lines to the linux-yocto ``.bbappend`` file in your layer::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://defconfig"
@@ -685,8 +664,7 @@ Generally speaking, the preferred approach is to determine the
incremental change you want to make and add that as a configuration
fragment. For example, if you want to add support for a basic serial
console, create a file named ``8250.cfg`` in the ``${PN}`` directory
with the following content (without indentation):
::
with the following content (without indentation)::
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
@@ -698,8 +676,7 @@ with the following content (without indentation):
Next, include this
configuration fragment and extend the ``FILESPATH`` variable in your
``.bbappend`` file:
::
``.bbappend`` file::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://8250.cfg"
@@ -718,8 +695,7 @@ It might be desirable to have kernel configuration fragment support
through a ``defconfig`` file that is pulled from the kernel source tree
for the configured machine. By default, the OpenEmbedded build system
looks for ``defconfig`` files in the layer used for Metadata, which is
"out-of-tree", and then configures them using the following:
::
"out-of-tree", and then configures them using the following::
SRC_URI += "file://defconfig"
@@ -732,16 +708,14 @@ append files, you can direct the OpenEmbedded build system to use a
``defconfig`` file that is "in-tree".
To specify an "in-tree" ``defconfig`` file, use the following statement
form:
::
form::
KBUILD_DEFCONFIG_KMACHINE ?= "defconfig_file"
Here is an example
that assigns the ``KBUILD_DEFCONFIG`` variable based on "raspberrypi2"
and provides the path to the "in-tree" ``defconfig`` file to be used for
a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset:
::
a Raspberry Pi 2, which is based on the Broadcom 2708/2709 chipset::
KBUILD_DEFCONFIG_raspberrypi2 ?= "bcm2709_defconfig"
@@ -792,8 +766,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``"
section for more information.
Use the following ``devtool`` command to check out the code:
::
Use the following ``devtool`` command to check out the code::
$ devtool modify linux-yocto
@@ -819,14 +792,12 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
noted where you can find the source files (e.g.
``poky_sdk/workspace/sources/linux-yocto``). Change to where the
kernel source code is before making your edits to the
``calibrate.c`` file:
::
``calibrate.c`` file::
$ cd poky_sdk/workspace/sources/linux-yocto
2. *Edit the source file*: Edit the ``init/calibrate.c`` file to have
the following changes:
::
the following changes::
void calibrate_delay(void)
{
@@ -846,8 +817,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
.
3. *Build the Updated Kernel Source:* To build the updated kernel
source, use ``devtool``:
::
source, use ``devtool``::
$ devtool build linux-yocto
@@ -872,8 +842,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
using QEMU to verify your changes:
1. *Boot the image*: Boot the modified image in the QEMU emulator
using this command:
::
using this command::
$ runqemu qemux86
@@ -891,8 +860,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
6. *Stage and commit your changes*: Within your eSDK terminal, change
your working directory to where you modified the ``calibrate.c`` file
and use these Git commands to stage and commit your changes:
::
and use these Git commands to stage and commit your changes::
$ cd poky_sdk/workspace/sources/linux-yocto
$ git status
@@ -921,8 +889,7 @@ the ":ref:`kernel-dev/common:getting ready to develop using \`\`devtool\`\``" Se
image that includes your kernel patches. Execute the following
command from your
:term:`Build Directory` in the terminal
set up to run BitBake:
::
set up to run BitBake::
$ cd poky/build
$ bitbake core-image-minimal
@@ -966,14 +933,12 @@ Section.
1. *Change the working directory*: You need to locate the source
files in the local copy of the kernel Git repository. Change to
where the kernel source code is before making your edits to the
``calibrate.c`` file:
::
``calibrate.c`` file::
$ cd ~/linux-yocto-4.12/init
2. *Edit the source file*: Edit the ``calibrate.c`` file to have the
following changes:
::
following changes::
void calibrate_delay(void)
{
@@ -993,8 +958,7 @@ Section.
.
2. *Stage and Commit Your Changes:* Use standard Git commands to stage
and commit the changes you just made:
::
and commit the changes you just made::
$ git add calibrate.c
$ git commit -m "calibrate.c - Added some printk statements"
@@ -1009,13 +973,11 @@ Section.
updated kernel source files. Add
:term:`SRC_URI` and
:term:`SRCREV` statements similar
to the following to your ``local.conf``:
::
to the following to your ``local.conf``::
$ cd poky/build/conf
Add the following to the ``local.conf``:
::
Add the following to the ``local.conf``::
SRC_URI_pn-linux-yocto = "git:///path-to/linux-yocto-4.12;protocol=file;name=machine;branch=standard/base; \
git:///path-to/yocto-kernel-cache;protocol=file;type=kmeta;name=meta;branch=yocto-4.12;destsuffix=${KMETA}"
@@ -1031,16 +993,14 @@ Section.
4. *Build the Image:* With the source modified, your changes staged and
committed, and the ``local.conf`` file pointing to the kernel files,
you can now use BitBake to build the image:
::
you can now use BitBake to build the image::
$ cd poky/build
$ bitbake core-image-minimal
5. *Boot the image*: Boot the modified image in the QEMU emulator using
this command. When prompted to login to the QEMU console, use "root"
with no password:
::
with no password::
$ cd poky/build
$ runqemu qemux86
@@ -1059,8 +1019,7 @@ Section.
7. *Generate the Patch File:* Once you are sure that your patch works
correctly, you can generate a ``*.patch`` file in the kernel source
repository:
::
repository::
$ cd ~/linux-yocto-4.12/init
$ git format-patch -1
@@ -1073,8 +1032,7 @@ Section.
``meta-mylayer``. When the layer was created using the
``yocto-create`` script, no additional hierarchy was created to
support patches. Before moving the patch file, you need to add
additional structure to your layer using the following commands:
::
additional structure to your layer using the following commands::
$ cd ~/meta-mylayer
$ mkdir recipes-kernel
@@ -1083,8 +1041,7 @@ Section.
Once you have created this
hierarchy in your layer, you can move the patch file using the
following command:
::
following command::
$ mv ~/linux-yocto-4.12/init/0001-calibrate.c-Added-some-printk-statements.patch ~/meta-mylayer/recipes-kernel/linux/linux-yocto
@@ -1093,8 +1050,7 @@ Section.
the OpenEmbedded build system to find the patch. The append file
needs to be in your layer's ``recipes-kernel/linux`` directory and it
must be named ``linux-yocto_4.12.bbappend`` and have the following
contents:
::
contents::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append = "file://0001-calibrate.c-Added-some-printk-statements.patch"
@@ -1113,8 +1069,7 @@ Section.
To build ``core-image-minimal`` again and see the effects of your patch,
you can essentially eliminate the temporary source files saved in
``poky/build/tmp/work/...`` and residual effects of the build by entering
the following sequence of commands:
::
the following sequence of commands::
$ cd poky/build
$ bitbake -c cleanall yocto-linux
@@ -1160,8 +1115,7 @@ environment, you must do the following:
- You must be sure of the state of your build's configuration in the
:term:`Source Directory`.
- Your build host must have the following two packages installed:
::
- Your build host must have the following two packages installed::
libncurses5-dev
libtinfo-dev
@@ -1169,8 +1123,7 @@ environment, you must do the following:
The following commands initialize the BitBake environment, run the
:ref:`ref-tasks-kernel_configme`
task, and launch ``menuconfig``. These commands assume the Source
Directory's top-level folder is ``poky``:
::
Directory's top-level folder is ``poky``::
$ cd poky
$ source oe-init-build-env
@@ -1232,8 +1185,7 @@ the ``.config`` file would be:
Within the ``.config`` file, you can see the kernel settings. For
example, the following entry shows that symmetric multi-processor
support is not set:
::
support is not set::
# CONFIG_SMP is not set
@@ -1274,8 +1226,7 @@ your layer's ``recipes-kernel/linux`` directory, and rename the copied
file to "defconfig" (e.g.
``~/meta-mylayer/recipes-kernel/linux/linux-yocto/defconfig``). Then,
add the following lines to the linux-yocto ``.bbappend`` file in your
layer:
::
layer::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://defconfig"
@@ -1323,8 +1274,7 @@ appear in the ``.config`` file, which is in the :term:`Build Directory`.
It is simple to create a configuration fragment. One method is to use
shell commands. For example, issuing the following from the shell
creates a configuration fragment file named ``my_smp.cfg`` that enables
multi-processor support within the kernel:
::
multi-processor support within the kernel::
$ echo "CONFIG_SMP=y" >> my_smp.cfg
@@ -1342,8 +1292,7 @@ To create a configuration fragment using this method, follow these
steps:
1. *Complete a Build Through Kernel Configuration:* Complete a build at
least through the kernel configuration task as follows:
::
least through the kernel configuration task as follows::
$ bitbake linux-yocto -c kernel_configme -f
@@ -1352,8 +1301,7 @@ steps:
your build state might become unknown, it is best to run this task
prior to starting ``menuconfig``.
2. *Launch menuconfig:* Run the ``menuconfig`` command:
::
2. *Launch menuconfig:* Run the ``menuconfig`` command::
$ bitbake linux-yocto -c menuconfig
@@ -1361,8 +1309,7 @@ steps:
to prepare a configuration fragment. The resulting file
``fragment.cfg`` is placed in the
``${``\ :term:`WORKDIR`\ ``}``
directory:
::
directory::
$ bitbake linux-yocto -c diffconfig
@@ -1387,8 +1334,7 @@ options in a file called ``myconfig.cfg``. If you put that file inside a
directory named ``linux-yocto`` that resides in the same directory as
the kernel's append file within your layer and then add the following
statements to the kernel's append file, those configuration options will
be picked up and applied when the kernel is built:
::
be picked up and applied when the kernel is built::
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI += "file://myconfig.cfg"
@@ -1397,8 +1343,7 @@ As mentioned earlier, you can group related configurations into multiple
files and name them all in the ``SRC_URI`` statement as well. For
example, you could group separate configurations specifically for
Ethernet and graphics into their own files and add those by using a
``SRC_URI`` statement like the following in your append file:
::
``SRC_URI`` statement like the following in your append file::
SRC_URI += "file://myconfig.cfg \
file://eth.cfg \
@@ -1409,8 +1354,7 @@ Validating Configuration
You can use the
:ref:`ref-tasks-kernel_configcheck`
task to provide configuration validation:
::
task to provide configuration validation::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -1537,8 +1481,7 @@ To streamline the configuration, do the following:
successfully. Use this configuration file as your baseline.
2. *Run Configure and Check Tasks:* Separately run the
``do_kernel_configme`` and ``do_kernel_configcheck`` tasks:
::
``do_kernel_configme`` and ``do_kernel_configcheck`` tasks::
$ bitbake linux-yocto -c kernel_configme -f
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -1572,8 +1515,7 @@ Expanding Variables
Sometimes it is helpful to determine what a variable expands to during a
build. You can examine the values of variables by examining the
output of the ``bitbake -e`` command. The output is long and is more
easily managed in a text file, which allows for easy searches:
::
easily managed in a text file, which allows for easy searches::
$ bitbake -e virtual/kernel > some_text_file
@@ -1590,15 +1532,13 @@ source directory. Follow these steps to clean up the version string:
1. *Discover the Uncommitted Changes:* Go to the kernel's locally cloned
Git repository (source directory) and use the following Git command
to list the files that have been changed, added, or removed:
::
to list the files that have been changed, added, or removed::
$ git status
2. *Commit the Changes:* You should commit those changes to the kernel
source tree regardless of whether or not you will save, export, or
use the changes:
::
use the changes::
$ git add
$ git commit -s -a -m "getting rid of -dirty"
@@ -1633,8 +1573,7 @@ linux-yocto custom recipe (``linux-yocto-custom.bb``) that uses
``kernel.org`` sources and the Yocto Project Linux kernel tools for
managing kernel Metadata. You can find this recipe in the ``poky`` Git
repository of the Yocto Project :yocto_git:`Source Repository <>`
at:
::
at::
poky/meta-skeleton/recipes-kernel/linux/linux-yocto-custom.bb
@@ -1655,8 +1594,7 @@ Here are some basic steps you can use to work with your own sources:
``defconfig`` file or configuration fragment files in your layer.
When you use the ``linux-yocto-custom.bb`` recipe, you must specify a
configuration. If you do not have a ``defconfig`` file, you can run
the following:
::
the following::
$ make defconfig
@@ -1708,8 +1646,7 @@ Here are some basic steps you can use to work with your own sources:
``LINUX_VERSION`` with the Source Control Manager (SCM) revision
as derived from the :term:`SRCPV`
variable. The combined results are a string with the following
form:
::
form::
3.19.11+git1+68a635bf8dfb64b02263c1ac80c948647cc76d5f_1+218bd8d2022b9852c60d32f0d770931e3cf343e2
@@ -1723,8 +1660,7 @@ Here are some basic steps you can use to work with your own sources:
triggers an explicit build failure. You must change it to match a
list of the machines that your new recipe supports. For example,
to support the ``qemux86`` and ``qemux86-64`` machines, use the
following form:
::
following form::
COMPATIBLE_MACHINE = "qemux86|qemux86-64"
@@ -1807,8 +1743,7 @@ Typically, you will need to set the following variables:
Depending on the build system used by the module sources, you might need
to make some adjustments. For example, a typical module ``Makefile``
looks much like the one provided with the ``hello-mod`` template:
::
looks much like the one provided with the ``hello-mod`` template::
obj-m := hello.o
@@ -1845,8 +1780,7 @@ them appropriately for your machine configuration file:
- :term:`MACHINE_EXTRA_RRECOMMENDS`
Modules are often not required for boot and can be excluded from certain
build configurations. The following allows for the most flexibility:
::
build configurations. The following allows for the most flexibility::
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-mymodule"
@@ -1895,26 +1829,22 @@ branch.
$ git whatchanged origin/standard/base..origin/standard/emenlow
To see short, one line summaries of changes use the ``git log`` command:
::
To see short, one line summaries of changes use the ``git log`` command::
$ git log --oneline origin/standard/base..origin/standard/emenlow
Use this command to see code differences for the changes:
::
Use this command to see code differences for the changes::
$ git diff origin/standard/base..origin/standard/emenlow
Use this command to see the commit log messages and the text
differences:
::
differences::
$ git show origin/standard/base..origin/standard/emenlow
Use this command to create individual patches for each change. Here is
an example that creates patch files for each commit and places them
in your ``Documents`` directory:
::
in your ``Documents`` directory::
$ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow
@@ -1923,15 +1853,13 @@ Showing a Particular Feature or Branch Change
Tags in the Yocto Project kernel tree divide changes for significant
features or branches. The ``git show`` tag command shows changes based
on a tag. Here is an example that shows ``systemtap`` changes:
::
on a tag. Here is an example that shows ``systemtap`` changes::
$ git show systemtap
You can use the ``git branch --contains`` tag command to
show the branches that contain a particular feature. This command shows
the branches that contain the ``systemtap`` feature:
::
the branches that contain the ``systemtap`` feature::
$ git branch --contains systemtap
@@ -1986,8 +1914,7 @@ build.
searched during the build as potential feature directories.
Continuing with the example, suppose the "test.scc" feature you are
adding has a ``test.scc`` file in the following directory:
::
adding has a ``test.scc`` file in the following directory::
my_recipe
|
@@ -2001,8 +1928,7 @@ build.
a similarly named configuration fragment file ``test.cfg``.
2. *Add the Feature File to SRC_URI:* Add the ``.scc`` file to the
recipe's ``SRC_URI`` statement:
::
recipe's ``SRC_URI`` statement::
SRC_URI_append = " file://test.scc"
@@ -2011,8 +1937,7 @@ build.
3. *Specify the Feature as a Kernel Feature:* Use the
``KERNEL_FEATURES`` statement to specify the feature as a kernel
feature:
::
feature::
KERNEL_FEATURES_append = " test.scc"

View File

@@ -359,8 +359,7 @@ To determine whether or not a given option is "hardware" or
"non-hardware", the kernel Metadata in ``yocto-kernel-cache`` contains
files that classify individual or groups of options as either hardware
or non-hardware. To better show this, consider a situation where the
``yocto-kernel-cache`` contains the following files:
::
``yocto-kernel-cache`` contains the following files::
yocto-kernel-cache/features/drm-psb/hardware.cfg
yocto-kernel-cache/features/kgdb/hardware.cfg
@@ -400,8 +399,7 @@ provides explanations for the various files:
(i.e. ``hardware.kcf`` or ``non-hardware.kcf``).
Here is a specific example using the
``kernel-cache/bsp/mti-malta32/hardware.cfg``:
::
``kernel-cache/bsp/mti-malta32/hardware.cfg``::
CONFIG_SERIAL_8250
CONFIG_SERIAL_8250_CONSOLE

View File

@@ -57,8 +57,7 @@ These other variables are useful for installing specific modules:
For example, set the following in the ``qemux86.conf`` file to include
the ``ab123`` kernel modules with images built for the ``qemux86``
machine:
::
machine::
MACHINE_EXTRA_RRECOMMENDS += "kernel-module-ab123"
@@ -71,8 +70,7 @@ How do I change the Linux kernel command line?
The Linux kernel command line is
typically specified in the machine config using the ``APPEND`` variable.
For example, you can add some helpful debug information doing the
following:
::
following::
APPEND += "printk.time=y initcall_debug debug"

View File

@@ -28,8 +28,7 @@ in the Yocto Project Linux kernel in any clone of the Yocto Project
Linux kernel source repository and ``yocto-kernel-cache`` Git trees. For
example, the following commands clone the Yocto Project baseline Linux
kernel that branches off ``linux.org`` version 4.12 and the
``yocto-kernel-cache``, which contains stores of kernel Metadata:
::
``yocto-kernel-cache``, which contains stores of kernel Metadata::
$ git clone git://git.yoctoproject.org/linux-yocto-4.12
$ git clone git://git.yoctoproject.org/linux-kernel-cache
@@ -42,16 +41,14 @@ section.
Once you have cloned the kernel Git repository and the cache of Metadata
on your local machine, you can discover the branches that are available
in the repository using the following Git command:
::
in the repository using the following Git command::
$ git branch -a
Checking out a branch allows you to work with a particular Yocto Linux
kernel. For example, the following commands check out the
"standard/beagleboard" branch of the Yocto Linux kernel repository and
the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository:
::
the "yocto-4.12" branch of the ``yocto-kernel-cache`` repository::
$ cd ~/linux-yocto-4.12
$ git checkout -b my-kernel-4.12 remotes/origin/standard/beagleboard
@@ -111,8 +108,7 @@ patch, or BSP:
For a typical build, the target of the search is a feature
description in an ``.scc`` file whose name follows this format (e.g.
``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``):
::
``beaglebone-standard.scc`` and ``beaglebone-preempt-rt.scc``)::
bsp_root_name-kernel_type.scc
@@ -222,8 +218,7 @@ build process generates a build tree that is separate from your kernel's
local Git source repository tree. This build tree has a name that uses
the following form, where ``${MACHINE}`` is the metadata name of the
machine (BSP) and "kernel_type" is one of the Yocto Project supported
kernel types (e.g. "standard"):
::
kernel types (e.g. "standard")::
linux-${MACHINE}-kernel_type-build

View File

@@ -55,8 +55,7 @@ This section briefly introduces BitBake. If you want more information on
BitBake, see the :doc:`BitBake User Manual <bitbake:index>`.
To see a list of the options BitBake supports, use either of the
following commands:
::
following commands::
$ bitbake -h
$ bitbake --help
@@ -66,8 +65,7 @@ The most common usage for BitBake is ``bitbake recipename``, where
to as the "target"). The target often equates to the first part of a
recipe's filename (e.g. "foo" for a recipe named ``foo_1.3.0-r0.bb``).
So, to process the ``matchbox-desktop_1.2.3.bb`` recipe file, you might
type the following:
::
type the following::
$ bitbake matchbox-desktop
@@ -1068,15 +1066,13 @@ the image. The formats used for the root filesystem depend on the
support compression.
As an example, a dynamically created task when creating a particular
image type would take the following form:
::
image type would take the following form::
do_image_type
So, if the type
as specified by the ``IMAGE_FSTYPES`` were ``ext4``, the dynamically
generated task would be as follows:
::
generated task would be as follows::
do_image_ext4
@@ -1478,8 +1474,7 @@ cross-compiler that is used internally within BitBake only.
gcc-cross
.
The chain of events that occurs when the standard toolchain is bootstrapped:
::
The chain of events that occurs when the standard toolchain is bootstrapped::
binutils-cross -> linux-libc-headers -> gcc-cross -> libgcc-initial -> glibc -> libgcc -> gcc-runtime
@@ -1528,8 +1523,7 @@ might not be the same machine as the Build Host.
can take advantage of pre-built images that ship with the Yocto
Project and already contain cross-development toolchain installers.
Here is the bootstrap process for the relocatable toolchain:
::
Here is the bootstrap process for the relocatable toolchain::
gcc -> binutils-crosssdk -> gcc-crosssdk-initial -> linux-libc-headers -> glibc-initial -> nativesdk-glibc -> gcc-crosssdk -> gcc-cross-canadian
@@ -1703,8 +1697,7 @@ to the task.
Like the ``WORKDIR`` case, situations exist where dependencies should be
ignored. For these situations, you can instruct the build process to
ignore a dependency by using a line like the following:
::
ignore a dependency by using a line like the following::
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
@@ -1714,8 +1707,7 @@ reference it.
Equally, there are cases where you need to add dependencies BitBake is
not able to find. You can accomplish this by using a line like the
following:
::
following::
PACKAGE_ARCHS[vardeps] = "MACHINE"
@@ -1745,8 +1737,7 @@ and the dependent task hashes can be influenced. Within the BitBake
configuration file, you 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 (i.e. variables never
included in any checksum):
::
included in any checksum)::
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR \\
SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM \\
@@ -1771,8 +1762,7 @@ desired. This file defines the two basic signature generators
"OEBasicHash". By default, a dummy "noop" signature handler is 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:
::
through this setting in the ``bitbake.conf`` file::
BB_SIGNATURE_HANDLER ?= "OEBasicHash"
@@ -1826,8 +1816,7 @@ The Yocto Project team has tried to keep the details of the
implementation hidden in ``sstate`` class. From a user's perspective,
adding shared state wrapping to a task is as simple as this
:ref:`ref-tasks-deploy` example taken
from the :ref:`deploy <ref-classes-deploy>` class:
::
from the :ref:`deploy <ref-classes-deploy>` class::
DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
SSTATETASKS += "do_deploy"
@@ -1871,8 +1860,7 @@ The following list explains the previous example:
instead, skipping the ``do_deploy`` task.
- The following task definition is glue logic needed to make the
previous settings effective:
::
previous settings effective::
python do_deploy_setscene () {
sstate_setscene(d)
@@ -1898,8 +1886,7 @@ The following list explains the previous example:
In cases where ``sstate-inputdirs`` and ``sstate-outputdirs`` would be
the same, you can use ``sstate-plaindirs``. For example, to preserve the
${:term:`PKGD`} and ${:term:`PKGDEST`} output from the ``do_package``
task, use the following:
::
task, use the following::
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
@@ -1917,24 +1904,21 @@ The following list explains the previous example:
multiple directories. For example, the following declares
``PKGDESTWORK`` and ``SHLIBWORK`` as shared state input directories,
which populates the shared state cache, and ``PKGDATA_DIR`` and
``SHLIBSDIR`` as the corresponding shared state output directories:
::
``SHLIBSDIR`` as the corresponding shared state output directories::
do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
- These methods also include the ability to take a lockfile when
manipulating shared state directory structures, for cases where file
additions or removals are sensitive:
::
additions or removals are sensitive::
do_package[sstate-lockfile] = "${PACKAGELOCK}"
Behind the scenes, the shared state code works by looking in
:term:`SSTATE_DIR` and
:term:`SSTATE_MIRRORS` for
shared state files. Here is an example:
::
shared state files. Here is an example::
SSTATE_MIRRORS ?= "\
file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
@@ -2116,8 +2100,7 @@ accomplished using fakeroot.
under fakeroot. Otherwise, the task cannot run root-only operations,
and cannot see the fake file ownership and permissions set by the
other task. You need to also add a dependency on
``virtual/fakeroot-native:do_populate_sysroot``, giving the following:
::
``virtual/fakeroot-native:do_populate_sysroot``, giving the following::
fakeroot do_mytask () {
...

View File

@@ -430,8 +430,7 @@ local working area (also called a branch) that tracks a specific
development branch from the upstream source Git repository. in other
words, you can define your local Git environment to work on any
development branch in the repository. To help illustrate, consider the
following example Git commands:
::
following example Git commands::
$ cd ~
$ git clone git://git.yoctoproject.org/poky
@@ -476,8 +475,7 @@ create and checkout a local working Git branch based on a tag name. When
you do this, you get a snapshot of the Git repository that reflects the
state of the files when the change was made associated with that tag.
The most common use is to checkout a working branch that matches a
specific Yocto Project release. Here is an example:
::
specific Yocto Project release. Here is an example::
$ cd ~
$ git clone git://git.yoctoproject.org/poky

View File

@@ -1,12 +1,12 @@
DISTRO : "3.2.3"
DISTRO_NAME_NO_CAP : "gatesgarth"
DISTRO_NAME : "Gatesgarth"
DISTRO_NAME_NO_CAP_MINUS_ONE : "dunfell"
DISTRO : "3.3"
DISTRO_NAME_NO_CAP : "hardknott"
DISTRO_NAME : "Hardknott"
DISTRO_NAME_NO_CAP_MINUS_ONE : "gatesgarth"
DISTRO_NAME_NO_CAP_LTS : "dunfell"
YOCTO_DOC_VERSION : "3.2.3"
YOCTO_DOC_VERSION_MINUS_ONE : "3.1.6"
DISTRO_REL_TAG : "yocto-3.2.3"
POKYVERSION : "24.0.3"
YOCTO_DOC_VERSION : "3.3"
YOCTO_DOC_VERSION_MINUS_ONE : "3.2.3"
DISTRO_REL_TAG : "yocto-3.3"
POKYVERSION : "25.0.0"
YOCTO_POKY : "poky-&DISTRO_NAME_NO_CAP;-&POKYVERSION;"
YOCTO_DL_URL : "https://downloads.yoctoproject.org"
YOCTO_AB_URL : "https://autobuilder.yoctoproject.org"

View File

@@ -39,12 +39,12 @@ an 'sdk' image e.g. ::
$ bitbake core-image-sato-sdk
or alternatively by adding 'tools-profile' to the EXTRA_IMAGE_FEATURES line in
your local.conf: ::
your local.conf::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile"
If you use the 'tools-profile' method, you don't need to build an sdk image -
the tracing and profiling tools will be included in non-sdk images as well e.g.: ::
the tracing and profiling tools will be included in non-sdk images as well e.g.::
$ bitbake core-image-sato
@@ -55,7 +55,7 @@ the tracing and profiling tools will be included in non-sdk images as well e.g.:
You can prevent that by setting the
:term:`INHIBIT_PACKAGE_STRIP`
variable to "1" in your ``local.conf`` when you build the image: ::
variable to "1" in your ``local.conf`` when you build the image::
INHIBIT_PACKAGE_STRIP = "1"
@@ -65,11 +65,11 @@ If you've already built a stripped image, you can generate debug
packages (xxx-dbg) which you can manually install as needed.
To generate debug info for packages, you can add dbg-pkgs to
EXTRA_IMAGE_FEATURES in local.conf. For example: ::
EXTRA_IMAGE_FEATURES in local.conf. For example::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
Additionally, in order to generate the right type of debuginfo, we also need to
set :term:`PACKAGE_DEBUG_SPLIT_STYLE` in the ``local.conf`` file: ::
set :term:`PACKAGE_DEBUG_SPLIT_STYLE` in the ``local.conf`` file::
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'

View File

@@ -48,7 +48,7 @@ For this section, we'll assume you've already performed the basic setup
outlined in the ":ref:`profile-manual/intro:General Setup`" section.
In particular, you'll get the most mileage out of perf if you profile an
image built with the following in your ``local.conf`` file: ::
image built with the following in your ``local.conf`` file::
INHIBIT_PACKAGE_STRIP = "1"
@@ -62,7 +62,7 @@ Basic Perf Usage
The perf tool is pretty much self-documenting. To remind yourself of the
available commands, simply type 'perf', which will show you basic usage
along with the available perf subcommands: ::
along with the available perf subcommands::
root@crownbay:~# perf
@@ -110,7 +110,7 @@ applets in Yocto. ::
The quickest and easiest way to get some basic overall data about what's
going on for a particular workload is to profile it using 'perf stat'.
'perf stat' basically profiles using a few default counters and displays
the summed counts at the end of the run: ::
the summed counts at the end of the run::
root@crownbay:~# perf stat wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -139,7 +139,7 @@ Also, note that 'perf stat' isn't restricted to a fixed set of counters
- basically any event listed in the output of 'perf list' can be tallied
by 'perf stat'. For example, suppose we wanted to see a summary of all
the events related to kernel memory allocation/freeing along with cache
hits and misses: ::
hits and misses::
root@crownbay:~# perf stat -e kmem:* -e cache-references -e cache-misses wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -191,7 +191,7 @@ directory. ::
To see the results in a
'text-based UI' (tui), simply run 'perf report', which will read the
perf.data file in the current working directory and display the results
in an interactive UI: ::
in an interactive UI::
root@crownbay:~# perf report
@@ -217,7 +217,7 @@ Before we do that, however, let's try running a different profile, one
which shows something a little more interesting. The only difference
between the new profile and the previous one is that we'll add the -g
option, which will record not just the address of a sampled function,
but the entire callchain to the sampled function as well: ::
but the entire callchain to the sampled function as well::
root@crownbay:~# perf record -g wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -293,7 +293,7 @@ busybox binary, which is actually stripped out by the Yocto build
system.
One way around that is to put the following in your ``local.conf`` file
when you build the image: ::
when you build the image::
INHIBIT_PACKAGE_STRIP = "1"
@@ -302,26 +302,26 @@ what can we do to get perf to resolve the symbols? Basically we need to
install the debuginfo for the BusyBox package.
To generate the debug info for the packages in the image, we can add
``dbg-pkgs`` to :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example: ::
``dbg-pkgs`` to :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example::
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
Additionally, in order to generate the type of debuginfo that perf
understands, we also need to set
:term:`PACKAGE_DEBUG_SPLIT_STYLE`
in the ``local.conf`` file: ::
in the ``local.conf`` file::
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
Once we've done that, we can install the
debuginfo for BusyBox. The debug packages once built can be found in
``build/tmp/deploy/rpm/*`` on the host system. Find the busybox-dbg-...rpm
file and copy it to the target. For example: ::
file and copy it to the target. For example::
[trz@empanada core2]$ scp /home/trz/yocto/crownbay-tracing-dbg/build/tmp/deploy/rpm/core2_32/busybox-dbg-1.20.2-r2.core2_32.rpm root@192.168.1.31:
busybox-dbg-1.20.2-r2.core2_32.rpm 100% 1826KB 1.8MB/s 00:01
Now install the debug rpm on the target: ::
Now install the debug rpm on the target::
root@crownbay:~# rpm -i busybox-dbg-1.20.2-r2.core2_32.rpm
@@ -382,7 +382,7 @@ traditional tools can also make use of the expanded possibilities now
available to them, and in some cases have, as mentioned previously).
We can get a list of the available events that can be used to profile a
workload via 'perf list': ::
workload via 'perf list'::
root@crownbay:~# perf list
@@ -525,7 +525,7 @@ workload via 'perf list': ::
Only a subset of these would be of interest to us when looking at this
workload, so let's choose the most likely subsystems (identified by the
string before the colon in the Tracepoint events) and do a 'perf stat'
run using only those wildcarded subsystems: ::
run using only those wildcarded subsystems::
root@crownbay:~# perf stat -e skb:* -e net:* -e napi:* -e sched:* -e workqueue:* -e irq:* -e syscalls:* wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Performance counter stats for 'wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2':
@@ -587,7 +587,7 @@ run using only those wildcarded subsystems: ::
Let's pick one of these tracepoints
and tell perf to do a profile using it as the sampling event: ::
and tell perf to do a profile using it as the sampling event::
root@crownbay:~# perf record -g -e sched:sched_wakeup wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
@@ -644,14 +644,14 @@ individual steps that go into the higher-level behavior exposed by the
coarse-grained profiling data.
As a concrete example, we can trace all the events we think might be
applicable to our workload: ::
applicable to our workload::
root@crownbay:~# perf record -g -e skb:* -e net:* -e napi:* -e sched:sched_switch -e sched:sched_wakeup -e irq:*
-e syscalls:sys_enter_read -e syscalls:sys_exit_read -e syscalls:sys_enter_write -e syscalls:sys_exit_write
wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
We can look at the raw trace output using 'perf script' with no
arguments: ::
arguments::
root@crownbay:~# perf script
@@ -735,7 +735,7 @@ two programming language bindings, one for Python and one for Perl.
Now that we have the trace data in perf.data, we can use 'perf script
-g' to generate a skeleton script with handlers for the read/write
entry/exit events we recorded: ::
entry/exit events we recorded::
root@crownbay:~# perf script -g python
generated Python script: perf-script.py
@@ -755,7 +755,7 @@ with its parameters. For example:
print "skbaddr=%u, len=%u, name=%s\n" % (skbaddr, len, name),
We can run that script directly to print all of the events contained in the
perf.data file: ::
perf.data file::
root@crownbay:~# perf script -s perf-script.py
@@ -833,7 +833,7 @@ result of all the per-event tallies. For that, we use the special
for event_name, count in counts.iteritems():
print "%-40s %10s\n" % (event_name, count)
The end result is a summary of all the events recorded in the trace: ::
The end result is a summary of all the events recorded in the trace::
skb__skb_copy_datagram_iovec 13148
irq__softirq_entry 4796
@@ -877,13 +877,13 @@ To do system-wide profiling or tracing, you typically use the -a flag to
'perf record'.
To demonstrate this, open up one window and start the profile using the
-a flag (press Ctrl-C to stop tracing): ::
-a flag (press Ctrl-C to stop tracing)::
root@crownbay:~# perf record -g -a
^C[ perf record: Woken up 6 times to write data ]
[ perf record: Captured and wrote 1.400 MB perf.data (~61172 samples) ]
In another window, run the wget test: ::
In another window, run the wget test::
root@crownbay:~# wget http://downloads.yoctoproject.org/mirror/sources/linux-2.6.19.2.tar.bz2
Connecting to downloads.yoctoproject.org (140.211.169.59:80)
@@ -903,7 +903,7 @@ unresolvable symbols in the expanded Xorg callchain).
Note also that we have both kernel and userspace entries in the above
snapshot. We can also tell perf to focus on userspace but providing a
modifier, in this case 'u', to the 'cycles' hardware counter when we
record a profile: ::
record a profile::
root@crownbay:~# perf record -g -a -e cycles:u
^C[ perf record: Woken up 2 times to write data ]
@@ -923,13 +923,13 @@ the entries associated with the libc-xxx.so DSO.
:align: center
We can also use the system-wide -a switch to do system-wide tracing.
Here we'll trace a couple of scheduler events: ::
Here we'll trace a couple of scheduler events::
root@crownbay:~# perf record -a -e sched:sched_switch -e sched:sched_wakeup
^C[ perf record: Woken up 38 times to write data ]
[ perf record: Captured and wrote 9.780 MB perf.data (~427299 samples) ]
We can look at the raw output using 'perf script' with no arguments: ::
We can look at the raw output using 'perf script' with no arguments::
root@crownbay:~# perf script
@@ -952,7 +952,7 @@ do with what we're interested in, namely events that schedule 'perf'
itself in and out or that wake perf up. We can get rid of those by using
the '--filter' option - for each event we specify using -e, we can add a
--filter after that to filter out trace events that contain fields with
specific values: ::
specific values::
root@crownbay:~# perf record -a -e sched:sched_switch --filter 'next_comm != perf && prev_comm != perf' -e sched:sched_wakeup --filter 'comm != perf'
^C[ perf record: Woken up 38 times to write data ]
@@ -1017,7 +1017,7 @@ perf isn't restricted to the fixed set of static tracepoints listed by
'perf list'. Users can also add their own 'dynamic' tracepoints anywhere
in the kernel. For instance, suppose we want to define our own
tracepoint on do_fork(). We can do that using the 'perf probe' perf
subcommand: ::
subcommand::
root@crownbay:~# perf probe do_fork
Added new event:
@@ -1031,7 +1031,7 @@ Adding a new tracepoint via
'perf probe' results in an event with all the expected files and format
in /sys/kernel/debug/tracing/events, just the same as for static
tracepoints (as discussed in more detail in the trace events subsystem
section: ::
section::
root@crownbay:/sys/kernel/debug/tracing/events/probe/do_fork# ls -al
drwxr-xr-x 2 root root 0 Oct 28 11:42 .
@@ -1056,7 +1056,7 @@ section: ::
print fmt: "(%lx)", REC->__probe_ip
We can list all dynamic tracepoints currently in
existence: ::
existence::
root@crownbay:~# perf probe -l
probe:do_fork (on do_fork)
@@ -1064,13 +1064,13 @@ existence: ::
Let's record system-wide ('sleep 30' is a
trick for recording system-wide but basically do nothing and then wake
up after 30 seconds): ::
up after 30 seconds)::
root@crownbay:~# perf record -g -a -e probe:do_fork sleep 30
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.087 MB perf.data (~3812 samples) ]
Using 'perf script' we can see each do_fork event that fired: ::
Using 'perf script' we can see each do_fork event that fired::
root@crownbay:~# perf script
@@ -1163,7 +1163,7 @@ addressed by a Yocto bug: :yocto_bugs:`Bug 3388 - perf: enable man pages for
basic 'help' functionality </show_bug.cgi?id=3388>`.
The man pages in text form, along with some other files, such as a set
of examples, can be found in the 'perf' directory of the kernel tree: ::
of examples, can be found in the 'perf' directory of the kernel tree::
tools/perf/Documentation
@@ -1197,7 +1197,7 @@ Basic ftrace usage
'ftrace' essentially refers to everything included in the /tracing
directory of the mounted debugfs filesystem (Yocto follows the standard
convention and mounts it at /sys/kernel/debug). Here's a listing of all
the files found in /sys/kernel/debug/tracing on a Yocto system: ::
the files found in /sys/kernel/debug/tracing on a Yocto system::
root@sugarbay:/sys/kernel/debug/tracing# ls
README kprobe_events trace
@@ -1222,12 +1222,12 @@ the ftrace documentation.
We'll start by looking at some of the available built-in tracers.
cat'ing the 'available_tracers' file lists the set of available tracers: ::
cat'ing the 'available_tracers' file lists the set of available tracers::
root@sugarbay:/sys/kernel/debug/tracing# cat available_tracers
blk function_graph function nop
The 'current_tracer' file contains the tracer currently in effect: ::
The 'current_tracer' file contains the tracer currently in effect::
root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
nop
@@ -1237,7 +1237,7 @@ The above listing of current_tracer shows that the
there's actually no tracer currently in effect.
echo'ing one of the available_tracers into current_tracer makes the
specified tracer the current tracer: ::
specified tracer the current tracer::
root@sugarbay:/sys/kernel/debug/tracing# echo function > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# cat current_tracer
@@ -1247,7 +1247,7 @@ The above sets the current tracer to be the 'function tracer'. This tracer
traces every function call in the kernel and makes it available as the
contents of the 'trace' file. Reading the 'trace' file lists the
currently buffered function calls that have been traced by the function
tracer: ::
tracer::
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
@@ -1306,7 +1306,7 @@ great way to learn about how the kernel code works in a dynamic sense.
It is a little more difficult to follow the call chains than it needs to
be - luckily there's a variant of the function tracer that displays the
callchains explicitly, called the 'function_graph' tracer: ::
callchains explicitly, called the 'function_graph' tracer::
root@sugarbay:/sys/kernel/debug/tracing# echo function_graph > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
@@ -1442,7 +1442,7 @@ One especially important directory contained within the
/sys/kernel/debug/tracing directory is the 'events' subdirectory, which
contains representations of every tracepoint in the system. Listing out
the contents of the 'events' subdirectory, we see mainly another set of
subdirectories: ::
subdirectories::
root@sugarbay:/sys/kernel/debug/tracing# cd events
root@sugarbay:/sys/kernel/debug/tracing/events# ls -al
@@ -1491,7 +1491,7 @@ subdirectories: ::
Each one of these subdirectories
corresponds to a 'subsystem' and contains yet again more subdirectories,
each one of those finally corresponding to a tracepoint. For example,
here are the contents of the 'kmem' subsystem: ::
here are the contents of the 'kmem' subsystem::
root@sugarbay:/sys/kernel/debug/tracing/events# cd kmem
root@sugarbay:/sys/kernel/debug/tracing/events/kmem# ls -al
@@ -1513,7 +1513,7 @@ here are the contents of the 'kmem' subsystem: ::
drwxr-xr-x 2 root root 0 Nov 14 23:19 mm_page_pcpu_drain
Let's see what's inside the subdirectory for a
specific tracepoint, in this case the one for kmalloc: ::
specific tracepoint, in this case the one for kmalloc::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem# cd kmalloc
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# ls -al
@@ -1529,7 +1529,7 @@ tracepoint describes the event in memory, which is used by the various
tracing tools that now make use of these tracepoint to parse the event
and make sense of it, along with a 'print fmt' field that allows tools
like ftrace to display the event as text. Here's what the format of the
kmalloc event looks like: ::
kmalloc event looks like::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# cat format
name: kmalloc
@@ -1568,20 +1568,20 @@ The 'enable' file
in the tracepoint directory is what allows the user (or tools such as
trace-cmd) to actually turn the tracepoint on and off. When enabled, the
corresponding tracepoint will start appearing in the ftrace 'trace' file
described previously. For example, this turns on the kmalloc tracepoint: ::
described previously. For example, this turns on the kmalloc tracepoint::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 1 > enable
At the moment, we're not interested in the function tracer or
some other tracer that might be in effect, so we first turn it off, but
if we do that, we still need to turn tracing on in order to see the
events in the output buffer: ::
events in the output buffer::
root@sugarbay:/sys/kernel/debug/tracing# echo nop > current_tracer
root@sugarbay:/sys/kernel/debug/tracing# echo 1 > tracing_on
Now, if we look at the 'trace' file, we see nothing
but the kmalloc events we just turned on: ::
but the kmalloc events we just turned on::
root@sugarbay:/sys/kernel/debug/tracing# cat trace | less
# tracer: nop
@@ -1627,7 +1627,7 @@ but the kmalloc events we just turned on: ::
<idle>-0 [000] ..s3 18156.400660: kmalloc: call_site=ffffffff81619b36 ptr=ffff88006d554800 bytes_req=512 bytes_alloc=512 gfp_flags=GFP_ATOMIC
matchbox-termin-1361 [001] ...1 18156.552800: kmalloc: call_site=ffffffff81614050 ptr=ffff88006db34800 bytes_req=576 bytes_alloc=1024 gfp_flags=GFP_KERNEL|GFP_REPEAT
To again disable the kmalloc event, we need to send 0 to the enable file: ::
To again disable the kmalloc event, we need to send 0 to the enable file::
root@sugarbay:/sys/kernel/debug/tracing/events/kmem/kmalloc# echo 0 > enable
@@ -1669,12 +1669,12 @@ a per-CPU graphical display. It directly uses 'trace-cmd' as the
plumbing that accomplishes all that underneath the covers (and actually
displays the trace-cmd command it uses, as we'll see).
To start a trace using kernelshark, first start kernelshark: ::
To start a trace using kernelshark, first start kernelshark::
root@sugarbay:~# kernelshark
Then bring up the 'Capture' dialog by
choosing from the kernelshark menu: ::
choosing from the kernelshark menu::
Capture | Record
@@ -1724,12 +1724,12 @@ ftrace Documentation
--------------------
The documentation for ftrace can be found in the kernel Documentation
directory: ::
directory::
Documentation/trace/ftrace.txt
The documentation for the trace event subsystem can also be found in the kernel
Documentation directory: ::
Documentation directory::
Documentation/trace/events.txt
@@ -1784,7 +1784,7 @@ which it extracts from the open syscall's argstr.
Normally, to execute this
probe, you'd simply install systemtap on the system you want to probe,
and directly run the probe on that system e.g. assuming the name of the
file containing the above text is trace_open.stp: ::
file containing the above text is trace_open.stp::
# stap trace_open.stp
@@ -1825,7 +1825,7 @@ target, with arguments if necessary.
In order to do this from a remote host, however, you need to have access
to the build for the image you booted. The 'crosstap' script provides
details on how to do this if you run the script on the host without
having done a build: ::
having done a build::
$ crosstap root@192.168.1.88 trace_open.stp
@@ -1885,7 +1885,7 @@ Running a Script on a Target
----------------------------
Once you've done that, you should be able to run a systemtap script on
the target: ::
the target::
$ cd /path/to/yocto
$ source oe-init-build-env
@@ -1903,17 +1903,17 @@ the target: ::
You can also run generated QEMU images with a command like 'runqemu qemux86-64'
Once you've done that, you can cd to whatever
directory contains your scripts and use 'crosstap' to run the script: ::
directory contains your scripts and use 'crosstap' to run the script::
$ cd /path/to/my/systemap/script
$ crosstap root@192.168.7.2 trace_open.stp
If you get an error connecting to the target e.g.: ::
If you get an error connecting to the target e.g.::
$ crosstap root@192.168.7.2 trace_open.stp
error establishing ssh connection on remote 'root@192.168.7.2'
Try ssh'ing to the target and see what happens: ::
Try ssh'ing to the target and see what happens::
$ ssh root@192.168.7.2
@@ -2038,7 +2038,7 @@ tracing.
Collecting and viewing a trace on the target (inside a shell)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, from the host, ssh to the target: ::
First, from the host, ssh to the target::
$ ssh -l root 192.168.1.47
The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2047,30 +2047,30 @@ First, from the host, ssh to the target: ::
Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts.
root@192.168.1.47's password:
Once on the target, use these steps to create a trace: ::
Once on the target, use these steps to create a trace::
root@crownbay:~# lttng create
Spawning a session daemon
Session auto-20121015-232120 created.
Traces will be written in /home/root/lttng-traces/auto-20121015-232120
Enable the events you want to trace (in this case all kernel events): ::
Enable the events you want to trace (in this case all kernel events)::
root@crownbay:~# lttng enable-event --kernel --all
All kernel events are enabled in channel channel0
Start the trace: ::
Start the trace::
root@crownbay:~# lttng start
Tracing started for session auto-20121015-232120
And then stop the trace after awhile or after running a particular workload that
you want to trace: ::
you want to trace::
root@crownbay:~# lttng stop
Tracing stopped for session auto-20121015-232120
You can now view the trace in text form on the target: ::
You can now view the trace in text form on the target::
root@crownbay:~# lttng view
[23:21:56.989270399] (+?.?????????) sys_geteuid: { 1 }, { }
@@ -2116,14 +2116,14 @@ You can now view the trace in text form on the target: ::
You can now safely destroy the trace
session (note that this doesn't delete the trace - it's still there in
~/lttng-traces): ::
~/lttng-traces)::
root@crownbay:~# lttng destroy
Session auto-20121015-232120 destroyed at /home/root
Note that the trace is saved in a directory of the same name as returned by
'lttng create', under the ~/lttng-traces directory (note that you can change this by
supplying your own name to 'lttng create'): ::
supplying your own name to 'lttng create')::
root@crownbay:~# ls -al ~/lttng-traces
drwxrwx--- 3 root root 1024 Oct 15 23:21 .
@@ -2139,18 +2139,18 @@ generated by the lttng-ust build.
The 'hello' test program isn't installed on the rootfs by the lttng-ust
build, so we need to copy it over manually. First cd into the build
directory that contains the hello executable: ::
directory that contains the hello executable::
$ cd build/tmp/work/core2_32-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs
Copy that over to the target machine: ::
Copy that over to the target machine::
$ scp hello root@192.168.1.20:
You now have the instrumented lttng 'hello world' test program on the
target, ready to test.
First, from the host, ssh to the target: ::
First, from the host, ssh to the target::
$ ssh -l root 192.168.1.47
The authenticity of host '192.168.1.47 (192.168.1.47)' can't be established.
@@ -2159,35 +2159,35 @@ First, from the host, ssh to the target: ::
Warning: Permanently added '192.168.1.47' (RSA) to the list of known hosts.
root@192.168.1.47's password:
Once on the target, use these steps to create a trace: ::
Once on the target, use these steps to create a trace::
root@crownbay:~# lttng create
Session auto-20190303-021943 created.
Traces will be written in /home/root/lttng-traces/auto-20190303-021943
Enable the events you want to trace (in this case all userspace events): ::
Enable the events you want to trace (in this case all userspace events)::
root@crownbay:~# lttng enable-event --userspace --all
All UST events are enabled in channel channel0
Start the trace: ::
Start the trace::
root@crownbay:~# lttng start
Tracing started for session auto-20190303-021943
Run the instrumented hello world program: ::
Run the instrumented hello world program::
root@crownbay:~# ./hello
Hello, World!
Tracing... done.
And then stop the trace after awhile or after running a particular workload
that you want to trace: ::
that you want to trace::
root@crownbay:~# lttng stop
Tracing stopped for session auto-20190303-021943
You can now view the trace in text form on the target: ::
You can now view the trace in text form on the target::
root@crownbay:~# lttng view
[02:31:14.906146544] (+?.?????????) hello:1424 ust_tests_hello:tptest: { cpu_id = 1 }, { intfield = 0, intfield2 = 0x0, longfield = 0, netintfield = 0, netintfieldhex = 0x0, arrfield1 = [ [0] = 1, [1] = 2, [2] = 3 ], arrfield2 = "test", _seqfield1_length = 4, seqfield1 = [ [0] = 116, [1] = 101, [2] = 115, [3] = 116 ], _seqfield2_length = 4, seqfield2 = "test", stringfield = "test", floatfield = 2222, doublefield = 2, boolfield = 1 }
@@ -2199,7 +2199,7 @@ You can now view the trace in text form on the target: ::
.
You can now safely destroy the trace session (note that this doesn't delete the
trace - it's still there in ~/lttng-traces): ::
trace - it's still there in ~/lttng-traces)::
root@crownbay:~# lttng destroy
Session auto-20190303-021943 destroyed at /home/root
@@ -2244,7 +2244,7 @@ Basic blktrace Usage
--------------------
To record a trace, simply run the 'blktrace' command, giving it the name
of the block device you want to trace activity on: ::
of the block device you want to trace activity on::
root@crownbay:~# blktrace /dev/sdc
@@ -2265,7 +2265,7 @@ dumps them to userspace for blkparse to merge and sort later). ::
Total: 8660 events (dropped 0), 406 KiB data
If you examine the files saved to disk, you see multiple files, one per CPU and
with the device name as the first part of the filename: ::
with the device name as the first part of the filename::
root@crownbay:~# ls -al
drwxr-xr-x 6 root root 1024 Oct 27 22:39 .
@@ -2275,7 +2275,7 @@ with the device name as the first part of the filename: ::
To view the trace events, simply invoke 'blkparse' in the directory
containing the trace files, giving it the device name that forms the
first part of the filenames: ::
first part of the filenames::
root@crownbay:~# blkparse sdc
@@ -2373,7 +2373,7 @@ Live Mode
blktrace and blkparse are designed from the ground up to be able to
operate together in a 'pipe mode' where the stdout of blktrace can be
fed directly into the stdin of blkparse: ::
fed directly into the stdin of blkparse::
root@crownbay:~# blktrace /dev/sdc -o - | blkparse -i -
@@ -2386,7 +2386,7 @@ identify and capture conditions of interest.
There's actually another blktrace command that implements the above
pipeline as a single command, so the user doesn't have to bother typing
in the above command sequence: ::
in the above command sequence::
root@crownbay:~# btrace /dev/sdc
@@ -2401,19 +2401,19 @@ the traced device at all by providing native support for sending all
trace data over the network.
To have blktrace operate in this mode, start blktrace on the target
system being traced with the -l option, along with the device to trace: ::
system being traced with the -l option, along with the device to trace::
root@crownbay:~# blktrace -l /dev/sdc
server: waiting for connections...
On the host system, use the -h option to connect to the target system,
also passing it the device to trace: ::
also passing it the device to trace::
$ blktrace -d /dev/sdc -h 192.168.1.43
blktrace: connecting to 192.168.1.43
blktrace: connected!
On the target system, you should see this: ::
On the target system, you should see this::
server: connection from 192.168.1.43
@@ -2424,7 +2424,7 @@ In another shell, execute a workload you want to trace. ::
linux-2.6.19.2.tar.b 100% \|*******************************\| 41727k 0:00:00 ETA
When it's done, do a Ctrl-C on the host system to stop the
trace: ::
trace::
^C=== sdc ===
CPU 0: 7691 events, 361 KiB data
@@ -2432,7 +2432,7 @@ trace: ::
Total: 11800 events (dropped 0), 554 KiB data
On the target system, you should also see a trace summary for the trace
just ended: ::
just ended::
server: end of run for 192.168.1.43:sdc
=== sdc ===
@@ -2441,20 +2441,20 @@ just ended: ::
Total: 11800 events (dropped 0), 554 KiB data
The blktrace instance on the host will
save the target output inside a hostname-timestamp directory: ::
save the target output inside a hostname-timestamp directory::
$ ls -al
drwxr-xr-x 10 root root 1024 Oct 28 02:40 .
drwxr-sr-x 4 root root 1024 Oct 26 18:24 ..
drwxr-xr-x 2 root root 1024 Oct 28 02:40 192.168.1.43-2012-10-28-02:40:56
cd into that directory to see the output files: ::
cd into that directory to see the output files::
$ ls -l
-rw-r--r-- 1 root root 369193 Oct 28 02:44 sdc.blktrace.0
-rw-r--r-- 1 root root 197278 Oct 28 02:44 sdc.blktrace.1
And run blkparse on the host system using the device name: ::
And run blkparse on the host system using the device name::
$ blkparse sdc
@@ -2517,25 +2517,25 @@ userspace tools.
To enable tracing for a given device, use /sys/block/xxx/trace/enable,
where xxx is the device name. This for example enables tracing for
/dev/sdc: ::
/dev/sdc::
root@crownbay:/sys/kernel/debug/tracing# echo 1 > /sys/block/sdc/trace/enable
Once you've selected the device(s) you want
to trace, selecting the 'blk' tracer will turn the blk tracer on: ::
to trace, selecting the 'blk' tracer will turn the blk tracer on::
root@crownbay:/sys/kernel/debug/tracing# cat available_tracers
blk function_graph function nop
root@crownbay:/sys/kernel/debug/tracing# echo blk > current_tracer
Execute the workload you're interested in: ::
Execute the workload you're interested in::
root@crownbay:/sys/kernel/debug/tracing# cat /media/sdc/testfile.txt
And look at the output (note here that we're using 'trace_pipe' instead of
trace to capture this trace - this allows us to wait around on the pipe
for data to appear): ::
for data to appear)::
root@crownbay:/sys/kernel/debug/tracing# cat trace_pipe
cat-3587 [001] d..1 3023.276361: 8,32 Q R 1699848 + 8 [cat]
@@ -2554,7 +2554,7 @@ for data to appear): ::
cat-3587 [001] d..1 3023.276497: 8,32 m N cfq3587 activate rq, drv=1
cat-3587 [001] d..2 3023.276500: 8,32 D R 1699848 + 8 [cat]
And this turns off tracing for the specified device: ::
And this turns off tracing for the specified device::
root@crownbay:/sys/kernel/debug/tracing# echo 0 > /sys/block/sdc/trace/enable
@@ -2572,6 +2572,6 @@ section can be found here:
The above manpages, along with manpages for the other blktrace utilities
(btt, blkiomon, etc) can be found in the /doc directory of the blktrace
tools git repo: ::
tools git repo::
$ git clone git://git.kernel.dk/blktrace.git

View File

@@ -168,8 +168,7 @@ example use for this class.
the "subpath" parameter limits the checkout to a specific subpath
of the tree. Here is an example where ``${BP}`` is used so that the files
are extracted into the subdirectory expected by the default value of
``S``:
::
``S``::
SRC_URI = "git://example.com/downloads/somepackage.rpm;subpath=${BP}"
@@ -221,8 +220,7 @@ each recipe you wish to blacklist. Specify the :term:`PN`
value as a variable flag (varflag) and provide a reason, which is
reported, if the package is requested to be built as the value. For
example, if you want to blacklist a recipe called "exoticware", you add
the following to your ``local.conf`` or distribution configuration:
::
the following to your ``local.conf`` or distribution configuration::
INHERIT += "blacklist"
PNBLACKLIST[exoticware] = "Not supported by our organization."
@@ -470,8 +468,7 @@ information about using ``devshell``.
The ``devupstream`` class uses
:term:`BBCLASSEXTEND` to add a variant of the
recipe that fetches from an alternative URI (e.g. Git) instead of a
tarball. Following is an example:
::
tarball. Following is an example::
BBCLASSEXTEND = "devupstream:target"
SRC_URI_class-devupstream = "git://git.example.com/example"
@@ -481,8 +478,7 @@ Adding the above statements to your recipe creates a variant that has
:term:`DEFAULT_PREFERENCE` set to "-1".
Consequently, you need to select the variant of the recipe to use it.
Any development-specific adjustments can be done by using the
``class-devupstream`` override. Here is an example:
::
``class-devupstream`` override. Here is an example::
DEPENDS_append_class-devupstream = " gperf-native"
do_configure_prepend_class-devupstream() {
@@ -544,8 +540,7 @@ By default, this class expects the source code to support recipe builds
that use the :term:`B` variable to point to the directory in
which the OpenEmbedded build system places the generated objects built
from the recipes. By default, the ``B`` directory is set to the
following, which is separate from the source directory (``S``):
::
following, which is separate from the source directory (``S``)::
${WORKDIR}/${BPN}/{PV}/
@@ -581,8 +576,7 @@ be performed using the
useradd
class to add user and group configuration to a specific recipe.
Here is an example that uses this class in an image recipe:
::
Here is an example that uses this class in an image recipe::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -595,8 +589,7 @@ Here is an example that uses this class in an image recipe:
"
Here is an example that adds two users named "tester-jim" and "tester-sue" and assigns
passwords:
::
passwords::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -604,8 +597,7 @@ passwords:
useradd -P tester01 tester-sue; \
"
Finally, here is an example that sets the root password to "1876*18":
::
Finally, here is an example that sets the root password to "1876*18"::
inherit extrausers
EXTRA_USERS_PARAMS = "\
@@ -867,8 +859,7 @@ system need to either inherit the ``icecc`` class or nobody should.
At the distribution level, you can inherit the ``icecc`` class to be
sure that all builders start with the same sstate signatures. After
inheriting the class, you can then disable the feature by setting the
:term:`ICECC_DISABLED` variable to "1" as follows:
::
:term:`ICECC_DISABLED` variable to "1" as follows::
INHERIT_DISTRO_append = " icecc"
ICECC_DISABLED ??= "1"
@@ -876,8 +867,7 @@ inheriting the class, you can then disable the feature by setting the
This practice
makes sure everyone is using the same signatures but also requires
individuals that do want to use Icecream to enable the feature
individually as follows in your ``local.conf`` file:
::
individually as follows in your ``local.conf`` file::
ICECC_DISABLED = ""
@@ -925,8 +915,7 @@ types.
By default, the :ref:`image <ref-classes-image>` class automatically
enables the ``image_types`` class. The ``image`` class uses the
``IMGCLASSES`` variable as follows:
::
``IMGCLASSES`` variable as follows::
IMGCLASSES = "rootfs_${IMAGE_PKGTYPE} image_types ${IMAGE_CLASSES}"
IMGCLASSES += "${@['populate_sdk_base', 'populate_sdk_ext']['linux' in d.getVar("SDK_OS")]}"
@@ -968,8 +957,7 @@ during the :ref:`ref-tasks-rootfs` task, which optimizes
the size of libraries contained in the image.
By default, the class is enabled in the ``local.conf.template`` using
the :term:`USER_CLASSES` variable as follows:
::
the :term:`USER_CLASSES` variable as follows::
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
@@ -984,8 +972,7 @@ the dynamic linking of shared libraries to reduce executable startup
time.
By default, the class is enabled in the ``local.conf.template`` using
the :term:`USER_CLASSES` variable as follows:
::
the :term:`USER_CLASSES` variable as follows::
USER_CLASSES ?= "buildstats image-mklibs image-prelink"
@@ -1014,8 +1001,7 @@ configuration). However, to skip one or more checks in recipes, you
should use :term:`INSANE_SKIP`. For example, to skip
the check for symbolic link ``.so`` files in the main package of a
recipe, add the following to the recipe. You need to realize that the
package name override, in this example ``${PN}``, must be used:
::
package name override, in this example ``${PN}``, must be used::
INSANE_SKIP_${PN} += "dev-so"
@@ -1152,8 +1138,7 @@ The following list shows the tests you can list with the ``WARN_QA`` and
- ``invalid-packageconfig:`` Checks that no undefined features are
being added to :term:`PACKAGECONFIG`. For
example, any name "foo" for which the following form does not exist:
::
example, any name "foo" for which the following form does not exist::
PACKAGECONFIG[foo] = "..."
@@ -1636,8 +1621,7 @@ a couple different ways:
.. note::
When creating a recipe this way, the recipe name must follow this
naming convention:
::
naming convention::
myrecipe-native.bb
@@ -1645,8 +1629,7 @@ a couple different ways:
Not using this naming convention can lead to subtle problems
caused by existing code that depends on that naming convention.
- Create or modify a target recipe that contains the following:
::
- Create or modify a target recipe that contains the following::
BBCLASSEXTEND = "native"
@@ -1677,8 +1660,7 @@ couple different ways:
inherit statement in the recipe after all other inherit statements so
that the ``nativesdk`` class is inherited last.
- Create a ``nativesdk`` variant of any recipe by adding the following:
::
- Create a ``nativesdk`` variant of any recipe by adding the following::
BBCLASSEXTEND = "nativesdk"
@@ -1689,8 +1671,7 @@ couple different ways:
.. note::
When creating a recipe, you must follow this naming convention:
::
When creating a recipe, you must follow this naming convention::
nativesdk-myrecipe.bb
@@ -1753,8 +1734,7 @@ before attempting to fetch it from the upstream specified in
:term:`SRC_URI` within each recipe.
To use this class, inherit it globally and specify
:term:`SOURCE_MIRROR_URL`. Here is an example:
::
:term:`SOURCE_MIRROR_URL`. Here is an example::
INHERIT += "own-mirrors"
SOURCE_MIRROR_URL = "http://example.com/my-source-mirror"
@@ -2017,8 +1997,7 @@ established and then populates the SDK. After populating the SDK, the
contains the cross-compiler and associated tooling, and the target,
which contains a target root filesystem that is configured for the SDK
usage. These two images reside in :term:`SDK_OUTPUT`,
which consists of the following:
::
which consists of the following::
${SDK_OUTPUT}/${SDK_ARCH}-nativesdk-pkgs
${SDK_OUTPUT}/${SDKTARGETSYSROOT}/target-pkgs
@@ -2180,8 +2159,7 @@ installed by ``libtool``. Removing these files results in them being
absent from both the sysroot and target packages.
If a recipe needs the ``.la`` files to be installed, then the recipe can
override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows:
::
override the removal by setting ``REMOVE_LIBTOOL_LA`` to "0" as follows::
REMOVE_LIBTOOL_LA = "0"
@@ -2231,8 +2209,7 @@ recipe, enabling ``rm_work`` will potentially result in your changes to
the source being lost. To exclude some recipes from having their work
directories deleted by ``rm_work``, you can add the names of the recipe
or recipes you are working on to the ``RM_WORK_EXCLUDE`` variable, which
can also be set in your ``local.conf`` file. Here is an example:
::
can also be set in your ``local.conf`` file. Here is an example::
RM_WORK_EXCLUDE += "busybox glibc"
@@ -2531,8 +2508,7 @@ You should set :term:`SYSTEMD_SERVICE` to the
name of the service file. You should also use a package name override to
indicate the package to which the value applies. If the value applies to
the recipe's main package, use ``${``\ :term:`PN`\ ``}``. Here
is an example from the connman recipe:
::
is an example from the connman recipe::
SYSTEMD_SERVICE_${PN} = "connman.service"
@@ -2608,8 +2584,7 @@ The tests are commands that run on the target system over ``ssh``. Each
test is written in Python and makes use of the ``unittest`` module.
The ``testimage.bbclass`` runs tests on an image when called using the
following:
::
following::
$ bitbake -c testimage image
@@ -2628,8 +2603,7 @@ section in the Yocto Project Development Tasks Manual.
This class supports running automated tests against software development
kits (SDKs). The ``testsdk`` class runs tests on an SDK when called
using the following:
::
using the following::
$ bitbake -c testsdk image
@@ -2684,8 +2658,7 @@ the environment for installed SDKs.
The ``typecheck`` class provides support for validating the values of
variables set at the configuration level against their defined types.
The OpenEmbedded build system allows you to define the type of a
variable using the "type" varflag. Here is an example:
::
variable using the "type" varflag. Here is an example::
IMAGE_FEATURES[type] = "list"
@@ -2695,14 +2668,12 @@ variable using the "type" varflag. Here is an example:
========================
The ``uboot-config`` class provides support for U-Boot configuration for
a machine. Specify the machine in your recipe as follows:
::
a machine. Specify the machine in your recipe as follows::
UBOOT_CONFIG ??= <default>
UBOOT_CONFIG[foo] = "config,images"
You can also specify the machine using this method:
::
You can also specify the machine using this method::
UBOOT_MACHINE = "config"

View File

@@ -22,8 +22,7 @@ Getting Help
The ``devtool`` command line is organized similarly to Git in that it
has a number of sub-commands for each function. You can run
``devtool --help`` to see all the commands:
::
``devtool --help`` to see all the commands::
$ devtool -h
NOTE: Starting bitbake server...
@@ -79,8 +78,7 @@ has a number of sub-commands for each function. You can run
As directed in the general help output, you can
get more syntax on a specific command by providing the command name and
using "--help":
::
using "--help"::
$ devtool add --help
NOTE: Starting bitbake server...
@@ -172,8 +170,7 @@ you. The source files the recipe uses should exist in an external area.
The following example creates and adds a new recipe named ``jackson`` to
a workspace layer the tool creates. The source code built by the recipes
resides in ``/home/user/sources/jackson``:
::
resides in ``/home/user/sources/jackson``::
$ devtool add jackson /home/user/sources/jackson
@@ -201,8 +198,7 @@ unpacking files from a remote URI. In some cases, you might want to
specify a source revision by branch, tag, or commit hash. You can
specify these options when using the ``devtool add`` command:
- To specify a source branch, use the ``--srcbranch`` option:
::
- To specify a source branch, use the ``--srcbranch`` option::
$ devtool add --srcbranch &DISTRO_NAME_NO_CAP; jackson /home/user/sources/jackson
@@ -210,8 +206,7 @@ specify these options when using the ``devtool add`` command:
branch.
- To specify a specific tag or commit hash, use the ``--srcrev``
option:
::
option::
$ devtool add --srcrev &DISTRO_REL_TAG; jackson /home/user/sources/jackson
$ devtool add --srcrev some_commit_hash /home/user/sources/jackson
@@ -269,8 +264,7 @@ The ``devtool modify`` command extracts the source for a recipe, sets it
up as a Git repository if the source had not already been fetched from
Git, checks out a branch for development, and applies any patches from
the recipe as commits on top. You can use the following command to
checkout the source files:
::
checkout the source files::
$ devtool modify recipe
@@ -309,8 +303,7 @@ compile, and test the code.
When you are satisfied with the results and you have committed your
changes to the Git repository, you can then run the
``devtool update-recipe`` to create the patches and update the recipe:
::
``devtool update-recipe`` to create the patches and update the recipe::
$ devtool update-recipe recipe
@@ -321,8 +314,7 @@ Often, you might want to apply customizations made to your software in
your own layer rather than apply them to the original recipe. If so, you
can use the ``-a`` or ``--append`` option with the
``devtool update-recipe`` command. These options allow you to specify
the layer into which to write an append file:
::
the layer into which to write an append file::
$ devtool update-recipe recipe -a base-layer-directory
@@ -358,8 +350,7 @@ particular recipe.
recipe's latest version tag.
As with all ``devtool`` commands, you can get help on the individual
command:
::
command::
$ devtool check-upgrade-status -h
NOTE: Starting bitbake server...
@@ -462,8 +453,7 @@ files have been modified, the command preserves the modified files in a
separate "attic" subdirectory under the workspace layer.
Here is an example that resets the workspace directory that contains the
``mtr`` recipe:
::
``mtr`` recipe::
$ devtool reset mtr
NOTE: Cleaning sysroot for recipe mtr...
@@ -482,8 +472,7 @@ Use the ``devtool build`` command to build your recipe. The
When you use the ``devtool build`` command, you must supply the root
name of the recipe (i.e. do not provide versions, paths, or extensions).
You can use either the "-s" or the "--disable-parallel-make" options to
disable parallel makes during the build. Here is an example:
::
disable parallel makes during the build. Here is an example::
$ devtool build recipe
@@ -499,8 +488,7 @@ device for testing. For proper integration into a final image, you need
to edit your custom image recipe appropriately.
When you use the ``devtool build-image`` command, you must supply the
name of the image. This command has no command line options:
::
name of the image. This command has no command line options::
$ devtool build-image image
@@ -510,8 +498,7 @@ Deploying Your Software on the Target Machine
=============================================
Use the ``devtool deploy-target`` command to deploy the recipe's build
output to the live target machine:
::
output to the live target machine::
$ devtool deploy-target recipe target
@@ -582,15 +569,13 @@ new workspace layer, it is populated with the ``README`` file and the
``conf`` directory only.
The following example creates a new workspace layer in your current
working and by default names the workspace layer "workspace":
::
working and by default names the workspace layer "workspace"::
$ devtool create-workspace
You can create a workspace layer anywhere by supplying a pathname with
the command. The following command creates a new workspace layer named
"new-workspace":
::
"new-workspace"::
$ devtool create-workspace /home/scottrif/new-workspace
@@ -603,15 +588,13 @@ Use the ``devtool status`` command to list the recipes currently in your
workspace. Information includes the paths to their respective external
source trees.
The ``devtool status`` command has no command-line options:
::
The ``devtool status`` command has no command-line options::
$ devtool status
Following is sample output after using
:ref:`devtool add <ref-manual/devtool-reference:adding a new recipe to the workspace layer>`
to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory:
::
to create and add the ``mtr_0.86.bb`` recipe to the ``workspace`` directory::
$ devtool status
mtr:/home/scottrif/poky/build/workspace/sources/mtr (/home/scottrif/poky/build/workspace/recipes/mtr/mtr_0.86.bb)

View File

@@ -125,7 +125,7 @@ file.
Following is the applicable code for setting various proxy types in the
``.wgetrc`` file. By default, these settings are disabled with comments.
To use them, remove the comments: ::
To use them, remove the comments::
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
@@ -209,8 +209,7 @@ section in the Yocto Project Development Tasks Manual.
**A:** You need to create a form factor file as described in the
":ref:`bsp-guide/bsp:miscellaneous bsp-specific recipe files`" section in
the Yocto Project Board Support Packages (BSP) Developer's Guide. Set
the ``HAVE_TOUCHSCREEN`` variable equal to one as follows:
::
the ``HAVE_TOUCHSCREEN`` variable equal to one as follows::
HAVE_TOUCHSCREEN=1
@@ -224,7 +223,7 @@ to add a BSP-specific netbase that includes an interfaces file. See the
the Yocto Project Board Support Packages (BSP) Developer's Guide for
information on creating these types of miscellaneous recipe files.
For example, add the following files to your layer: ::
For example, add the following files to your layer::
meta-MACHINE/recipes-bsp/netbase/netbase/MACHINE/interfaces
meta-MACHINE/recipes-bsp/netbase/netbase_5.0.bbappend
@@ -300,7 +299,7 @@ fail.
As an example, you could add a specific server for the build system to
attempt before any others by adding something like the following to the
``local.conf`` configuration file: ::
``local.conf`` configuration file::
PREMIRRORS_prepend = "\
git://.*/.* http://www.yoctoproject.org/sources/ \n \
@@ -313,8 +312,7 @@ HTTPS requests and direct them to the ``http://`` sources mirror. You
can use ``file://`` URLs to point to local directories or network shares
as well.
Aside from the previous technique, these options also exist:
::
Aside from the previous technique, these options also exist::
BB_NO_NETWORK = "1"
@@ -322,8 +320,7 @@ This statement tells BitBake to issue an error
instead of trying to access the Internet. This technique is useful if
you want to ensure code builds only from local sources.
Here is another technique:
::
Here is another technique::
BB_FETCH_PREMIRRORONLY = "1"
@@ -331,8 +328,7 @@ This statement
limits the build system to pulling source from the ``PREMIRRORS`` only.
Again, this technique is useful for reproducing builds.
Here is another technique:
::
Here is another technique::
BB_GENERATE_MIRROR_TARBALLS = "1"
@@ -343,7 +339,7 @@ however, the technique can simply waste time during the build.
Finally, consider an example where you are behind an HTTP-only firewall.
You could make the following changes to the ``local.conf`` configuration
file as long as the ``PREMIRRORS`` server is current: ::
file as long as the ``PREMIRRORS`` server is current::
PREMIRRORS_prepend = "\
ftp://.*/.* http://www.yoctoproject.org/sources/ \n \

View File

@@ -26,8 +26,7 @@ One method you can use to determine which recipes are checking to see if
a particular feature is contained or not is to ``grep`` through the
:term:`Metadata` for the feature. Here is an example that
discovers the recipes whose build is potentially changed based on a
given feature:
::
given feature::
$ cd poky
$ git grep 'contains.*MACHINE_FEATURES.*feature'

View File

@@ -18,8 +18,7 @@ image you want.
are going to build an image using non-GPLv3 and similarly licensed
components, you must make the following changes in the ``local.conf``
file before using the BitBake command to build the minimal or base
image:
::
image::
1. Comment out the EXTRA_IMAGE_FEATURES line
2. Set INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
@@ -27,7 +26,7 @@ image you want.
From within the ``poky`` Git repository, you can use the following
command to display the list of directories within the :term:`Source Directory`
that contain image recipe files: ::
that contain image recipe files::
$ ls meta*/recipes*/images/*.bb

View File

@@ -30,8 +30,7 @@ Command: part or partition
==========================
Either of these commands creates a partition on the system and uses the
following syntax:
::
following syntax::
part [mntpoint]
partition [mntpoint]
@@ -59,8 +58,7 @@ must also provide one of the ``--ondrive``, ``--ondisk``, or
versions of these application are currently excluded.
Here is an example that uses "/" as the mountpoint. The command uses
``--ondisk`` to force the partition onto the ``sdb`` disk:
::
``--ondisk`` to force the partition onto the ``sdb`` disk::
part / --source rootfs --ondisk sdb --fstype=ext3 --label platform --align 1024

View File

@@ -29,7 +29,7 @@ location (either local or remote) and then point to it in
:term:`SSTATE_MIRRORS`, you need to append "PATH"
to the end of the mirror URL so that the path used by BitBake before the
mirror substitution is appended to the path used to access the mirror.
Here is an example: ::
Here is an example::
SSTATE_MIRRORS = "file://.* http://someserver.tld/share/sstate/PATH"
@@ -181,14 +181,13 @@ Linux Kernel Naming
-------------------
The naming scheme for kernel output binaries has been changed to now
include :term:`PE` as part of the filename:
::
include :term:`PE` as part of the filename::
KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
Because the ``PE`` variable is not set by default, these binary files
could result with names that include two dash characters. Here is an
example: ::
example::
bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin

View File

@@ -40,8 +40,7 @@ Differences include the following:
- *Shared State Code:* The shared state code has been optimized to
avoid running unnecessary tasks. For example, the following no longer
populates the target sysroot since that is not necessary:
::
populates the target sysroot since that is not necessary::
$ bitbake -c rootfs some-image
@@ -136,8 +135,7 @@ Target Package Management with RPM
If runtime package management is enabled and the RPM backend is
selected, Smart is now installed for package download, dependency
resolution, and upgrades instead of Zypper. For more information on how
to use Smart, run the following command on the target:
::
to use Smart, run the following command on the target::
smart --help

View File

@@ -53,8 +53,7 @@ Matching Branch Requirement for Git Fetching
When fetching source from a Git repository using
:term:`SRC_URI`, BitBake will now validate the
:term:`SRCREV` value against the branch. You can specify
the branch using the following form:
::
the branch using the following form::
SRC_URI = "git://server.name/repository;branch=branchname"
@@ -207,7 +206,7 @@ functions to call and not arbitrary shell commands:
For
migration purposes, you can simply wrap shell commands in a shell
function and then call the function. Here is an example: ::
function and then call the function. Here is an example::
my_postprocess_function() {
echo "hello" > ${IMAGE_ROOTFS}/hello.txt
@@ -248,8 +247,7 @@ the ``autotools`` or ``autotools_stage``\ classes.
``qemu-native`` now builds without SDL-based graphical output support by
default. The following additional lines are needed in your
``local.conf`` to enable it:
::
``local.conf`` to enable it::
PACKAGECONFIG_pn-qemu-native = "sdl"
ASSUME_PROVIDED += "libsdl-native"

View File

@@ -15,8 +15,7 @@ optional features. The method used to set defaults for these options
means that existing ``local.conf`` files will need to be modified to
append to ``PACKAGECONFIG`` for ``qemu-native`` and ``nativesdk-qemu``
instead of setting it. In other words, to enable graphical output for
QEMU, you should now have these lines in ``local.conf``:
::
QEMU, you should now have these lines in ``local.conf``::
PACKAGECONFIG_append_pn-qemu-native = " sdl"
PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
@@ -80,8 +79,7 @@ disable the scripts due to the scripts previously requiring error-prone
path substitution. Software that links against these libraries using
these scripts should use the much more robust ``pkg-config`` instead.
The list of recipes changed in this version (and their configuration
scripts) is as follows:
::
scripts) is as follows::
directfb (directfb-config)
freetype (freetype-config)

View File

@@ -56,7 +56,7 @@ you can now remove them.
Additionally, a ``bluetooth`` class has been added to make selection of
the appropriate bluetooth support within a recipe a little easier. If
you wish to make use of this class in a recipe, add something such as
the following: ::
the following::
inherit bluetooth
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)}"
@@ -84,7 +84,7 @@ where the ``linux.inc`` file in ``meta-oe`` was updated.
Recipes that rely on the kernel source code and do not inherit the
module classes might need to add explicit dependencies on the
``do_shared_workdir`` kernel task, for example: ::
``do_shared_workdir`` kernel task, for example::
do_configure[depends] += "virtual/kernel:do_shared_workdir"
@@ -131,7 +131,7 @@ One of the improvements is to attempt to run "make clean" during the
``do_configure`` task if a ``Makefile`` exists. Some software packages
do not provide a working clean target within their make files. If you
have such recipes, you need to set
:term:`CLEANBROKEN` to "1" within the recipe, for example: ::
:term:`CLEANBROKEN` to "1" within the recipe, for example::
CLEANBROKEN = "1"

View File

@@ -25,8 +25,7 @@ and the porting guide at
https://gcc.gnu.org/gcc-5/porting_to.html.
Alternatively, you can switch back to GCC 4.9 or 4.8 by setting
``GCCVERSION`` in your configuration, as follows:
::
``GCCVERSION`` in your configuration, as follows::
GCCVERSION = "4.9%"
@@ -91,8 +90,7 @@ unlikely to require any changes to Metadata. However, these minor
changes in behavior exist:
- All potential overrides are now visible in the variable history as
seen when you run the following:
::
seen when you run the following::
$ bitbake -e
@@ -200,8 +198,7 @@ changes.
Additionally, work directories for old versions of recipes are now
pruned. If you wish to disable pruning old work directories, you can set
the following variable in your configuration:
::
the following variable in your configuration::
SSTATE_PRUNE_OBSOLETEWORKDIR = "0"

View File

@@ -42,8 +42,7 @@ defaulted to False if not specified. Now, however, no default exists so
one must be specified. You must change any ``getVar()`` calls that do
not specify the final expand parameter to calls that do specify the
parameter. You can run the following ``sed`` command at the base of a
layer to make this change:
::
layer to make this change::
sed -e 's:\(\.getVar([^,()]*\)):\1, False):g' -i `grep -ril getVar *`
sed -e 's:\(\.getVarFlag([^,()]*,[^,()]*\)):\1, False):g' -i `grep -ril getVarFlag *`
@@ -285,8 +284,7 @@ The following changes have been made for the Poky distribution:
Any recipe that needs to opt-out of having the "--disable-static"
option specified on the configure command line either because it is
not a supported option for the configure script or because static
libraries are needed should set the following variable:
::
libraries are needed should set the following variable::
DISABLE_STATIC = ""
@@ -369,8 +367,7 @@ These additional changes exist:
- Previously, the following list of packages were removed if
package-management was not in
:term:`IMAGE_FEATURES`, regardless of any
dependencies:
::
dependencies::
update-rc.d
base-passwd

View File

@@ -144,8 +144,7 @@ The new ``runqemu`` is a Python script. Machine knowledge is no longer
hardcoded into ``runqemu``. You can choose to use the ``qemuboot``
configuration file to define the BSP's own arguments and to make it
bootable with ``runqemu``. If you use a configuration file, use the
following form:
::
following form::
image-name-machine.qemuboot.conf
@@ -160,8 +159,7 @@ rootfs). QEMU boot arguments can be set in BSP's configuration file and
the ``qemuboot`` class will save them to ``qemuboot.conf``.
If you want to use ``runqemu`` without a configuration file, use the
following command form:
::
following command form::
$ runqemu machine rootfs kernel [options]
@@ -179,7 +177,7 @@ Supported machines are as follows:
Consider the
following example, which uses the ``qemux86-64`` machine, provides a
root filesystem, provides an image, and uses the ``nographic`` option: ::
root filesystem, provides an image, and uses the ``nographic`` option::
$ runqemu qemux86-64 tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.ext4 tmp/deploy/images/qemux86-64/bzImage nographic
@@ -244,8 +242,7 @@ recipes. You need to fix these recipes so that they use the expected
``LDFLAGS``. Depending on how the software is built, the build system
used by the software (e.g. a Makefile) might need to be patched.
However, sometimes making this fix is as simple as adding the following
to the recipe:
::
to the recipe::
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -258,8 +255,7 @@ The ``KERNEL_IMAGE_BASE_NAME`` variable no longer uses the
:term:`KERNEL_IMAGETYPE` variable to create the
image's base name. Because the OpenEmbedded build system can now build
multiple kernel image types, this part of the kernel image base name as
been removed leaving only the following:
::
been removed leaving only the following::
KERNEL_IMAGE_BASE_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"

View File

@@ -114,8 +114,7 @@ Changes to Scripts
The following changes to scripts took place:
- ``oe-find-native-sysroot``: The usage for the
``oe-find-native-sysroot`` script has changed to the following:
::
``oe-find-native-sysroot`` script has changed to the following::
$ . oe-find-native-sysroot recipe
@@ -124,8 +123,7 @@ The following changes to scripts took place:
was not necessary to provide the script with the command.
- ``oe-run-native``: The usage for the ``oe-run-native`` script has
changed to the following:
::
changed to the following::
$ oe-run-native native_recipe tool
@@ -453,14 +451,11 @@ The following miscellaneous changes have occurred:
tools.
- The ``USE_LDCONFIG`` variable has been replaced with the "ldconfig"
``DISTRO_FEATURES`` feature. Distributions that previously set:
::
``DISTRO_FEATURES`` feature. Distributions that previously set::
USE_LDCONFIG = "0"
should now instead use the following:
::
should now instead use the following::
DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " ldconfig"
@@ -478,8 +473,7 @@ The following miscellaneous changes have occurred:
order to allow module packages from multiple kernel versions to
co-exist on a target system. If you wish to return to the previous
naming scheme that does not include the version suffix, use the
following:
::
following::
KERNEL_MODULE_PACKAGE_SUFFIX = ""

View File

@@ -138,13 +138,11 @@ The following are BitBake changes:
tree" tasks have been removed (e.g. ``fetchall``, ``checkuriall``,
and the ``*all`` tasks provided by the ``distrodata`` and
``archiver`` classes). There is a BitBake option to complete this for
any arbitrary task. For example:
::
any arbitrary task. For example::
bitbake <target> -c fetchall
should now be replaced with:
::
should now be replaced with::
bitbake <target> --runall=fetch
@@ -169,7 +167,7 @@ one of the packages provided by the Python recipe. You can no longer run
``bitbake python-foo`` or have a
:term:`DEPENDS` on ``python-foo``,
but doing either of the following causes the package to work as
expected: ::
expected::
IMAGE_INSTALL_append = " python-foo"

View File

@@ -161,13 +161,11 @@ The following changes have been made:
allows easier and more direct changes.
The ``IMAGE_VERSION_SUFFIX`` variable is set in the ``bitbake.conf``
configuration file as follows:
::
configuration file as follows::
IMAGE_VERSION_SUFFIX = "-${DATETIME}"
- Several variables have changed names for consistency:
::
- Several variables have changed names for consistency::
Old Variable Name New Variable Name
========================================================
@@ -292,8 +290,7 @@ avoids the ``systemd`` recipe from becoming machine-specific for cases
where machine-specific configurations need to be applied (e.g. for
``qemu*`` machines).
Currently, the new recipe packages the following files:
::
Currently, the new recipe packages the following files::
${sysconfdir}/machine-id
${sysconfdir}/systemd/coredump.conf
@@ -393,8 +390,7 @@ If you wish to disable Python profile-guided optimization regardless of
the value of ``MACHINE_FEATURES``, then ensure that
:term:`PACKAGECONFIG` for the ``python3`` recipe
does not contain "pgo". You could accomplish the latter using the
following at the configuration level:
::
following at the configuration level::
PACKAGECONFIG_remove_pn-python3 = "pgo"
@@ -411,8 +407,7 @@ The following miscellaneous changes occurred:
- Default to using the Thumb-2 instruction set for armv7a and above. If
you have any custom recipes that build software that needs to be
built with the ARM instruction set, change the recipe to set the
instruction set as follows:
::
instruction set as follows::
ARM_INSTRUCTION_SET = "arm"

View File

@@ -71,8 +71,7 @@ when building a simple image such as core-image-minimal. If you do not
need runtime tests enabled for core components, then it is recommended
that you remove "ptest" from
:term:`DISTRO_FEATURES` to save a significant
amount of build time e.g. by adding the following in your configuration:
::
amount of build time e.g. by adding the following in your configuration::
DISTRO_FEATURES_remove = "ptest"
@@ -179,12 +178,12 @@ parameter instead of the earlier ``name`` which overlapped with the
generic ``name`` parameter. All recipes using the npm fetcher will need
to be changed as a result.
An example of the new scheme: ::
An example of the new scheme::
SRC_URI = "npm://registry.npmjs.org;package=array-flatten;version=1.1.1 \
npmsw://${THISDIR}/npm-shrinkwrap.json"
Another example where the sources are fetched from git rather than an npm repository: ::
Another example where the sources are fetched from git rather than an npm repository::
SRC_URI = "git://github.com/foo/bar.git;protocol=https \
npmsw://${THISDIR}/npm-shrinkwrap.json"

View File

@@ -90,12 +90,12 @@ If you have anonymous python or in-line python conditionally adding
dependencies in your custom recipes, and you intend for those recipes to
work with multilib, then you will need to ensure that ``${MLPREFIX}``
is prefixed on the package names in the dependencies, for example
(from the ``glibc`` recipe): ::
(from the ``glibc`` recipe)::
RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'ldconfig', '${MLPREFIX}ldconfig', '', d)}"
This also applies when conditionally adding packages to :term:`PACKAGES` where
those packages have dependencies, for example (from the ``alsa-plugins`` recipe): ::
those packages have dependencies, for example (from the ``alsa-plugins`` recipe)::
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
...
@@ -229,7 +229,7 @@ needs ``/etc/ld.so.conf`` to be present at image build time:
When some recipe installs libraries to a non-standard location, and
therefore installs in a file in ``/etc/ld.so.conf.d/foo.conf``, we
need ``/etc/ld.so.conf`` containing: ::
need ``/etc/ld.so.conf`` containing::
include /etc/ld.so.conf.d/*.conf

View File

@@ -221,8 +221,7 @@ Errors and Warnings
Typically, the way to solve this performance issue is to add "-fPIC"
or "-fpic" to the compiler command-line options. For example, given
software that reads :term:`CFLAGS` when you build it,
you could add the following to your recipe:
::
you could add the following to your recipe::
CFLAGS_append = " -fPIC "
@@ -240,8 +239,7 @@ Errors and Warnings
variable is being passed to the linker command. A common workaround
for this situation is to pass in ``LDFLAGS`` using
:term:`TARGET_CC_ARCH` within the recipe as
follows:
::
follows::
TARGET_CC_ARCH += "${LDFLAGS}"
@@ -265,8 +263,7 @@ Errors and Warnings
The ``/usr/share/info/dir`` should not be packaged. Add the following
line to your :ref:`ref-tasks-install` task or to your
``do_install_append`` within the recipe as follows:
::
``do_install_append`` within the recipe as follows::
rm ${D}${infodir}/dir
 
@@ -675,7 +672,7 @@ Errors and Warnings
task. Patch fuzz is a situation when the ``patch`` tool ignores some of the context
lines in order to apply the patch. Consider this example:
Patch to be applied: ::
Patch to be applied::
--- filename
+++ filename
@@ -687,7 +684,7 @@ Errors and Warnings
context line 5
context line 6
Original source code: ::
Original source code::
different context line 1
different context line 2
@@ -696,7 +693,7 @@ Errors and Warnings
different context line 5
different context line 6
Outcome (after applying patch with fuzz): ::
Outcome (after applying patch with fuzz)::
different context line 1
different context line 2
@@ -716,14 +713,14 @@ Errors and Warnings
*How to eliminate patch fuzz warnings*
Use the ``devtool`` command as explained by the warning. First, unpack the
source into devtool workspace: ::
source into devtool workspace::
devtool modify <recipe>
This will apply all of the patches, and create new commits out of them in
the workspace - with the patch context updated.
Then, replace the patches in the recipe layer: ::
Then, replace the patches in the recipe layer::
devtool finish --force-patch-refresh <recipe> <layer_path>

View File

@@ -153,8 +153,7 @@ When you run this script, your Yocto Project environment is set up, a
:term:`Build Directory` is created, your working
directory becomes the Build Directory, and you are presented with some
simple suggestions as to what to do next, including a list of some
possible targets to build. Here is an example:
::
possible targets to build. Here is an example::
$ source oe-init-build-env
@@ -185,8 +184,7 @@ creates the ``build/`` directory in your current working directory. If
you provide a Build Directory argument when you ``source`` the script,
you direct the OpenEmbedded build system to create a Build Directory of
your choice. For example, the following command creates a Build
Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`:
::
Directory named ``mybuilds/`` that is outside of the :term:`Source Directory`::
$ source oe-init-build-env ~/mybuilds
@@ -269,8 +267,7 @@ and to ``meta/conf/`` when you are building from the OpenEmbedded-Core
environment. Because the script variable points to the source of the
``local.conf.sample`` file, this implies that you can configure your
build environment from any layer by setting the variable in the
top-level build environment setup script as follows:
::
top-level build environment setup script as follows::
TEMPLATECONF=your_layer/conf
@@ -309,8 +306,7 @@ Project development environment, and to ``meta/conf/`` when you are
building from the OpenEmbedded-Core environment. Because the script
variable points to the source of the ``bblayers.conf.sample`` file, this
implies that you can base your build from any layer by setting the
variable in the top-level build environment setup script as follows:
::
variable in the top-level build environment setup script as follows::
TEMPLATECONF=your_layer/conf
@@ -463,8 +459,7 @@ image again.
If you do accidentally delete files here, you will need to force them to
be re-created. In order to do that, you will need to know the target
that produced them. For example, these commands rebuild and re-create
the kernel files:
::
the kernel files::
$ bitbake -c clean virtual/kernel
$ bitbake virtual/kernel
@@ -535,8 +530,7 @@ recipe-specific :term:`WORKDIR` directories. Thus, the
This directory holds information that BitBake uses for accounting
purposes to track what tasks have run and when they have run. The
directory is sub-divided by architecture, package name, and version.
Following is an example:
::
Following is an example::
stamps/all-poky-linux/distcc-config/1.0-r0.do_build-2fdd....2do

View File

@@ -120,8 +120,7 @@ supported Ubuntu or Debian Linux distribution:
might experience QEMU build failures due to the package installing
its own custom ``/usr/include/linux/soundcard.h`` on the Debian
system. If you run into this situation, either of the following
solutions exist:
::
solutions exist::
$ sudo apt-get build-dep qemu
$ sudo apt-get remove oss4-dev
@@ -132,14 +131,12 @@ supported Ubuntu or Debian Linux distribution:
$ sudo pip3 install GitPython pylint==1.9.5
- *Essentials:* Packages needed to build an image on a headless system:
::
- *Essentials:* Packages needed to build an image on a headless system::
$ sudo apt-get install &UBUNTU_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
Yocto Project documentation manuals:
::
Yocto Project documentation manuals::
$ sudo apt-get install make python3-pip
&PIP3_HOST_PACKAGES_DOC;
@@ -157,14 +154,12 @@ The following list shows the required packages by function given a
supported Fedora Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
system:
::
system::
$ sudo dnf install &FEDORA_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
Yocto Project documentation manuals:
::
Yocto Project documentation manuals::
$ sudo dnf install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -176,14 +171,12 @@ The following list shows the required packages by function given a
supported openSUSE Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
system:
::
system::
$ sudo zypper install &OPENSUSE_HOST_PACKAGES_ESSENTIAL;
- *Documentation:* Packages needed if you are going to build out the
Yocto Project documentation manuals:
::
Yocto Project documentation manuals::
$ sudo zypper install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -196,8 +189,7 @@ The following list shows the required packages by function given a
supported CentOS-7 Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
system:
::
system::
$ sudo yum install &CENTOS7_HOST_PACKAGES_ESSENTIAL;
@@ -212,8 +204,7 @@ supported CentOS-7 Linux distribution:
``epel-release``.
- *Documentation:* Packages needed if you are going to build out the
Yocto Project documentation manuals:
::
Yocto Project documentation manuals::
$ sudo yum install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -225,8 +216,7 @@ The following list shows the required packages by function given a
supported CentOS-8 Linux distribution:
- *Essentials:* Packages needed to build an image for a headless
system:
::
system::
$ sudo dnf install &CENTOS8_HOST_PACKAGES_ESSENTIAL;
@@ -244,8 +234,7 @@ supported CentOS-8 Linux distribution:
``epel-release``.
- *Documentation:* Packages needed if you are going to build out the
Yocto Project documentation manuals:
::
Yocto Project documentation manuals::
$ sudo dnf install make python3-pip which
&PIP3_HOST_PACKAGES_DOC;
@@ -287,8 +276,7 @@ The ``install-buildtools`` script is the easiest of the three methods by
which you can get these tools. It downloads a pre-built buildtools
installer and automatically installs the tools for you:
1. Execute the ``install-buildtools`` script. Here is an example:
::
1. Execute the ``install-buildtools`` script. Here is an example::
$ cd poky
$ scripts/install-buildtools --without-extended-buildtools \
@@ -302,22 +290,19 @@ installer and automatically installs the tools for you:
installation is functional.
To avoid the need of ``sudo`` privileges, the ``install-buildtools``
script will by default tell the installer to install in:
::
script will by default tell the installer to install in::
/path/to/poky/buildtools
If your host development system needs the additional tools provided
in the ``buildtools-extended`` tarball, you can instead execute the
``install-buildtools`` script with the default parameters:
::
``install-buildtools`` script with the default parameters::
$ cd poky
$ scripts/install-buildtools
2. Source the tools environment setup script by using a command like the
following:
::
following::
$ source /path/to/poky/buildtools/environment-setup-x86_64-pokysdk-linux
@@ -342,13 +327,11 @@ steps:
1. Locate and download the ``*.sh`` at &YOCTO_RELEASE_DL_URL;/buildtools/
2. Execute the installation script. Here is an example for the
traditional installer:
::
traditional installer::
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
Here is an example for the extended installer:
::
Here is an example for the extended installer::
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
@@ -357,8 +340,7 @@ steps:
``/home/your-username/buildtools``
3. Source the tools environment setup script by using a command like the
following:
::
following::
$ source /home/your_username/buildtools/environment-setup-i586-poky-linux
@@ -390,13 +372,11 @@ installer:
your build environment with the setup script
(:ref:`structure-core-script`).
2. Run the BitBake command to build the tarball:
::
2. Run the BitBake command to build the tarball::
$ bitbake buildtools-tarball
or run the BitBake command to build the extended tarball:
::
or run the BitBake command to build the extended tarball::
$ bitbake buildtools-extended-tarball
@@ -415,13 +395,11 @@ installer:
4. On the machine that does not meet the requirements, run the ``.sh``
file to install the tools. Here is an example for the traditional
installer:
::
installer::
$ sh ~/Downloads/x86_64-buildtools-nativesdk-standalone-&DISTRO;.sh
Here is an example for the extended installer:
::
Here is an example for the extended installer::
$ sh ~/Downloads/x86_64-buildtools-extended-nativesdk-standalone-&DISTRO;.sh
@@ -430,8 +408,7 @@ installer:
``/home/your_username/buildtools``
5. Source the tools environment setup script by using a command like the
following:
::
following::
$ source /home/your_username/buildtools/environment-setup-x86_64-poky-linux

View File

@@ -93,8 +93,7 @@ output from ``${DEPLOYDIR}`` to ``${DEPLOY_DIR_IMAGE}``.
The ``do_deploy`` task is not added as a task by default and
consequently needs to be added manually. If you want the task to run
after :ref:`ref-tasks-compile`, you can add it by doing
the following:
::
the following::
addtask deploy after do_compile
@@ -103,8 +102,7 @@ Adding ``do_deploy`` after other tasks works the same way.
.. note::
You do not need to add ``before do_build`` to the ``addtask`` command
(though it is harmless), because the ``base`` class contains the following:
::
(though it is harmless), because the ``base`` class contains the following::
do_build[recrdeptask] += "do_deploy"
@@ -302,13 +300,11 @@ Patch files, by default, are ``*.patch`` and ``*.diff`` files created
and kept in a subdirectory of the directory holding the recipe file. For
example, consider the
:yocto_git:`bluez5 </poky/tree/meta/recipes-connectivity/bluez5>`
recipe from the OE-Core layer (i.e. ``poky/meta``):
::
recipe from the OE-Core layer (i.e. ``poky/meta``)::
poky/meta/recipes-connectivity/bluez5
This recipe has two patch files located here:
::
This recipe has two patch files located here::
poky/meta/recipes-connectivity/bluez5/bluez5
@@ -323,8 +319,7 @@ and patch files needed to build the package.
As mentioned earlier, the build system treats files whose file types are
``.patch`` and ``.diff`` as patch files. However, you can use the
"apply=yes" parameter with the ``SRC_URI`` statement to indicate any
file as a patch file:
::
file as a patch file::
SRC_URI = " \
git://path_to_repo/some_package \
@@ -334,8 +329,7 @@ file as a patch file:
Conversely, if you have a directory full of patch files and you want to
exclude some so that the ``do_patch`` task does not apply them during
the patch phase, you can use the "apply=no" parameter with the
``SRC_URI`` statement:
::
``SRC_URI`` statement::
SRC_URI = " \
git://path_to_repo/some_package \
@@ -455,8 +449,7 @@ of the recipe exists upstream and a status of not updated, updated, or
unknown.
To check the upstream version and status of a recipe, use the following
devtool commands:
::
devtool commands::
$ devtool latest-version
$ devtool check-upgrade-status
@@ -467,8 +460,7 @@ chapter for more information on
section for information on checking the upgrade status of a recipe.
To build the ``checkpkg`` task, use the ``bitbake`` command with the
"-c" option and task name:
::
"-c" option and task name::
$ bitbake core-image-minimal -c checkpkg
@@ -494,8 +486,7 @@ Removes all output files for a target from the
:ref:`ref-tasks-install`, and
:ref:`ref-tasks-package`).
You can run this task using BitBake as follows:
::
You can run this task using BitBake as follows::
$ bitbake -c clean recipe
@@ -519,8 +510,7 @@ downloaded source files for a target (i.e. the contents of
identical to the :ref:`ref-tasks-cleansstate` task
with the added removal of downloaded source files.
You can run this task using BitBake as follows:
::
You can run this task using BitBake as follows::
$ bitbake -c cleanall recipe
@@ -540,8 +530,7 @@ target. Essentially, the ``do_cleansstate`` task is identical to the
shared state (:ref:`sstate <overview-manual/concepts:shared state cache>`)
cache.
You can run this task using BitBake as follows:
::
You can run this task using BitBake as follows::
$ bitbake -c cleansstate recipe
@@ -553,8 +542,7 @@ scratch is guaranteed.
The ``do_cleansstate`` task cannot remove sstate from a remote sstate
mirror. If you need to build a target from scratch using remote mirrors, use
the "-f" option as follows:
::
the "-f" option as follows::
$ bitbake -f -c do_cleansstate target
@@ -687,8 +675,7 @@ changes made by the user with other methods (i.e. using
(:ref:`ref-tasks-kernel_menuconfig`). Once the
file of differences is created, it can be used to create a config
fragment that only contains the differences. You can invoke this task
from the command line as follows:
::
from the command line as follows::
$ bitbake linux-yocto -c diffconfig
@@ -718,8 +705,7 @@ Validates the configuration produced by the
configuration does not appear in the final ``.config`` file or when you
override a policy configuration in a hardware configuration fragment.
You can run this task explicitly and view the output by using the
following command:
::
following command::
$ bitbake linux-yocto -c kernel_configcheck -f
@@ -750,8 +736,7 @@ tool, which you then use to modify the kernel configuration.
.. note::
You can also invoke this tool from the command line as follows:
::
You can also invoke this tool from the command line as follows::
$ bitbake linux-yocto -c menuconfig
@@ -793,8 +778,7 @@ instead of the default defconfig. The saved defconfig contains the
differences between the default defconfig and the changes made by the
user using other methods (i.e. the
:ref:`ref-tasks-kernel_menuconfig` task. You
can invoke the task using the following command:
::
can invoke the task using the following command::
$ bitbake linux-yocto -c savedefconfig

View File

@@ -26,8 +26,7 @@ universal, the list includes them just in case:
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:
::
append file named as follows::
busybox_1.21.%.bbappend

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,12 @@
Current Release Manuals
=========================
*******************************
3.3 'hardknott' Release Series
*******************************
- :yocto_docs:`3.3 Documentation </3.3>`
*******************************
3.2 'gatesgarth' Release Series
*******************************
@@ -24,6 +30,7 @@
- :yocto_docs:`3.1.4 Documentation </3.1.4>`
- :yocto_docs:`3.1.5 Documentation </3.1.5>`
- :yocto_docs:`3.1.6 Documentation </3.1.6>`
- :yocto_docs:`3.1.7 Documentation </3.1.7>`
==========================
Previous Release Manuals

View File

@@ -149,8 +149,7 @@ from the :term:`DISTRO` variable.
The
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
class defines the default value of the ``SDK_TITLE`` variable as
follows:
::
follows::
SDK_TITLE ??= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
@@ -162,8 +161,7 @@ an example, assume you have your own layer for your distribution named
does the default "poky" distribution. If so, you could update the
``SDK_TITLE`` variable in the
``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
form:
::
form::
SDK_TITLE = "your_title"
@@ -194,8 +192,7 @@ the installed SDKs to update the installed SDKs by using the
3. Build the extensible SDK normally (i.e., use the
``bitbake -c populate_sdk_ext`` imagename command).
4. Publish the SDK using the following command:
::
4. Publish the SDK using the following command::
$ oe-publish-sdk some_path/sdk-installer.sh path_to_shared_http_directory
@@ -218,8 +215,7 @@ installation directory for the SDK is based on the
:term:`SDKEXTPATH` variables from
within the
:ref:`populate_sdk_base <ref-classes-populate-sdk-*>`
class as follows:
::
class as follows::
SDKEXTPATH ??= "~/${@d.getVar('DISTRO')}_sdk"
@@ -236,8 +232,7 @@ assume you have your own layer for your distribution named
does the default "poky" distribution. If so, you could update the
``SDKEXTPATH`` variable in the
``~/meta-mydistro/conf/distro/mydistro.conf`` file using the following
form:
::
form::
SDKEXTPATH = "some_path_for_your_installed_sdk"
@@ -272,8 +267,7 @@ source, you need to do a number of things:
3. Set the appropriate configuration so that the produced SDK knows how
to find the configuration. The variable you need to set is
:term:`SSTATE_MIRRORS`:
::
:term:`SSTATE_MIRRORS`::
SSTATE_MIRRORS = "file://.* http://example.com/some_path/sstate-cache/PATH"
@@ -287,8 +281,7 @@ source, you need to do a number of things:
side, and its contents will not interfere with the build), then
you can set the variable in your ``local.conf`` or custom distro
configuration file. You can then "whitelist" the variable through
to the SDK by adding the following:
::
to the SDK by adding the following::
SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS"
@@ -313,8 +306,7 @@ everything needed to reconstruct the image for which the SDK was built.
This bundling can lead to an SDK installer file that is a Gigabyte or
more in size. If the size of this file causes a problem, you can build
an SDK that has just enough in it to install and provide access to the
``devtool command`` by setting the following in your configuration:
::
``devtool command`` by setting the following in your configuration::
SDK_EXT_TYPE = "minimal"
@@ -336,8 +328,7 @@ information enables the ``devtool search`` command to return useful
results.
To facilitate this wider range of information, you would need to set the
following:
::
following::
SDK_INCLUDE_PKGDATA = "1"

View File

@@ -25,8 +25,7 @@ Follow these steps to locate and hand-install the toolchain:
download the installer appropriate for your build host, target
hardware, and image type.
The installer files (``*.sh``) follow this naming convention:
::
The installer files (``*.sh``) follow this naming convention::
poky-glibc-host_system-core-image-type-arch-toolchain[-ext]-release.sh
@@ -55,15 +54,13 @@ Follow these steps to locate and hand-install the toolchain:
For example, if your build host is a 64-bit x86 system and you need
an extended SDK for a 64-bit core2 target, go into the ``x86_64``
folder and download the following installer:
::
folder and download the following installer::
poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
4. *Run the Installer:* Be sure you have execution privileges and run
the installer. Following is an example from the ``Downloads``
directory:
::
directory::
$ ~/Downloads/poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
@@ -132,8 +129,7 @@ build the SDK installer. Follow these steps:
using to build the installer. If
SDKMACHINE
is not set appropriately, the build fails and provides an error
message similar to the following:
::
message similar to the following::
The extensible SDK can currently only be built for the same architecture as the machine being built on - SDK_ARCH is
set to i686 (likely via setting SDKMACHINE) which is different from the architecture of the build machine (x86_64).
@@ -144,8 +140,7 @@ build the SDK installer. Follow these steps:
SDK and populate the SDK image, use the following command form. Be
sure to replace image with an image (e.g. "core-image-sato"): $
bitbake image -c populate_sdk You can do the same for the extensible
SDK using this command form:
::
SDK using this command form::
$ bitbake image -c populate_sdk_ext
@@ -170,8 +165,7 @@ build the SDK installer. Follow these steps:
libc-staticdev"
7. *Run the Installer:* You can now run the SDK installer from
``tmp/deploy/sdk`` in the Build Directory. Following is an example:
::
``tmp/deploy/sdk`` in the Build Directory. Following is an example::
$ cd poky/build/tmp/deploy/sdk
$ ./poky-glibc-x86_64-core-image-sato-core2-64-toolchain-ext-&DISTRO;.sh
@@ -211,8 +205,7 @@ Follow these steps to extract the root filesystem:
which you can use with QEMU directly.
The pre-built root filesystem image files follow these naming
conventions:
::
conventions::
core-image-profile-arch.tar.bz2
@@ -233,8 +226,7 @@ Follow these steps to extract the root filesystem:
For example, if you plan on using a BeagleBone device as your target
hardware and your image is a ``core-image-sato-sdk`` image, you can
download the following file:
::
download the following file::
core-image-sato-sdk-beaglebone-yocto.tar.bz2
@@ -246,8 +238,7 @@ Follow these steps to extract the root filesystem:
installed the toolchain (e.g. ``poky_sdk``).
Following is an example based on the toolchain installed in the
":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section:
::
":ref:`sdk-manual/appendix-obtain:locating pre-built sdk installers`" section::
$ source poky_sdk/environment-setup-core2-64-poky-linux
@@ -258,8 +249,7 @@ Follow these steps to extract the root filesystem:
from a previously built root filesystem image that was downloaded
from the :yocto_dl:`Index of Releases </releases/yocto/yocto-&DISTRO;/machines/>`.
This command extracts the root filesystem into the ``core2-64-sato``
directory:
::
directory::
$ runqemu-extract-sdk ~/Downloads/core-image-sato-sdk-beaglebone-yocto.tar.bz2 ~/beaglebone-sato

View File

@@ -59,8 +59,7 @@ The names of the tarball installer scripts are such that a string
representing the host system appears first in the filename and then is
immediately followed by a string representing the target architecture.
An extensible SDK has the string "-ext" as part of the name. Following
is the general form:
::
is the general form::
poky-glibc-host_system-image_type-arch-toolchain-ext-release_version.sh
@@ -83,8 +82,7 @@ is the general form:
For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture based off
the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot:
::
the SDK for ``core-image-sato`` and using the current &DISTRO; snapshot::
poky-glibc-x86_64-core-image-sato-i586-toolchain-ext-&DISTRO;.sh
@@ -150,8 +148,7 @@ begin with the string "``environment-setup``" and include as part of
their name the tuned target architecture. As an example, the following
commands set the working directory to where the SDK was installed and
then source the environment setup script. In this example, the setup
script is for an IA-based target machine using i586 tuning:
::
script is for an IA-based target machine using i586 tuning::
$ cd /home/scottrif/poky_sdk
$ source environment-setup-core2-64-poky-linux
@@ -258,8 +255,7 @@ command:
to be extracted. In this situation, the source code is extracted
to the default workspace - you do not want the files in some
specific location outside of the workspace. Thus, everything you
need will be located in the workspace:
::
need will be located in the workspace::
$ devtool add recipe fetchuri
@@ -283,8 +279,7 @@ command:
Furthermore, the first positional argument srctree in this case
identifies where the ``devtool add`` command will locate the
extracted code outside of the workspace. You need to specify an
empty directory:
::
empty directory::
$ devtool add recipe srctree fetchuri
@@ -300,8 +295,7 @@ command:
``devtool`` workspace.
The following command provides a new recipe name and identifies
the existing source tree location:
::
the existing source tree location::
$ devtool add recipe srctree
@@ -317,8 +311,7 @@ command:
2. *Edit the Recipe*: You can use ``devtool edit-recipe`` to open up the
editor as defined by the ``$EDITOR`` environment variable and modify
the file:
::
the file::
$ devtool edit-recipe recipe
@@ -338,8 +331,7 @@ command:
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
command:
::
command::
$ devtool build-image image
@@ -435,8 +427,7 @@ command:
outside the workspace (i.e. ``meta-``\ layername).
The following command identifies the recipe and, by default,
extracts the source files:
::
extracts the source files::
$ devtool modify recipe
@@ -474,8 +465,7 @@ command:
The following command tells ``devtool`` the recipe with which to
work and, in this case, identifies a local area for the extracted
source files that exists outside of the default ``devtool``
workspace:
::
workspace::
$ devtool modify recipe srctree
@@ -508,8 +498,7 @@ command:
The following command tells ``devtool`` the recipe with which to
work, uses the "-n" option to indicate source does not need to be
extracted, and uses srctree to point to the previously extracted
source files:
::
source files::
$ devtool modify -n recipe srctree
@@ -532,8 +521,7 @@ command:
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
hardware, use the following ``devtool`` command:
::
hardware, use the following ``devtool`` command::
$ devtool build recipe
@@ -556,8 +544,7 @@ command:
development machine.
You can deploy your build output to that target hardware by using the
``devtool deploy-target`` command:
::
``devtool deploy-target`` command::
$ devtool deploy-target recipe target
@@ -651,8 +638,7 @@ The following diagram shows the common development flow used with the
A common situation is where third-party software has undergone a
revision so that it has been upgraded. The recipe you have access to
is likely in your own layer. Thus, you need to upgrade the recipe to
use the newer version of the software:
::
use the newer version of the software::
$ devtool upgrade -V version recipe
@@ -703,16 +689,14 @@ The following diagram shows the common development flow used with the
depends on what you are going to do with the new code.
If you need to eventually move the build output to the target
hardware, use the following ``devtool`` command:
::
hardware, use the following ``devtool`` command::
$ devtool build recipe
On the other hand, if you want an image to contain the recipe's
packages from the workspace for immediate deployment onto a device
(e.g. for testing purposes), you can use the ``devtool build-image``
command:
::
command::
$ devtool build-image image
@@ -828,8 +812,7 @@ name and version, just the name, or just the version as part of the
command line.
Sometimes the name or version determined from the source tree might be
incorrect. For such a case, you must reset the recipe:
::
incorrect. For such a case, you must reset the recipe::
$ devtool reset -n recipename
@@ -853,8 +836,7 @@ the ``DEPENDS`` variable in the original recipe to include the new
recipe.
If you need to add runtime dependencies, you can do so by adding the
following to your recipe:
::
following to your recipe::
RDEPENDS_${PN} += "dependency1 dependency2 ..."
@@ -938,8 +920,7 @@ mind:
the command line, add the variable setting to
:term:`EXTRA_OEMAKE` or
:term:`PACKAGECONFIG_CONFARGS`
within the recipe. Here is an example using ``EXTRA_OEMAKE``:
::
within the recipe. Here is an example using ``EXTRA_OEMAKE``::
EXTRA_OEMAKE += "'CC=${CC}' 'CXX=${CXX}'"
@@ -993,8 +974,7 @@ You can use the ``devtool add`` command two different ways to add
Node.js modules: 1) Through ``npm`` and, 2) from a repository or local
source.
Use the following form to add Node.js modules through ``npm``:
::
Use the following form to add Node.js modules through ``npm``::
$ devtool add "npm://registry.npmjs.org;name=forever;version=0.15.1"
@@ -1018,8 +998,7 @@ these behaviors ensure the reproducibility and integrity of the build.
As mentioned earlier, you can also add Node.js modules directly from a
repository or local source tree. To add modules this way, use
``devtool add`` in the following form:
::
``devtool add`` in the following form::
$ devtool add https://github.com/diversario/node-ssdp
@@ -1196,15 +1175,13 @@ need to restore the original files that existed prior to running the
``devtool deploy-target`` command. Because the ``devtool deploy-target``
command backs up any files it overwrites, you can use the
``devtool undeploy-target`` command to restore those files and remove
any other files the recipe deployed. Consider the following example:
::
any other files the recipe deployed. Consider the following example::
$ devtool undeploy-target lighttpd root@192.168.7.2
If you have deployed
multiple applications, you can remove them all using the "-a" option
thus restoring the target device to its original state:
::
thus restoring the target device to its original state::
$ devtool undeploy-target -a root@192.168.7.2
@@ -1235,22 +1212,19 @@ populated on-demand. Sometimes you must explicitly install extra items
into the SDK. If you need these extra items, you can first search for
the items using the ``devtool search`` command. For example, suppose you
need to link to libGL but you are not sure which recipe provides libGL.
You can use the following command to find out:
::
You can use the following command to find out::
$ devtool search libGL mesa
A free implementation of the OpenGL API Once you know the recipe
(i.e. ``mesa`` in this example), you can install it:
::
(i.e. ``mesa`` in this example), you can install it::
$ devtool sdk-install mesa
By default, the ``devtool sdk-install`` command assumes
the item is available in pre-built form from your SDK provider. If the
item is not available and it is acceptable to build the item from
source, you can add the "-s" option as follows:
::
source, you can add the "-s" option as follows::
$ devtool sdk-install -s mesa
@@ -1266,8 +1240,7 @@ If you are working with an installed extensible SDK that gets
occasionally updated (e.g. a third-party SDK), then you will need to
manually "pull down" the updates into the installed SDK.
To update your installed SDK, use ``devtool`` as follows:
::
To update your installed SDK, use ``devtool`` as follows::
$ devtool sdk-update

View File

@@ -77,8 +77,7 @@ immediately followed by a string representing the target architecture.
For example, the following SDK installer is for a 64-bit
development host system and a i586-tuned target architecture based off
the SDK for ``core-image-sato`` and using the current DISTRO snapshot:
::
the SDK for ``core-image-sato`` and using the current DISTRO snapshot::
poky-glibc-x86_64-core-image-sato-i586-toolchain-DISTRO.sh
@@ -141,8 +140,7 @@ begin with the string "``environment-setup``" and include as part of
their name the tuned target architecture. As an example, the following
commands set the working directory to where the SDK was installed and
then source the environment setup script. In this example, the setup
script is for an IA-based target machine using i586 tuning:
::
script is for an IA-based target machine using i586 tuning::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux

View File

@@ -45,16 +45,14 @@ project:
respectively.
Use the following command to create an empty README file, which is
required by GNU Coding Standards:
::
required by GNU Coding Standards::
$ touch README
Create the remaining
three files as follows:
- ``hello.c``:
::
- ``hello.c``::
#include <stdio.h>
@@ -63,8 +61,7 @@ project:
printf("Hello World!\n");
}
- ``configure.ac``:
::
- ``configure.ac``::
AC_INIT(hello,0.1)
AM_INIT_AUTOMAKE([foreign])
@@ -72,8 +69,7 @@ project:
AC_CONFIG_FILES(Makefile)
AC_OUTPUT
- ``Makefile.am``:
::
- ``Makefile.am``::
bin_PROGRAMS = hello
hello_SOURCES = hello.c
@@ -87,8 +83,7 @@ project:
which is followed by the string "poky-linux". For this example, the
command sources a script from the default SDK installation directory
that uses the 32-bit Intel x86 Architecture and the &DISTRO; Yocto
Project release:
::
Project release::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
@@ -113,8 +108,7 @@ project:
the cross-compiler. The
:term:`CONFIGURE_FLAGS`
environment variable provides the minimal arguments for GNU
configure:
::
configure::
$ ./configure ${CONFIGURE_FLAGS}
@@ -127,14 +121,12 @@ project:
``armv5te-poky-linux-gnueabi``. You will notice that the name of the
script is ``environment-setup-armv5te-poky-linux-gnueabi``. Thus, the
following command works to update your project and rebuild it using
the appropriate cross-toolchain tools:
::
the appropriate cross-toolchain tools::
$ ./configure --host=armv5te-poky-linux-gnueabi --with-libtool-sysroot=sysroot_dir
5. *Make and Install the Project:* These two commands generate and
install the project into the destination directory:
::
install the project into the destination directory::
$ make
$ make install DESTDIR=./tmp
@@ -157,8 +149,7 @@ project:
6. *Execute Your Project:* To execute the project, you would need to run
it on your target hardware. If your target hardware happens to be
your build host, you could run the project as follows:
::
your build host, you could run the project as follows::
$ ./tmp/usr/local/bin/hello
@@ -203,8 +194,7 @@ regarding variable behavior:
.. note::
Regardless of how you set your variables, if you use the "-e" option
with ``make``, the variables from the SDK setup script take precedence:
::
with ``make``, the variables from the SDK setup script take precedence::
$ make -e target
@@ -226,8 +216,7 @@ Running the
SDK setup script for a 64-bit build host and an i586-tuned target
architecture for a ``core-image-sato`` image using the current &DISTRO;
Yocto Project release and then echoing that variable shows the value
established through the script:
::
established through the script::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
$ echo ${CC}
@@ -252,8 +241,7 @@ example:
Create the three files as follows:
- ``main.c``:
::
- ``main.c``::
#include "module.h"
void sample_func();
@@ -263,14 +251,12 @@ example:
return 0;
}
- ``module.h``:
::
- ``module.h``::
#include <stdio.h>
void sample_func();
- ``module.c``:
::
- ``module.c``::
#include "module.h"
void sample_func()
@@ -288,8 +274,7 @@ example:
which is followed by the string "poky-linux". For this example, the
command sources a script from the default SDK installation directory
that uses the 32-bit Intel x86 Architecture and the &DISTRO_NAME; Yocto
Project release:
::
Project release::
$ source /opt/poky/&DISTRO;/environment-setup-i586-poky-linux
@@ -297,8 +282,7 @@ example:
two lines that can be used to set the ``CC`` variable. One line is
identical to the value that is set when you run the SDK environment
setup script, and the other line sets ``CC`` to "gcc", the default
GNU compiler on the build host:
::
GNU compiler on the build host::
# CC=i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux
# CC="gcc"
@@ -315,8 +299,7 @@ example:
4. *Make the Project:* Use the ``make`` command to create the binary
output file. Because variables are commented out in the Makefile, the
value used for ``CC`` is the value set when the SDK environment setup
file was run:
::
file was run::
$ make
i586-poky-linux-gcc -m32 -march=i586 --sysroot=/opt/poky/2.5/sysroots/i586-poky-linux -I . -c main.c
@@ -351,8 +334,7 @@ example:
variable as part of the command line. Go into the Makefile and
re-insert the comment character so that running ``make`` uses the
established SDK compiler. However, when you run ``make``, use a
command-line argument to set ``CC`` to "gcc":
::
command-line argument to set ``CC`` to "gcc"::
$ make clean
rm -rf *.o
@@ -376,8 +358,7 @@ example:
environment variable.
In this last case, edit Makefile again to use the "gcc" compiler but
then use the "-e" option on the ``make`` command line:
::
then use the "-e" option on the ``make`` command line::
$ make clean
rm -rf *.o
@@ -402,8 +383,7 @@ example:
Makefile.
5. *Execute Your Project:* To execute the project (i.e. ``target_bin``),
use the following command:
::
use the following command::
$ ./target_bin
Hello World!

View File

@@ -2,9 +2,10 @@
'use strict';
var all_versions = {
'dev': 'dev (3.3)',
'dev': 'dev (3.4)',
'3.3': '3.3',
'3.2.3': '3.2.3',
'3.1.6': '3.1.6',
'3.1.7': '3.1.7',
'3.0.4': '3.0.4',
'2.7.4': '2.7.4',
};

View File

@@ -1,7 +1,7 @@
DISTRO = "poky"
DISTRO_NAME = "Poky (Yocto Project Reference Distro)"
DISTRO_VERSION = "3.3"
DISTRO_CODENAME = "hardknott"
DISTRO_VERSION = "3.3+snapshot-${METADATA_REVISION}"
DISTRO_CODENAME = "master"
SDK_VENDOR = "-pokysdk"
SDK_VERSION = "${@d.getVar('DISTRO_VERSION').replace('snapshot-${METADATA_REVISION}', 'snapshot')}"
SDK_VERSION[vardepvalue] = "${SDK_VERSION}"

View File

@@ -9,4 +9,4 @@ BBFILE_COLLECTIONS += "selftest"
BBFILE_PATTERN_selftest = "^${LAYERDIR}/"
BBFILE_PRIORITY_selftest = "5"
LAYERSERIES_COMPAT_selftest = "hardknott"
LAYERSERIES_COMPAT_selftest = "honister"

View File

@@ -14,4 +14,4 @@ LAYERVERSION_skeleton = "1"
LAYERDEPENDS_skeleton = "core"
LAYERSERIES_COMPAT_skeleton = "hardknott"
LAYERSERIES_COMPAT_skeleton = "honister"

View File

@@ -6,7 +6,7 @@ SUMMARY = "An example of a multilib image"
#
# First include a base image to base things off
require recipes-sato/images/core-image-sato.bb
require recipes-graphics/images/core-image-weston.bb
# Now add the multilib packages we want to install
IMAGE_INSTALL += "lib32-bash"

View File

@@ -118,7 +118,7 @@ python () {
d.appendVarFlag('do_deploy_archives', 'depends', ' %s:do_ar_patched' % pn)
elif ar_src == "configured":
# We can't use "addtask do_ar_configured after do_configure" since it
# will cause the deptask of do_populate_sysroot to run not matter what
# will cause the deptask of do_populate_sysroot to run no matter what
# archives we need, so we add the depends here.
# There is a corner case with "gcc-source-${PV}" recipes, they don't have
@@ -163,7 +163,7 @@ python () {
d.appendVarFlag('do_package_write_rpm', 'depends', ' %s:do_ar_configured' % pn)
}
# Take all the sources for a recipe and puts them in WORKDIR/archiver-work/.
# Take all the sources for a recipe and put them in WORKDIR/archiver-work/.
# Files in SRC_URI are copied directly, anything that's a directory
# (e.g. git repositories) is "unpacked" and then put into a tarball.
python do_ar_original() {
@@ -463,7 +463,7 @@ python do_unpack_and_patch() {
ar_sysroot_native = d.getVar('STAGING_DIR_NATIVE')
pn = d.getVar('PN')
# The kernel class functions require it to be on work-shared, so we dont change WORKDIR
# The kernel class functions require it to be on work-shared, so we don't change WORKDIR
if not is_work_shared(d):
# Change the WORKDIR to make do_unpack do_patch run in another dir.
d.setVar('WORKDIR', ar_workdir)
@@ -505,7 +505,7 @@ python do_unpack_and_patch() {
# of the output file ensures that we create it each time the recipe
# gets rebuilt, at least as long as a PR server is used. We also rely
# on that mechanism to catch changes in the file content, because the
# file content is not part of of the task signature either.
# file content is not part of the task signature either.
do_ar_recipe[vardepsexclude] += "BBINCLUDED"
python do_ar_recipe () {
"""

View File

@@ -104,7 +104,7 @@ def write_task_data(status, logfile, e, d):
f.write("Status: FAILED \n")
f.write("Ended: %0.2f \n" % e.time)
def write_host_data(logfile, e, d):
def write_host_data(logfile, e, d, type):
import subprocess, os, datetime
# minimum time allowed for each command to run, in seconds
time_threshold = 0.5
@@ -112,15 +112,22 @@ def write_host_data(logfile, e, d):
num_cmds = 0
# interval at which data will be logged
interval = int(d.getVar("BB_HEARTBEAT_EVENT", False))
# the commands to be run at each interval
cmds = d.getVar('BB_LOG_HOST_STAT_CMDS')
# if no commands are passed, issue a warning and return
if cmds is None:
d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
bb.warn("buildstats: Collecting host data failed. Set BB_LOG_HOST_STAT_CMDS=\"command1 ; command2 ; ... \" in conf/local.conf\n")
return
# find the total commands
msg = ""
if type == "interval":
cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_INTERVAL')
msg = "Host Stats: Collecting data at interval.\n"
if cmds is None:
d.setVar("BB_LOG_HOST_STAT_ON_INTERVAL", "0")
bb.warn("buildstats: Collecting host data at intervals failed. Set BB_LOG_HOST_STAT_CMDS_INTERVAL=\"command1 ; command2 ; ... \" in conf/local.conf\n")
return
if type == "failure":
cmds = d.getVar('BB_LOG_HOST_STAT_CMDS_FAILURE')
msg = "Host Stats: Collecting data on failure.\n"
msg += "Failed at task " + e.task + "\n"
if cmds is None:
d.setVar("BB_LOG_HOST_STAT_ON_FAILURE", "0")
bb.warn("buildstats: Collecting host data on failure failed. Set BB_LOG_HOST_STAT_CMDS_FAILURE=\"command1 ; command2 ; ... \" in conf/local.conf\n")
return
c_san = []
for cmd in cmds.split(";"):
if len(cmd) == 0:
@@ -147,6 +154,7 @@ def write_host_data(logfile, e, d):
os.environ['PATH'] = path + ":" + opath + ":" + ospath
with open(logfile, "a") as f:
f.write("Event Time: %f\nDate: %s\n" % (e.time, datetime.datetime.now()))
f.write("%s" % msg)
for c in c_san:
try:
output = subprocess.check_output(c.split(), stderr=subprocess.STDOUT, timeout=limit).decode('utf-8')
@@ -171,7 +179,7 @@ python run_buildstats () {
taskdir = os.path.join(bsdir, d.getVar('PF'))
if isinstance(e, bb.event.HeartbeatEvent) and bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_INTERVAL")):
bb.utils.mkdirhier(bsdir)
write_host_data(os.path.join(bsdir, "host_stats"), e, d)
write_host_data(os.path.join(bsdir, "host_stats"), e, d, "interval")
if isinstance(e, bb.event.BuildStarted):
########################################################################
@@ -247,7 +255,7 @@ python run_buildstats () {
with open(build_status, "a") as f:
f.write(d.expand("Failed at: ${PF} at task: %s \n" % e.task))
if bb.utils.to_boolean(d.getVar("BB_LOG_HOST_STAT_ON_FAILURE")):
write_host_data(build_status, e, d)
write_host_data(os.path.join(bsdir, "host_stats"), e, d, "failure")
}
addhandler run_buildstats

View File

@@ -149,16 +149,14 @@ addtask generate_toolchain_file after do_patch before do_configure
CONFIGURE_FILES = "CMakeLists.txt"
do_configure[cleandirs] = "${@d.getVar('B') if d.getVar('S') != d.getVar('B') else ''}"
cmake_do_configure() {
if [ "${OECMAKE_BUILDPATH}" ]; then
bbnote "cmake.bbclass no longer uses OECMAKE_BUILDPATH. The default behaviour is now out-of-tree builds with B=WORKDIR/build."
fi
if [ "${S}" != "${B}" ]; then
rm -rf ${B}
mkdir -p ${B}
cd ${B}
else
if [ "${S}" = "${B}" ]; then
find ${B} -name CMakeFiles -or -name Makefile -or -name cmake_install.cmake -or -name CMakeCache.txt -delete
fi

View File

@@ -16,3 +16,12 @@ def is_target(d):
PERLLIBDIRS = "${libdir}/perl5"
PERLLIBDIRS_class-native = "${libdir}/perl5"
def cpan_upstream_check_pattern(d):
for x in (d.getVar('SRC_URI') or '').split(' '):
if x.startswith("https://cpan.metacpan.org"):
_pattern = x.split('/')[-1].replace(d.getVar('PV'), '(?P<pver>\d+.\d+)')
return _pattern
return ''
UPSTREAM_CHECK_REGEX ?= "${@cpan_upstream_check_pattern(d)}"

View File

@@ -36,7 +36,7 @@ python () {
return
tos = d.getVar("TARGET_OS")
whitelist = []
whitelist = ["mingw32"]
extralibcs = [""]
if "musl" in d.getVar("BASECANADIANEXTRAOS"):
extralibcs.append("musl")

View File

@@ -217,11 +217,10 @@ def srctree_hash_files(d, srcdir=None):
env['GIT_INDEX_FILE'] = tmp_index.name
subprocess.check_output(['git', 'add', '-A', '.'], cwd=s_dir, env=env)
git_sha1 = subprocess.check_output(['git', 'write-tree'], cwd=s_dir, env=env).decode("utf-8")
submodule_helper = subprocess.check_output(['git', 'submodule', 'status'], cwd=s_dir, env=env).decode("utf-8")
submodule_helper = subprocess.check_output(['git', 'submodule--helper', 'list'], cwd=s_dir, env=env).decode("utf-8")
for line in submodule_helper.splitlines():
module_relpath = line.split()[1]
if not module_relpath.split('/')[0] == '..':
module_dir = os.path.join(s_dir, module_relpath)
module_dir = os.path.join(s_dir, line.rsplit(maxsplit=1)[1])
if os.path.isdir(module_dir):
proc = subprocess.Popen(['git', 'add', '-A', '.'], cwd=module_dir, env=env, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
proc.communicate()
proc = subprocess.Popen(['git', 'write-tree'], cwd=module_dir, env=env, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)

View File

@@ -176,7 +176,7 @@ def package_qa_check_useless_rpaths(file, name, d, elf, messages):
if rpath_eq(rpath, libdir) or rpath_eq(rpath, base_libdir):
# The dynamic linker searches both these places anyway. There is no point in
# looking there again.
package_qa_add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d), rpath))
package_qa_add_message(messages, "useless-rpaths", "%s: %s contains probably-redundant RPATH %s" % (name, package_qa_clean_path(file, d, name), rpath))
QAPATHTEST[dev-so] = "package_qa_check_dev"
def package_qa_check_dev(path, name, d, elf, messages):
@@ -185,8 +185,8 @@ def package_qa_check_dev(path, name, d, elf, messages):
"""
if not name.endswith("-dev") and not name.endswith("-dbg") and not name.endswith("-ptest") and not name.startswith("nativesdk-") and path.endswith(".so") and os.path.islink(path):
package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package contains symlink .so: %s path '%s'" % \
(name, package_qa_clean_path(path,d)))
package_qa_add_message(messages, "dev-so", "non -dev/-dbg/nativesdk- package %s contains symlink .so '%s'" % \
(name, package_qa_clean_path(path, d, name)))
QAPATHTEST[dev-elf] = "package_qa_check_dev_elf"
def package_qa_check_dev_elf(path, name, d, elf, messages):
@@ -196,8 +196,8 @@ def package_qa_check_dev_elf(path, name, d, elf, messages):
install link-time .so files that are linker scripts.
"""
if name.endswith("-dev") and path.endswith(".so") and not os.path.islink(path) and elf:
package_qa_add_message(messages, "dev-elf", "-dev package contains non-symlink .so: %s path '%s'" % \
(name, package_qa_clean_path(path,d)))
package_qa_add_message(messages, "dev-elf", "-dev package %s contains non-symlink .so '%s'" % \
(name, package_qa_clean_path(path, d, name)))
QAPATHTEST[staticdev] = "package_qa_check_staticdev"
def package_qa_check_staticdev(path, name, d, elf, messages):
@@ -210,7 +210,7 @@ def package_qa_check_staticdev(path, name, d, elf, messages):
if not name.endswith("-pic") and not name.endswith("-staticdev") and not name.endswith("-ptest") and path.endswith(".a") and not path.endswith("_nonshared.a") and not '/usr/lib/debug-static/' in path and not '/.debug-static/' in path:
package_qa_add_message(messages, "staticdev", "non -staticdev package contains static .a library: %s path '%s'" % \
(name, package_qa_clean_path(path,d)))
(name, package_qa_clean_path(path,d, name)))
QAPATHTEST[mime] = "package_qa_check_mime"
def package_qa_check_mime(path, name, d, elf, messages):

View File

@@ -378,7 +378,7 @@ do_kernel_checkout() {
# checkout and clobber any unimportant files
git checkout -f ${machine_branch}
}
do_kernel_checkout[dirs] = "${S}"
do_kernel_checkout[dirs] = "${S} ${WORKDIR}"
addtask kernel_checkout before do_kernel_metadata after do_symlink_kernsrc
addtask kernel_metadata after do_validate_branches do_unpack before do_patch

View File

@@ -1,3 +1,5 @@
ROOTFS_LICENSE_DIR = "${IMAGE_ROOTFS}/usr/share/common-licenses"
python write_package_manifest() {
# Get list of installed packages
license_image_dir = d.expand('${LICENSE_DIRECTORY}/${IMAGE_NAME}')
@@ -104,8 +106,7 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
if rootfs and copy_lic_manifest == "1":
rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
'usr', 'share', 'common-licenses')
rootfs_license_dir = d.getVar('ROOTFS_LICENSE_DIR')
bb.utils.mkdirhier(rootfs_license_dir)
rootfs_license_manifest = os.path.join(rootfs_license_dir,
os.path.split(license_manifest)[1])
@@ -143,12 +144,13 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
continue
# Make sure we use only canonical name for the license file
rootfs_license = os.path.join(rootfs_license_dir, "generic_%s" % generic_lic)
generic_lic_file = "generic_%s" % generic_lic
rootfs_license = os.path.join(rootfs_license_dir, generic_lic_file)
if not os.path.exists(rootfs_license):
oe.path.copyhardlink(pkg_license, rootfs_license)
if not os.path.exists(pkg_rootfs_license):
os.symlink(os.path.join('..', lic), pkg_rootfs_license)
os.symlink(os.path.join('..', generic_lic_file), pkg_rootfs_license)
else:
if (oe.license.license_ok(canonical_license(d,
lic), bad_licenses) == False or
@@ -267,3 +269,13 @@ python do_populate_lic_deploy() {
addtask populate_lic_deploy before do_build after do_image_complete
do_populate_lic_deploy[recrdeptask] += "do_populate_lic do_deploy"
python license_qa_dead_symlink() {
import os
for root, dirs, files in os.walk(d.getVar('ROOTFS_LICENSE_DIR')):
for file in files:
full_path = root + "/" + file
if os.path.islink(full_path) and not os.path.exists(full_path):
bb.error("broken symlink: " + full_path)
}
IMAGE_QA_COMMANDS += "license_qa_dead_symlink"

View File

@@ -41,6 +41,9 @@ SDE_DIR = "${WORKDIR}/source-date-epoch"
SDE_FILE = "${SDE_DIR}/__source_date_epoch.txt"
SDE_DEPLOYDIR = "${WORKDIR}/deploy-source-date-epoch"
# Enable compiler warning when the __TIME__, __DATE__ and __TIMESTAMP__ macros are used.
TARGET_CC_ARCH_append_class-target = " -Wdate-time"
# A SOURCE_DATE_EPOCH of '0' might be misinterpreted as no SDE
export SOURCE_DATE_EPOCH_FALLBACK ??= "1302044400"

View File

@@ -882,13 +882,18 @@ def check_sanity_everybuild(status, d):
except:
pass
oeroot = d.getVar('COREBASE')
if oeroot.find('+') != -1:
status.addresult("Error, you have an invalid character (+) in your COREBASE directory path. Please move the installation to a directory which doesn't include any + characters.")
if oeroot.find('@') != -1:
status.addresult("Error, you have an invalid character (@) in your COREBASE directory path. Please move the installation to a directory which doesn't include any @ characters.")
if oeroot.find(' ') != -1:
status.addresult("Error, you have a space in your COREBASE directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this.")
for checkdir in ['COREBASE', 'TMPDIR']:
val = d.getVar(checkdir)
if val.find('..') != -1:
status.addresult("Error, you have '..' in your %s directory path. Please ensure the variable contains an absolute path as this can break some recipe builds in obtuse ways." % checkdir)
if val.find('+') != -1:
status.addresult("Error, you have an invalid character (+) in your %s directory path. Please move the installation to a directory which doesn't include any + characters." % checkdir)
if val.find('@') != -1:
status.addresult("Error, you have an invalid character (@) in your %s directory path. Please move the installation to a directory which doesn't include any @ characters." % checkdir)
if val.find(' ') != -1:
status.addresult("Error, you have a space in your %s directory path. Please move the installation to a directory which doesn't include a space since autotools doesn't support this." % checkdir)
if val.find('%') != -1:
status.addresult("Error, you have an invalid character (%) in your %s directory path which causes problems with python string formatting. Please move the installation to a directory which doesn't include any % characters." % checkdir)
# Check the format of MIRRORS, PREMIRRORS and SSTATE_MIRRORS
import re

View File

@@ -127,6 +127,11 @@ testimage_dump_host () {
netstat -an
}
testimage_dump_monitor () {
query-status
query-block
}
python do_testimage() {
testimage_main(d)
}
@@ -320,6 +325,7 @@ def testimage_main(d):
target_kwargs['powercontrol_extra_args'] = d.getVar("TEST_POWERCONTROL_EXTRA_ARGS") or ""
target_kwargs['serialcontrol_cmd'] = d.getVar("TEST_SERIALCONTROL_CMD") or None
target_kwargs['serialcontrol_extra_args'] = d.getVar("TEST_SERIALCONTROL_EXTRA_ARGS") or ""
target_kwargs['testimage_dump_monitor'] = d.getVar("testimage_dump_monitor") or ""
target_kwargs['testimage_dump_target'] = d.getVar("testimage_dump_target") or ""
def export_ssh_agent(d):

View File

@@ -527,7 +527,7 @@ export STRIP = "${HOST_PREFIX}strip"
export OBJCOPY = "${HOST_PREFIX}objcopy"
export OBJDUMP = "${HOST_PREFIX}objdump"
export STRINGS = "${HOST_PREFIX}strings"
export NM = "${HOST_PREFIX}nm"
export NM = "${HOST_PREFIX}gcc-nm"
export READELF = "${HOST_PREFIX}readelf"
PYTHON = "${@sys.executable}"

View File

@@ -10,7 +10,10 @@ LOCALE_UTF8_ONLY ?= "0"
LOCALE_UTF8_IS_DEFAULT ?= "1"
LOCALE_UTF8_IS_DEFAULT_class-nativesdk = "0"
DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat"
# seccomp is not yet ported to rv32
DISTRO_FEATURES_DEFAULT_remove_riscv32 = "seccomp"
DISTRO_FEATURES_DEFAULT ?= "acl alsa argp bluetooth debuginfod ext2 ipv4 ipv6 largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g nfc x11 vfat seccomp"
DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT}"
IMAGE_FEATURES ?= ""

View File

@@ -78,7 +78,7 @@ RECIPE_MAINTAINER_pn-boost = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-boost-build-native = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bootchart2 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-bsd-headers = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-btrfs-tools = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-build-appliance-image = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-build-sysroots = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-builder = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -117,6 +117,9 @@ RECIPE_MAINTAINER_pn-core-image-testmaster-initramfs = "Richard Purdie <richard.
RECIPE_MAINTAINER_pn-core-image-testmaster = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-clutter = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-weston = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-weston-ptest-all = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-weston-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-weston-sdk = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-x11 = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-sato-dev = "Richard Purdie <richard.purdie@linuxfoundation.org>"
RECIPE_MAINTAINER_pn-core-image-sato-ptest-fast = "Richard Purdie <richard.purdie@linuxfoundation.org>"
@@ -157,14 +160,14 @@ RECIPE_MAINTAINER_pn-dos2unix = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-dosfstools = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dpkg = "Aníbal Limón <limon.anibal@gmail.com>"
RECIPE_MAINTAINER_pn-dropbear = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-dtc = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-dwarfsrcfiles = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-e2fsprogs = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-ed = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-efivar = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-efibootmgr = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-ell = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-elfutils = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-ell = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-enchant2 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-encodings = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-epiphany = "Alexander Kanavin <alex.kanavin@gmail.com>"
@@ -191,7 +194,7 @@ RECIPE_MAINTAINER_pn-gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Khem Raj <r
RECIPE_MAINTAINER_pn-gcc-crosssdk-${SDK_SYS} = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-runtime = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-sanitizers = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-source-10.2.0 = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gcc-source-10.3.0 = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-gconf = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-gcr = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-gdb = "Khem Raj <raj.khem@gmail.com>"
@@ -279,7 +282,7 @@ RECIPE_MAINTAINER_pn-intltool = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-iproute2 = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iptables = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iputils = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-iso-codes = "Wang Mingyu <wangmy@cn.ujitsu.com>"
RECIPE_MAINTAINER_pn-itstool = "Andreas Müller <schnitzeltony@gmail.com>"
RECIPE_MAINTAINER_pn-iw = "Changhyeok Bae <changhyeok.bae@gmail.com>"
RECIPE_MAINTAINER_pn-libjpeg-turbo = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -350,6 +353,7 @@ RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libksba = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmatchbox = "Ross Burton <ross.burton@arm.com>"
RECIPE_MAINTAINER_pn-libmd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmicrohttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libmnl = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmpc = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libmodule-build-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
@@ -364,19 +368,20 @@ RECIPE_MAINTAINER_pn-libogg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libomxil = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpam = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpcap = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libpciaccess = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-libpcre = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libpcre2 = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libpipeline = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-libpng = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libportal = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libproxy = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libpthread-stubs = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libsamplerate0 = "Unassigned <unassigned@yoctoproject.org>"
RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-libseccomp = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libsm = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libsndfile1 = "Unassigned <unassigned@yoctoproject.org>"
@@ -395,7 +400,7 @@ RECIPE_MAINTAINER_pn-libtool-native = "Robert Yang <liezhi.yang@windriver.com>"
RECIPE_MAINTAINER_pn-libucontext = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-libunistring = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libunwind = "Bruce Ashfield <bruce.ashfield@gmail.com>"
RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-liburcu = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-liburi-perl = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-libusb1 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libubootenv = "Stefano Babic <sbabic@denx.de>"
@@ -403,7 +408,7 @@ RECIPE_MAINTAINER_pn-libuv = "Armin Kuster <akuster@mvista.com>"
RECIPE_MAINTAINER_pn-libva = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libva-initial = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libva-utils = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libvorbis = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-libwebp = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libwpe = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-libx11 = "Armin Kuster <akuster808@gmail.com>"
@@ -444,7 +449,7 @@ RECIPE_MAINTAINER_pn-libxtst = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxv = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxvmc = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libxxf86vm = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-libyaml = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-lighttpd = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-dummy = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-linux-firmware = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
@@ -509,7 +514,7 @@ RECIPE_MAINTAINER_pn-modutils-initscripts = "Yi Zhao <yi.zhao@windriver.com>"
RECIPE_MAINTAINER_pn-mpeg2dec = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-mpfr = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER_pn-mpg123 = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu <wangmy@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-msmtp = "Wang Mingyu <wangmy@fujitsu.com>"
RECIPE_MAINTAINER_pn-mtd-utils = "Denys Dmytriyenko <denis@denix.org>"
RECIPE_MAINTAINER_pn-mtdev = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER_pn-mtools = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -587,7 +592,7 @@ RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk <open.source@oleksandr-
RECIPE_MAINTAINER_pn-python3-atomicwrites = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-attrs = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-cython = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-dbus = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-dbusmock = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-docutils = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-pycryptodome = "Joshua Watt <JPEWhacker@gmail.com>"
@@ -609,21 +614,22 @@ RECIPE_MAINTAINER_pn-python3-nose = "Oleksandr Kravchuk <open.source@oleksandr-k
RECIPE_MAINTAINER_pn-python3-numpy = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-packaging = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-pathlib2 = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pbr = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pip = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pluggy = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-py = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pyyaml = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-pycairo = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pyelftools = "Joshua Watt <JPEWhacker@gmail.com>"
RECIPE_MAINTAINER_pn-python3-pygments = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pygobject = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-pyparsing = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-pytest = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-scons = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-scons-native = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-setuptools = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-setuptools-scm = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@cn.fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-six = "Zang Ruochen <zangrc.fnst@fujitsu.com>"
RECIPE_MAINTAINER_pn-python3-smmap = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
RECIPE_MAINTAINER_pn-python3-sortedcontainers = "Tim Orling <timothy.t.orling@linux.intel.com>"
RECIPE_MAINTAINER_pn-python3-subunit = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -797,6 +803,7 @@ RECIPE_MAINTAINER_pn-xset = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xtrans = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xuser-account = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xvinfo = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xwayland = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xwininfo = "Armin Kuster <akuster808@gmail.com>"
RECIPE_MAINTAINER_pn-xxhash = "Alexander Kanavin <alex.kanavin@gmail.com>"
RECIPE_MAINTAINER_pn-xz = "Denys Dmytriyenko <denis@denix.org>"

View File

@@ -26,7 +26,7 @@ QEMUVERSION ?= "5.2%"
GOVERSION ?= "1.16%"
# This can not use wildcards like 8.0.% since it is also used in mesa to denote
# llvm version being used, so always bump it with llvm recipe version bump
LLVMVERSION ?= "11.1.0"
LLVMVERSION ?= "12.0.0"
PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"

View File

@@ -7,12 +7,12 @@ BBFILE_COLLECTIONS += "core"
BBFILE_PATTERN_core = "^${LAYERDIR}/"
BBFILE_PRIORITY_core = "5"
LAYERSERIES_CORENAMES = "hardknott"
LAYERSERIES_CORENAMES = "hardknott honister"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_core = "12"
LAYERSERIES_COMPAT_core = "hardknott"
LAYERSERIES_COMPAT_core = "honister"
BBLAYERS_LAYERINDEX_NAME_core = "openembedded-core"

0
meta/conf/machine/include/arm/arch-armv6m.inc Executable file → Normal file
View File

View File

@@ -65,6 +65,8 @@ class PkgSdk(Sdk):
self.target_pm.install_complementary(self.d.getVar('SDKIMAGE_INSTALL_COMPLEMENTARY'))
self.target_pm.run_pre_post_installs()
self.target_pm.run_intercepts(populate_sdk='target')
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_TARGET_COMMAND"))
@@ -78,6 +80,8 @@ class PkgSdk(Sdk):
self._populate_sysroot(self.host_pm, self.host_manifest)
self.install_locales(self.host_pm)
self.host_pm.run_pre_post_installs()
self.host_pm.run_intercepts(populate_sdk='host')
execute_pre_post_process(self.d, self.d.getVar("POPULATE_SDK_POST_HOST_COMMAND"))

View File

@@ -7,7 +7,7 @@ def prserv_make_conn(d, check = False):
host_params = list([_f for _f in (d.getVar("PRSERV_HOST") or '').split(':') if _f])
try:
conn = None
conn = prserv.serv.PRServerConnection(host_params[0], int(host_params[1]))
conn = prserv.serv.connect(host_params[0], int(host_params[1]))
if check:
if not conn.ping():
raise Exception('service not available')

View File

@@ -305,7 +305,7 @@ class Rootfs(object, metaclass=ABCMeta):
def _check_for_kernel_modules(self, modules_dir):
for root, dirs, files in os.walk(modules_dir, topdown=True):
for name in files:
found_ko = name.endswith(".ko")
found_ko = name.endswith((".ko", ".ko.gz", ".ko.xz"))
if found_ko:
return found_ko
return False

View File

@@ -163,7 +163,12 @@ class Tmux(Terminal):
# devshells, if it's already there, add a new window to it.
window_name = 'devshell-%i' % os.getpid()
self.command = 'tmux new -c "{{cwd}}" -d -s {0} -n {0} "{{command}}"'.format(window_name)
self.command = 'tmux new -c "{{cwd}}" -d -s {0} -n {0} "{{command}}"'
if not check_tmux_version('1.9'):
# `tmux new-session -c` was added in 1.9;
# older versions fail with that flag
self.command = 'tmux new -d -s {0} -n {0} "{{command}}"'
self.command = self.command.format(window_name)
Terminal.__init__(self, sh_cmd, title, env, d)
attach_cmd = 'tmux att -t {0}'.format(window_name)
@@ -253,13 +258,18 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
except OSError:
return
def check_tmux_version(desired):
vernum = check_terminal_version("tmux")
if vernum and LooseVersion(vernum) < desired:
return False
return vernum
def check_tmux_pane_size(tmux):
import subprocess as sub
# On older tmux versions (<1.9), return false. The reason
# is that there is no easy way to get the height of the active panel
# on current window without nested formats (available from version 1.9)
vernum = check_terminal_version("tmux")
if vernum and LooseVersion(vernum) < '1.9':
if not check_tmux_version('1.9'):
return False
try:
p = sub.Popen('%s list-panes -F "#{?pane_active,#{pane_height},}"' % tmux,

View File

@@ -43,8 +43,13 @@ class OETestCase(unittest.TestCase):
clss.tearDownClassMethod()
def _oeSetUp(self):
for d in self.decorators:
d.setUpDecorator()
try:
for d in self.decorators:
d.setUpDecorator()
except:
for d in self.decorators:
d.tearDownDecorator()
raise
self.setUpMethod()
def _oeTearDown(self):

View File

@@ -24,5 +24,6 @@ class OETimeout(OETestDecorator):
def tearDownDecorator(self):
signal.alarm(0)
signal.signal(signal.SIGALRM, self.alarmSignal)
self.logger.debug("Removed SIGALRM handler")
if hasattr(self, 'alarmSignal'):
signal.signal(signal.SIGALRM, self.alarmSignal)
self.logger.debug("Removed SIGALRM handler")

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