Richard Purdie [Fri, 26 Jun 2020 10:47:12 +0000 (11:47 +0100)]
pseudo: Switch to oe-core branch in git repo
We have a significant number of outstanding patches to pseudo. Rather than
queue these up as patches, create a branch in the upstream repo and use that
until such times as we have someone with the time/skills to properly review
these for master in the pseudo repo.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Nicolas Dechesne [Fri, 26 Jun 2020 12:29:30 +0000 (14:29 +0200)]
checklayer: parse LAYERDEPENDS with bb.utils.explode_dep_versions2()
LAYERDEPENDS is a string of this format:
"DEPEND1 (optional version) DEPEND2 (optional version) ..."
However when we parse LAYERDEPENDS in _get_layer_collections() we
parse it as a simple string, and if any optional versions are there the
'depends' field is wrong. For example, running yocto-check-layer
might result in such errors:
ERROR: Layer meta-python depends on (>= and isn't found.
ERROR: Layer meta-python depends on 12) and isn't found.
Let's use bb.utils.explode_dep_versions2() to parse LAYERDEPENDS, and
create a string that contains all dependencies, effectively
skipping/ignoring any optional versions.
[YOCTO #13957]
Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jason Wessel [Thu, 25 Jun 2020 17:17:10 +0000 (10:17 -0700)]
runqemu: If using a vmtype image do not add the -no-reboot flag
There is no way to use runqemu and turn off the no-reboot flag with a
command line argument. If someone really wants it back it can be
added with the qemuparams="" argument.
Also if you use the "halt -p" from user space, the qemu will exit when
it is complete. It is impossible to test self deploying image with
runqemu if you cannot reboot the device. One might argue that you can
run runqemu in a loop, but that defeats the purpose of having a
wrapper around a tool that already does what is needed in the first
place.
For the vmtype images, the -no-reboot flag should not be added.
Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: copyright years Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
License-Update: new firmwares, all redistributable Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop the do_compile_prepend logic as upstream now
handles it correctly.
License-Update: copyright years Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Refresh dropbear-disable-weak-ciphers.patch as some weak items
have been dropped upstream.
License-Update: curve25519 changed to public domain Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since 4.3 ffmpeg uses vsx-specific instructions, which aren't
available on older ppc machines (including qemuppc):
https://github.com/FFmpeg/FFmpeg/commit/3a557c5d88b7b15b5954ba2743febb055549b536
This disables using the instructions with an option to re-enable them
for vsx-capable targets.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Lili Li [Fri, 26 Jun 2020 05:45:56 +0000 (13:45 +0800)]
kernel.bbclass: Fix Module.symvers support
Starting from v5.8-rc1 commit 269a535ca931 (modpost: generate
vmlinux.symvers and reuse it for the second modpost"), kernel will
generate new vmlinux.symvers instead of dumping all the vmlinux symbols
into Module.symvers in the first pass.
Error log:
'run.do_shared_workdir.16614' failed with exit code 1:
DEBUG: cp: cannot stat 'Module.symvers': No such file or directory
This change will check the file Module.symvers existence before copying it.
Signed-off-by: Lili Li <lili.li@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Khem Raj [Fri, 26 Jun 2020 03:45:25 +0000 (20:45 -0700)]
rxvt-unicode: Disable wtmp on musl
This is not supported features on musl
Fixes
../../rxvt-unicode-9.22/src/../libptytty/src/logging.C:348:17: error: 'WTMPX_FILE' was not declared in this scope; did you mean 'WTMP_FILE'?
| 348 | updwtmpx (WTMPX_FILE, &utx);
| | ^~~~~~~~~~
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Trevor Gamblin [Tue, 23 Jun 2020 23:42:46 +0000 (19:42 -0400)]
python3-setuptools: patch entrypoints for faster initialization
setuptools' pkg_resources module has major performance issues with how
it loads entry points (e.g. the console_script entry point, which sets
up a module as a command-line executable), leading even the simplest
"hello world" scripts to take on the order of 150ms to run if
pkg_resources is incorporated. This is prohibitive for code that needs
to run quickly, and so we patch setuptools to reduce this time. As of
Python 3.7, importlib.resources is available and intended to replace
much of the functionality that causes this sluggishness, but since
many projects still utilize the legacy setuptools modules, a patch is
still required. Note that python3-fastentrypoints (which is available
in the meta-virtualization layer) is also intended to help alleviate
the problem, but since it must be added to existing projects it has
the same disadvantage as resorting to importlib.resources, requiring
manual additions to existing code to see the performance gains.
The intent here is to patch easy_install to load module entry points
directly with the installed setuptools, rather than importing
pkg_resources and having it search out the entry points itself. This
leads to a drastic performance improvement - the changes in this patch
have been shown to result in load time ~6-8x lower, depending on the
complexity of the code it is tested with. A simple "hello world"
example on core-image-full-cmdline gave these results with and without
the patch:
core-image-full-cmdline, without setuptools ScriptWriter patch:
root@qemux86-64:~# time /usr/bin/minimal
hello world
real 0m0.198s
user 0m0.174s
sys 0m0.023s
core-image-full-cmdline, with setuptools ScriptWriter patch:
root@qemux86-64:~# time /usr/bin/minimal
hello world
real 0m0.034s
user 0m0.024s
sys 0m0.010s
More details on the pkg_resources issue are available at:
https://github.com/pypa/setuptools/issues/510
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- CURLOPT_SSL_OPTIONS: optional use of Windows' CA store (with openssl) [10]
- setopt: add CURLOPT_PROXY_ISSUERCERT(_BLOB) for coherency [31]
- setopt: support certificate options in memory with struct curl_blob [41]
- tool: Add option --retry-all-errors to retry on any error [27]
This release includes the following bugfixes:
- CVE-2020-8177: curl overwrite local file with -J [111]
- CVE-2020-8169: Partial password leak over DNS on HTTP redirect [48]
- *_sspi: fix bad uses of CURLE_NOT_BUILT_IN [21]
- all: fix codespell errors [75]
- altsvc: bump to h3-29 [114]
...
See full changelog: https://curl.haxx.se/changes.html#7_71_0
Signed-off-by: Pierre-Jean Texier <pjtexier@koncepto.io> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
icu: make filtered data generation optional, serial and off by default
icu data generation was found to be racy, and causig AB failures;
making it serial and leaving it on is not an option as it regresses
to several minutes.
tools-profile: disable valgrind for powerpc soft-float
Since valgrind does not build for powerpc soft-float, disable it from
the tools-profile packagegroup so that it can still be enabled for such
architectures (but without valgrind of course).
Signed-off-by: Valentin Longchamp <valentin@longchamp.me> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Arthur She [Mon, 22 Jun 2020 14:49:55 +0000 (07:49 -0700)]
igt-gpu-tools: add new package
igt-gpu-tools is a collection of tools for development and testing of the DRM
drivers. (https://gitlab.freedesktop.org/drm/igt-gpu-tools)
This recipe is originally copied from meta-intel and added the following
modifications
1. Enable ARM architecture
2. Enable igt-runner
3. Build git HEAD code instead of a specific version
The original recipe in the meta-intel will be removed and replaced by
this one to avoid having a duplicate recipe.
It is applicable to be submitted to oe-core, because it provides
a core validation functionality that is needed by all providing DRM
drivers and not just to a single arch.
Signed-off-by: Arthur She <arthur.she@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Andrej Valek [Mon, 22 Jun 2020 17:33:07 +0000 (19:33 +0200)]
oeqa/runtime/cases/ptest: Make output content path absolute
The output content is created in current directory, because json content
has no defined absolute path to WORKDIR as in bitbake.
Signed-off-by: Andrej Valek <andrej.valek@siemens.com> Signed-off-by: Peter Marko <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 22 Jun 2020 21:52:35 +0000 (22:52 +0100)]
oeqa/utils/command: Improve stdin handling in runCmd
Occasionally we've been seeing leftover threads from runCmd. The stdin test
assumes we clean up all threads but the code assumes that the daemonic thread
can be left behind.
The issue can be reproduced by adding a time.sleep(10) to the end of
writeThread() which will mean it stays resident past the end of the command.
We may as well add it to the threads list and clean it up properly,
hopefully removing the race in the tests from the autobuilder.
[YOCTO #13055]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 22 Jun 2020 16:56:14 +0000 (17:56 +0100)]
pseudo: Fix attr errors due to incorrect library resolution issues
On a tumbleweed system, "install X Y" was showing the error:
pseudo: ENOSYS for 'fsetxattr'.
which was being caused by dlsym() for that function returning NULL. This
appears to be due to it finding an unresolved symbol in libacl for this
symbol in libattr. It hasn't been resolved so its NULL. dlerror() returns
nothing since this is a valid symbol entry, its just not the one we want.
We can add the glibc version string for the symbol we actually want so we get
that version rather than the libattr/libacl one. The calls in libattr are just
wrappers around the libc version so our attaching to the libc versions should
intercept any accesses via these too.
[YOCTO #13952]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jacob Kroon [Mon, 22 Jun 2020 11:43:43 +0000 (13:43 +0200)]
grub: Remove native version of grub-efi
The native version of grub-efi only installs the tools
/usr/bin/grub-editenv
/usr/bin/grub-mkimage
to sysroots-components/, but equivalent tools are already provided by
grub-native, the difference on x86_64 being 4 hardwired paths in grub-mkimage
(values taken from grub-native):
the produced grub-editenv/grub-mkimage binaries become binary equivalent,
assuming reproducible builds is active. Since the unpatched values of
LOCALEDIR/GRUB_DATADIR/GRUB_LIBDIR/GRUB_SYSCONFDIR point to directories that
are not expected to exist at runtime, they can be ignored.
Therefore:
* remove grub-efi-native and instead rely on the same tools from
grub-native
* replace references to grub-efi-native with grub-native
* remove unused grub-efi-native security flags overrides
Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Fri, 19 Jun 2020 09:11:12 +0000 (17:11 +0800)]
mime.bbclass: fix post install scriptlet error
fix error during post uninstall:
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): execv(/bin/sh) pid 78
+ '[' 0 = 0 ']'
+ set -e
+ '[' x '!=' x ']'
+ echo 'Updating MIME database... this may take a while.'
Updating MIME database... this may take a while.
+ update-mime-database /usr/share/mime
Directory '/usr/share/mime/packages' does not exist!
%postun(shared-mime-info-data-2.0-r0.4.corei7_64): waitpid(78) rc 78 status 100
warning: %postun(shared-mime-info-data-2.0-r0.4.corei7_64) scriptlet failed, exit status 1
when run post uninstall scriptlet, /usr/share/mime/packages has been
removed during unintall, while update-mime-database will check xml under
/usr/share/mime/packages.
workaround by create this dir before update, then remove it
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Fri, 19 Jun 2020 07:02:55 +0000 (00:02 -0700)]
systemd-serialgetty: do not use BindsTo
This unit was changed from 'BindsTo' in the following commit.
"""
commit f0f359ec9210759f6b4dbfb35d3fba8af208c43a
Author: Jason Wessel <jason.wessel@windriver.com>
Date: Thu Aug 29 07:00:31 2019 -0700
serial-getty@.service: Allow device to fast fail if it does not exist
"""
It was changed back to 'BindTo' in the following commit.
"""
commit 63bbff61b78c651339c4b18d8376187379ec3b3c
Author: Otavio Salvador <otavio.salvador@gmail.com>
Date: Fri Jun 12 14:30:44 2020 -0300
systemd: Sync systemd-serialgetty@.service with upstream
"""
This is now causing runtime problem for qemuarm64. The default.target
is not reached until a timeout. Output is like below.
"""
root@qemuarm64:~# systemd-analyze
Bootup is not yet finished (org.freedesktop.systemd1.Manager.FinishTimestampMonotonic=0).
Please try again later.
Hint: Use 'systemctl list-jobs' to see active jobs
root@qemuarm64:~# systemctl list-jobs
JOB UNIT TYPE STATE
102 getty.target start waiting
1 multi-user.target start waiting
95 systemd-update-utmp-runlevel.service start waiting
110 serial-getty@hvc0.service start waiting
111 dev-hvc0.device start running
"""
We can see that we are waiting for /dev/hvc0, while in fact there's no /dev/hvc0.
Jason's commit actually solves such problem.
So restore to use Jason's method. Do not use 'BindsTo'.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ovidiu Panait [Fri, 19 Jun 2020 19:25:50 +0000 (22:25 +0300)]
dbus,dbus-test: Move common parts to dbus.inc
dbus and dbus-test share the same source code and base configuration options,
so factor out the common parts into dbus.inc.
This way we can eliminate the need to keep the two recipes in sync. When they
are not properly in sync (e.g. when dbus recipe has extra patches/config
options that are not duplicated in dbus-test) ptest testsuite will actually
test a slightly different codebase. This is due to the fact that dbus-test does
not run the testsuite against the system libdbus library, but instead it
generates a local libdbus.so that needs to configured/compiled as close as
possible to the system one.
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Sakib Sajal [Fri, 19 Jun 2020 18:12:59 +0000 (14:12 -0400)]
qemu: uprev v4.2.0 -> v5.0.0
Major update after v4.2.
Changes:
- os_find_datadir() was changed after the v4.2 release
causing v5.0 to not find the bios and not boot the
image. Fix is sent to upstream qemu.
See: qemu/find_datadir.patch
- v5.0 binary had host contamination for dynamically linked
libraries, "--extra-ldflags='${LDFLAGS}'" in EXTRA_OECONF
resolved the issue
- bluetooth code was removed: qemu.git$ git show 1d4ffe8dc7
hence removed PACKAGECONFIG[bluez]
- -show-cursor qemu option is now deprecated, updated
scripts/runqemu to use updated option instead
- added PACKAGECONFIG definitions
- added qemu-ptest to conf/distro/include/ptest-packagelists.inc
- increased support for ARM architecture, cpu and board
- removed patches merged upstream and refreshed
existing ones
Testing:
Build core-image-minimal against the machines in
openembedded-core/meta/conf/machine and succesfully
booted with qemu v5.0
Ran qemu-ptest on x86-64 and arm64 with identical results:
PASS: 1166
SKIP: 0
FAIL: 0
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Joe Slater <joe.slater@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 18 Jun 2020 03:44:09 +0000 (20:44 -0700)]
dpkg-native: rebase and reinstate fix for "tar: file changed as we read it"
In OE-Core rev 8ee36a5f2f9367550d28bf271afc53bca6ff3d5f a patch was
added for dpkg to ignore a return of 1 from dpkg's calls to tar (which
indicates that files changed in some way while tar was operating) we
were observing failures on the autobuilder due to changes to link counts
in hard-linked file trees. The patch was subsequently rebased and then
later removed during an upgrade in 3812f58b3a438ae533c282170416cdd1681868e0 on the assumption that the fix
had been applied upstream, however that was not the case. I am now
occasionally seeing these errors in my builds without any apparent
material change to the files, so rebase and reinstate the patch.
Fixes [YOCTO #13913].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.microsoft.com>
Ross Burton [Wed, 17 Jun 2020 09:17:40 +0000 (10:17 +0100)]
gstreamer1.0-plugins-bad: add support for vdpau
libvdpau support was added to meta-oe by commit bf1de4db2 ("libvdpau:
Add recipe") in 2016. Therefore add a packageconfig for the
corresponding gstreamer plugin.
Based on a patch by Richard Leitner <richard.leitner@skidata.com>
Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
For example 'linux-gnueabi' is not what meson consumers expect: See canonical
table of OS names for Meson (thanks Ross). Surprisingly this did not pop up
earlier but wrong system-name can break building as described in [1]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tuomas Salokanto [Tue, 14 Jan 2020 10:49:17 +0000 (12:49 +0200)]
recipetool: create: fix SRCBRANCH not being passed to params
When explicitly passing a branch using --srcbranch in 'devtool add' or
'recipetool create', the branch name is not included in the params of
bb.fetch2.encodeurl and default 'master' branch is used instead.
Signed-off-by: Tuomas Salokanto <tuomas.salokanto@gmail.com> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tanu Kaskinen [Sun, 16 Feb 2020 06:26:29 +0000 (08:26 +0200)]
pulseaudio: remove unnecessary libltdl copying
This was added in 5df6deaa32e4f6d0a8985403970a137270491991. I don't know
what problem it solved at that time (2009-04-21), but it seems that
nowadays PulseAudio builds fine without copying the libltdl stuff.
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Jacob Kroon [Wed, 17 Jun 2020 06:28:55 +0000 (08:28 +0200)]
bitbake.conf: Remove TERM from default BB_HASHBASE_WHITELIST
Since BitBake commit 0d5cdd0c0d65f2f81c3af0f3767fee86c4142c3a
TERM is no longer preserved in the environment by BitBake, so there
should be no need to whitelist it by default.
Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rasmus Villemoes [Wed, 17 Jun 2020 08:52:14 +0000 (10:52 +0200)]
curl: add debug info
Currently, curl (and libcurl) is built without debug info, making the
curl-dbg package rather useless. Since debug symbols are automatically
stripped and put in that package by the build system, making sure that
curl is built with -g shouldn't hurt anything, but will help those
that try to debug a libcurl-using application and hence explicitly
include curl-dbg in their rootfs.
Unfortunately, setting --enable-debug then changes the default value
of the optimize option from (assume yes) to (assume no), while also
changing the default value of the curldebug option [which is a
separate thing that actually changes generated code to add some memory
tracking] from (assume no) to (assume yes). So explicitly pass the
appropriate options that make those two have the same value as they
used to have by default.
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Tue, 16 Jun 2020 18:12:42 +0000 (20:12 +0200)]
net-tools: backport a patch from upstream to use the same ifconfig format as debian/ubuntu
* this is needed for python3-ifcfg to parse it correctly
https://github.com/ftao/python-ifcfg/issues/43
* backport this single patch, so it can be backported to dunfell
then for master we should upgrade to new snapshot from debian
which includes other fixes and improvements as well
* this is already part of net-tools_1.60-26.diff from debian we're using
but it's first added there and then removed
$ grep 'sprintf(flags' net-tools_1.60-26.diff
++ sprintf(flags, "flags=%d<", ptr->flags);
+- sprintf(flags, "flags=%d<", ptr->flags);
Joshua Watt [Tue, 16 Jun 2020 14:39:17 +0000 (09:39 -0500)]
classes/archiver: Create patched archive before configuring
do_configure and do_preconfigure can modify source files, which causes
race conditions if these tasks run in parallel with do_ar_patched. Add
explicit task dependencies to ensure that do_ar_patched finishes before
these tasks start. Specifically, this fixes a race condition with
gcc-source where do_ar_patched races with do_preconfigure deleting
gcc/gengtype-lex.c
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Konrad Weihmann [Mon, 15 Jun 2020 20:26:56 +0000 (22:26 +0200)]
oeqa/runtime: Add OERequirePackage decorator
Add new decorator which behaves like OEHasPackage, but
fails the testcase if a dependency isn't met.
This helps to identify missing packages in the image
under test when using static test suite lists, otherwise
a missing package won't fail the overall test suite and
errors might slip through unnoticed
Signed-off-by: Konrad Weihmann <kweihmann@outlook.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Tue, 16 Jun 2020 01:51:05 +0000 (09:51 +0800)]
iptables: fix invalid symbolic link for ip6tables-apply
The iptables-apply is not installed which makes ip6tables-apply as an
invalid symbolic link:
$ ls -l /usr/sbin/ip6tables-apply
lrwxrwxrwx 1 root root 14 Jun 11 08:27 /usr/sbin/ip6tables-apply -> iptables-apply
$ ls -l /usr/sbin/iptables-apply
ls: cannot access '/usr/sbin/iptables-apply': No such file or directory
Backport a patch to fix the issue.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>