If the output from opkg-query-helper.py is empty, output.split('\n')
would result in a list containing one element which is an empty string
while iterating over each line in the output. An exception is then
thrown by the line:
pkg, pkg_file, pkg_arch = line.split()
with the message:
Exception: ValueError: need more than 0 values to unpack
To avoid this, we add a condition to only split the output if it isn't
empty.
Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Mon, 24 Feb 2014 15:10:49 +0000 (15:10 +0000)]
sstate: Drop 'SafeDep' code from setscene validation function
I have a feeling this code exists from the time before we had proper
coverage of one sstate task by another task. At that time it was a
"poor" persons version of that idea, we now have much better
code internal to bitbake which handles this.
Worse, this code actually breaks certain rebuild scenarios,
e.g.:
Richard Purdie [Mon, 24 Feb 2014 16:12:07 +0000 (16:12 +0000)]
package: Drop do_package_write task
The reasons this task was introduced are lost in the mists of time. It
allowed for the a single "package_write" task instead of spelling out
the explicit package backends, however in all but one case we do that
anyway.
As such as might as well give in and delete the task, converting that
single reference into explicit dependencies.
This gives bitbake a bit less work to to when processing the runqueue
since there are less tasks (but more dependencies in some cases).
Paul Eggleton [Mon, 24 Feb 2014 16:05:46 +0000 (16:05 +0000)]
classes/utility-tasks: make do_listtasks a little more friendly
* Sort the list so it's at least in some form of logical order. I looked
at sorting by dependencies, but that's a topological sort, and given
no such function is shipped as part of the python standard libraries
it would seem excessive to pull one in just for this. In any case, I'm
not sure that for the data we have this would lead to any particularly
pleasing result.
* Show the doc values as defined in documentation.conf (where present)
as a description
Paul Eggleton [Mon, 24 Feb 2014 16:05:45 +0000 (16:05 +0000)]
classes/package_tar: fix conflicts with package_deb / package_ipk
Avoid tar noticing that the directory is changing when
do_package_write_deb or do_package_write_ipk are running at the same
time as do_package_write_tar (because DEBIAN and CONTROL are being added
and removed while tar is running so the directory changes).
Paul Eggleton [Mon, 24 Feb 2014 16:05:44 +0000 (16:05 +0000)]
classes/sstate: fix taints being undone on execution of sstate tasks
The code here that deletes stamps was also deleting the taint files; so
forcing an sstate task with -f would force it to execute and then
because the taint file was deleted in the process, the next execution
would simply restore the output from sstate again. We need to exclude
the taint files just like we did in bb.build.make_stamp().
Jacob Kroon [Sat, 22 Feb 2014 16:52:29 +0000 (17:52 +0100)]
bitbake: ast: Fix support for anonymous methods in wildcard .bbappend files
When using wildcard .bbappend files with anonymous methods in them,
bitbake/python fails to parse the generated code since the '%' is encoded
in the generated method name.
Fix this by including '%' in the convert-to-underscore list during
method name mangling.
While we're at it, move the method name mangling translation table
to a class variable, as suggested by Chris Larson.
Robert Yang [Mon, 24 Feb 2014 09:35:55 +0000 (04:35 -0500)]
lz4: fix CC
It defined the CC to ${TARGET_PREFIX}gcc which lost the --sysroot and was
incorrect, it would cause unexpected errors, we should define it as CC=${CC}.
Jonathan Liu [Fri, 21 Feb 2014 04:43:38 +0000 (15:43 +1100)]
image_types.bbclass: fix cpio IMAGE_CMD to preserve working directory
The working directory is changed in a subshell when executing cpio to
preserve the working directory for any subsequent commands. This is to
keep the working directory consistent when generating multiple image
types.
Hongxu Jia [Fri, 21 Feb 2014 06:23:08 +0000 (14:23 +0800)]
rootfs.py: tweak _multilib_sanity_test for ipk incremental image generation
The _multilib_sanity_test installs multilib packages in a temporary
root fs, and compare with the current image to figure out duplicated
files that come from different packages.
While incremental image generation enabled and the previous image
was existed, there was an Multilib check error:
...
ERROR: Multilib check error: duplicate files tmp/work/qemux86_64-poky-
linux/core-image-minimal/1.0-r0/multilib/lib32/lib/libc.so.6 tmp/work/
qemux86_64-poky-linux/core-image-minimal/1.0-r0/rootfs/lib/libc.so.6
is not the same
...
The reason is the file in the existing image has been prelinked by
previous image generation and the file in a temporary root fs is not
prelinked, even though both of them came from the same package, the
Multilib check failed.
Hongxu Jia [Fri, 21 Feb 2014 06:21:36 +0000 (14:21 +0800)]
rootfs.py: support BAD_RECOMMENDATIONS for ipk incremental image generation
While incremental image generation enabled and the previous image is
existed, if BAD_RECOMMENDATIONS is changed, the operation on the
existing image is complicated, so remove the old image in this situation.
The same with PACKAGE_EXCLUDE and NO_RECOMMENDATIONS.
Hongxu Jia [Fri, 21 Feb 2014 06:12:52 +0000 (14:12 +0800)]
package_manager.py: support ipk incremental image generation
Add the following three functions to OpkgPM class:
- The 'dummy_install' is used to dummy install pkgs, and returns the log
of output;
- The 'backup_packaging_data' is used to back up the current opkg
database;
- The 'recover_packaging_data' is used to recover the opkg database
which backed up by the previous image creation;
Tweak 'remove' function in OpkgPM class, which the options for remove
with dependencies was incorrect.
Tweak 'handle_bad_recommendations' function in OpkgPM class:
- Fix none value check;
- Add the existance check of opkg status file;
Hongxu Jia [Fri, 21 Feb 2014 06:10:17 +0000 (14:10 +0800)]
manifest.py: add create_full for OpkgManifest class
The function create_full creates the manifest after the package in
initial manifest has been dummy installed. It lists all *to be
installed* packages. There is no real installation, just a test.
Saul Wold [Thu, 20 Feb 2014 20:55:09 +0000 (12:55 -0800)]
runqemu: Ensure ROOTFS path is absolute
There is a problem if a relative path is passed to the kernel for NFS usage
that it will not correctly find it, so ensure that the ROOTFS path is absolute.
Valentin Popa [Thu, 20 Feb 2014 10:09:36 +0000 (12:09 +0200)]
gtk+3: upgrade to 3.10.7
(*) removed patches that were already
commited upstream
(*) added new patch to solve the build issue
(*) changed the package URL because
the old one is unreliable.
Kai Kang [Thu, 20 Feb 2014 02:11:09 +0000 (10:11 +0800)]
update-rc.d.bbclass: fix inhibit check
In update-rc.d.bbclass it checks variable INHIBIT_UPDATERCD_BBCLASS to
inhibit from inheriting this class. But it is wrong logic that when
'sysvinit' is in 'DISTRO_FEATURES', INHIBIT_UPDATERCD_BBCLASS will not
be checked.
Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Dave Lerner [Sat, 15 Feb 2014 15:27:31 +0000 (09:27 -0600)]
valgrind: integration of regression tests to ptest
Modifies valgrind's regression test framework to be compatible
with the yocto PTEST framework as follows:
* existing recipe valgrind*bb adds new methods: do_compile_ptest and
do_install_ptest.
* new file run-ptest adds the wrapper interface to the valgrind
regression test script vg_regtest.
* existing valgrind regression test script 'vg_regtest' changes
to report the status of the valgrind component tests in the
format that PTEST expects, instead of the valgrind formats, but only
when vg_regtest is invoked with an optional --yocto-ptest argument
* four new patches disable building tests that don't compile with
the yocto compiler and default options. See the patches for details.
Tom Zanussi [Wed, 19 Feb 2014 20:53:37 +0000 (14:53 -0600)]
wic: Make exec_native_command() fail if a command isn't found
Because exec_cmd() return values can in certain cases be non-zero yet
non-fatal, we don't want to automatically make them fatal (though
there should at least be a warning in such cases, which this patch
also does); non-zero return values are definitely fatal however if
they mean that a native command wasn't found, so have
exec_native_cmd() check the return value of exec_cmd() for that case,
and bail out if so.
Changes:
- rename DESCRIPTION with length < 80 to (non present tag) SUMMARY
- drop final point character at the end of SUMMARY string
- remove trailing whitespace of SUMMARY line
Paul Barker [Wed, 19 Feb 2014 15:15:17 +0000 (15:15 +0000)]
opkg: Fix add-exclude.patch
The case statement for ARGS_OPT_ADD_EXCLUDE added to the argument handling
switch statement in opkg was missing a "break;" at the end, so it was falling
through into the handler for ARGS_OPT_NOACTION. Thus when "--add-exclude" was
specified on the command line it was as if "--noaction" was also being
specified. This appears to be the root cause of YP bug 5311.
Tested using the case described by Alexandru Georgescu in YP bug 5311:
Cristian Iorga [Fri, 14 Feb 2014 13:36:27 +0000 (15:36 +0200)]
libvorbis: upgrade to 1.3.4
- Updated website;
- Cleaned up bugtracker web address;
- Removed PR;
- Switched to ${BP} variable;
- removed obsolete_automake_macros.patch,
included in upstream;
Laurentiu Palcu [Tue, 18 Feb 2014 13:49:44 +0000 (15:49 +0200)]
lib/oe/image.py: add image dependency mechanism
This commit adds a dependency mechanism to image creation, so that we can
split the images creation execution in groups, that can be executed in
parallel, having the dependencies satisfied in the same time. The old
code didn't need this since everything was serialized.
Technically, it adds a dependency graph topological sort class that the
main Image class can use to sort out the dependencies.
Images that have dependencies have to declare them using the NEW
IMAGE_TYPEDEP variable, like in the example below:
Laurentiu Palcu [Tue, 18 Feb 2014 13:49:43 +0000 (15:49 +0200)]
image*.bbclass, bootimg.bbclass: add image type dependencies
The following dependencies were manually added in the image creation
code. However, in order to have an image dependency mechanism in place,
use a new variable, IMAGE_TYPEDEP, to declare that an image type depends
on another being already created.
The following dependencies are added by this commit:
elf -> cpio.gz
live -> ext3
vmdk -> ext3
iso -> ext3
hddimg -> ext3
This commit adds also another new variable: IMAGE_TYPES_MASKED. Currently,
masking out certain types from IMAGE_FSTYPES was hardcoded in the image
creation code.
Ross Burton [Tue, 18 Feb 2014 12:13:01 +0000 (12:13 +0000)]
avahi: handle SO_REUSEPORT not being available
Linux < 3.9 doesn't have the SO_REUSEPORT option so instead of failing to start
when built with >=3.9 kernel headers but booted on <3.9 kernels, continue as if
SO_REUSEPORT wasn't available.
Martin Jansa [Tue, 18 Feb 2014 11:05:03 +0000 (12:05 +0100)]
libxkbcommon: Add PACKAGECONFIG for x11
* allow to explicitly disable x11 with --disable-x11, otherwise
do_configure fails for DISTROs without x11 in DISTRO_FEATURES:
| No package 'xcb-xkb' found
| configure:18763: $? = 1
| configure:18777: result: no
| No package 'xcb' found
| No package 'xcb-xkb' found
| configure:18793: error: xkbcommon-x11 requires xcb-xkb >= 1.10 which
was not found. You can disable X11 support with --disable-x11.
Matthieu Crapet [Mon, 17 Feb 2014 16:28:58 +0000 (17:28 +0100)]
image_types: minor, inline CPIO_TOUCH_INIT()
Since generic compression solution has been introduced
(see revision b7e4ed41ee480f00b7265341e9e2d2c2b9135143),
CPIO_TOUCH_INIT() is only called by IMAGE_CMD_cpio.
diffconfig() is a new task that makes a diff between the
old and new config files and writes to the fragment.cfg result file.
menuconfig() always copy the original config file, so the user
doesn't need to copy it.
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of using 'diff' command between two kernel config files,
the task diffconfig does the job creating the file
$WORKDIR/fragment.cfg that user should review and use.
Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Steffen Sledz [Tue, 11 Feb 2014 08:59:31 +0000 (09:59 +0100)]
lighttpd: introduce /etc/lighttpd.d subdir for config file includes
Extend default config file by a directive to include config file
fragments from /etc/lighttpd.d. This allows other web application
packages to put their configuration there.
The working directory needs to be changed before the image creation
commands instead of afterwards.
exposed an issue when generating tar images, where it would cd into
rootfs and then create the rootfs tarball and remain there since the
cmd to cd into deploy dir moved up the immediate following cmd like
tar.bz2 or tar.gz were still looking for tarball in current directory
which esentially was not deploy dir but IMAGE_ROOTFS instead
Khem Raj [Sun, 16 Feb 2014 19:48:16 +0000 (19:48 +0000)]
binutils: ld-is-gold should not affect native and crosssdk recipes
gold linker does not support all architectures, currently arm and x86
are best supported, therefore we can not enable this as a full distro
option where we need to support other architectures e.g. ppc, mips
currently, if we enable ld-is-gold distro feature conditionally then it
invalidates native and sdk version of native binutils because configure
option would change. With this patch we limit ld-is-gold feature to
imapact cross binutils and target binutils only. This means that we
can reuse the sdk and native versions across architectures.
Khem Raj [Sat, 15 Feb 2014 22:04:05 +0000 (22:04 +0000)]
icu: Disable the default LDFLAGSICUDT for target compile
By default LDFLAGSICUDT=-nodefaultlibs -nostdlib for Linux
which means DT_NEEDED section for libicu will not be populated
with dependencies when we reset it to be empty then the default
libraries it needs are added to DT_NEEDED section in ELF header
This patch is a workaround as I consider it for now, since it could
be a problem in glibc dynamic loader for arm (especially for hf case)
where its unable to load shared objects which dont have any dependencies
expressed in DT_NEEDED segment.
here is when LDFLAGSICUDT=-nodefaultlibs -nostdlib
btw. ldd reveals the fist one to be static library while the second
one is detected as shared library. This could be a clue into how
elf headers are being interpreted by dynamic loader.
The data seems to be all static in libicudata which could
load it quicker and thats what could be confusing dynamic linker ..may
be
Khem Raj [Sat, 15 Feb 2014 07:19:27 +0000 (23:19 -0800)]
rootfs.py: Check for LDCONFIGDEPEND being empty string
We override LDCONFIGDEPEND to be empty string for uclibc
however the current check is for it being None as a result
the function is still executed but ldconfig-native is not
built as dependency for rootfs when building with uclibc
Fixes errors like below
File:
'/home/kraj/work/angstrom-repo/sources/openembedded-core/meta/lib/oe/rootfs.py',
lineno: 191, function: _run_ldconfig
0187: def _run_ldconfig(self):
0188: if self.d.getVar('LDCONFIGDEPEND', True) is not None:
0189: bb.note("Executing: ldconfig -r" +
self.image_rootfs + "-c new -v")
0190: self._exec_shell_cmd(['ldconfig', '-r',
self.image_rootfs, '-c',
*** 0191: 'new', '-v'])
This change appears to cause more problems than it fixes since the
compression commands usually work in the deploy dir but the archive ones
have always worked in the rootfs dir (which is clear from the tar command
we use).
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
David Reyna [Fri, 7 Feb 2014 05:06:27 +0000 (21:06 -0800)]
bitbake: toaster: implement recipe summary page
Implement the updated design for the recipe summay page, with pop-up
boxes for the dependecies and layer commit ids, column filtering, and
column sorting support.
bitbake: toaster: Make popovers mutually exclusive
Table popovers should be mutually exclusive (only one
of them should be open at any given time), and should
close when you click outside their area. But this is not
the default popover behaviour in Bootstrap, so some
additional javascript is needed.
The code in main.js taking care of this in the design
prototype was quite ugly and didn't get on well with
certain browsers. I have replaced it with a better
solution (although still not ideal).
Some recipes and packages have a lot of dependencies.
To stop their popovers from taking over the full
height of the screen, I have given them a maximum
height and made their content scrollable in
default.css
This patch changes the task_color tag in
projecttags.py to make sure it adds the error
class to the rows corresponding to failed tasks
in the tasks table.
This patch changes default.css so that any anchor
tag inside a table cell with the error class applied
inherits the class styles. This ensures that the
failed tasks listed in the builds table look red
like the failed tasks in the tasks table.
Belen Barros [Tue, 4 Feb 2014 15:23:10 +0000 (15:23 +0000)]
bitbake: toaster: Make "Edit columns" multiselect
Twitter Boostrap elements with the dropdown-menu class
close by default once a selection is performed. Such
behaviour is not appropriate for our "Edit columns" menu,
since users might want to check / uncheck several
columns.
This patch adds a call to the stopPropagation() jQuery
function to main.js to stop the "Edit columns" menu
from closing every time you change a checkbox.
Belen Barros [Mon, 3 Feb 2014 15:35:47 +0000 (15:35 +0000)]
bitbake: toaster: Add clear filter button to filter tooltips
This patch modifies the basetable_top.html template to add
the 'Show all' button to the applied filter tooltip. It also
adds a delay in the tooltip dismissal in main.js to allow
users to click the button comfortably.
The patch does not add the functionality to the button (when
you click on it nothing happens). Someone else will need
to add that in.
Belen Barros [Mon, 27 Jan 2014 14:05:54 +0000 (14:05 +0000)]
bitbake: toaster: Clean up main.js
Clean up main.js to leave only what is being
used in the design prototype.
Initialise the Bootstrap tooltips for any anchor tag inside
a table heading with the btn-primary class applied. This
effectively styles the title attribute of the applied
filters to look like all other Toaster tooltips.
Dave Lerner [Thu, 23 Jan 2014 17:47:41 +0000 (11:47 -0600)]
bitbake: toaster: Implementation of package detail views
Adds new package detail views. The views are based on
specifications found in attachments to:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=4328
specifically:
design-1.5.1-package-details.pdf, and
design-1.1.1-included-package-details.
This patch includes a redefinition of constant numbers for
task dependency tasks. This is needed in order to achieve
sorting criteria from the design.
This change invalidates currently dependency information for
currently existing builds, as it breaks compatibility.
Signed-off-by: Dave Lerner <dave.lerner@windriver.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Ravi Chintakunta <ravi.chintakunta@timesys.com> Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Ravi Chintakunta [Fri, 17 Jan 2014 21:27:29 +0000 (16:27 -0500)]
bitbake: toaster: Filter Dialog fix to display filter options as radio buttons
- Filter options are displayed as radio buttons in the filter dialog.
- To preserve the order of the filter options, the options are passed
as tuples inside a list, instead of key/value pairs of a dictionary. Changed
the filter dialog code to use the tuple
Koen Kooi [Sat, 15 Feb 2014 15:28:55 +0000 (16:28 +0100)]
bitbake-prserv-tool: make help text show .conf suffix
'export' will accept any output filename, but 'import' needs a '.conf'
suffix to work. Otherwise you'll get:
koen@beast:/build/v2013.12$ bitbake-prserv-tool import x.txt
ERROR: Traceback (most recent call last):
File "/build/v2013.12/sources/bitbake/lib/bb/cookerdata.py", line 162,
in wrapped
return func(fn, *args)
File "/build/v2013.12/sources/bitbake/lib/bb/cookerdata.py", line 172,
in parse_config_file
return bb.parse.handle(fn, data, include)
File "/build/v2013.12/sources/bitbake/lib/bb/parse/__init__.py", line
100, in handle
raise ParseError("not a BitBake file", fn)
ParseError: ParseError in x.txt: not a BitBake file
ERROR: Unable to parse x.txt: ParseError in x.txt: not a BitBake file
Importing from file x.txt failed!
Scott Garman [Sat, 15 Feb 2014 19:04:47 +0000 (11:04 -0800)]
runqemu: add ability to skip using an existing tap device
Support the sitauation where a user could have another VM running
which uses tap devices. To prevent runqemu from trying to use the
same tap device, runqemu will skip using a tap device if it finds
a filename tapX.skip within its lock directory.
Khem Raj [Sun, 16 Feb 2014 01:45:25 +0000 (01:45 +0000)]
openssl: Fix build on uclibc
we need to map OS string correctly to include linux-uclibcspe
which is what we use with ppc+spe on uclibc, additionally move
gnuspe triplet mapping to same code as well
Ming Liu [Mon, 17 Feb 2014 08:48:15 +0000 (16:48 +0800)]
rpm: fix a endian incompatible error in generating tag
A flaw was found in the way rpm generating arbitrary tags, which leads to a
incorrect query result, this issue is introduced by a incompatible endianess
when the generating process is executed on different architectures.
This patch resolves it by taking the byte order that host uses.
Paul Eggleton [Mon, 17 Feb 2014 14:07:41 +0000 (14:07 +0000)]
bitbake: build: fix handling of task override for tasks with underscores in their names
Tasks whose names contain underscores (such as do_populate_sdk in OE)
when converted to a task override do not function properly. If we
replace underscores with hyphens we can still have a working override
for these tasks.
Paul Eggleton [Mon, 17 Feb 2014 14:07:40 +0000 (14:07 +0000)]
bitbake: parse: make vars_from_file return None for non-recipes
It doesn't really make sense to set PN from .conf files, for example.
More concretely, this avoids the config hash changing unnecessarily
within Hob due to PN effectively changing (since bblayers.conf is
parsed first and then .hob.conf).