Richard Purdie [Sun, 3 Oct 2021 19:12:26 +0000 (20:12 +0100)]
reproducible_build: Work around caching issues
SOURCE_DATE_EPOCH can be expanded early in the parsing process before
the class extensions are applied. This can mean the directory pointed
to for the SDE can be incorrect until later in parsing. Cache the file
name in the cached value and allow it to dynamically update.
This isn't ideal but avoding expansion of the variable likely isn't
possible and I'm not sure how else to handle this. This works around
the issue until a better solution can be found.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 2 Oct 2021 08:33:18 +0000 (09:33 +0100)]
abi_version/sstate: Bump HASH_VERSION and SSTATE_VERSION
At this point the hash equivalence and sstate is 'junk' on the autobuilder
unforuntately due to the volume of fixes and also the volume of slighly
not quite right patches tested during the development of the fixes.
In order to try and help any remaining sanity I might have, bump the
version numbers to start with a clean slate so we're working from a known
good baseline rather than risk chasing phantom issues. For those
upgrading, there wouldn't be much reuse anyway after the changes.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 29 Sep 2021 14:02:08 +0000 (15:02 +0100)]
sstatesig: Add processing for full build paths in sysroot files
Some files in the populate_sysroot tasks have hardcoded paths in them,
particularly if they are postinst-useradd- files or crossscripts.
Add some filtering logic to remove these paths.
This means that the hashequiv "outhash" matches correcting in more
cases allowing for better build artefact reuse.
To make this work a new variable is added SSTATE_HASHEQUIV_FILEMAP
which maps file globbing to replacement patterns (paths or regex)
on a per sstate task basis. It is hoped this shouldn't be needed
in many cases. We are in the process to developing QA tests which
will better detect issues in this area to allow optimal sstate
reuse.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 21 Sep 2021 10:55:44 +0000 (11:55 +0100)]
externalsrc: Fix a source date epoch race in reproducible builds
When reproducible builds are enabled and externalsrc is in use, the
source date epoch function is added. The conditions on the conditional
code removing the unpack task need to match the deltask function, else
the source date epoch function can end up running twice and the functions
can race with each other causing build failures or corruption.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 4 Oct 2021 08:49:44 +0000 (09:49 +0100)]
bitbake.conf: Set vardepvalue for PARALLEL_MAKEINST
If you leave PARALLEL_MAKEINST at its default from PARALLEL_MAKE,
sstate checksums are fine and don't change as the number of cores do.
If you override it to a specific value, this does the cause the sstate
checksums to change. We don't want the checksums to change if the
value of this variable differs.
Therefore set a vardepvalue so a specific value is used for checksum
purposes.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kristian Klausen [Tue, 28 Sep 2021 12:44:16 +0000 (14:44 +0200)]
wic/bootimg-efi: Add Unified Kernel Image option
"A unified kernel image is a single EFI PE executable combining an EFI
stub loader, a kernel image, an initramfs image, and the kernel command
line.
[...]
Images of this type have the advantage that all metadata and payload
that makes up the boot entry is monopolized in a single PE file that can
be signed cryptographically as one for the purpose of EFI
SecureBoot."[1]
This commit adds a create-unified-kernel-image=true option to the
bootimg-efi plugin for creating a Unified Kernel Image[1] and installing
it into $BOOT/EFI/Linux/ with a .efi extension per the the Boot Loader
Specification[1][2]. This is useful for implementing Secure Boot.
systemd-boot is the only mainstream bootloader implementing the
specification, but GRUB should be able to boot the EFI binary, this
commit however doesn't implement the necessary changes to the GRUB
config generation logic to boot the Unified Kernel Image.
We have an issue where x86 host builds are not matching hashes with
aarch64 host builds. We'd expect that for a given target, the target
artefacts should work regardless of the host architecture, compiler
version etc. but this isn't happening and the hashes are differing.
This is due to issues from hash equivalence.
I believe the commit being reverted was added as a test and there were
other fixes at the time which resolved these issues.
As illustration of that, different gcc versions are not cauing issues
with hash equivalence. That should be similar to the aarch64 case vs.
x86-64 and hence if we're not seeing gcc verison issues, we also don't
need this special case. As such, revert it as we don't need it and it
is in fact breaking sstate reuse cross platform.
[YOCTO #14578]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 29 Sep 2021 12:31:26 +0000 (13:31 +0100)]
rpm: Ensure compression parallelism isn't coded into rpms
We don't want the compression thread numbers to be encoded into the rpm
since this results in the rpm not being deterministic. Add a patch
from Alex Kanavin which addresses this issue (was queued for rpm 4.17
but we need to fix this with 4.16 too).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Thomas Perrot [Thu, 30 Sep 2021 14:04:24 +0000 (16:04 +0200)]
ruby: fix the reproducibility issue
Apply some changes on the Ruby makefiles in order to fix the reproducibility:
- use a fixed timestamp,
- sort linked objects,
- doesn't use the current date,
- and use UTC date.
[YOCTO #14268]
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixes the reformatting of the sysconfigdata to be reproducible in the
sysroot as well as in the package. During this a bug was uncovered in
the way that the data was reformatted where it appears that python
cannot parse a single line of code over 40000 characters. To work around
this, pass a maximum with of "1" to pprint instead of sys.maxsize which
will cause it to wrap as often as possible and should keep it
reproducible.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Implemented decoding of memfd_secret and quotactl_fd syscalls, introduced in Linux 5.14.
Enhanced prctl syscall decoding.
Enhanced decoding of IFLA_* netlink attributes.
Enhanced decoding of MDBA_ROUTER_PATTR_* mdb router port netlink attributes.
Updated lists of BPF_*, IORING_*, MADV_*, MOUNT_ATTR_*, SCTP_*, and UFFD_* constants.
Updated lists of ioctl commands from Linux 5.14.
Bug fixes
Fixed build using bionic libc.
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Anibal Limon [Mon, 27 Sep 2021 18:58:46 +0000 (13:58 -0500)]
recipes-support/ptest-runner: Bump to v2.4.2
Changes,
bcb8280 utils.c: add system data collection when a test gets stuck. c29240c utils.c: handle test timeouts directly with poll() d6f509f tests/utils.c: fix a memory corruption in find_word c10e747 main: Do not return number of failed tests when calling ptest-runner 4958988 utils.c: fix memory leak in run_ptests() fcfa6a1 clang: clean-ups to avoid -Weverything warnings. 215e52d Makefile: allow using CC env var to pick compiler fdd233d mem: Simplify memory management e5e218a mem: Fix memleak for ptest_opts 0dc42eb git: Extend the gitignore
Signed-off-by: Aníbal Limón <anibal.limon@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This makes it possible to name files starting with a hyphen in the work
directory. Without this change rm will fail due to an unexpected option
being passed.
Signed-off-by: William A. Kennington III <wak@google.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
create-spdx: Use SPDXAnnotation to track native recipes
Create a small function that checks for 'isNative' as part of an Annotation
When the collect_dep_sources() runs, it collects sources from both native
and non-native recipes. Later when the GENERATED_FROM matching occurs it
may find the file (via checksum) from the native recipe since it's the
same checksum as the target file. The that are generated DocumentRefs
point to the native recipe rather than the target recipe DocumentRef.
Signed-off-by: Saul Wold <saul.wold@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
package_ipk: Use localdata store when signing packages
When signing a package, we were resolving the `PKGV` version using the
original data store (`d`). However, since that store does not have the
package name in its `OVERRIDES` list the wrong version can be returned in
recipes that produce multiple packages. One such example would be
`external-arm-toolchain.bb`.
The above issue is fixed by using `localdata` instead of `d` when
resolving the needed variables.
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@verkada.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 27 Sep 2021 09:58:08 +0000 (10:58 +0100)]
glew: Stop polluting /tmp during builds
Currently the glew code creates a new directory in /tmp for each make
invocation. This is a bit ugly, don't do that. The patch does break the
dist targets but we don't use them.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The grep pattern seems to have been wrong ever since we stopped adding
the -ffile-prefix-map via a patch in commit 20aea61385e, because the
actual upstream gcc produces
-ffile-prefix-map=<old>=<new>
and not
-ffile-prefix-map=<old=new>
Besides, these *-prefix-map options are already used when building the
kernel due to the setting of KERNEL_CC, and the kernel build system
itself also probes for and uses at least -fmacro-prefix-map (hence
taking care of __FILE__ etc., but not necessarily things that go in
.debug_info sections).
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Matt Madison [Sat, 25 Sep 2021 11:00:38 +0000 (04:00 -0700)]
autotools.bbclass: use ordinary append for file-checksums update
Commit 29daffc2410f06f36b779d5bf1fd1ef6e900ca8f added an
anonymous python function to append the site file dependencies
for do_configure. This causes any recipe that inherits allarch
after autotools to end up with a different set of file checksums
for each machine, since the anonymous python would get processed
before the TARGET_ARCH changes in allarch.
Use an ordinary += assignment to fix this.
Signed-off-by: Matt Madison <matt@madison.systems> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Fri, 24 Sep 2021 15:10:15 +0000 (11:10 -0400)]
linux-yocto/5.13: drop recipes
5.13 is EOL upstream, and we've moved to 5.14 for the release, so
we drop the versioned recipes. The kernel tree and branches will
stay available for use, but other layers must create recipes if
they wish to continue with 5.13.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Fri, 24 Sep 2021 15:10:13 +0000 (11:10 -0400)]
lttng-modules: fix build against 5.15+
When testing linux-yocto-dev 5.15-rc, lttng-modules fails to build.
Upstream already has fixes for 5.15 in the release branch, so we
backport the two patches here and we can drop them on the next version
bump.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Sun, 26 Sep 2021 03:16:42 +0000 (11:16 +0800)]
inetutils: fix CVE-2021-40491
CVE-2021-40491:
The ftp client in GNU Inetutils before 2.2 does not validate addresses
returned by PASV/LSPV responses to make sure they match the server
address. This is similar to CVE-2020-8284 for curl.
Bruce Ashfield [Wed, 22 Sep 2021 17:53:51 +0000 (13:53 -0400)]
systemtap: update to 4.5-latest
To fix issues with 5.14+ kernels, we bump to the latest 4.5 systemtap.
This means that we can drop a backported patch, and we pickup the
following changes:
7f6992539 Correct RISC-V handling of SDT markers and document their format. 2dfd140fd Fix races in perf probe task finder callback f463f6053 The /* pc=0x... */ is no longer printed by "stap -v -L 'kernel.function("*")' 0bd97a806 Use task_state tapset function to avoid task_struct changes 4996a29c6 tapset: start adopting kernel netif_* tracepoints in netdev.* tapset fb0851e62 dwflpp.h: add conditional EM_RISCV define c5599df8e Add dwarfless register access for RISC-V 33d861435 Add bactrace support for RISC-V 2ae3fc866 RISC-V dwarf register number to pt_reg mappings 3df603720 Eliminate the sa_restorer field in sigaction struct for RISC-V. a6aff9d33 Avoid generating problematic asynchronous unwind tables on RISC-V a463860c3 Add RISC-V 64-bit processor support 8486fd78d Add the actual RISC-V syscall-number mappings to the tapsets. 1e383aa38 Add creation of mappings between syscall names and numbers for RISC-V aedb2dbe7 RISC-V doesn't have crash available, disable it for rpmbuilds. 33a9bf1a1 Update to newer config.guess to support RISC-V 3bca17469 Use lex_cast instead of to_string when shortening function names. 0b5bc934a Revert "runtime: unregister the control channel before cleaning up" 166a95089 runtime: fix panics when polling on the control channel while unloading e6a1b008b Shorten function names that will exceed the kernel's objtool limit of 128 4f54ba033 runtime/transport: add a comment blurb for ordering invariant at shutdown dbe08f1ac runtime: unregister the control channel before cleaning up 798a67290 bpf pr23478 :: test non-unique key/val iteration 079f5d708 bpf pr23478 :: test multi-key associative array iteration 70b24879d rhbz1938312: un-disable bpf.exp after kernel bugfix 2896d6f5a pr23478 WIP: fixes for existing foreach testcases 0d1a38dbc pr23478 WIP: rework bpf foreach to handle multi-key array 14a2c8f54 Run task_fd_lookup.exp with --compatible 4.0 f2c147767 PR28184: Adapt to kernel rename __fcheck_files to files_lookup_fd_raw 0581a6560 PR28184: Adapt to kernel rename __fcheck_files to files_lookup_fd_raw 559fd51fe testsuite: time-limit auxiliary child processes 5d89bb03e stapbpf bugfix: missing in_block() in try-catch code 04b43f48f releng: ditch custom pie/ssp CFLAGS engine in configure.ac b47d03c20 PR28079: Adapt to kernel 5.14 task_struct.__state change e66f3a83b runtime: adapt to -Werror=implicit-fallthrough=5, dyninst runtime ea00c1070 PR28140: kernel 5.14-rc adaptation, jump_label_patch ffb0a38ea runtime: adapt to -Werror=implicit-fallthrough=5 efba2178f Revert to using test_tsk_thread_flag for uprobes2 23db8b29f PR27984: Adjust the address so dwfl_module_addrinfo finds correct function name a29f65d57 PR28079: Adapt to kernel 5.14 task_struct.__state change 2f7e966c0 testsuite item typo fix 5abb4d130 PR27934: give fuller diagnosis for pass-5 probe-registration errors 371805aa0 PR27820 tapset/bpf/logging.stp: implement abort() tapset function ee361f183 PR27820 tapset/bpf/logging.stp: move bpf versions of functions 968173f7f runtime: linux 5.14 compat: <linux/panic_notifier.h> ef5a8b9ed runtime: fix unintended compile error with autoconf-x86-uniregs.c 84ef6bd9f Revert "systemtap.spec: don't buildrequire emacs" 65fc44163 spin-rawhide: ok tweak the git-archive top level path too c7f1c12e1 spin-rawhide: switch to ~ versioning for Source: file names too bff2b2ff5 spin-rawhide: switch to ~ versioning for n-v-r 7c2751e37 task_finder_vma: add autoconf check for hlist_add_tail_rcu() ea7c27bbe Don't fail vma tracking mmap callback if module is already known. 2eb7fdfdb Use the path instead of the module for vma tracking mmap callback. a5104a612 update READMEs + man pages for freenode -> oftc move 23c351645 Update list of reasons for latencytap.stp example 5409ddea1 rhbz1972805: add basic syscall-in-ptregs support for s390x 0fc73fc4e systemtap.spec: don't Require: libvirt 515a6a2d6 rhbz1972828: tapsets: iommu tracepoints eaf63df6a ppc64 runtime: FULL_REGS() gone 757d4f654 c++ buildability: util.cxx - unique_ptr 1a6e7aea7 systemtap.spec: don't buildrequire emacs 5ff28c970 Allow for adjacent segments belonging to different modules. b1e8cd5de Note that Python is a requirement. 27115ab4c Get the enumerator's enumeration type 1288bee31 testsuite/systemtap.base/perf.sh drop bashism 4755bc453 Add hlist macros for use by hlist_add_tail_rcu bccf5123f parse.cxx: Initialize functioncall synthetic field 9bbee6518 Add hlist_add_tail_rcu for rhel 6. 630e406b8 Don't assume ISO C99 4a3ad3532 Extend vma mapped entries when the address is adjacent. 294b7a53e stap-prep: switch to using main vmlinuz file as debuginfod test download 643351d22 PR27903: grok more glibc dwarf 3a843482a c++11 hygiene: use cxx_override macro for pre-4.7 g++ 3e9bcd7b1 Fix more -Wformat-nonliteral and -Wmismatched-tags when compiling with clang 8e5145ae4 dtrace: Use -o option to specify output file for CPP b3a392975 Fix -Wformat-nonliteral and -Wformat warnings with clang 545535f82 Fix -Woverloaded-virtual warnings when building with clang 0f4bd3219 set2: Return this from assignment operator 6de815bca Add missing copy constructors to set1_ref and set1_const_ref 930b54119 Add some override specifiers where missing 14f04522b util.cxx: Use abs() instead of labs() 13016e9dd systemtap.spec: python3 tweaks 494ece199 PR27864: tolerate loc_unavailable during loc2c transform e8f5c058f autoconf: version bumps for the next release-4.6 77abac91d version bumps for the next release-4.6 0eba8a46b NEWS: release-4.5
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Wed, 22 Sep 2021 17:53:50 +0000 (13:53 -0400)]
linux-yocto: introduce 5.14 reference kernel
Each release of the kernel is not typically used as a versioned
reference kernel, but since 5.13 has gone EOL upstream and was
never part of a release, we take the opportunity to udpate our
reference to 5.14.
5.13 will be removed in subsequent commits, once all dependent
BSPs and layers have been updated.
No issues were found across all architectures, images in qemu
boot testing.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Thu, 23 Sep 2021 07:45:16 +0000 (15:45 +0800)]
lttng-ust: fix do_compile error when PACKAGECONFIG examples is enabled
when PACKAGECONFIG enabled examples, compile failed with error:
fix below compile error during PACKGAGECONFIG examples is enabled:
tmp/work/corei7-64-wrs-linux/lttng-ust/2_2.13.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/11.2.0/ld: warning: liblttng-ust-common.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link)
tmp/work/corei7-64-wrs-linux/lttng-ust/2_2.13.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/11.2.0/ld: warning: liblttng-ust-tracepoint.so.1, needed by ../../../src/lib/lttng-ust/.libs/liblttng-ust.so, not found (try using -rpath or -rpath-link)
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Fri, 10 Sep 2021 11:39:44 +0000 (12:39 +0100)]
oeqa/selftest: Add tests for bitbake shell/python task output
We've seen issues where shell/python tasks lose their log file entries
or output and also where output is duplicated. Add some tests to attempt
to spot regressions in this area in future.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 21 Sep 2021 10:12:05 +0000 (11:12 +0100)]
ssate: Cleanup directtasks handling
There are several tasks which should only be triggered by direct
dependencies. Some are listed in the dep loop, some are not. They
should all be in both cases.
Fix this by making a list and using the list in both cases to fix
various inconsistencies.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 15:21:34 +0000 (16:21 +0100)]
sstate: Ensure deploy tasks don't pull in toolchains
If an image is built from sstate, the cross toolchain was being pulled in.
This was due to the sstate dependencies for deploy tasks not being considered
in the "depvalid" logic.
do_deploy tasks do not need their populate_sysroot dependencies when installed
from sstate so skip these. This reduces the sstate pulled in by an image
build from sstate significantly.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 20 Sep 2021 07:28:42 +0000 (08:28 +0100)]
staging: Mark deploy an sstate task
Deploy is a tricky task as it isn't in SSTATETASKS as it isn't always
present. We do need to ensure dependency chains around do_deploy tasks
are correctly handled as sstate tasks though. For now add to the list of
sstate tasks manually (like the other locale task reference).
Without this, missing manifest files could be reported now that do_deploy
tasks no longer have their dependencies added by the depvalid function.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 12:56:12 +0000 (13:56 +0100)]
meta: Drop useless class
This class was added by me back in 2007 and has changed one for a whitespace issue
since. It only has two lines and neither are particularly useful, one was replaced
by the nopackages class, the other adding recursive dependencies also is now
mainly problematic adding tons of unneeded dependencies. The name is hard to
understand and the class doesn't have a clear purpose. Drop it.
Remove the references in devtool (which may be the one reason to keep it around
but in my view still not worth it).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 12:55:44 +0000 (13:55 +0100)]
buildtools-tarball/uninative-tarball/meta-ide-support: Drop useless meta class
The class adds an emtpy PACKAGES setting but most code now uses the
nopackages class which is much clearer. It also adds recursive do_build
dependencies which don't really serve any useful purpose any more.
Simplify the code and drop the class use.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 12:51:50 +0000 (13:51 +0100)]
populate_sdk_base/images: Drop use of 'meta' class and hence do_build dependencies
The 'meta' is old and not very useful. It empties PACKAGES and creates
recursive do_build dependencies.
We shouldn't need such recursive build dependencies any more so simplify the code.
This does cause behaviour changes as some dependencies are no longer built.
It did show up issues with qemu-helper-native handling for example but those
issues look like real races and the underlying dependency chains were not correct.
'bitbake XXX --runall build' would give the previous behaviour.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 10:52:23 +0000 (11:52 +0100)]
package_ipk/deb/rpm: Drop recursive do_build task dependencies
This is a controversial change which removes the recursive dependencies
from the do_build target of packaging tasks of recipes.
Currently this means when you "bitbake <image>" or "bitbake <recipe>",
the packaging tasks run for all packaging backends enabled for all recipes
in the dependency chain. The same therefore then applies to images.
We don't actually need that, it is a convinience thing. Removing it
massively simplifies the task graph and causes much fewer tasks to execute
in many common scenarios. It also means less sstate is fetched for
example when building an image.
This means when building a recipe all package formats would be built
but when building an image, only the format used by the image would be
generated. This should be an improvement in most cases but some CI systems
may need to be explict about what they're building.
'bitbake XXX --runall build' would give the previous behaviour.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Tue, 21 Sep 2021 11:47:02 +0000 (12:47 +0100)]
siteinfo/autotools: Ensure task checksums reflect site files
Currently, if you change the site files, nothing rebuilds since they are
not accounted for in task checksums. They could/should be through the
file-checksums task flag. We need to cache all the files looked for,
whether the exist or not so that if they do exist and didn't,
the checksum also changes.
This gets complicated by the need to clean out hardcoded build
paths from the variable and that other layers can have site files.
This patch adds this functionality. A new variable, SITEINFO_PATHVARS
is added which controls which substitutions to make on the file-checksum
values to remove the hardcoded paths. Layers adding site files will need
to set this to a variable that has the layer path in it and is excluded
from task hashes (COREBASE is the one the core layer uses).
This patch will cause yocto-check-layer to fail for some layers
where site files are added yet the layer isn't a machine specific layer.
This is arguable correct since these additional site files apply to
all recipes and things from a layer like core could be changed by such
changes so it is right they should rebuild. There is a determinism issue
potentially there if not. meta-openembedded does have some such references
but looking at them they should move to core or likely just be removed as
most look obsolete anyway.
[YOCTO #13729]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 17:03:48 +0000 (18:03 +0100)]
image/qemu: Add explict depends for qemu-helper addto_recipe_sysroot task
The populate_sysroot task isn't enough for qemu-helper-native, we need
it's addto_recipe_sysroot task. This corrects what amounts to bad
dependency information to be explicit.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 22 Sep 2021 17:24:54 +0000 (18:24 +0100)]
scripts/oe-publish-sdk: Disable git gc to avoid build errors
I've puzzled over why I see local eSDK test failures. It is due to having a
messy git tree locally, git then runs git gc in the background which races
against the deletion code for the publish test. Disable git gc to avoid this.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 20 Sep 2021 20:26:02 +0000 (21:26 +0100)]
cross: Drop unused do_install
All the users of the cross class I could find redefine the do_install
function. It is unusual and likely undesirable for the class to be
changing this from the default and likely a leftover from different
times. Remove it as it isn't doing anything.
[YOCTO #9272]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Mon, 20 Sep 2021 15:11:57 +0000 (17:11 +0200)]
qemu-native: add direct dependency on ninja-native and meson-native
* with many native dependencies excluded in:
layer.conf: Extend recipes not to install without explict dependencies
this was now failing with:
ERROR: Cannot find Ninja
and after adding ninja-native to DEPENDS it was failing due to missing meson as well:
/OE/build/oe-core/tmp-glibc/work/x86_64-linux/qemu-native/6.0.0-r0/qemu-6.0.0/configure: 6415: --version: not found
/OE/build/oe-core/tmp-glibc/work/x86_64-linux/qemu-native/6.0.0-r0/qemu-6.0.0/configure: 6418: setup: not found
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sun, 19 Sep 2021 10:55:49 +0000 (11:55 +0100)]
lttng-tools: Add missing DEPENDS on bison-native
This was being provided by other pieces of the dependency chain but is
specifically required by configure and could fail if those pieces come
from sstate. Fix such builds by adding the missing dependency.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
testimage: symlink the task log and qemu console log to tmp/log/oeqa
This makes it easier for the AB scripts (particularly, collect-results)
to access and archive these items, as they can contain useful information
when ptests or other qemu tests fail (and also if they don't fail).
[YOCTO #14518]
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kai Kang [Fri, 17 Sep 2021 13:14:38 +0000 (21:14 +0800)]
rust-common.bbclass: make sure ccache exist
It fails to run task rust_create_wrappers of recipe which inherit
rust-common.bbclass such as rust-hello-world if no host ccache exists:
| DEBUG: Executing shell function do_rust_create_wrappers
| /path/to/project/tmp-glibc/work/core2-64-wrs-linux/rust-hello-world/git-r0/temp/run.do_rust_create_wrappers.3422:
line 179: ccache: command not found
Run task rust_create_wrappers before do_prepare_recipe_sysroot to make
sure required tools such as ccache exist.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The corrected line accidentally converted it to float,
which causes problems later on with python 3.10:
| File "/home/alex/development/poky/scripts/lib/wic/partition.py", line 278, in prepare_rootfs_ext
| os.ftruncate(sparse.fileno(), rootfs_size * 1024)
| TypeError: 'float' object cannot be interpreted as an integer
Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Claudius Heine [Fri, 17 Sep 2021 08:08:04 +0000 (10:08 +0200)]
rng-tools: add systemd-udev-settle wants to service
rngd needs to start after `systemd-udev-settle` in order for the kernel
modules of the random source hardware to be loaded before it is started.
However, since the `rngd.service` does not require or want
`systemd-udev-settle.service` it might not be scheduled for start and
the `After=systemd-udev-settle.service` there has no effect.
Adding `Wants=systemd-udev-settle.service` provides a weak requirement
to it, so that the `rngd` is started after it, if possible.
Signed-off-by: Claudius Heine <ch@denx.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jon Mason [Thu, 16 Sep 2021 22:20:06 +0000 (18:20 -0400)]
machine/qemuarm*: use virtio graphics
Switch to using virtio graphics for the Arm QEMU machines. You will
noticed the difference in the dmesg by seeing:
[ 2.693337] [drm] pci: virtio-gpu-pci detected at 0000:00:10.0
Signed-off-by: Jon Mason <jdmason@kudzu.us> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mark Hatle [Thu, 16 Sep 2021 17:50:43 +0000 (12:50 -0500)]
tcf-agent: Move to the latest master version
There has not been a release since 2018, the 1.7.0 release. A number of
recent improvements around thumb and clang debugging prompted this move
to a newer version.
The patch is no longer necessary as it was a backport patch.
Signed-off-by: Mark Hatle <mark.hatle@kernel.crashing.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Konrad Weihmann [Thu, 16 Sep 2021 11:02:46 +0000 (13:02 +0200)]
expat: pull from github releases
sometimes we can find release tarballs from sourceforge are not fully
distributed along all download mirrors leading to fetching faiilures,
depending on what download mirror will be chosen by sourceforge
servers.
As the project moved to github anyway, it's better to pull the tarballs
directly from github releases - serving the very same static artifacts.
Add an override UPSTREAM_CHECK_URI to enable devtool upgrade checks
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
hello-mod/hello.c: convert to module_init/module_exit
Switch away from the old init_module/cleanup_module function names for the
main entry points. Change them to the documented method with module_init()
and module_exit() markers next to static functions.
Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>