Manjukumar Matha [Wed, 20 Feb 2019 18:29:06 +0000 (10:29 -0800)]
kernel-fitimage.bbclass: Introduce a way to provide external dtb
Currently kernel-fitimage gets the dtb from KERNEL_DEVICETREE, however
there are instances when the DTB file can be generated using other
recipes, provide a way to include the DTB instead of inkernel device
tree.
Add support for external device tree during the creation of fitimage. If
virtual/dtb is set using PREFERRED_PROVIDER_virtual/dtb = "devicetree", which
inherits the devicetree.bbclass then use the path provided in
EXTERNAL_KERNEL_DEVICETREE else use KERNEL_DEVICETREE during fitimage process
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mike Crowe [Sun, 24 Feb 2019 21:00:52 +0000 (21:00 +0000)]
glibc: Install AArch64 loader link correctly for usrmerge+multilib
The AArch64 little-endian ABI requires that the dynamic loader is always
available at /lib/ld-linux-aarch64.so.1. Similarly, the big-endian ABI
requires that the dynamic loader is always available at
/lib/ld-linux-aarch64_be.so.1.
glibc-package.inc contains code that tries to ensure this, but
unfortunately it is defeated by the combination of multilib and usrmerge
because it does not take into account that /lib is the same as /usr/lib
with usrmerge when it adds the loader path to libc_baselibs and when it
attempts to show that /usr/lib is empty in do_poststash_install_cleanup.
This results in the symlink not being included in the package and a build
failure due to rmdir failing.
Richard Purdie also suggested[1] that ${nonarch_base_libdir} should not be
used as a synonym for /lib in this case.
This hopefully-fixed version always sets ARCH_DYNAMIC_LOADER and then uses
${root_prefix}/lib/${ARCH_DYNAMIC_LOADER} to refer to the dynamic loader
which works with both multilib and usrmerge. Since ARCH_DYNAMIC_LOADER is
only non-empty if the symlink is required, the code to create it can move
to do_install_append. Then do_poststash_install_cleanup needs to be taught
that ${exec_prefix}/lib may not be empty if the dynamic loader symlink is
there.
It appears not to be possible to specify the name of the loader via a
variable with an override, since the _aarch64 override is applied even for
_aarch64-be, so I've set the loader name using ${TARGET_ARCH} instead.
Build-tested and inspected core-image-minimal rootfs with:
* AArch64 no multilib (real loader in correct place)
MACHINE = "qemuarm64"
* big-endian versions of all of the above by also setting
DEFAULTTUNE = "aarch64_be".
(building glibc only.)
* x86_64 (real loader in /lib as before)[2]
MACHINE = "qemux86"
* x86_64 multilib (real loader in /lib64 as before)
MACHINE="qemux86-64"
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
require conf/multilib.conf
I also tested leaving an unwanted file in ${exec_prefix}/lib for
do_poststash_install_cleanup to detect, and I believe the detection always
worked correctly.
The two patches have now been upstreamed. Apart from those changes, the
only thing that changed was the hwmixvolume tool, which got ported from
PyGTK to PyGObject, and from GTK 2 to GTK 3.
When testing hwmixvolume, I found that it depends on pyalsa, which has
not been packaged for OE. I believe hwmixvolume has never worked on OE.
It certainly didn't work before this patch, trying to build it failed
due to python-pygtk not being available. Even if python-pygtk was
available at some point in the past, hwmixvolume has always used pyalsa,
but the alsa-tools recipe has never had that dependency declared.
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Daniel Díaz [Mon, 25 Feb 2019 22:02:52 +0000 (16:02 -0600)]
ltp: Add patch for string formatting security warning
A revamp of the syscalls/setregid tests made to use a new
library [LTP:7a1b4427] required a conversion to test messages.
This test in particular did not include a formatted string,
but a just a string element:
testcases/kernel/syscalls/setregid/setregid01.c
This patch allows LTP to be built with -Wformat,
-Wformat-security, and -Werror=format-security.
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Serhey Popovych [Sat, 12 Jan 2019 10:11:52 +0000 (12:11 +0200)]
libgpg-error: Support build for native on ppc host
In Ubuntu 16.04 LTS userspace is build for PowerPC 32-bit while kernel
selected by the installer depending on PowerPC machine type:
* 32-bit for PowerMac G4 (ppc7400) and below
* 64-bit for PowerMac G5 and above
Thus uname(2) returns ppc64 for 64-bit kernels and 32-bit userspace
making build impossible due to missing some of lib64 multilib
equivalents in Ubuntu repository.
Using setarch(8) override to make whole host look as PowerPC 32-bit
can actually help with build but requires mapping for ppc target to
their libgpg-error equivalent to fix native build.
Build tested on Ubuntu 16.04 LTS host on PowerMac G5 with command:
Serhey Popovych [Sat, 12 Jan 2019 09:22:50 +0000 (11:22 +0200)]
valgrind: Mark powerpc64 with musl as incompatible
Building musl for powerpc64 enforces elfv2 ABI since commit 68c964185519
("arch-powerpc64.inc: Use elfv2 ABI when building with musl") that is
not compatible with valgrind.
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Serhey Popovych [Sat, 12 Jan 2019 09:22:47 +0000 (11:22 +0200)]
systemd: Correctly check ENABLE_GSHADOW with if/endif
Use commit 4f07ffa8f5ab ("Use #if instead of #ifdef for ENABLE_GSHADOW")
from upstream to check ENABLE_GSHADOW correctly that is defined as 0
in case of musl.
While there replace specific patch with one from upstream that does
exactly the same commit 66a5b5ce9b99 ("basic/user-util: properly protect
use of gshadow").
Signed-off-by: Serhey Popovych <serhe.popovych@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Wed, 20 Feb 2019 08:54:20 +0000 (16:54 +0800)]
libsndfile1: Security fix CVE-2018-19432
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tom Rini [Fri, 8 Feb 2019 18:09:01 +0000 (13:09 -0500)]
local.conf.sample.extended: Mention shadow-base for login_manager for systemd
While not strictly required, list shadow-base as the example to use for
VIRTUAL-RUNTIME_login_manager when configuring for systemd. This
provider matches what is found in for example Debian and is also one of
the non-intuitive VIRTUAL-RUNTIME alternatives, so it's good to have an
example in use somewhere.
Signed-off-by: Tom Rini <trini@konsulko.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Drop 0001-Disable-tests-in-native-builds.patch as upstream has fixed the issue.
Rework 0001-Fix-a-couple-of-decisions-around-cross-compilation.patch to
enable generation of loaders.cache in target builds (using a native tool),
because otherwise building tests becomes impossible.
Rework 0002-Work-around-thumbnailer-cross-compile-failure.patch into
0003-target-only-Work-around-thumbnailer-cross-compile-fa.patch
(which deals with substituting native tools in cross builds) and
0004-Do-not-run-tests-when-building.patch (which avoids running
test binaries during cross builds).
Rebase fatal-loader.patch.
License checksum updates as COPYING file had 2.0 version of LGPL and
has been replaced with 2.1 version.
Take meson's x11 and installed_tests options into use.
Install gdk-pixbuf-query-loaders also into $bindir, as we need the native
version during cross compile.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Until now an unoffcial mirror was used, which may or may not
be maintained in the longer run, as the need for it has gone.
Also, the official mirror has version tags which allows us
to track upstream development in an automated manner.
${S} has changed as upstream decided to use a monorepo for all
of the llvm-related projects.
Further info:
https://www.phoronix.com/scan.php?page=news_item&px=LLVM-GitHub-Mono-Repo
https://llvm.org/docs/GettingStarted.html#checkout-llvm-from-git
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This patch has been refreshed:
* 0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch
These patches have been dropped as they have been merged:
* 0001-netns_helper.sh-use-ping-6-when-ping6-is-not-avaliab.patch
* 0001-setrlimit05-Use-another-method-to-get-bad-address.patch
* 0001-sigwaitinfo01-recent-glibc-calls-syscall-directly.patch
* 0001-statx-fix-compile-errors.patch
* 0001-syscalls-fcntl-make-OFD-command-use-fcntl64-syscall-.patch
* 0001-getcpu01-Rename-getcpu-to-avoid-conflict-with-glibc-.patch
This patch has been added:
* define-sigrtmin-and-sigrtmax-for-musl.patch
Added these rdependencies:
* file: for ld01, file01 and logrotate
* quota: for quota_remount_test01
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
qemu: add environment variable wrappers to make qemu look good with gtk frontend
GTK_THEME instructs gtk to use its built-in theme. Otherwise
gtk attempts to use the theme from the host, which may be from
a totally mismatching gtk version.
On the other hand FONTCONFIG_PATH tells it to use the host fonts,
as providing fonts in the native sysroot and instructing the components
to use them is a lot more tricky.
GDK_PIXBUF_MODULE_FILE is set, because otherwise qemu works but
fills stdout with error messages, which eventually fill the pipe
they go into. That pipe is read from only when qemu exits (to
collect any error messages) by runqemu script. The pipe fill-up
causes the qemu process to lock up.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
qemu: add a patch to avoid a missing definition error
| In file included from /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/include/ui/egl-context.h:5,
| from /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/ui/egl-context.c:3:
| /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/include/ui/egl-helpers.h:46:55: error: unknown type name 'Window'; did you mean 'minor'?
| EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, Window win);
| ^~~~~~
| minor
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
lib/oe/package_manager.py: turn nativesdk postinst warnings into notes
The warnings deal with two specific cases of failure:
1) unable to execute nativesdk postinsts for mingw SDKs because
they need to be run under wine
2) unable to execute target postinsts when there is no qemu
usermode support for the target
Neither of these should be a big problem as mingw issue was never
found to problematic, and target postinsts deal with things that
are needed at runtime and not at build time which is the purpose
of SDKs.
The specific reason to do this is to reduce the amount of warnings
shown by the Yocto autobuilder, to zero eventually.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Kai Kang [Fri, 22 Feb 2019 06:47:16 +0000 (01:47 -0500)]
dpkg: 1.18.25 -> 1.19.4
Upgrade dpkg from 1.18.25 to 1.19.4:
* update SRC_URI which DEBIAN_MIRROR
* un-export PERL which causes script scripts/dpkg-architecture.pl fails
to get cpu type and package arch
* add configure option '--disable-update-alternatives' which causes
installed-vs-shipped issue
* add patch for dpkg-native to resolve host tar may not support
options --owner=NAME:ID and --group=NAME:ID
* update context of patches
* drop dpkg-configure.service that apt provides a systemd timer to do it
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fabio Berton [Fri, 22 Feb 2019 14:09:30 +0000 (11:09 -0300)]
mesa: Replace dri-native with dri for native and nativesdk classes
Instead of using a native specific packageconfig option, we now set
the swrast as the supported driver.
Currently the native version does not build any dri drivers at all.
This is intentional: mesa-native is used only by virgl, so was made
the most minimal possible configuration for mesa-native so that a)
virgl works; and b) build time is as short as possible.
There are two swrast drivers, one dri-based, another gallium-based.
Autotools lets you build both, meson forces you to choose.
Thus DRIDRIVERS = "swrast" is only set for _native, as for _target
we get the gallium driver instead.
See discussion here [1]
Based on https://patchwork.openembedded.org/patch/158748/
- Commit 30b10dbb7c6f6bdf3e489620f8333c727bd3a6dd moved
${sysconfdir}/drirc to ${datadir}/drirc.d/00-mesa-defaults.conf
Add 00-mesa-defaults.conf to mesa-megadriver package
- Stop removing ${sysconfdir}/drirc on do_install_append
- Fix upgrade path from mesa to mesa-megadriver
- Add patch to fix mesa-native build
- Add xrandr to X11_DEPS
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Fri, 22 Feb 2019 02:15:44 +0000 (10:15 +0800)]
perl: fix incorrect symbolic link for libperl.so
The perl-cross uses PERL_API_VERSION but not PERL_VERSION to define
libperl soname: libperl.so.$PERL_API_REVISION.$PERL_API_VERSION.$PERL_API_SUBVERSION.
For perl stable releases, the PERL_API_SUBVERSION is always 0. Specify
the so version for libperl to make sure the libperl.so can be linked to
the correct library.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
can lead to tracebacks as gdk-pixbuf-native is being installed into the
target sysroot. The issue is that the x86_64 (common BUILD_ARCH) sysroot
components directory can contain a mix of native and target artefacts.
Differentiate by the "-native" in the recipe names. Should also trim
down the size of the sysroot used in eSDK.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Marek Vasut [Thu, 21 Feb 2019 23:56:18 +0000 (00:56 +0100)]
u-boot: Upgrade to 2019.01 release
This upgrades the U-Boot to latest 2019.01 release.
Signed-off-by: Marek Vasut <marex@denx.de> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Richard Purdie <richard.purdie@linuxfoundation.org> Cc: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Manjukumar Matha [Wed, 20 Feb 2019 18:29:05 +0000 (10:29 -0800)]
devicetree.bbclass: Add virtual provider for dtb
Add virtual provider for dtb. This class can be used to generate dtb
from static devicetree, for reference see meta-xilinx layer
meta-xilinx/meta-xilinx-bsp/recipes-bsp/device-tree/device-tree.bb
By providing a virtual provider we can use it to differentiate between
in-kernel dtb or an external one. This can be set in local.conf as
PREFERRED_PROVIDER_virtual/dtb = "devicetree"
Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Zheng Ruoqin [Thu, 21 Feb 2019 22:06:27 +0000 (14:06 -0800)]
mdadm: add init and service scripts
Add init script and service file for sysvinit and systemd.
Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adrian Bunk [Thu, 21 Feb 2019 08:32:31 +0000 (10:32 +0200)]
busybox: enable CONFIG_FLOAT_DURATION
The 1.29.3 -> 1.30.1 upgrade lost support for sleep with
float values (e.g. "sleep 0.1") since this replacement for
CONFIG_FEATURE_FLOAT_SLEEP (enabled in thud) was missing.
Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There's a new program, axfer, which is a reimplementation of aplay (and
arecord). The purpose of the rewrite is to have code that is easier to
maintain. For now both implementations exist, and I decided to put both
in the aplay package.
The new 89-alsa-ucm.rules udev file initializes the mixer settings for
certain hardware. It's needed for making the hardware usable at boot, in
case there's no higher level software (such as PulseAudio) managing the
mixer settings. Shipping hardware specific configuration in alsa-utils
seems wrong, but I don't know what else to do. I added it to the alsaucm
package, because it's kind of tied to the alsaucm utility (the udev
rules execute the alsaucm program, and the build system installs the
rules file only when alsaucm is enabled). Ideally the UCM configuration
in alsa-lib would define the default UCM verb for each hardware, then
the udev rules file could just enable the default verb, and there would
be no hardware specific configuration in alsa-utils. But that requires
upstream development effort.
SRC_URI was changed to a more reliable source (at least currently the
ftp server is flaky).
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The --enable-avcodec configure option was renamed to --enable-libav, and
I renamed the respective packageconfig item too.
There's a new pcm plugin: aaf (AVTP Audio Format). I added a
packageconfig item for it, but I didn't test it, because libavtp doesn't
seem to be currently packaged for OpenEmbedded.
There are now configuration files for most of the plugins. I removed the
symlink creation for 50-pulseaudio.conf, because upstream now creates
the symlinks for us. 99-pulseaudio-default.conf is an exception, because
upstream ships it only as an example, and upstream doesn't install a
symlink for it (upstream actually installs it directly under /etc, but I
moved it back to /usr/share), so for that file we still have to create
the symlink ourselves.
The lavcrate plugin was converted to use libavresample (and renamed to
lavrate). Libavresample is provided by ffmpeg, but ffmpeg was by default
built with libavresample disabled. This patch now enables libavresample
by default in the ffmpeg recipe in order to not cause a regression in
alsa-plugins.
SRC_URI was changed to a more reliable source (at least currently the
ftp server is flaky).
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
One significant change was that the search path of add-on configuration
files was changed from /usr/share/alsa/alsa.conf.d to /etc/alsa/conf.d.
Packages that install such files should still use the /usr/share
location, though. Symlinks need to be created from /etc to /usr/share.
The rationale for using /etc is that the system administrator can better
control the configuration that way, and the rationale for installing
files under /usr/share is that configuration snippets that are installed
by packages are not meant to be directly edited by the administrator.
alsa-plugins had to be modified to add symlinks for the configuration
snippets that it installs. I also added FILES_${PN} = "", because the
alsa-plugins package is supposed to be empty, but also because for some
reason that I don't understand the symlinks would otherwise go to the
alsa-plugins package rather than alsa-plugins-pulseaudio-conf.
SRC_URI was changed to a more reliable source (at least currently the
ftp server is flaky).
Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Apply patches from systemd_239-7ubuntu10.8 to fix CVE-2019-6454.
CVE-2019-6454 is an issue in which systemd (PID1) can be crashed with a
specially formed D-Bus message.
Richard Purdie [Thu, 21 Feb 2019 16:00:02 +0000 (16:00 +0000)]
kernel: Ensure an initramfs is added if configured
If ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_NAME}.cpio does not exist,
nor any of the compressed variants, nothing is copied to kernel build's
./usr directory.
The code does not fail, but silently proceeds without a bundled initramfs.
Change to fail and tell the user something is wrong.
Also, if an initramfs is found, contrary to the comments, it does not stop
at the first uncompressed/compressed cpio image found. Instead it keeps
processing all so the last is used. Fix this to behave as per the comments.
[YOCTO #12909]
(Patch by Leon Woestenberg)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Sat, 16 Feb 2019 18:13:00 +0000 (18:13 +0000)]
resulttool: Improvements to allow integration to the autobuilder
This is a combined patch of the various tweaks and improvements I
made to resulttool:
* Avoid subprocess.run() as its a python 3.6 feature and we
have autobuilder workers with 3.5.
* Avoid python keywords as variable names
* Simplify dict accesses using .get()
* Rename resultsutils -> resultutils to match the resultstool ->
resulttool rename
* Formalised the handling of "file_name" to "TESTSERIES" which the code
will now add into the json configuration data if its not present, based
on the directory name.
* When we don't have failed test cases, print something saying so
instead of an empty table
* Tweak the table headers in the report to be more readable (reference
"Test Series" instead if file_id and ID instead of results_id)
* Improve/simplify the max string length handling
* Merge the counts and percentage data into one table in the report
since printing two reports of the same data confuses the user
* Removed the confusing header in the regression report
* Show matches, then regressions, then unmatched runs in the regression
report, also remove chatting unneeded output
* Try harder to "pair" up matching configurations to reduce noise in
the regressions report
* Abstracted the "mapping" table concept used to pairing in the
regression code to general code in resultutils
* Created multiple mappings for results analysis, results storage and
'flattening' results data in a merge
* Simplify the merge command to take a source and a destination,
letting the destination be a directory or a file, removing the need for
an output directory parameter
* Add the 'IMAGE_PKGTYPE' and 'DISTRO' config options to the regression
mappings
* Have the store command place the testresults files in a layout from
the mapping, making commits into the git repo for results storage more
useful for simple comparison purposes
* Set the oe-git-archive tag format appropriately for oeqa results
storage (and simplify the commit messages closer to their defaults)
* Fix oe-git-archive to use the commit/branch data from the results file
* Cleaned up the command option help to match other changes
* Follow the model of git branch/tag processing used by oe-build-perf-report
and use that to read the data using git show to avoid branch change
* Add ptest summary to the report command
* Update the tests to match the above changes
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mazliana [Thu, 14 Feb 2019 05:50:38 +0000 (13:50 +0800)]
scripts/resulttool: enable manual execution and result creation
Integrated “manualexecution” operation to resulttool scripts.
Manual execution script is a helper script to execute all manual
test cases in baseline command, which consists of user guideline
steps and the expected results. The last step will ask user to
provide their input to execute result. The input options are
passed/failed/blocked/skipped status. The result given will be
written in testresults.json including log error from the user
input and configuration if there is any.The output test result
for json file is created by using OEQA library.
The configuration part is manually key-in by the user. The system
allow user to specify how many configuration they want to add and
they need to define the required configuration name and value pair.
In QA perspective, "configuration" means the test environments and
parameters used during QA setup before testing can be carry out.
Example of configurations: image used for boot up, host machine
distro used, poky configurations, etc.
The purpose of adding the configuration is to standardize the
output test result format between automation and manual execution.
To use these scripts, first source oe environment, then run the
entry point script to look for help.
$ resulttool
To execute manual test cases, execute the below
$ resulttool manualexecution <manualjsonfile>
By default testresults.json store in <build_dir>/tmp/log/manual/
[YOCTO #12651]
Signed-off-by: Mazliana <mazliana.mohamad@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yeoh Ee Peng [Thu, 14 Feb 2019 05:50:37 +0000 (13:50 +0800)]
resulttool: enable merge, store, report and regression analysis
OEQA outputs test results into json files and these files were
archived by Autobuilder during QA releases. Example: each oe-selftest
run by Autobuilder for different host distro generate a
testresults.json file.
These scripts were developed as a test result tools to manage
these testresults.json file.
Using the "store" operation, user can store multiple testresults.json
files as well as the pre-configured directories used to hold those files.
Using the "merge" operation, user can merge multiple testresults.json
files to a target file.
Using the "report" operation, user can view the test result summary
for all available testresults.json files inside a ordinary directory
or a git repository.
Using the "regression-file" operation, user can perform regression
analysis on testresults.json files specified. Using the "regression-dir"
and "regression-git" operations, user can perform regression analysis
on directory and git accordingly.
These resulttool operations expect the testresults.json file to use
the json format below.
{
"<testresult_1>": {
"configuration": {
"<config_name_1>": "<config_value_1>",
"<config_name_2>": "<config_value_2>",
...
"<config_name_n>": "<config_value_n>",
},
"result": {
"<testcase_namespace_1>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
"<testcase_namespace_2>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
...
"<testcase_namespace_n>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
}
},
...
"<testresult_n>": {
"configuration": {
"<config_name_1>": "<config_value_1>",
"<config_name_2>": "<config_value_2>",
...
"<config_name_n>": "<config_value_n>",
},
"result": {
"<testcase_namespace_1>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
"<testcase_namespace_2>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
...
"<testcase_namespace_n>": {
"status": "<PASSED or FAILED or ERROR or SKIPPED>",
"log": "<failure or error logging>"
},
}
},
}
To use these scripts, first source oe environment, then run the
entry point script to look for help.
$ resulttool
To store test result from oeqa automated tests, execute the below
$ resulttool store <source_dir> <git_branch>
To merge multiple testresults.json files, execute the below
$ resulttool merge <base_result_file> <target_result_file>
To report test report, execute the below
$ resulttool report <source_dir>
To perform regression file analysis, execute the below
$ resulttool regression-file <base_result_file> <target_result_file>
To perform regression dir analysis, execute the below
$ resulttool regression-dir <base_result_dir> <target_result_dir>
To perform regression git analysis, execute the below
$ resulttool regression-git <source_dir> <base_branch> <target_branch>
[YOCTO# 13012]
[YOCTO# 12654]
Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Anuj Mittal [Wed, 20 Feb 2019 07:12:47 +0000 (15:12 +0800)]
glib-networking: upgrade 2.54.1 -> 2.58.0
* Autotools support has been removed upstream, so migrate recipe to
meson. For changes, see:
https://gitlab.gnome.org/GNOME/glib-networking/blob/glib-2-58/NEWS
Mingli Yu [Wed, 13 Feb 2019 05:43:28 +0000 (13:43 +0800)]
logrotate.py: restore /etc/logrotate.d/wtmp
During the test logrotate.LogrotateTest.test_1_logrotate_setup,
there is below logic:
# mkdir $HOME/logrotate_dir
# sed -i "s#wtmp {#wtmp {\n olddir $HOME/logrotate_dir#" /etc/logrotate.d/wtmp
After all logrotate.LogrotateTest finished, only cleanup
$HOME/logrotate_dir as below, but don't restore
the config file /etc/logrotate.d/wtmp.
[snip]
def tearDownClass(cls):
cls.tc.target.run('rm -rf $HOME/logrotate_dir')
[snip]
That's to say, there is one additional line added
to /etc/logrotate.d/wtmp and will make the logrotate
service start failed when run systemd.SystemdBasicTests.test_systemd_failed
Take an example as below when run test as root:
# cat /etc/logrotate.d/wtmp
# no packages own wtmp -- we'll rotate it here
/var/log/wtmp {
olddir /root/logrotate_dir
missingok
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
# ls /root/logrotate_dir
ls: cannot access '/root/logrotate_dir': No such file or directory
# systemctl start logrotate
Job for logrotate.service failed because the control process exited with error code.
See "systemctl status logrotate.service" and "journalctl -xe" for details.
# systemctl status logrotate
logrotate.service - Rotate log files
Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset>
Active: failed (Result: exit-code) since Wed 2019-02-13 03:35:19 UTC; 7s ago
Docs: man:logrotate(8)
man:logrotate.conf(5)
Process: 540 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=1/FAILURE)
Main PID: 540 (code=exited, status=1/FAILURE)
Feb 13 03:35:18 qemumips systemd[1]: Starting Rotate log files...
Feb 13 03:35:19 qemumips logrotate[540]: error: wtmp:9 error verifying olddir path /root/logrotate_dir: No such file or directory
Feb 13 03:35:19 qemumips logrotate[540]: error: found error in file wtmp, skipping
Feb 13 03:35:19 qemumips systemd[1]: logrotate.service: Main process exited, code=exited, status=1/FAILURE
Feb 13 03:35:19 qemumips systemd[1]: logrotate.service: Failed with result 'exit-code'.
Feb 13 03:35:19 qemumips systemd[1]: Failed to start Rotate log files.
Add the logic to restore /etc/logrotate.d/wtmp to
make the cleanup complete to fix the above issue.
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>