Paul Eggleton [Wed, 29 Jun 2016 03:13:51 +0000 (15:13 +1200)]
classes/populate_sdk_ext: ensure tasks to build the image are included
If you build an extensible SDK for an image and IMAGE_FSTYPES includes
"live" then the extensible SDK will fail to install with a bunch of
unexpected task execution errors, matching the missing items required to
build the live image. The issue was we were still depending on do_rootfs
rather than do_image_complete. The fix was slightly more complicated
than just changing the task name as do_image_complete's dependencies are
in the form of dependencies on tasks within the same recipe (represented
in the "deps" varflag rather than the "depends" varflag).
Fixes [YOCTO #9826].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Paul Eggleton [Wed, 29 Jun 2016 03:12:03 +0000 (15:12 +1200)]
recipetool: create: avoid decoding errors with Python 3
We're opening source files with the default encoding (utf-8) but we
can't necessarily be sure that they are UTF-8 clean - for example,
recipetool create ftp://mama.indstate.edu/linux/tree/tree-1.7.0.tgz
prior to this patch resulted in a UnicodeDecodeError. Use the
"surrogateescape" mode to avoid this.
Fixes [YOCTO #9822].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
autogen-native: fix script error when processing libguile
do_configure for autogen-native would fail if build directory path
contains '-I' characters, which is caused by the unsuitable sed script
when processing libguile.
Error log:
[snip]
checking for GUILE... yes
awk: fatal: cannot open file `/buildarea1/poky/build /libguile/version.h' for reading (No such file or directory)
configure: error: in `/buildarea1/poky/build-Ice/tmp/work/x86_64-linux/autogen-native/5.18.10-r0/build':
configure: error: cannot determine Guile version
[snip]
Signed-off-by: Zhenbo Gao <zhenbo.gao@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Make gettext-native in 0.16.1 recipe provides virtual/gettext-native like
what gettext-native in 0.19.6 recipe does. Otherwise we would fail to start
to do a world build if gettext and gettext-native are set to the low version.
Error message is like below.
ERROR: Multiple versions of gettext-native are due to be built
Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ed Bartosh [Mon, 4 Jul 2016 22:08:13 +0000 (01:08 +0300)]
devshell.bbclass: fix double unbuffering
stdout is already unbuffered in bitbake code. Attempt to
do it again in devshell.bbclass causes this crash when
running devpyshell:
File "scripts/oepydevshell-internal.py", line 29, in <module>
pty = open(sys.argv[1], "w+b", 0)
IOError: [Errno 13] Permission denied: '/dev/pts/6'
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:03 +0000 (00:07 +1200)]
classes/populate_sdk_ext: eliminate double execution on install
Use the new BB_SETSCENE_ENFORCE functionality to avoid having to run
bitbake twice on installing the extensible SDK - we can now do it all in
one invocation which not only takes less time, but we should also get
more meaningful errors for some types of failure, in particular where
downloading from an sstate mirror fails.
One result of this change is that you get the errors printed on the
console during normal output rather than this going to the
preparing_build_system.log file first. In OE-Core revision 227d2cbf9e0b8c35fa6644e3d72e0699db9607fa, we changed to always print the
contents of preparing_build_system.log on failure, but now at least the
error contents of that log is duplicated. Besides, I intentionally
didn't print out the contents of that log during normal usage because
it's quite verbose - the bug that we were attempting to fix was about
not getting this information when seeing failures in the automated
tests, thus I've moved printing the log to the test handling code
instead.
Part of the implementation of [YOCTO #9367].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:06 +0000 (00:07 +1200)]
toolchain-shar-extract.sh: allow TERM through into SDK installer env
In order to show the task progress during the extensible SDK
installation, knotty needs to know it is using a terminal it can
support the "interactive" mode on (i.e. ncurses can be used), which
means it needs access to the TERM variable value, so allow that
through into the cleaned environment within the SDK installation
script.
Part of the implementation for [YOCTO #9613].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:04 +0000 (00:07 +1200)]
lib/oe/sstatesig: print locked sigs file message only when explicitly called
If we're building the extensible SDK we don't need to see the "Writing
locked sigs" message; it's only necessary when the user explicitly runs
bitbake -S none <target>.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:02 +0000 (00:07 +1200)]
classes/testsdk: print output correctly on failure
With Python 3 we get a bytes object from the command output and not a
string, which gives some ugly formatting for error messages unless you
decode it first.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:01 +0000 (00:07 +1200)]
classes/sstate: add a mode to error if sstate package unavailable
If BB_SETSCENE_ENFORCE is set to "1" and an sstate package fails to
download outside of the whitelist specified by
BB_SETSCENE_ENFORCE_WHITELIST, then fail immediately so you can tell
that the problem was caused by failing to restore the task from sstate.
Part of the implementation of [YOCTO #9367].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:07:00 +0000 (00:07 +1200)]
classes/sstate: show progress during sstate object availability check
Show progress through bitbake's standard terminal UI when checking for
shared state object availability, since this can take some time if there
are a large number of tasks to be executed and/or the network connection
is slow.
Part of the implementation for [YOCTO #5853].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 23 Jun 2016 12:06:59 +0000 (00:06 +1200)]
classes/image: implement progress support for do_rootfs
Use the new task progress functionality to report progress during
do_rootfs. This is a little coarse and ideally we would have some
progress within the installation section, but it's better than
nothing.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Wed, 29 Jun 2016 03:09:16 +0000 (15:09 +1200)]
local.conf.sample.extended: drop RPM4 example
We don't have RPM4 support anymore, so there's no point including this.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Bruce Ashfield [Tue, 28 Jun 2016 02:36:43 +0000 (22:36 -0400)]
linux-yocto: bxt and input configuration changes
Merging the following two configuration changes:
Author: Rebecca Chang Swee Fun <rebecca.swee.fun.chang@intel.com>
Date: Mon Jun 27 15:11:04 2016 +0800
broxton: set CONFIG_GPIO_GENERIC_PLATFORM instead of CONFIG_GPIO_GENERIC
CONFIG_GPIO_GENERIC option is tristate, this will ensure we
enable by selecting CONFIG_GPIO_GENERIC_PLATFORM.
This addresses the following message:
Value requested for CONFIG_GPIO_GENERIC not in final ".config"
Requested value: "CONFIG_GPIO_GENERIC=y"
Actual value set: ""
Signed-off-by: Rebecca Chang Swee Fun <rebecca.swee.fun.chang@intel.com>
Author: California Sullivan <california.l.sullivan@intel.com>
Date: Mon Jun 27 17:15:53 2016 -0700
features/input: Add keyboard-gpio feature
This feature adds keyboard-gpio support to the kernel. We also add a
specific implementation by default. More can be added as necessary.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Bruce Ashfield [Fri, 24 Jun 2016 21:00:56 +0000 (17:00 -0400)]
linux-yocto/4.x: vfat feature cleanup
From Tom:
This is a small patchset for yocto-4.4 that removes open-coded VFAT_FS
and enables defaults that should be enabled along with it.
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Bruce Ashfield [Fri, 24 Jun 2016 20:56:30 +0000 (16:56 -0400)]
linux-yocto/4.1/4.4: tpm, telemetry, acpi and cpuid changes
Backporting mainline and development commits to for various subystems.
linux-yocto: 4.4: ae6a527d93f i2c: add support for ACPI reconfigure notifications f2422e12af53 acpi: add support for ACPI reconfiguration notifiers bc87718fdb56 acpi: fix enumeration (visited) flags for bus rescans
linux-yocto: 4.1: 9f166e918f63 platform:x86 decouple telemetry driver from the optional IPC resources adfc21c1f156 tpm: update PPI documentation to address the location change. 661b0190e412 x86 tsc: enumerate BXT tsc_khz via CPUID 78be69fa9d15 x86 tsc: enumerate SKL cpu_khz and tsc_khz via CPUID
Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Yu, Ong Hock <ong.hock.yu@intel.com> Signed-off-by: Yong, Jonathan <jonathan.yong@intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
A shell script wrapper around oe-build-perf-test script. The purpose of
this wrapper is to act as a executor script, making it possible to run
the tests with a single command. The wrapper script initializes the
build environment, runs oe-build-perf-test and archives the results.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Using this option the script appends test results into a 'global results
file'. A CSV-formatted output of the results. This option is to provide
compatibility with the old build-perf-test.sh.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Thu, 23 Jun 2016 15:38:35 +0000 (18:38 +0300)]
oeqa.buildperf: add git revision and branch to result data
BuildPerfTestRunner determines these from the Git repository under which
it is being run (i.e. where the build directory exists). The branch and
revision may be defined/overridden with OE_BUILDPERFTEST_GIT_BRANCH
and OE_BUILDPERFTEST_GIT_BRANCH environment variables, if needed. This
makes it possible to run the build performance test script even if the
top directory is not a git repository clone, for example.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Wed, 11 May 2016 13:19:06 +0000 (16:19 +0300)]
oeqa.utils: add git module
A new helper module for easier interaction with Git repositories.
Provides GitRepo class that represents one local Git repository clone.
The GitRepo class currently only has one method, run_cmd(), for running
arbitrary git commands in the repository. More specialized methods for
commonly used git operations can be added later.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Wed, 11 May 2016 11:42:32 +0000 (14:42 +0300)]
oeqa.buildperf: implement BuildPerfTestRunner class
The new class is responsible for actually running the tests and
processing their results. This commit also adds a decorator function for
adding new tests. No automatic test discovery, at least yet.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Wed, 11 May 2016 10:39:22 +0000 (13:39 +0300)]
oeqa.buildperf: method for measuring system resource usage
Extend BuildPerfTest class with a new method for measuring the system
resource usage of a shell command to BuildPerfTest class. For now,
easurement of the elapsed time is done with the Gnu time utility,
similarly to the build-perf-test.sh shell script. And, it currently only
records the elapsed (wall clock).
The measured values (currently, only the elapsed time) is actually a
dictionary, making it possible to extend it with additional resource
values, e.g. cpu time or i/o usage, in the future. In addition to the
actual values of the measurement each record contains a 'name' and
'legend' where name is supposed to function as a common key or id over
test runs, making comparison and trending easier, for example. Legend is
supposed to be a short human readable description.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Wed, 11 May 2016 10:22:50 +0000 (13:22 +0300)]
oeqa.buildperf: add BuildPerfTest class
The new class will be used as an abstract base class for build
performance tests. This implementation contains some common
functionality used in multiple tests, "copied" from the
build-perf-test.sh shell script.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Markus Lehtonen [Tue, 26 Apr 2016 10:18:13 +0000 (13:18 +0300)]
oeqa.buildperf: functionality to drop kernel caches
Add a new utility class for dropping Linux kernel caches. It uses sudo
and tee to write to the drop_caches file. Checking if the user has the
permissions to drop caches (without a password) is done by trying to
writing an invalid value to the drop_caches file. This way, we will find
if writing (with tee) is possible but not really dropping caches, yet.
User can avoid giving the password by adding something like:
<user> ALL = NOPASSWD: /usr/bin/tee /proc/sys/vm/drop_caches
to the system sudoers file.
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Bill Randle [Sat, 25 Jun 2016 04:22:31 +0000 (21:22 -0700)]
lib/oe/package_manager: keep platform_extra and default_platform_extra lists ordered
In RpmPM:insert_feeds_uris, the paths are kept in sets, which are unordered,
but they are later used to set the priority for the Smart channels, so
unexpected results could occur. Change the sets to lists and use the same
code as in create_configs() to add items to the list, rather than the set
operators.
[YOCTO #9717]
Signed-off-by: Bill Randle <william.c.randle@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Patrick Williams [Wed, 22 Jun 2016 16:31:46 +0000 (11:31 -0500)]
linux-libc-headers: Update doc for recipe depends
The previous documentation has not been accurate since at least
commit 6a1ff0e. Recipes that follow the old documentation will
not correctly build when sstate is enabled because the kernel
source will not actually be available.
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Signed-off-by: Ross Burton <ross.burton@intel.com>
Ricardo Neri [Fri, 24 Jun 2016 23:42:28 +0000 (16:42 -0700)]
kernel-module-split.bbclass: add a prefix for module package name pattern
When splitting kernel modules into individual packages, such packages take
their names from the module name. This is OK under most of the circumstances.
However, it may lead to package naming collisions if there exists two
modules with the same name.
Situations like this can occur when building testing modules. For instance,
there exists testing versions of the modules for non-volatile memory that
are built with different linker options but bear the same module name. If
one wants to package such modules, it is be good to be able to name
packages differently. This can be done by prefixing the package name with
a KERNEL_MODULE_PACKAGE_PREFIX that can be set by the recipes that inherit
from module.bbclass.
André Draszik [Fri, 24 Jun 2016 15:30:11 +0000 (16:30 +0100)]
uclibc: re-enable verbose compilation
uClibc-ng swapped the meaning of V=1 and V=2 in 2015 before
the 1.0.3 release.
Before that, V=2 printed the full commands while V=1 printed the
abbreviated versions.
This recipe was never updated to follow the change and we since
see brief build output only.
At the same time, convert V from an environment variable to
a make variable by adding to EXTRA_OEMAKE, so as to be in
line with how things are done in other recipes that use
kbuild.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
André Draszik [Fri, 24 Jun 2016 13:40:08 +0000 (14:40 +0100)]
classes/kernel: fix symlink logic when bundling initramfs images
If linkpath points to the a file in KERNEL_OUTPUT_DIR, rather than
outside, then symlink creation for the bundled initramfs image files
fails.
This is because in that case $linkpath.initramfs and $realpath.initramfs
are in the same directory, KERNEL_OUTPUT_DIR, and hence are the same.
Since we just created $realpath.initramfs, creating a symlink with the
same name will fail.
Given that $linkpath is not necessarily the same as the kernel image type,
just removing this symlink creation is not the right thing to do, as
in that case kernel_do_deploy() wouldn't find the bundled file.
What we really want is a symlink from the name of the initramfs-bundled
kernel image type to the real initramfs-bundled kernel image, as that is
what is actually used later in do_deploy().
This brings the code path for when $KERNEL_OUTPUT_DIR/$type is a symlink
in line with when it is not.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
The alternative would probably be to force compilation in normal mips
mode for all of glib (as is done for armv4 and armv5). While that
would retain the valgrind support, valgrind support itself shouldn't
be needed on the target device, and we rather keep the mips16e mode.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
André Draszik [Fri, 24 Jun 2016 10:54:29 +0000 (11:54 +0100)]
json-c: backport patch to fix uClibc link issues
We need to link against libm as we get linker errors otherwise:
<sysroot>/usr/lib/libjson-c.so.2: undefined reference to `__isnan'
<sysroot>/usr/lib/libjson-c.so.2: undefined reference to `__isinf'
collect2: error: ld returned 1 exit status
Backport the upstream patch.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
André Draszik [Fri, 24 Jun 2016 10:54:28 +0000 (11:54 +0100)]
libidn: fix QA warning (uClibc)
WARNING: libidn-1.32-r0 do_package_qa: QA Issue: libidn rdepends on libiconv, but it isn't a build dependency, missing libiconv in DEPENDS or PACKAGECONFIG? [build-deps]
We already have virtual/libiconv which is set appropriately
in all environments, so let's use it to fix the issue.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
André Draszik [Fri, 24 Jun 2016 10:42:32 +0000 (11:42 +0100)]
classes/kernel: fix symlink creation in DEPLOYDIR for bundled initramfs
If multiple kernel image types have been specified, only the very first
one would receive a symlink in DEPLOYDIR.
The reason is that we're looping over the list of image types and check
if a bundled initramfs images exists using a relative path. As part of
the loop we're changing the current directory, hence all additional
iterations fail to see the files we're looking for, and hence no symlinks
are being created.
Fix by not changing the directory and adjusting the ln invocation instead.
Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Khem Raj [Thu, 23 Jun 2016 22:23:19 +0000 (15:23 -0700)]
musl: Upgrade to tip
Rich Felker (4):
fix undefined pointer arithmetic in CMSG_NXTHDR macro
fix a64l undefined behavior on ILP32 archs, wrong results on LP64 archs
avoid padding gaps in struct sockaddr_storage
remove comments on copyright status from UTF-8 implementation files
Szabolcs Nagy (8):
fix the use of uninitialized value in regcomp
add preadv2 and pwritev2 syscall numbers for linux v4.6
add SO_CNX_ADVICE to sys/socket.h, new in linux v4.6
add ETH_P_MACSEC netinet/if_ether.h, new in linux v4.6
update siginfo struct for linux v4.6
add CLONE_NEWCGROUP clone flag, new in linux v4.6
add new tcp_info fields from linux v4.6
update sys/socket.h to linux v4.6
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Nathan Lynch [Thu, 23 Jun 2016 16:53:28 +0000 (11:53 -0500)]
recipetool: recognize less common makefile names
GNU make looks for "makefile" and "GNUmakefile" in addition to
"Makefile", so add these other names to the heuristic for detecting a
make-based project.
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Martin Jansa [Thu, 23 Jun 2016 10:58:39 +0000 (12:58 +0200)]
test-dependencies.sh: Strip also '\.bb; .*' before adding failed recipe to list of failed
* format of bitbake tasks changed in: 2c88afb taskdata/runqueue: Rewrite without use of ID indirection
-ERROR: Task 4 (/OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb, do_fetch) failed with exit code '1'
+ERROR: Task /OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb:do_fetch (/OE/build/oe-core/openembedded-core/meta/recipes-devtools/rpm/sftp.bb:do_fetch) failed with exit code '1'
so strip not only '\.bb, .*' used before, but also '\.bb;.*' to drop
the task name to get recipe name.
* for more details see:
http://lists.openembedded.org/pipermail/openembedded-core/2016-June/123132.html
* without this change you can see test-dependencies.sh trying to rebuild packages
like:
Building recipe: fbprogress (6/21)
Building recipe: fbprogress.bb:do (7/21)
where the later of course doesn't exist as a recipe
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
We patch Python's distutils modules to access STAGING_INCDIR/LIBDIR, so when
they are not set, scripts that utilize distutils (e.g. python-config) fail.
Several recipes need to export those manually to prevent such failures,
so let's do that in the class instead.
PYTHON variable is exported because otherwise autotools' python.m4
macro will pick up its own internal default, which may not be the version
that we want.
glib recipe in particular was previously using Python 2.x during build due to python.m4
defaulting to it - now it's using Python 3.x, and so needs a small fix in
deletion of *.pyc files.
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>