Commit Graph

63223 Commits

Author SHA1 Message Date
Joshua Watt
f1a34a63e4 classes/create-spdx: Add class
Adds a class as a first attempt to create SPDX SBoM documents during the
build. This initial work was influenced by [meta-doubleopen][1],
although almost completely rewritten.

[1]: https://github.com/doubleopen-project/meta-doubleopen

(From OE-Core rev: 78c79821ae7e2f060b9a74ea9aefce98102bb00e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:53:28 +01:00
Joshua Watt
7ec54b1743 classes/package: Add extended packaged data
Adds extended package data which is encoded as JSON which allows it to
encode more structure than the "flat" package data files. The extended
data might be much larger than the standard package data, so it is not
read by default and instead requires
oe.packagedata.read_subpkgdata_extended() to be called

Currently, the file sizes and ELF debug sources are saved off into the
extended package data

(From OE-Core rev: db9cf430e54ae68da80fbc3fba80ce88d8df164d)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Reviewed-by: Saul Wold <saul.wold@windriver.com>
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:53:28 +01:00
Joshua Watt
d521ba8c32 Add SPDX licenses
Adds the SPDX license database from https://github.com/spdx/license-list-data

(From OE-Core rev: a8048931701438e2f267a52a43869c27743907e3)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:53:28 +01:00
Ross Burton
2220839599 common-licenses: add missing SPDX licences
As part of the work to converge our license support with SPDX, ensure
that we have all of the licenses that SPDX supports.

(From OE-Core rev: e2f9092c37395f4e3ee9d0777e28c83cce6007ee)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
8d25cd30ac wpebackend-fdo: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-2-Clause.

(From OE-Core rev: 391895306c44545843dca1ab8ac5b299194f18a9)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
d209ae8887 libwpe: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-2-Clause.

(From OE-Core rev: 521664fea3f21c1fe08ab19227519cbb224f353c)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
4e794f99fc webkitgtk: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-2-Clause.

(From OE-Core rev: fea814494865976e78be308642db553102ca9e02)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
d3f2e9d8ec libx11-compose-data: set precise BSD license
"BSD" is ambiguous, use the precise licenses BSD-2-Clause BSD-4-Clause.

(From OE-Core rev: e55bc3bdb8698ea6673174d33f659518b55f1ff2)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
f5e78cb2ca iputils: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-3-Clause.

(From OE-Core rev: e3ece26a268e0f7b69221ce1da2f5be613b5826f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
6dc9c606f6 python3-packaging: fix license statement
This is licensed as Apache OR BSD, not AND.

Also use the precise license BSD-2-Clause.

(From OE-Core rev: b7b406287dc05ae7228ef66dbada71c439bce4fb)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
7eaab4b261 openssh: remove redundant BSD license
The license statement already includes BSD-2-Clause and BSD-3-Clause, so
remove the redundant and ambiguous BSD license.

(From OE-Core rev: 5c0b03cda19bcebfc71e1e601a4336fcda4bfc2b)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
359fc85454 libevent: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-3-Clause.

(From OE-Core rev: 924d1d9ca51f2a45cdf0094c50434e25c0437c6a)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
df0997688a acpica: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-3-Clause.

(From OE-Core rev: 0cfa82ca0df9b711521f7e47a22a7650871e5883)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
aa58df18bb dtc: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-2-Clause.

(From OE-Core rev: 4765c9be0ccc883d3b803b0695b8bf986d9b105f)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
1d0ef6010a nfs-utils: set precise BSD license
"BSD" is ambiguous, use the precise license BSD-3-Clause.

(From OE-Core rev: 5214d23cf0d316d501a147a09edfb46df42d6cb7)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
e54618d010 quota: remove BSD license
Only the 'quot' tool was BSD licensed, and this was removed upstream in
commit 5d30a29 (since 4.05).

(From OE-Core rev: 3dfe4fe43a3bb5d90d6d7cb1ee56db3b0657821e)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
95e494cefc python3-numpy: remove redundant BSD license
The license list already includes BSD-2-Clause and BSD-3-Clause, so
remove the redundant and ambiguous BSD license.

(From OE-Core rev: 7026bfa36aa07aa95e0e4ecf1787c09001a752bf)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Ross Burton
e3be13ae57 lz4: remove redundant BSD license
The upstream license is BSD-2-Clause or GPLv2, so remove the redundant
and ambiguous BSD license.

(From OE-Core rev: 53cf640e72118d0a7916b165d78c68090aa06381)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-03 09:03:34 +01:00
Alexander Kanavin
359e1cb62f mesa: enable crocus driver for older intel graphics
See here for the full story:
https://www.phoronix.com/scan.php?page=news_item&px=Intel-Crocus-Default-Gallium3D

Once crocus does become the default over i965, upstream is likely to retire
classic pre-gallium drivers altogether, which (with the exception of
i965, superseded by crocus) are all for retrocomputing hardware.

(From OE-Core rev: dfc5f935b5b1759f73b2ddd86d2b291436dbc705)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 21:22:54 +01:00
Martin Jansa
a1c9d67c2b rust: remove unused patches
* 0001-nfc-Fix-missing-include.patch was only used in 1.51.0 version recently removed
* 0001-rustc_target-Fix-dash-vs-underscore-mismatches-in-op.patch was only used in 1.49.0 version in meta-rust

(From OE-Core rev: 52b12dac55a3747d8d6f2e799c669ef2bcda57ae)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 21:22:54 +01:00
Richard Purdie
63b1fd2226 rust-common: Hack around LD_LIBRARY_PATH issues on centos7
When building cargo-native on centos7 with buildtools tarball installed,
we see failures:

/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /home/pokybuild/yocto-worker/reproducible-centos/build/build-st/tmp/work/x86_64-linux/cargo-native/1.54.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)

We also see this for libstd-rs once cargo-native is fixed.

The reason for this is that the wrapper script
cargo-native/1.54.0-r0/wrapper/target-rust-ccld has /bin/sh as it's
interpreter and cargo calls this with LD_LIBRARY_PATH set to include the
recipe-sysroot-native. The host /bin/sh links to libtinfo from the host
but it finds the version in the sysroot which needs a newer libc. This
results in the above error since the loader is an older libc and the two
are incompatible.

Our ccld wrapper calls gcc/ld which don't need the LD_LIBRARY_PATH
variable set. We can't patch this out the source since we're using
a prebuilt binary to generate a new cargo binary so this is impossible
to bootstrap.

Instead, put a binary wrapper into place which removes LD_LIBRARY_PATH
from the environment before calling the original wrapper (left in shell
as it is simpler to maintain).

(From OE-Core rev: 8feeeb7f76c6725e5226458c8f22999b67c52694)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 21:22:54 +01:00
Richard Purdie
640136a72b cargo: Apply uninative fix to snapshot as with rust
Also add the interpreter relocation trick from uninative to the prebuilt
cargo binary to match rust-native, just in case that causes other problems
later too.

(From OE-Core rev: e3cb3958cc14672feef5d4d8953131f55db68573)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 21:22:54 +01:00
Marek Vasut
1603585cd2 weston: Add rdp PACKAGECONFIG
Weston has RDP backend support. This can be used e.g. for screen mirroring.
Add PACKAGECONFIG so it can be enabled by the user. By default, this is not
enabled, to retain the old behavior of the recipe.

Below is an example testcase of using the RDP backend for screen mirroring,
i.e. two devices display the same content across ethernet link, input on
either is passed across the link.

- Add the following to weston.ini:
  [core]
  modules=screen-share.so
  screen-share=true
  [screen-share]
  command=/usr/bin/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize --rdp-tls-cert=/path/to/board.crt --rdp-tls-key=/path/to/board.key --no-config

- Generate keys on the board (the board.key and board.crt above):
  $ winpr-makecert -rdp -path /path/to/

- Restart weston on the board. To start screen sharing, press
  Ctrl-Alt-S
  on the keyboard (see weston compositor/screen-share.c).

- Connect to the weston using freerdp, e.g.:
  $ xfreerdp /v:192.168.1.300

(From OE-Core rev: 05706a487c2e57fb26935276a2ec650405900243)

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joshua Watt <JPEWhacker@gmail.com>
Cc: Khem Raj <raj.khem@gmail.com>
Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Ross Burton
b3dcbdc4d6 ptest: allow the ptest-packagelists.inc warning to be disabled
ptest.bbclass has a sanity check that all recipes in oe-core which
inherit ptest are also listed in the ptest-packagelists.inc file, and
the build fails if this is not the case.

Whilst this is a laudable goal, it is over-zealous as if the recipe has
a bbappend in another layer which inherits ptest, the build will fail.

By changing the combination of anonymous Python and bb.error() to a
recipe-scope QA test, this can be handled with the other sanity checks
and bbappends can skip the test if desired.

(From OE-Core rev: abe45c8c0a6da56a278796654d0520250dfd2a97)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Kristian Klausen
75d9a77eba systemd: Add repart PACKAGECONFIG
systemd-repart[1] is useful for partitioning the disk:
"systemd-repart grows and adds partitions to a partition table, based on
the configuration files described in repart.d(5)."[1]

openssl is required by repart, so it can be enabled like so:
PACKAGECONFIG += "openssl repart"

[1] https://www.freedesktop.org/software/systemd/man/systemd-repart.html

(From OE-Core rev: a9fb51b75d4536d13734d91222bb0bc612555ae2)

Signed-off-by: Kristian Klausen <kristian@klausen.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Ross Burton
e1986db49b mesa: fix build on Arm V5 with soft float
Since 80923e8d ("util/format: Add some NEON intrinsics-based
u_format_unpack.") upstream the build fails on Arm platforms which use
the soft-float ABI, such as qemuarmv5:

 arm_neon.h:31:2: error: #error "NEON intrinsics not available with the
 soft-float ABI.  Please use -mfloat-abi=softfp or -mfloat-abi=hard"

Take a patch from upstream to check the ABI being used before trying to
use NEON instructions.

(From OE-Core rev: f3d82abb781c2642a50a60033641194d1e40c212)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Stefan Herbrechtsmeier
9facca6e30 u-boot: Make UBOOT_BINARYNAME configurable
Make the u-boot binary name configurable. Use the existing variable
UBOOT_BINARYNAME which is evaluated from the UBOOT_BINARY.

(From OE-Core rev: e588cde6aed1e699a055e3481df0f3dc719c9774)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Stefan Herbrechtsmeier
7c08a9e3cd u-boot: Make SPL suffix configurable
Make the SPL suffix configurable via SPL_SUFFIX variable to support SPL
binaries with suffix. The suffix is optional and empty per default. The
delimiter in front of the suffix is added automatically if the suffix
is not empty. A new variable SPL_BINARYFILE contains the binary file
name inclusive optional delimiter and suffix and the old variable
SPL_BINARYNAME contains only the name of the binary without directory,
delimiter and specified suffix. This behavior is backward compatible
with empty SPL_SUFFIX variable.

(From OE-Core rev: e4cfec633c20d6406523da905530e887b853f7ed)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:08 +01:00
Stefan Herbrechtsmeier
b8b43622e8 u-boot: Remove misplaced configuration type variable
(From OE-Core rev: 3fe8adbad5226d673f22f31f4903149cf3376ae5)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Stefan Herbrechtsmeier
a65d092ee3 u-boot: Remove redundancy from installed and deployed SPL artifact names
Remove redundant parts from the deployed and installed SPL artifact
names of multi config configurations to match the other U-Boot artifact
names.

(From OE-Core rev: 74f1f84d09ec5b435942e2a83697834677055343)

Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
79147c27fd swig: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 01354672728aff07ae146b19e1a4a98977aac52b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
79eb0333fe flac: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 0442d87d5c6c467ba0e35d4ee20bd907f4dd9fdf)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
8948100ce7 font-util: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 828bca22d9a4b995d9961d3cc8c3aedcb5ef577d)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
40cd87df6e libx11: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 44fd2aa731956fe0a0f74d36959c88b0b87adab5)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
f9bf930496 libjitterentropy: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: a352473138dd2396bc33eff3d738c41ff24f52fe)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
ca7e12eb49 libxfont2: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: e340bad91f3220a156572bde3c337425f5c36cfc)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
55ebfb1909 libpam: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: d9948d0439cf26af9f570e9a9d0d214294bae504)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
b1596d37ba sudo: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: ff27ea21d7c14086335da5c3e2fac353e44438da)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
995d672317 libcap: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 9e8b2bc55792932e23d3b053b393b7ff88bffd6b)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
d19e9f86d5 shadow: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 65e3b23e1b266653fd30c90222e953f7e37fba0c)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
c6170c9cfe e2fsprogs: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 966fb77981e4fed0ab7998439940b1e05dd0ee43)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
ca099bad72 glib-2.0: Use specific BSD license variant
Make the license more accurate by specifying the specific variant of BSD
license instead of the generic one. This helps with SPDX license
attribution as "BSD" is not a valid SPDX license.

