Richard Purdie [Wed, 8 Jun 2011 08:34:12 +0000 (09:34 +0100)]
bitbake: Cleanup bitbake server init process to be clearer to follow
Create a standard format server class instance with method calls
for each step in the server setup. There should be enough hooks
for each of the different server types.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Liping Ke [Fri, 3 Jun 2011 00:22:40 +0000 (08:22 +0800)]
cache: Implement multiple extra cache fields request support
This patch is to support extra cache. If user needs to request
extra cache fields besides CoreRecipeInfo fields, just add a new
XXXRecipeInfo class definition as Hob Does.
Currently supported Extra RecipeInfo name is an array. We can
support multiple extra cache fields at the same time besides
CoreRecipeInfo which is needed by all clients.
Liping Ke [Fri, 3 Jun 2011 00:21:44 +0000 (08:21 +0800)]
Introduce new param caches_array into Cache impl.
When using hob ui interface, we need extra cache fields.
We will save ui required extra cache fields into a separate
cache file. This patch introduce this caches_array parameter.
It will be used in the extra cache implementation (following patch).
Caches_array at least contains CoreRecipeInfo. If users need extra
cache fields support, such as 'hob', caches_array will contain
more relevant elements such as HobRecipeInfo.
Liping Ke [Fri, 3 Jun 2011 00:20:15 +0000 (08:20 +0800)]
Introduce extra cache class for image creator
Extra RecipeInfo will be all defined in this file. Currently,
Only Hob (Image Creator) Requests some extra fields. So
HobRecipeInfo is defined. It's named HobRecipeInfo because it
is introduced by 'hob'. Users could also introduce other
RecipeInfo or simply use those already defined RecipeInfo.
In the following patch, this newly defined new extra RecipeInfo
will be dynamically loaded and used for loading/saving the extra
cache fields.
Liping Ke [Fri, 3 Jun 2011 00:17:23 +0000 (08:17 +0800)]
cache.py: Refactory Current Cache implementation
This patch is for refactorying current cache implementation, the
main reason is for introducing extra cache fields requests for
image creator as well as other users. The refactory parts include:
Move cache data retrieve methods out of Cache Data Fields
Definition. Since this retrieve methods will be shared for
both CoreRecipeInfo as well as the new introduced extra RecipeInfo
in the following patches.
Chris Larson [Thu, 2 Jun 2011 21:46:13 +0000 (14:46 -0700)]
siggen: don't choke with traceback when data is None
Given we use bb.error, not bb.fatal, here, it seems this was intended to be
non-fatal, yet we'd end up trying to concatenate None. Fix this by setting an
empty task to the empty string, for the purposes of hashing. Also str() the
value we get from the datastore, just in case something other than a string
was stored there.
Bruce Ashfield [Mon, 6 Jun 2011 16:11:36 +0000 (12:11 -0400)]
linux-yocto/meta-yocto: make e1000e structure common [commit: bec3f1e8c]
During work on 1.1 BSPs, some driver options changed. The
result was that the upstream fix b1d670f10e8078485884f0cf7e384d890909aeaa
needs to be available for all BSPs.
These SRCREV updates are the result of making that commit common.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Bruce Ashfield [Mon, 6 Jun 2011 15:30:31 +0000 (11:30 -0400)]
linux-yocto: make e1000e structure common [commit: bec3f1e8c]
During work on 1.1 BSPs, some driver options changed. The
result was that the upstream fix b1d670f10e8078485884f0cf7e384d890909aeaa
needs to be available for all BSPs.
These SRCREV updates are the result of making that commit common.
Bruce Ashfield [Fri, 3 Jun 2011 05:05:30 +0000 (01:05 -0400)]
linux-yocto: update target/meta SRCREVs
This SRCREV update picks up the following changes from the
2.6.37 kernel tree:
- fishriver: create and use a dedicated BSP branch
- fishriver: usbnet fixes, but common to all boards
- standard: update omap baseline match the 2.6.34
upstream merge content
Scott Garman [Thu, 19 May 2011 17:35:40 +0000 (10:35 -0700)]
bitbake.conf: set PSEUDO_PASSWD within FAKEROOTENV
PSEUDO_PASSWD needs to point to the directory where passwd and group
files are kept. This will allow pseudo to use those users and groups
to change file ownership.
Scott Garman [Fri, 3 Jun 2011 17:33:09 +0000 (10:33 -0700)]
shadow: recipe and patch cleanup
Taking over maintenance of the shadow recipe. Cleaning it up in
preparation of adding a -native version that will be used to add
users/groups during preinstall.
Phil Blundell [Fri, 3 Jun 2011 11:30:11 +0000 (12:30 +0100)]
gcc-package-cross: also install the symlinks in libexec with target prefix
.. since this is where collect2 seems to look for them. This seems like
it is really a bug in collect2, but installing the symlinks is an easy
workaround. Without this you get "could not find ld" errors when using -flto.
Chris Larson [Thu, 2 Jun 2011 21:32:17 +0000 (14:32 -0700)]
event: don't catch systemexit from handler execution
This means that anyone firing an event can get a systemexit and result in
their process exiting, which isn't ideal, but behaves the way it used to (in
particular, ensures that a sanity check failure will halt the build). This
should be revisited in the future.
To support translation, qmake based projects usually call lrelease and
lupdate however OE changes the binary names so this needs some mangle
to work out of box.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Thu, 2 Jun 2011 15:12:32 +0000 (16:12 +0100)]
sysvinit: Mark as machine specific since there are machine specific components to this recipe
The inittab file depends on variables that are part of the machine config
such as the SERIAL_CONSOLE so the whole recipe must get built as machine
specific. Better might be to split the config out into a separate recipes
from the binaries but this fixes the immediate problem.
We don't package /etc/rpc and do_install() makes some effort to remove
that file so as to avoid the "installed but not shipped" diagnostic. But,
due to a typo in the command line, the file wasn't actually being removed
and the diagnostic continued to be issued.
Phil Blundell [Thu, 2 Jun 2011 12:15:05 +0000 (13:15 +0100)]
eglibc: fix mispackaging of libcidn
The glob for libc_baselibs was too permissive, causing some of the libcidn
symlinks to be placed in ${PN} rather than the intended subpackage. Worse,
the .so itself was actually landing in ${PN}-dev, so the net effect was to
make libc6-dev a dependency of libc6.
Jingdong Lu [Tue, 24 May 2011 05:57:57 +0000 (13:57 +0800)]
libx11: fix libX11 keysyms to pass xts5 of lsb
Fixes bug: [YOCTO #1095]
Because of cross-compiling libx11 keysyms will cause Xts5 test of LSB fail.
libx11 use a tool named "makekey" which compiled as a native tool to generate
ks_tables.h. Because the size of "unsigned long" is different between 32-bit
and 64-bit, we should judge whether our target is 32-bit or 64-bit and tell
"makekey".
I add a patch to "makekeys_crosscompile.patch" to "src/utils/makekeys.c" in
order to deal with the different targets. If our target is 32-bit, we force
the variable its type is "unsigned long" to "uint32_t". So we can generate a
correct keysyms.
Phil Blundell [Wed, 1 Jun 2011 10:41:11 +0000 (11:41 +0100)]
rootfs_ipk: delete opkg metadata if package management not required and all packages are configured
If all the postinsts were successfully run in offline mode, and
package-management hasn't been requested as an IMAGE_FEATURE, the opkg
metadata is now redundant and can safely be deleted.
Also, the update-rc.d and base-passwd packages can be removed since
they will serve no further purpose in this situation.
If some packages are still unconfigured at this point then we need to
keep their metadata around so that either opkg or the awk script can
configure the packages at boot time. In theory it would be possible to
strip out the data for packages that have already been configured, but
right now we just hold on to the whole status file in that situation.
Without this the script mangling goes very wrong if ${prefix}="". There
isn't really any way to fix this in the completely general case, but
this patch does work with the two cases I tested (freetype and
gpg-error) which were unusable previously.
Phil Blundell [Thu, 26 May 2011 10:08:01 +0000 (11:08 +0100)]
busybox: sync do_install() with oe master (mostly)
This is basically a backport of the current state of the art from the
openembedded master repo. In particular this fixes an installation
error on micro:
| + cp -dPr /home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/bin /home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/sbin /home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image /home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/busybox/
| cp: will not create hard link `/home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/busybox/image/bin' to directory `/home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/busybox/bin'
| cp: cannot copy a directory, `/home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image', into itself, `/home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/image/busybox/image'
| ERROR: Function 'do_install' failed (see /home/pb/oe/build-meta/tmp-eglibc/work/i586-oe-linux/busybox-1.18.4-r1.2/temp/log.do_install.3808 for further information)
Xiaofeng Yan [Mon, 30 May 2011 11:27:45 +0000 (19:27 +0800)]
sudo.inc: Add do_install_prepend () to sudo.inc
Fix bug [YOCTO #1092]
Own a directory "/var/lib" before do_install() because if there isn't this directory during installing, \
then script "mkinstalldirs" from "sudo package" will create directory "/var/lib/sudo" by recursion with mode "0700" \
which will cause bug [YOCTO #1092]. So I add do_install_prepend() to create a "/var/lib" which can be accessed \
by common user before installing files.
Richard Purdie [Tue, 31 May 2011 22:05:31 +0000 (23:05 +0100)]
allarch.bbclass: A "all" TARGET_ARCH is dangerous as an OVERRIDE
Having a generic word like "all" as an override is dangerous as this is an override
and can cause issues for function names like "sysroot_stage_all". This patch changes
it to "allarch" to help avoid this kind of problem. The field is only used in the
name of directories anyway.
Paul Eggleton [Wed, 1 Jun 2011 10:09:34 +0000 (11:09 +0100)]
bitbake: use layer priority when applying bbappends
If the priority of a layer has been specified with BBFILE_PRIORITY_ then
use that to sort the list of BBFILES entries, which will affect the order
in which .bbappend files are applied.
Richard Purdie [Tue, 31 May 2011 22:02:01 +0000 (23:02 +0100)]
providers.py: Correct PREFERRED_VERSION handling
Overrides on the right are the highest priority and in this case, pn-PN
and PN should take priority over any other override so fix the code to
do this.
Also, since overrides will have been processed by bitbake, we shouldn't
then be specifically looking up PREFERRED_VERSION_${PN} but just using
PREFERRED_VERSION.
This patch corrects the behaviours to match what the code is expected
to do.
Richard Purdie [Tue, 17 May 2011 23:03:02 +0000 (00:03 +0100)]
Improve handling of 'all' architecture recipes and their interaction with sstate
The existing PACKAGE_ARCH = "all" mechanism of sharing packages is problematic
with sstate since there are a variety of variables which have target specific
values and the sstate package therefore correctly changes signature depending
on the MACHINE setting.
This patch creates a new "allarch" class which sets:
PACKAGE_ARCH = "all"
(as per the existing convention)
INHIBIT_DEFAULT_DEPS = "1"
(since its not target specific and therefore can't depend on the cross
compiler or target libc)
(since these variables shouldn't change between the different packages and
target compiler flags shouldn't be getting used)
PACKAGE_EXTRA_ARCHS = ""
(since we shouldn't be depending on any architecture specific package architectures)
Not all PACKAGE_ARCH = "all" recipes can use this class since some run configure
checks on the compiler. This means they have target specific components and therefore
the "all" classification is incorrect.