bitbake: bb.cooker: show limited traceback for parsing ExpansionError
It's useful to see tracebacks for ExpansionErrors, but only if we skip the
leading bitbake-internal elements, otherwise we see elements of the expansion
process.
As one example:
Before:
ERROR: ExpansionError during parsing /scratch/yocto-new/external-as-needed/poky/meta/recipes-core/glibc/glibc-locale_2.23.bb: Failure expanding variable PV[:=], expression was ${@get_external_libc_version(d)} which triggered exception AttributeError: 'module' object has no attribute 'external'
After:
ERROR: ExpansionError during parsing /scratch/yocto-new/external-as-needed/poky/meta/recipes-core/glibc/glibc-locale_2.23.bb
Traceback (most recent call last):
File "PV[:=]", line 1, in <module>
File "/scratch/yocto-new/external-as-needed/meta-sourcery/recipes-external/glibc/glibc-external-version.inc", line 3, in get_external_libc_version(d=<bb.data_smart.DataSmart
object at 0x7f05d2566950>):
sopattern = os.path.join(d.getVar('base_libdir', True), 'libc-*.so')
> found_paths = oe.external.find_sysroot_files([sopattern], d)
if found_paths:
ExpansionError: Failure expanding variable PV[:=], expression was ${@get_external_libc_version(d)} which triggered exception AttributeError: 'module' object has no attribute 'external'
Edwin Plauchu [Tue, 17 May 2016 19:26:16 +0000 (14:26 -0500)]
makedevs: fix security issues
This avoids makedevs failure to compile with compiler flags
which elevate common string formatting issues into an error
(-Wformat -Wformat-security -Werror=format-security).
Edwin Plauchu [Tue, 17 May 2016 19:25:11 +0000 (14:25 -0500)]
zip: fix security issues
This patch avoids zip recipe fails to compile with compiler
flags which elevate common string formatting issues into an
error (-Wformat -Wformat-security -Werror=format-security).
Edwin Plauchu [Tue, 17 May 2016 19:25:35 +0000 (14:25 -0500)]
stat: fix security issues
This patch avoids stat fails to compile with compiler flags which
elevate common string formatting issues into an error (-Wformat
-Wformat-security -Werror=format-security).
It was added for testing, and not needed any more after: 4a8a74c62836a20610daf029d4cec0b3087758b2
Author: Robert Yang <liezhi.yang@windriver.com>
Date: Mon Mar 21 02:25:50 2016 -0700
Martin Jansa [Wed, 18 May 2016 09:57:33 +0000 (11:57 +0200)]
useradd: use bindir_native for pseudo PATH
* useradd/userdel functions will fail for recipes which override their target prefix
(e.g. to /opt/foo), because it will try to use pseudo from native-sysroot/opt/foo/bin/pseudo
Humberto Ibarra [Wed, 18 May 2016 16:17:59 +0000 (11:17 -0500)]
scripts/oe-selftest: Improve listing by reducing unneeded spacing
The --list-tests option assumes a terminal of 150 characters wide,
which is clearly wrong. The output for this command is messy and
hard to understand for lower widths. Every command should look
good in a 80 characters terminal.
Unfortunately, this can't be done at the moment. The bad naming of
testcases have made the test names incredibly long.
This patch reduces spacing between columns and shows the tests
names in a concise and understandable way. The format is even the
same one required for running a testcase. Once the testcase naming
improves, this output will look even better.
Raymond Tan [Tue, 17 May 2016 05:41:09 +0000 (13:41 +0800)]
mkefidisk.sh: mount images as read-only
Mount the hddimg and rootfs.img as read-only when creating the bootable
image on the medium. Otherwise, the md5 checksum values of the hddimg will
be altered. As this changed checksum value might cause issue for users
whom would reuse the hddimg.
The error reporting improvements were merged upstream (smartpm 406541f569)
and refactored later (smartpm 20af0aac33), yet a part of the patch was
kept here (oe-core 5fc580fc44).
Due to the upstream refactoring the patch still applies cleanly, but it
isn't actually needed. The added changes are duplicate or dead code.
Klauer, Daniel [Tue, 17 May 2016 12:58:04 +0000 (12:58 +0000)]
python-smartpm: Don't ignore error if RPM transaction fails without problems
SmartPM could misinterpret RPM transaction error as success,
if ts.run() (RPM Python API) returns an empty problems list.
This could happen for example if the RPM database is partially corrupted
such that the transaction does not have any problems like conflicts or
missing dependencies, but still can't be committed.
The added patch fixes the problem in the upstream sources;
one of the existing patches has to be adjusted to still apply.
SmartPM's --remove-all option was unusable, because the fix from
commit 03266e89a6 was lost in commit 5fc580fc44. Thus, add a new
patch to fix --remove-all.
It seems like the previous fix was lost by mistake:
Upstream merged the *old* version of the patch (smartpm 406541f569),
and when SmartPM in oe-core was upgraded to the new upstream release,
the --remove-all fix from the *new* patch was not carried over.
Mariano Lopez [Mon, 2 May 2016 13:19:15 +0000 (13:19 +0000)]
testexport.bbclass: Split testimage class
This adds a new class that only export tests of images,
the code was taken from testimage class and most of it
wasn't modified. Just add some vars for the new class.
testexport class require testimage class to get the
test suites defined for all the images.
Mariano Lopez [Mon, 2 May 2016 13:19:14 +0000 (13:19 +0000)]
oeqa/oetest.py: Add class ExportTestContext
Adding the class is needed to separate the exported test
from the test image; both test run under different conditions,
i.e. an exported test doesn't require to change the signal
handling.
This change adds clasess ExportTestContext and ImageTestContext,
both of them inherits from RuntimeTestContext. Also refactors
RuntimeTestContext class, to keep the code common in this class.
Richard Purdie [Wed, 18 May 2016 18:28:29 +0000 (19:28 +0100)]
pseudo: Work around issues with glibc 2.24
There are issues with a change made to RTLD_NEXT behaviour in glibc 2.24
and that change was also backported to older glibc versions in some distros
like Fedora 23. This adds a workaround whilst the pseudo maintainer fixes
various issues properly.
Richard Purdie [Wed, 18 May 2016 22:13:06 +0000 (23:13 +0100)]
glibc: Add missing patch hunk back
This hunk of patch went missing during the glibc upgrade to 2.24
and without it, uninative-tarball doesn't work properly. This adds
it back so we can spin a new version of uninative.
Jussi Kukkonen [Mon, 16 May 2016 13:22:50 +0000 (16:22 +0300)]
weston: Upgrade 1.9.0 -> 1.10.0
Support for multiple new protocols, many new features:
https://lists.freedesktop.org/archives/wayland-devel/2016-February/027039.html
* Weston now depends on wayland-protocols (which is protocol
collection split off from weston).
* Remove upstreamed patches, add a patch to fix the wayland-protocols
path used during build.
* Use HTTPS for tarball download
Jussi Kukkonen [Mon, 16 May 2016 13:22:49 +0000 (16:22 +0300)]
wayland-protocols: Add recipe
wayland-protocols is a collection of Wayland protocols split
out from weston. It is a build dependency for Weston 1.10.
* Added a patch to enable allarch build.
* Use HTTPS for tarball uri.
Jussi Kukkonen [Mon, 16 May 2016 13:22:38 +0000 (16:22 +0300)]
glib-2.0: Upgrade 2.46.2 -> 2.48.1
* Remove now unnecessary readlink patches and
ignore-format-nonliteral-warning.patch
* Port relocate-modules.patch
* Add ${datadir}/gettext/its to FILES_${PN}-dev: this could be done in
gettext.bbclass but so far glib is the first and only ITS rule
installer
Richard Purdie [Mon, 16 May 2016 21:52:00 +0000 (22:52 +0100)]
bitbake: knotty: Fix output buffering issues
We need to flush the footer removal, else it may not be outputted until
the buffer is flushed as part of StreamHandler and this would lead to
it removing the ERROR output just printed which is extremely confusing.
Also ensure the footer is cleared before printing a summary as in
some cases it wasn't being removed, also leading to user confusion.
Richard Purdie [Mon, 16 May 2016 21:51:08 +0000 (22:51 +0100)]
bitbake: siggen: Fixes to handle sigdata/siginfo files only containing basehash data
The signature data file comparison functions are meant to be able to
handle data files containing just the base hash data. This had regressed
in some places so add fixes to allow these comparisons to be made. The
runtime components in the data files are optional.
Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Elliot Smith [Thu, 12 May 2016 14:10:37 +0000 (15:10 +0100)]
bitbake: toasterui: capture keyboard interrupts the same way as knotty
knotty captures two levels of keyboard interrupt: a single interrupt
or two interrupts in a row. These then trigger stateShutdown
and stateForceShutdown respectively.
toasterui doesn't have an equivalent way of capturing interrupts and
using them to shut down bitbake. Now that we are no longer using
knotty + XMLRPCServer for our command line builds (since switching to
per-project build directories), we see some odd side effects of this,
such as builds continuing after they have been interrupted on the
command line.
Bring toasterui in line with knotty (copy-paste most of the code
in knotty.py which deals with interrupts) so that a keyboard
interrupt actually shuts down the bitbake server (if not in
observe only mode).
Additionally use the cancel_cli_build() method to set the Build
status to CANCELLED in Toaster's db when we get keyboard interrupts.
This means that builds interrupted on the command line show as
cancelled (same as if they'd been cancelled from the Toaster UI),
as specified in the UI designs.
Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
After clean ups remove api assumptions. Our table data often contains
html snippets to display certain things such as dependency pop overs or
simply links to other parts of the UI. Take these into account when
testing the values of the table data.
Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Michael Wood [Mon, 16 May 2016 13:50:40 +0000 (14:50 +0100)]
bitbake: toaster: toastertables: Clean up and fix up a number of items
- Remove the unused 'computation' field
- Remove the code to try to make the tables behave like an api
- Remove custom JSON encoder in favour of DjangoJSONEncoder
- Simplify get_data and add comments
- Add exception type instead of using generic Exception
- Clean up python style warnings
Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Mon, 16 May 2016 01:42:21 +0000 (18:42 -0700)]
eudev: remove eudev-hwdb from RRECOMMENDS_eudev
The eudev-hwdb needs 12M after install, this made small images like
core-image-minimal much biggher than before, and may also hurt the
devices which use udev, so remove it RRECOMMENDS_eudev by default.
Tom Hochstein [Mon, 16 May 2016 15:35:33 +0000 (10:35 -0500)]
mesa-demos: OpenVG demos with single frame need eglSwapBuffer
sp and text demos rendering single frame. to display the
single frame rendered needed a eglSwapBuffer to diplay to window.
Hence added eglutPostRedisplay to display the frame.
Aníbal Limón [Wed, 11 May 2016 16:41:55 +0000 (11:41 -0500)]
classes/base: get_lic_checksum_file_list imporve validaton of url's
When specify an URL different that supported file:// the function
returns an empty path causing an exception without notice the user
that the URL is Malformed.
Dengke Du [Tue, 26 Apr 2016 05:59:19 +0000 (22:59 -0700)]
coreutils: fix for native and nativesdk
The do_install_append is used for moving/renaming for ALTERNATIVE, but
it breaks native, for example there is no ln, but ln.coreutils, that
makes coreutils-native don't work. This patch fixes the problem.
Signed-off-by: Dengke Du <dengke.du@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Robert Yang [Mon, 25 Apr 2016 08:47:43 +0000 (01:47 -0700)]
oe-buildenv-internal: add BBPATH_EXTRA to BB_ENV_EXTRAWHITE_OE
So that user can easily make their own conf files such as conf/site.conf
work. For example, poky's default BBPATH in bblayers.conf is:
BBPATH = "${TOPDIR}"
Will change it to:
BBPATH_EXTRA ??= ""
BBPATH = "${BBPATH_EXTRA}${TOPDIR}"
When user sets BBPATH_EXTRA in env to their own dir which contains
conf/site.conf, it will work.
Note, BBPATH_EXTRA must end with ":", we can't set BBPATH as
"${BBPATH_EXTRA}:${TOPDIR}" since the sanity would fail when
BBPATH_EXTRA is null.
Robert Yang [Thu, 21 Apr 2016 06:16:47 +0000 (23:16 -0700)]
gnu-efi: set COMPATIBLE_HOST_armv4 to null
It doesn't build with armv4:
lib1funcs.S: Assembler messages:
Assembler messages:
gnu-efi-3.0.3/lib/arm/lib1funcs.S:140: Error: selected processor does not support `clz r3,r1' in ARM mode
gnu-efi-3.0.3/lib/arm/div64.S:95: Error: selected processor does not support `clz r2,r4' in ARM mode
gnu-efi-3.0.3/lib/arm/lib1funcs.S:140: Error: selected processor does not support `clz r2,r0' in ARM mode
[snip]
Robert Yang [Thu, 21 Apr 2016 06:16:47 +0000 (23:16 -0700)]
cogl-1.0: set COMPATIBLE_HOST_armv4 to null
It doesn't build with armv4:
cogl-texture-deprecated.c -fPIC -DPIC -o deprecated/.libs/cogl-texture-deprecated.o
{standard input}: Assembler messages:
{standard input}:831: Error: selected processor does not support `clz r3,r0' in ARM mode
make[4]: *** [deprecated/cogl-fixed.lo] Error 1
[snip]
Richard Purdie [Sat, 14 May 2016 08:26:52 +0000 (09:26 +0100)]
oeqa/decorators: Use wraps consistently
We want the decorator to leave the function names of the test unchanged. Some
decorators are already using wraps for this but not all. Fix this to be consistent
allowing inspection of the test to give the wanted values.
Currently if the server dies, its possible that log messages are never
displayed which is particularly problematic if one of those messages
is the exception and backtrace the server died with.
Rather than having the event queue exit as soon as the server disappears,
we should pop events from the queue until its empty before exiting.
This patch tweaks that code so that even if the server is dead and we're
going to exit, we return any events left in the pipe. This makes
debugging certain failures much easier.
The data included in the event is useful for implementing a pre-build
check that warns about unexpected components, for example because of
an incorrect configuration or changed dependencies.
Such a check can be done in a .bbclass that gets inherited
globally. But in contrast to a UI, such a class cannot request that
the event shall be emitted, and thus the event has to be emitted
whether there is a consumer or not.
This was done conditionally earlier out of concerns about the
performance impact. But now events are handled more efficiently, so
that concern no longer seems valid: in some simple testing (admittedly
on a fast build workstation), the two lines (generating the data and
emitting the event with it) only took about 0.05 seconds (measured
with timeit). That was for a build with roughly 500 recipes (from
pn-buildlist aka depgraph['pn']), triggered via the command line. That
was even with a consumer of the data active and doing some work, so it
should be even faster when there is no consumer.
bmap image conversion type allows to create block map files
for sparse images. Bmap file can be used together with bmap-tools
for efficiently flash images to raw devices (hdd or usb drive)
Signed-off-by: Alexander D. Kanevskiy <kad@kad.name> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ed Bartosh [Mon, 2 May 2016 12:22:32 +0000 (15:22 +0300)]
bmap-tools: initial commit, version 3.2
Bmap-tools - tools to generate block map (AKA bmap) and flash images
using bmap. Bmaptool is a generic tool for creating the block map
(bmap) for a file and copying files using the block map.
The idea is that large file containing unused blocks, like raw system
image files, can be copied or flashed a lot faster with bmaptool than
with traditional tools like "dd" or "cp".
Patrick Ohly [Fri, 6 May 2016 14:58:44 +0000 (17:58 +0300)]
image_types: add support for zip compression
Support for the other compression format is not always readily
available on all OSes. Using zip instead of, say, xz is less
efficient, but perhaps more user-friendly for users on such OSes.
Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ed Bartosh [Wed, 4 May 2016 13:06:27 +0000 (16:06 +0300)]
wic: use next builtin instead of .next method
Generators in Python 3 don't have .next method. It's recommended
to use 'next' builtin instead. As it also present in Python >= 2.6
it should make wic code compatible with both Python 2 and Python 3.
Ed Bartosh [Wed, 4 May 2016 13:06:26 +0000 (16:06 +0300)]
wic: don't encode unicode strings
Removed check for unicode type as it doesn't work in Python 3.
This check is not needed for wic as all its output seem to be
strings. This allows to run code under both pythons.