(From OE-Core rev: 91cd1ef01a3f3883c04bac67af2672ec60e20fb8)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
bb25d14e53 tzdata: Remove BSD License specifier
The code in question is licensed under the BSD-3-Clause license, so
including the generic "BSD" license is unnecessary.

(From OE-Core rev: c39fc075ce3fd5b53c2a2fccb43500ee0a12f39d)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Joshua Watt
970895763c conf/licenses: Add FreeType SPDX mapping
The FreeType license maps to the FTL SPDX identifier

(From OE-Core rev: 7b0b745d7c1841b9af3b90d3e41e31606a72435e)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:12:07 +01:00
Mingli Yu
6901cdbe20 bitbake: prserv: make localhost work
After [1] introduced, the PR server doesn't work in docker when use
below setting like before.
PRSERV_HOST = "localhost:0"

And it's because the localhost is resolved to an ipv6 address ::1 as
the below bitbake-prserv shows.
 bitbake$ bitbake-prserv --start --host=localhost --port=42005
 bitbake$ cat prserv.log
    Traceback (most recent call last):
      File "/OE/nodistro/honister/bitbake/bin/bitbake-prserv", line 55, in <module>
        ret = main()
      File "/OE/nodistro/honister/bitbake/bin/bitbake-prserv", line 46, in main
        ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 226, in start_daemon
        run_as_daemon(daemon_main, pidfile, os.path.abspath(logfile))
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 202, in run_as_daemon
        func()
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 224, in daemon_main
        server.serve_forever()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 233, in serve_forever
        self.start()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 144, in start_tcp
        self.server = self.loop.run_until_complete(server_coro)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
        return future.result()
      File "/usr/lib/python3.8/asyncio/streams.py", line 94, in start_server
        return await loop.create_server(factory, host, port, **kwds)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 1463, in create_server
        raise OSError(err.errno, 'error while attempting '
    OSError: [Errno 99] error while attempting to bind on address ('::1', 42005, 0, 0): cannot assign requested address

So add the extra logic to make the localhost resolved as expected to
make the PR service work especially in docker.

[1] 6a2b23e2 prserv: Replace XML RPC with modern asyncrpc implementation

(Bitbake rev: 0a11696e0898c3c5108e6d7c5ad28da50e00ea66)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-02 12:05:07 +01:00
Martin Jansa
b978f7c3a0 bitbake: cooker/process: Fix typos in exiting message
(Bitbake rev: 1ff1ea3880d293b14ce0fc65e3bc4c938d587a2f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 18:56:25 +01:00
Martin Jansa
7df5f405ce bitbake: prserv: handle PRSERV_HOST = "127.0.0.1:0" the same as "localhost:0"
* When using PRSERV_HOST = "localhost:0" inside
  Docker container (tested with ubuntu 20.04 and 21.04) the
  self.loop.run_until_complete never completed, so self.address
  wasn't ever assigned few lines bellow and then
    self.port = int(self.prserv.address.rsplit(':', 1)[1])
  in lib/prserv/serv.py caused a bit ugly exception:

bitbake@599696cd20aa:~/nodistro/honister$ bitbake -k pkgconfig-native
Traceback (most recent call last):
  File "/OE/nodistro/honister/bitbake/bin/bitbake", line 35, in <module>
    sys.exit(bitbake_main(BitBakeConfigParameters(sys.argv),
  File "/OE/nodistro/honister/bitbake/lib/bb/main.py", line 385, in bitbake_main
    return ui_module.main(server_connection.connection, server_connection.events,
  File "/OE/nodistro/honister/bitbake/lib/bb/ui/knotty.py", line 397, in main
    params.updateToServer(server, os.environ.copy())
  File "/OE/nodistro/honister/bitbake/lib/bb/cookerdata.py", line 75, in updateToServer
    raise Exception("Unable to update the server configuration with local parameters: %s" % error)
Exception: Unable to update the server configuration with local parameters: Traceback (most recent call last):
  File "/OE/nodistro/honister/bitbake/lib/bb/command.py", line 90, in runCommand
    result = command_method(self, commandline)
  File "/OE/nodistro/honister/bitbake/lib/bb/command.py", line 286, in updateConfig
    command.cooker.updateConfigOpts(options, environment, cmdline)
  File "/OE/nodistro/honister/bitbake/lib/bb/cooker.py", line 491, in updateConfigOpts
    self.reset()
  File "/OE/nodistro/honister/bitbake/lib/bb/cooker.py", line 1717, in reset
    self.handlePRServ()
  File "/OE/nodistro/honister/bitbake/lib/bb/cooker.py", line 383, in handlePRServ
    self.prhost = prserv.serv.auto_start(self.data)
  File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 318, in auto_start
    singleton.start()
  File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 133, in start
    self.port = int(self.prserv.address.rsplit(':', 1)[1])
AttributeError: 'NoneType' object has no attribute 'rsplit'

* the issue was caused by "localhost" being resolved as IPv6 address ::1
  and then asyncio failing to bind it, the same is reproducible with hashserv, but
  hashserve at least shows nice error message:
    bitbake$ bitbake-hashserv -l DEBUG -b localhost:0
    Traceback (most recent call last):
      File "/OE/nodistro/honister/bitbake/bin/bitbake-hashserv", line 59, in <module>
        ret = main()
      File "/OE/nodistro/honister/bitbake/bin/bitbake-hashserv", line 53, in main
        server.serve_forever()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 233, in serve_forever
        self.start()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 144, in start_tcp
        self.server = self.loop.run_until_complete(server_coro)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
        return future.result()
      File "/usr/lib/python3.8/asyncio/streams.py", line 94, in start_server
        return await loop.create_server(factory, host, port, **kwds)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 1463, in create_server
        raise OSError(err.errno, 'error while attempting '
    OSError: [Errno 99] error while attempting to bind on address ('::1', 0, 0, 0): cannot assign requested address

* or by bitbake-prserv in prserv.log:
    bitbake$ bitbake-prserv --start --host=localhost --port=42005
    bitbake$ cat prserv.log
    Traceback (most recent call last):
      File "/OE/nodistro/honister/bitbake/bin/bitbake-prserv", line 55, in <module>
        ret = main()
      File "/OE/nodistro/honister/bitbake/bin/bitbake-prserv", line 46, in main
        ret=prserv.serv.start_daemon(options.dbfile, options.host, options.port,os.path.abspath(options.logfile), options.read_only)
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 226, in start_daemon
        run_as_daemon(daemon_main, pidfile, os.path.abspath(logfile))
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 202, in run_as_daemon
        func()
      File "/OE/nodistro/honister/bitbake/lib/prserv/serv.py", line 224, in daemon_main
        server.serve_forever()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 233, in serve_forever
        self.start()
      File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 144, in start_tcp
        self.server = self.loop.run_until_complete(server_coro)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
        return future.result()
      File "/usr/lib/python3.8/asyncio/streams.py", line 94, in start_server
        return await loop.create_server(factory, host, port, **kwds)
      File "/usr/lib/python3.8/asyncio/base_events.py", line 1463, in create_server
        raise OSError(err.errno, 'error while attempting '
    OSError: [Errno 99] error while attempting to bind on address ('::1', 42005, 0, 0): cannot assign requested address

* while 127.0.0.1 works fine:
    bitbake$ bitbake-prserv --start --host=127.0.0.1 --port=42005
    bitbake$ cat prserv.log
    DEBUG: Listening on ('127.0.0.1', 42005)
    2021-08-26 22:28:05,828 Listening on ('127.0.0.1', 42005)
    DEBUG: Opening PRServ database 'file:/OE/nodistro/honister/prserv.sqlite3'
    2021-08-26 22:28:05,829 Opening PRServ database 'file:/OE/nodistro/honister/prserv.sqlite3'
    NOTE: Started PRServer with DBfile: /OE/nodistro/honister/prserv.sqlite3, Address: 127.0.0.1:42005, PID: 39
    2021-08-26 22:28:05,831 Started PRServer with DBfile: /OE/nodistro/honister/prserv.sqlite3, Address: 127.0.0.1:42005, PID: 39

  but 127.0.0.1:0 wasn't handled as "autostart" like localhost:0 is
  update is_local_special to allow that

* /etc/hosts file generated by docker contails localhost for both IPv4 and IPv6:
  $ grep localhost /etc/hosts
  127.0.0.1       localhost
  ::1     localhost ip6-localhost ip6-loopback

  even when ipv6 is disabled in dockerd as reported in:
  https://github.com/docker/for-linux/issues/250

* add a check for self.prserv.address to provide better error message:
  ERROR: Unable to start PR Server, exitting
  when something bad happens, but in this case you still need to read
  bitbake-cookerdaemon.log to see the actuall error, in this case:

90 22:30:39.008441 --- Starting bitbake server pid 90 at 2021-08-26 22:30:39.008419 ---
90 22:30:39.023734 Started bitbake server pid 90
90 22:30:39.024286 Entering server connection loop
90 22:30:39.024753 Accepting [<socket.socket fd=6, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=bitbake.sock>] ([])
90 22:30:39.026314 Processing Client
90 22:30:39.026456 Connecting Client
90 22:30:39.027509 Running command ['setFeatures', [2]]
90 22:30:39.027757 Command Completed
90 22:30:39.028711 Running command ['updateConfig', {'abort': False, 'force': False, 'invalidate_stamp': None, 'dry_run': False, 'dump_signatures': [], 'extra_assume_provided': [], 'profile': False, 'prefile': [], 'postfile': [], 'server_timeout': None, 'nosetscene': False, 'setsceneonly': False, 'skipsetscene': False, 'runall': None, 'runonly': None, 'writeeventlog': None, 'build_verbose_shell': False, 'build_verbose_stdout': False, 'default_loglevel': 20, 'debug_domains': {}}, {'DISTRO': '', 'PWD': '/OE/nodistro/honister', 'HOME': '/OE', 'MACHINE': 'qemux86', 'BB_ENV_EXTRAWHITE': 'MACHINE DISTRO TCMODE TCLIBC http_proxy ftp_proxy https_proxy all_proxy ALL_PROXY no_proxy SSH_AGENT_PID SSH_AUTH_SOCK BB_SRCREV_POLICY SDKMACHINE BB_NUMBER_THREADS PARALLEL_MAKE GIT_PROXY_COMMAND GIT_PROXY_IGNORE SOCKS5_PASSWD SOCKS5_USER WEBOS_DISTRO_BUILD_ID PSEUDO_DISABLED PSEUDO_BUILD', 'PATH': '/OE/nodistro/honister/oe-core/scripts:/OE/nodistro/honister/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'LC_ALL': 'en_US.UTF-8', 'MACHINES': 'qemux86', 'HOSTNAME': '6a439759e3c6', 'TOPDIR': '/OE/nodistro/honister', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm', 'SHLVL': '1', 'BITBAKE_HOME': '/OE', 'BUILDDIR': '/OE/nodistro/honister/BUILD', 'OLDPWD': '/OE/nodistro/honister/bitbake', '_': '/OE/nodistro/honister/bitbake/bin/bitbake'}, ['/OE/nodistro/honister/bitbake/bin/bitbake', '-k', 'zlib-native']]
Process Process-1:
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315, in _bootstrap
    self.run()
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 255, in run
    self.start()
  File "/OE/nodistro/honister/bitbake/lib/bb/asyncrpc/serv.py", line 144, in start_tcp
    self.server = self.loop.run_until_complete(server_coro)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 616, in run_until_complete
    return future.result()
  File "/usr/lib/python3.8/asyncio/streams.py", line 94, in start_server
    return await loop.create_server(factory, host, port, **kwds)
  File "/usr/lib/python3.8/asyncio/base_events.py", line 1463, in create_server
    raise OSError(err.errno, 'error while attempting '
OSError: [Errno 99] error while attempting to bind on address ('::1', 0, 0, 0): cannot assign requested address
90 22:30:39.530037 Command Completed
90 22:30:39.530913 Processing Client
90 22:30:39.531023 Disconnecting Client
90 22:30:39.531638 No timeout, exiting.
90 22:30:39.632137 Exiting
90 22:30:39.637562 Original lockfile contents: ['90\n']
90 22:30:39.638107 Exiting as we could obtain the lock

(Bitbake rev: c2cdda0e5fc720c60d3b8537fc702cb118981bd2)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 18:56:25 +01:00
Michael Halstead
961073a302 uninative: Upgrade to 3.4
This adds a patch to glibc which allows it to work with Docker and
clone3 syscall issues cased by EPERM vs ENOSYS.

(From OE-Core rev: 06d55ee67ef81a9f9da178b06bb797cc62881643)

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 18:48:47 +01:00
Michael Opdenacker
e6365c9f52 meta: stop using "virtual/" in RPROVIDES and RDEPENDS
Fixes [YOCTO #14538]

Recipes shouldn't use the "virtual/" string in RPROVIDES and RDEPENDS.

That's confusing because "virtual/" has no special meaning in
RPROVIDES and RDEPENDS (unlike in PROVIDES and DEPENDS).

Instead, using "virtual-" instead of "virtual/"
as already done in the glibc recipe.

(From OE-Core rev: 93ac180d8c389f16964bce8bd5538d9389e970e6)

Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 18:48:47 +01:00
Andrey Zhizhikin
1326991282 nativesdk-packagegroup-sdk-host: add perl integer module
Kernel commit 12dd461ebd19 ("crypto: arm64 - generate *.S by Perl at
build time instead of shipping them") uses perl to generate assembler
files for crypto functionality, which relies on the integer.pm module to
be provided.

Add perl module to package group and export it in SDK.

(From OE-Core rev: 9f4c95a874f6a463b7d56bacea9ba321e29499f9)

Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2021-09-01 18:48:46 +01:00