gcc-runtime: fix C++ header mapping for n32/x32 tune
gcc-runtime.do_install is failing with:
ln: failed to create symbolic link 'work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oe-linux-gnueabi/bits': No such file or directory
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_install (log file is located at work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/temp/log.do_install.31049)
There is only empty directory without the -gnueabi suffix:
work/aarch64-oemllib32-linux-gnueabi/lib32-gcc-runtime/9.1.0-r0/image/usr/include/c++/9.1.0/arm-oe-linux/
Fixes:
ERROR: go-cross-dbfp4-1.12.1-r0 do_compile: Function failed: do_compile (log file is located at /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120)
ERROR: Logfile of failure stored in: /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120
Log data follows:
| DEBUG: Executing shell function do_compile
| Building Go cmd/dist using /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/recipe-sysroot-native/usr/lib/go.
| failed to initialize build cache at /home/pokyuser/.cache/go-build: mkdir /home/pokyuser/.cache: permission denied
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120)
ERROR: Task (/workdir/repo/poky/meta/recipes-devtools/go/go-cross_1.12.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 23 tasks of which 16 didn't need to be rerun and 1 failed.
Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Changqing Li [Fri, 21 Jun 2019 02:08:14 +0000 (10:08 +0800)]
update-rc.d: support enable/disable options
* update-rc.d has added support of enable/disable options, which are
expected to keep the previous configuration even after upgrade the packages.
With support for these options, it will only create start/stop link
when there are none, or it will keep the previous configuration.
Our preinst uses "-f remove" to remove any links under the /etc/rcrunlevel.d
which is conflicting behavior with disable/enable options, so remove it.
For example, if a user disabled one service before upgrade,
then after upgrade the service could be started. This happens because during preinst,
all links have been deleted, then postinst may create the link to start service.
With this change, we remove preinst and therefore keep the previous links
so that after upgrade, if a link existed for the package, then the postinst
will not create new start/stop links.
* remove '-f' for postinst. Previously, the keepalived recipe used 'remove'
during postinst, so we needed the -f, but now the keepalived recipe has fixed
this problem, so it's safe to remove '-f'.
[Yocto #12955]
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Fri, 21 Jun 2019 01:18:03 +0000 (09:18 +0800)]
oeqa: avoid class setup method to run when skipping the whole class
For now, even if we have specified to skip the whole module/class via
command line, e.g., `oe-selftest -R gotoolchain', the class setup method
is still run. This at least results in unnecessary builds, and at worst
results in ERROR, if the setup method fails.
So improve the skipping mechanism to avoid class setup method to run
when specified to skip.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Fri, 21 Jun 2019 01:18:02 +0000 (09:18 +0800)]
context.py: avoid skipping tests by meaningless command argument
Currently `oe-selftest -R a' will skip 'archiver' tests. This is
not expected. Fix it so that the '-R' should be followed by actual
module/class/test names.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joseph Reynolds [Thu, 20 Jun 2019 21:29:15 +0000 (16:29 -0500)]
dropbear: new feature: disable-weak-ciphers
Enhances dropbear with a new feature "disable-weak-ciphers", on by default.
This feature disables all CBC, SHA1, and diffie-hellman group1 ciphers in
the dropbear ssh server and client.
Disable this feature if you need to connect to the ssh server from older
clients. Additional customization can be done with local_options.h as usual.
Tested: On dropbear_2019.78.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Joseph Reynolds <joseph.reynolds1@ibm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Joshua Watt [Thu, 20 Jun 2019 15:48:44 +0000 (10:48 -0500)]
perl: Improve ptest package reproducibility
Fixes a few reproducibility issues in the perl ptest package:
1) config.log has a lot of paths encoded in it. This file is
unnecessary for ptest, so it is omitted from the package
2) Makefile.config has a lot of paths encoded in it. This file should
be fixed up using the same rules as several other files that are in
the package
3) Paths in DEBUG_PREFIX_MAP are not being correctly removed from files
because DEBUG_PREFIX_MAP is now several command line arguments.
Instead of requiring an exact match for all arguments, remove any
matching argument.
Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Thu, 20 Jun 2019 14:53:25 +0000 (15:53 +0100)]
python: make 'python' install everything instead of just the interpretter
Follow the python3 behaviour, and common sense, by making 'python' install
python-modules instead of python-core. This means a user installing python gets
all of Python, instead of just a fraction of the library.
[ YOCTO #13402 ]
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| CC arch/AArch64/AArch64InstPrinter.o
| {standard input}: Assembler messages:
| {standard input}:36033: Error: branch out of range
| {standard input}:36257: Error: branch out of range
Disable capstone for mips o32 in this situation as a workround.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 20 Jun 2019 14:05:28 +0000 (15:05 +0100)]
uninative: Update to 2.6 release
The 2.6 release contains both libcrypt.so.1 and libcrypt.so.2 which fixes
compatibility with recent fedora/suse releases.
The difference is one is built with obsolete APIs enabled and one disabled.
We now ship both in uninative for compatibility regardless of which distro
a binary is built on.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
$ bitbake world
ERROR: Task do_compile in make-mod-scripts_1.0.bb depends upon non-existent task do_compile_kernelmodules in linux-dummy.bb
ERROR: Command execution failed: Exited with 1
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Mingli Yu [Thu, 20 Jun 2019 09:34:48 +0000 (02:34 -0700)]
bitbake: add iconv to HOSTTOOLS
Some package such as vim depends on iconv.
Without iconv, vim-common which is the
sub-pakcage of vim may include different files
as failed to use iconv to generate the *.po file.
Signed-off-by: Mingli Yu <mingli.yu@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 20 Jun 2019 10:15:44 +0000 (11:15 +0100)]
cmake: Clarify comment in cmake toolchain file
The comment is misleading and there was confusion in a bug report. In the native
case STAGING_DATADIR would be equal to the native value so there isn't any issue
but tweak the comment.
[YOCTO #12761]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cve-check: Consider CVE that affects versions with less than operator
In the NVD json CVE feed, affected versions can be strictly matched to a
version, but they can also be matched with the operator '<='.
Add a new condition in the sqlite query to match affected versions that
are defined with the operator '<='. Then use LooseVersion to discard all
versions that are not relevant.
Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
cve-check-tool-native do_populate_cve_db task was using deprecated NVD
xml data feeds, cve-update-db uses NVD json data feeds.
Sqlite database schema was updated to take into account CVSSv3 CVE
scores and operator in affected product versions.
A new META table was added to store the last modification date of the
NVD json data feeds.
Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 19 Jun 2019 13:52:35 +0000 (14:52 +0100)]
uninative-tarball: Add libxcrypt-compat
This avoids sstate/uninative relocation issues where a binary was built against
a system with libcrypt.so.1 or libcrypt.so.2 and then run on the opposite by
ensuring both libraries are in uninative.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 19 Jun 2019 13:51:27 +0000 (14:51 +0100)]
libxcrypt-compat: Add recipe to build the obsolete APIs
Add a recipe which is able to build the obsolete APIs. This is mainly
to support uninative which needs to have both the new and obsolete APIs
available to support the different host combinations.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building x86->x86 the system will try to execute .so and related items
from the default PYTHONPATH. This will fail if the target CPU contains
instructions that the host CPU does not have, add CROSSPYTHONPATH
into PYTHONPATH so we can prepend the list to find correct libs.
File "/workdir/build/tmp/work/dbfp4-poky-linux/qv4l2/1.17.0+gitAUTOINC+95f39aae48-r0/recipe-sysroot-native/usr/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 574, in _call_pkgbin
cache[(self.pkgbin, targs, fenv)] = self._call_pkgbin_real(args, env, use_native)
File "/workdir/build/tmp/work/dbfp4-poky-linux/qv4l2/1.17.0+gitAUTOINC+95f39aae48-r0/recipe-sysroot-native/usr/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 556, in _call_pkgbin_real
cmd = self.pkgbin.get_command() + "-native" + args
TypeError: can only concatenate list (not "str") to list
Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ross Burton [Tue, 18 Jun 2019 15:12:29 +0000 (16:12 +0100)]
glib-2.0: fix host path appearing in gsocketclient-slow test script
Glib's build looks for the 'env' binary and embeds that path into the test
script, but thanks to hosttools this is /path/to/tmpdir/hosttools/env.
Fix this by hardcoding the path to env in the cross file.
Also as the cross file is only used in target builds only add it to SRC_URI for
target builds, so that changes to the cross file don't cause a rebuild of
glib-2.0-native.
Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Adrian Bunk [Tue, 18 Jun 2019 19:59:45 +0000 (22:59 +0300)]
wireless-regdb: Add recipe
Since wpa-supplicant is provided,
the database of permitted frequencies should also be provided.
wireless-regdb-static should be used with kernel >= 4.15.
wireless-regdb can be used with older kernels and is mostly
irrelevant here, but keeping it in meta-networking would
create needless recipe duplication.
This package was previously in meta-networking.
Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Tue, 18 Jun 2019 21:45:34 +0000 (21:45 +0000)]
serf: stop scons trying to create directories in hosts rootfs
* since 1522f09a4d serf: cleanup recipe
serf.do_install fails in builds with multilib enabled (with
libdir=/usr/lib64 on host where /usr/lib64 doesn't exist)
DEBUG: Executing shell function do_install
scons: Reading SConscript files ...
PermissionError: [Errno 13] Permission denied: '/usr/lib64':
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 158:
ENV = os.environ,
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Environment.py", line 965:
variables.Update(self)
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/__init__.py", line 227:
option.validator(option.key, env.subst('${%s}'%option.key), env)
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/serf-1.3.9/SConstruct", line 60:
return PathVariable.PathIsDirCreate(key, val, env)
File "/TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/bin/../../usr/lib/python3.7/site-packages/SCons/Variables/PathVariable.py", line 101:
os.makedirs(val)
File "TOPDIR/BUILD/work/qemux86-signage-linux/serf/1.3.9-r0/recipe-sysroot-native/usr/lib/python3.7/os.py", line 221:
mkdir(name, mode)
ERROR: scons install execution failed.
* I don't know how exactly --install-sandbox is supposed to work but
in this case it's trying to mkdir /usr/lib64 on the host rootfs
which is clearly wrong and if I set LIBDIR together with
--install-sandbox then the install paths are prefixed with $D twice
in some cases (not for includedir and empty libdir at the end).
So in the end I think it was an issue caused by the custom path
validator in serf's SConstruct, removing that stops touching host
and the installed paths (including the paths inside libserf*.pc)
look correct
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Wed, 19 Jun 2019 05:09:48 +0000 (13:09 +0800)]
target-sdk-provides-dummy: add libperl.so.5 to DUMMY_PROVIDES
Add libperl.so.5 to DUMMY_PROVIDES to avoid do_rootfs failure like
below.
Error:
Problem: package postgresql-11.3-r0.core2_32 requires libperl.so.5, but none of the providers can be installed
package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with perl provided by perl-5.30.0-r0.core2_32
package target-sdk-provides-dummy-1.0-r0.sdk_provides_dummy_target conflicts with perl-module-strict provided by perl-5.30.0-r0.core2_32
This problem could be reproduced by add 'postgresql' to IMAGE_INSTALL
and then `bitbake core-image-minimal -c populate_sdk'.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Anuj Mittal [Wed, 19 Jun 2019 03:13:26 +0000 (11:13 +0800)]
runtime/cases/logrotate: make test more reliable
By default logrotate uses 'dateext' in logrotate.conf which results in a
date string being appended at the end of log name. In cases when a test
that installs configuration in logrotate.d is executed first (dnf for
example), it might result in errors when logrotate test is executed:
Changqing Li [Tue, 18 Jun 2019 07:46:56 +0000 (15:46 +0800)]
gcc-runtime: fix C++ header mapping for n32/x32 tune
The SDK was unable to find the C++ header pieces correctly since it's
using a generic compiler, not one specifically targeting the multilib
vendor prefix and default tune. This adds the right mapping to ensure
SDKs work as expected. And fix problem in below configurations:
For this configuration:
for target gcc-runtime, need to create symlink like mips64-poly-linux --> mips64-poky-linux-gnu32
for target lib64-gcc-runtime, need to create symlink like mips64-poly-linux/32 --> mips64-pokymllib64-linux
in order to avoid conflict during populate_sdk, create symlink for subfoler bits/ext for target gcc-runtime,
this is ugly, but seems no better way to cover all kinds of configuration.
single lib configuration:
MACHINE="qemumips64"
DEFAULTTUNE = "mips64-n32"
Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Tue, 18 Jun 2019 11:41:52 +0000 (11:41 +0000)]
base.bbclass: define PACKAGECONFIG_CONFARGS before only sometimes appending to it
* just to make sure it's expaned by bitbake before it gets
executed in shell
* e.g. with cmake.bbclass and cmake recipe (any recipe without
PACKAGECONFIG options have this issue) it looks like this:
bitbake -e cmake | grep EXTRA_OECMAKE=
EXTRA_OECMAKE=" -DCMAKE_DOC_DIR=share/doc/cmake-3.14
-DCMAKE_USE_SYSTEM_LIBRARIES=1 -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0
-DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0
-DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0 -DKWSYS_CHAR_IS_SIGNED=1
-DBUILD_CursesDialog=0 -DKWSYS_LFS_WORKS=1
\${PACKAGECONFIG_CONFARGS}"
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Stefano Babic [Tue, 18 Jun 2019 10:06:17 +0000 (12:06 +0200)]
systat: systemd never enables the service
Even if SYSTEMD_AUTO_ENABLE is set to "enable", the service is never
activated by systemd. The cause is the postinst function in the recipe:
pkg_postinst_${PN} () {
if [ -n "$D" ]; then
exit 0
fi
if [ -e /etc/init.d/populate-volatile.sh ]; then
/etc/init.d/populate-volatile.sh update
fi
}
This generates with activated systemd the following postinst script:
set -e
if [ -n "$D" ]; then
exit 0
fi
if [ -e /etc/init.d/populate-volatile.sh ]; then
/etc/init.d/populate-volatile.sh update
fi
OPTS=""
if [ -n "$D" ]; then
OPTS="--root=$D"
fi
if type systemctl >/dev/null 2>/dev/null; then
if [ -z "$D" ]; then
systemctl daemon-reload
fi
systemctl $OPTS enable sysstat.service
if [ -z "$D" -a "enable" = "enable" ]; then
systemctl --no-block restart sysstat.service
fi
fi
Due to the exit statement, systemctl is never called and the service is
never enabled in rootfs.
Invert the logic for the check to let run the rest of postinst script.
Signed-off-by: Stefano Babic <sbabic@denx.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Martin Jansa [Tue, 18 Jun 2019 07:51:31 +0000 (07:51 +0000)]
buildhistory: show time spent writting buildhistory
* especially when pushing longer history to slow remote git server or when
it timeouts during the push, it's useful to see where the time was actually
spent
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Yi Zhao [Tue, 18 Jun 2019 00:26:19 +0000 (08:26 +0800)]
shadow: fix configure error with dash
A configure error occurs when /bin/sh -> dash:
checking for is_selinux_enabled in -lselinux... yes
checking for semanage_connect in -lsemanage... yes
configure: 16322: test: yesyes: unexpected operator
Use "=" instead of "==" since dash doesn't support the latter.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* 0001-Revert-Return-correct-error-number-in-ubi_get_vol_in.patch is upstreamed
* Add "crypto" PACKAGECONFIG for UBIFS crypto features
* One extra commit after 2.1.0 release tag is pulled in to fix openssl error
when "crypto" PACKAGECONFIG is not enabled:
| In file included from ../git/ubifs-utils/mkfs.ubifs/mkfs.ubifs.c:25:
| ../git/ubifs-utils/mkfs.ubifs/mkfs.ubifs.h:49:10: fatal error: openssl/rand.h: No such file or directory
| #include <openssl/rand.h>
| ^~~~~~~~~~~~~~~~
| compilation terminated.
| Makefile:3457: recipe for target 'ubifs-utils/mkfs.ubifs/mkfs_ubifs-mkfs.ubifs.o' failed
| make: *** [ubifs-utils/mkfs.ubifs/mkfs_ubifs-mkfs.ubifs.o] Error 1
Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* Add runtime and ptest dependencies
* Add own run-ptest, since we need to run blib
License-Update: License lines moved up in README
Upstream release notes:
0.4229 - Tue Apr 16 00:49:45 CEST 2019
- Released 0.42_28 without changes
0.42_28 - Thu Apr 19 16:34:32 CEST 2018
- Replace "MOTIVATIONS" section with "COMPARISON" [Dan Brook]
- Update configure, build, test prereqs [Karen Etheridge]
0.4227 - Wed Dec 13 11:17:51 CET 2017
- Released 0.42_26 without changes
0.42_26 - Wed Dec 13 10:52:39 CET 2017
- Improve pureperl-only support (#119914) [Shoichi Kaji]
- Improve the documentation of Module::Build::Compat and dynamic_config [Dan Brook]
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Mon, 17 Jun 2019 22:11:41 +0000 (15:11 -0700)]
libxml-sax-perl: upgrade 1.00 -> 1.02
* Sort ptest dependencies alphabetically
Upstream release notes:
1.02 14 Jun 2019 Grant McLean
- Spelling fixes (patch from Ville Skyttä)
- Add repo location to metadata (patches from Ville Skyttä & Martin McGrath)
- Reorganise module files under lib/XML
- Regenerate MANIFEST using 'make manifest' to include missing test files
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Tim Orling [Mon, 17 Jun 2019 22:11:40 +0000 (15:11 -0700)]
perl-rdepends.txt: more ptest dependencies fixes
* File::Spec::Unix runtime depends on Cwd and constant
* Module::Metadata runtime depends on version
* CPAN::Meta runtime depends on Parse::CPAN::Meta and JSON::PP
* ExtUtils::MakeMaker runtime depends on ExtUtils::MM_Unix
* TAP::Base runtime depends on TAP::Object
* TAP::Parser::SourceHandler::Perl runtime depends on
TAP::Parser::SourceHandler::Executable
* TAP::Harness runtime depends on TAP::Formatter::File
* TAP::Formatter::File runtime depends on TAP::Formatter::Session
and TAP::Formatter::Base
* Many TAP::Harness::* dependencies
* POD::Simple::Transcode runtime depends on POD::Simple::Transcode{dumb,smart}
Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Randy MacLeod [Sun, 16 Jun 2019 15:48:17 +0000 (11:48 -0400)]
bash: use setpriv, sed.sed to run ptests
The execscript test in bash fails when run with ptest-runner calling
'su', with the error:
bash: cannot set terminal process group (16036): Inappropriate ioctl for device
Even with ptest-runner fixed to make a child process use the right
process group, 'su' still results in the warning above. Use 'setpriv'
instead. 'runuser' was considered and works but depends on pam so it's
ruled out.
Now that all bash tests are run as a user, the patch:
fix-run-coproc-run-heredoc-run-execscript-run-test-f.patch
can be removed. Also to create the account 'bashtest' in the
'run-ptest' script the bash-ptest must depend on 'shadow'. Also,
in 'run-ptest', ensure that the bash ptests are owned by the 'bashtest' user.
Add 'sed' as a dependency for ptests since tests/exp8.sub runs:
var=$'x\001y\177z'
declare -p var | sed -n l
and that results in:
sed.busybox: ""
sed.sed: declare -- var="x\001y\177z"$
This appears to be a feature that busybox sed has not implemented.
With this series of changes, bash-ptest for qemux86-64 passes
79 of 81 tests. The remaining failures are:
1. run-read:
# cat tests/read6.sub
# test read with a timeout of 0 -- input polling
# sleep with fractional seconds argument is not universal
echo abcde | { sleep 0.25 2>/dev/null ; read -t 0; }
echo $?
read -t 0 < $0
echo $?
read -t 0
echo $? <-- returns 1, when 0 is expected.
I can reproduce this on my workstation but only when using ptest-runner
and initially logging into the console as root. That's a little odd and
seems like I need to continue to improve ptest-runner.
This is a scheduler behaviour difference between the common case
on a workstation and the common case in qemu. The test case does
warn about the completion order not being deterministic so I plan
to ignore it.
>From tests/run-trap:
UNIX versions number signals and schedule processes differently.
If output differing only in line numbers is produced, please
do not consider this a test failure.
Still, it's notable and slightly odd that the common case output
is different.
Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Randy MacLeod [Sun, 16 Jun 2019 15:48:16 +0000 (11:48 -0400)]
ptest-runner: enable child procs as session leader
When running the run-execscript bash ptest as a user rather than root, a warning:
bash: cannot set terminal process group (16036): Inappropriate ioctl for device
bash: no job control in this shell
contaminates the bash log files causing the test to fail. This happens only
when run under ptest-runner and not when interactively testing!
The changes made to fix this include:
1. Get the process group id (pgid) before forking,
2. Set the pgid in both the parent and child to avoid a race,
3. Find, open and set permission on the child tty, and
4. Allow the child to attach to controlling tty.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Randy MacLeod [Sun, 16 Jun 2019 15:48:14 +0000 (11:48 -0400)]
util-linux: add setpriv utility
Enable the setpriv utility for targets only. It will be used in
the run-ptest script for bash and perhaps other packages where
the ptest code is expected to run as a user.
setpriv uses libcap-ng which doesn't build natively so disable
it for native* builds. Also, busybox has a setpriv implementation
so ensure that setpriv adheres to the alternatives scheme.
Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Chen Qi [Mon, 17 Jun 2019 02:12:29 +0000 (10:12 +0800)]
context.py: fix skipping function
The current codes to skip test cases are logically correct, but they
do not work correctly in reality. It does skip the tests as the command
line argument specifies, but the related information is wrong.
e.g.
$ oe-selftest -R archiver bblayers runtime_test
2019-06-17 09:24:53,764 - oe-selftest - WARNING - meta-selftest layer not found in BBLAYERS, adding it
2019-06-17 09:25:06,309 - oe-selftest - INFO - Adding layer libraries:
2019-06-17 09:25:06,310 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta/lib
2019-06-17 09:25:06,310 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta-yocto-bsp/lib
2019-06-17 09:25:06,310 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta-selftest/lib
2019-06-17 09:25:06,312 - oe-selftest - INFO - Running bitbake -e to test the configuration is valid/parsable
2019-06-17 09:25:10,521 - oe-selftest - INFO - Adding: "include selftest.inc" in /buildarea5/chenqi/SWAT/poky/build-selftest/conf/local.conf
2019-06-17 09:25:10,521 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2019-06-17 09:25:10,522 - oe-selftest - INFO - test_archiver_allows_to_filter_on_recipe_name (archiver.Archiver)
2019-06-17 09:25:10,522 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "runtime_test"'
2019-06-17 09:25:10,522 - oe-selftest - INFO - Skip by the command line argument "runtime_test"
2019-06-17 09:25:10,523 - oe-selftest - INFO - test_archiver_filters_by_type (archiver.Archiver)
2019-06-17 09:25:10,523 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "runtime_test"'
2019-06-17 09:25:10,523 - oe-selftest - INFO - Skip by the command line argument "runtime_test"
The archiver.Archiver.xxx tests should be skipped by 'archiver' command line
argument, not 'runtime_test'.
Change to use a function generator to achieve the desired effect. After the change,
the effect is as follows.
$ oe-selftest -R archiver bblayers runtime_test
2019-06-17 09:19:06,223 - oe-selftest - WARNING - meta-selftest layer not found in BBLAYERS, adding it
2019-06-17 09:19:19,598 - oe-selftest - INFO - Adding layer libraries:
2019-06-17 09:19:19,599 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta/lib
2019-06-17 09:19:19,599 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta-yocto-bsp/lib
2019-06-17 09:19:19,599 - oe-selftest - INFO - /buildarea5/chenqi/SWAT/poky/meta-selftest/lib
2019-06-17 09:19:19,602 - oe-selftest - INFO - Running bitbake -e to test the configuration is valid/parsable
2019-06-17 09:19:24,368 - oe-selftest - INFO - Adding: "include selftest.inc" in /buildarea5/chenqi/SWAT/poky/build-selftest/conf/local.conf
2019-06-17 09:19:24,368 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2019-06-17 09:19:24,369 - oe-selftest - INFO - test_archiver_allows_to_filter_on_recipe_name (archiver.Archiver)
2019-06-17 09:19:24,369 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "archiver"'
2019-06-17 09:19:24,369 - oe-selftest - INFO - Skip by the command line argument "archiver"
2019-06-17 09:19:24,369 - oe-selftest - INFO - test_archiver_filters_by_type (archiver.Archiver)
2019-06-17 09:19:24,370 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "archiver"'
2019-06-17 09:19:24,370 - oe-selftest - INFO - Skip by the command line argument "archiver"
2019-06-17 09:19:24,370 - oe-selftest - INFO - test_archiver_filters_by_type_and_name (archiver.Archiver)
2019-06-17 09:19:24,370 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "archiver"'
2019-06-17 09:19:24,371 - oe-selftest - INFO - Skip by the command line argument "archiver"
2019-06-17 09:19:24,371 - oe-selftest - INFO - test_archiver_srpm_mode (archiver.Archiver)
2019-06-17 09:19:24,371 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "archiver"'
2019-06-17 09:19:24,372 - oe-selftest - INFO - Skip by the command line argument "archiver"
2019-06-17 09:19:24,372 - oe-selftest - INFO - test_bitbakelayers_add_remove (bblayers.BitbakeLayers)
2019-06-17 09:19:24,373 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "bblayers"'
2019-06-17 09:19:24,373 - oe-selftest - INFO - Skip by the command line argument "bblayers"
2019-06-17 09:19:24,373 - oe-selftest - INFO - test_bitbakelayers_createlayer (bblayers.BitbakeLayers)
2019-06-17 09:19:24,373 - oe-selftest - INFO - ... skipped 'Skip by the command line argument "bblayers"'
2019-06-17 09:19:24,374 - oe-selftest - INFO - Skip by the command line argument "bblayers"
[snip]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Hongxu Jia [Mon, 17 Jun 2019 02:17:41 +0000 (22:17 -0400)]
openssh: fix potential signed overflow in pointer arithmatic
Pointer arithmatic results in implementation defined signed integer
type, so that 'd - dst’ in strlcat may trigger signed overflow if
pointer ‘d’ is near 0x7fffffff in 32 bits system. In case of ompilation
by gcc or clang with -ftrapv option, the overflow would generate
program abort.
Richard Purdie [Fri, 14 Jun 2019 07:44:15 +0000 (08:44 +0100)]
perl: Fix setgroup call regression from 5.30
The upgrade from 5.28 to 5.30 caused acl's ptests to fail. The issue is
that the new function changes the endptr to the end of the scanned number
and this now needs to be reset to the end of the string for each iteration
of the loop.
[YOCTO #13391]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>