Richard Purdie [Thu, 26 Jul 2012 12:56:58 +0000 (12:56 +0000)]
sstate.bbclass: Add a string representing the lsb release to native/cross sstate
This patch adds the lsb name and revision to the path used for sstate files.
This means that reuse of sstate files between different distributions is restricted
by default. The behaviour can be configured using mirror urls, for example:
would map Ubuntu 11.10 to a more generic "Ubuntu" named sstate feed.
Usually, more modern distros have increased libc versions for example
so whilst more older native/cross sstate packages will usually work on newer
distros, the opposite is not true. This patch allows development of policy
to better handle this although no default policy is currently being used.
Richard Purdie [Tue, 24 Jul 2012 12:37:01 +0000 (12:37 +0000)]
sstate: Add a two character subdirectory to the sstate directory layout
Currently all sstate files are placed into one directory. This does not scale and
causes a variety of filesystem issues. This patch adds a two character subdirectory
to the layout (based on the first two characters of the hash) so that files
can be split into several directories.
This should help performance of sstate in most cases.
Richard Purdie [Thu, 26 Jul 2012 13:05:51 +0000 (14:05 +0100)]
lib/oe/lsb: Add basic LSB functions
This code was written by Christopher Larson <chris_larson@mentor.com> and
allows generation of the LSB release data based upon the lsb_release
command. It also includes a helper function to generate a string
representing a given distribution.
Yao Zhao [Thu, 26 Jul 2012 20:34:19 +0000 (16:34 -0400)]
bzip2-native: handling native path issue
follow Richard's approach, modify bzip2-native recipe to install bzip2 package
binaries to STAGING_BINDIR_NATIVE/bzip2-native to avoid problems when other
package is doing upack to reference bzip2. libbz2.so* still installs to
STAGING_LIBDIR_NATIVE.
change python-native to depends on bzip2-replacement-native instead of
bzip2-full-native and add EXTRANATIVEPATH for bzip2-native.
Didn't add bzip2native.bbclass as python-native is the only user so far.
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Thu, 26 Jul 2012 14:35:00 +0000 (15:35 +0100)]
classes/package: reduce dbg package dependencies
Make dbg package dependencies added via DEPCHAIN_POST less aggressive -
only add dependencies on dbg packages for shared library dependencies.
This avoids dragging in extraneous packages (such as eglibc-dbg forcing
bash-dbg to be installed) whilst preserving the ability to easily debug
into shared libraries in use by an application by just requesting the
installation of the single dbg package for that application.
For task recipes however we preserve the previous behaviour, since when
you install task-xxx-dbg you expect the dbg packages for every package
in the task to be installed. Unfortunately not all of our tasks inherit
from task.bbclass so we just use a name match - this should be tidied up
later.
u-boot.inc: update linker arguments to pass --sysroot arg
If we are building from sstate-cache it's possible to be building
from another folder on another machine, therefore the linker requires
that a proper --sysroot is passed too it so it can find things like
libgcc.a and avoid errors such as:
Since files installation dirs are DESTDIR/etc/, DESTDIR/sbin etc
in Makefile, not DESTDIR/${sysconfdir}/, DESTDIR/${sbindir}/, for
the native package, a prefix can not be inserted which is needed
when do the next step of install and do_populate_sysroot.
Now we define do_install_virtclass-native in which DESTDIR is
${D}/${STAGING_DIR_NATIVE}
This lets us control whether we build position independent executables. As, as
far as I know no distros are adding a 'pie' distro feature, the effect of this
commit for most will be to disable pie in bluez4. I think this is best to
ensure consistent behavior among the recipes with regard to this.
This also sidesteps a build failure I've seen with bluez4 failing due to
libudev.a not having been built fPIC.
bitbake.conf: override -cpu for qemu on ppc with SPE
We use -mtune flags which lets our application have
SPE intruction in them which is a good thing but when
running qemu especially in user mode these application
wont work with default powerpc emulation. Therefore we
have to add proper -cpu option to let qemu emulate for
a given cpu.
qemu: Fix illegal instruction errors on e500 emulation
I caught this when running user mode qemu for ppc/e500 applications
which had SPE instructions in them will abort with illegal instruction
error all the time.
The patch is already applied upstream we needed a backport into 0.15.x
The pkg.m4 file should be packaged as part of the base package
instead of the -dev package, it had been in the base package, but
I seemed to have missed that it moved during my PACKAGES reorder,
and this caused the meta-toolchain to break
Paul Eggleton [Thu, 26 Jul 2012 10:51:28 +0000 (11:51 +0100)]
usbutils: avoid dependency on bash
By virtue of having #!/bin/bash, the usb-devices script declared that it
requires bash, however manual examination, checkbashisms and tests with
dash and busybox show that it doesn't contain any bashisms, so change
the script's header and remove the RDEPENDS on bash.
Additionally, update-usbids.sh was manually checked for bashisms, run
through checkbashisms and tested with busybox (although it did not have
a bash-specific header).
Paul Eggleton [Thu, 26 Jul 2012 14:34:59 +0000 (15:34 +0100)]
classes/package: do not add self-dependencies to dev/dbg packages
Avoid adding dependencies to dev and dbg packages on themselves via the
DEPCHAIN_* handling code. These don't actually cause any problems, but
they do complicate dependency graphs.
Richard Purdie [Wed, 25 Jul 2012 20:16:46 +0000 (20:16 +0000)]
base/perlnative/pythonnative/gzipnative: Add a new variable to enable easier handling of native path issues
If something is listed in ASSUME_PROVIDED but also manually built (like bzip2-native and
bzip2-replacement-native), we need to ensure that the installed binaries are only accessed
for things which list the provider in DEPENDS.
This patch adds a generic mechanism to handle this instead of everything reinventing the
wheel. EXTRANATIVEPATH += "perl-native" will ensure that ${STAGING_BINDIR_NATIVE}/perl-native
is added to PATH.
This means that:
a) Such providers should install to ${bindir}/xxx-native
b) Should PROVIDE += "xxxx-replacement-native"
c) That users should DEPEND on xxx-replacement-native and have EXTRANATIVEPATH += "xxx-native"
This patch enables this at the core level, the bzip2 recipe still needs adjusting to work
like this along with adjustment of the users of bzip2-replacement-native (python-native?).
Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Richard Purdie [Wed, 25 Jul 2012 18:58:06 +0000 (18:58 +0000)]
bitbake: runqueue.py: Allow the setsceneverify function to have a list of tasks that are invalid and need to run
There was some odd behaviour if some task was run from setcene whilst there were
existing valid stamps for a depepdency. For example, do_populate_sysroot might
be installed at setscene time but if there were other tasks not installed from
setscene such as do_populate_lic which depend on do_configure, the setsceneverify
function would think that do_configure needed to be rerun and would hence void the
do_populate_sysroot and force that to rerun too.
The setsceneverify function needs to know which tasks are going to be rerun, not just
what the overall task list is and what setscene functions have run. This patch adds
that information and maintains backwards compatibility in a slightly ugly but effective
way. The metadata needs updating to take advantage of this change.
Richard Purdie [Wed, 25 Jul 2012 18:56:00 +0000 (18:56 +0000)]
bitbake: runqueue.py: Ensure one setscene function doesn't mask out another which needs to run
The scenequeue code could result in one setscene function masking out another
which had been marked as notcovered. This change ensures the notcovered list
is taken into account when deciding which tasks need to be run, ensuring
that tasks that should be run do get run.
Richard Purdie [Wed, 25 Jul 2012 18:48:41 +0000 (18:48 +0000)]
bitbake: runqueue.py: Optimise the hashvalidate call to only process tasks we may actually want
Currently we call the hashvalidate for anything without a valid setscene stamp.
This improves the code to account for existing stamp files so that we only process
setscene hashes for things we might actually end up using. This avoids hash processing
and makes things slightly more efficient and the logs less confusing.
Richard Purdie [Wed, 25 Jul 2012 18:43:53 +0000 (18:43 +0000)]
bitbake: runqueue.py: Gracefully exit if an exception occurs in the runqueue execution code
There was a bug where an exception in the runqueue code would cause an infinite loop
of debug messages. The exception would get reported but would loop since runqueue was
still registered as an idle handler.
This patch adds an exception handler to ensure in the case of errors, the system
more gracefully shuts down and doesn't loop.
Richard Purdie [Wed, 25 Jul 2012 18:40:38 +0000 (18:40 +0000)]
bitbake: runqueue.py: Fix a stamp comparision bug
We check the stamp cache before comparing t2 and t3 which means that we can miss
a level in the stamp file chains. The result of this is that a stamp can be accepted
as valid when in fact it isn't. Some weird behaviour alerted me to this in a local
build.
This patch also fixes to only uses the cache in recurse mode, there was a corner
case where stamps not in recurse mode could get added to the cache which could cause
an issue potentially.
some bash macros are missing from acinclude.m4 which are added up-stream. This
wasn't actually breaking anything but but it was causing the configure script
to not run all the tests it's intended to run.
move the acinclude.m4 from "files" folder to version specific folders so that
readline-5.2 continue to use the older acinclude.m4 only readline-6.2 use the
updated one
m4/nullsort.m4 tries to find sort dir, and write it to updatedb,
but nullsort.m4 is checking the host dir. Once the sort dirs on
target and host are different, updatedb will fail due to wrong
sort dir.
Since we always have sort under ${bindir}, so we can assign it
directly.
Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Kang Kai <kai.kang@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Scott Rifenbark [Wed, 25 Jul 2012 17:53:10 +0000 (10:53 -0700)]
documentation/poky-ref-manual: Removed included BSP Guide
With the decision to create a single HTML file that has all
individual YP manuals, the need for including the BSP guide as
part of the YP Reference Manual goes away. I have removed this
guide as a chapter, removed the mention of it in the introduction,
and fixed the two links in the FAQ chapter to reference the external
manual.
The system will be hung when udhcpc starts, if nfs is mounted
at "/" directory and default route is different after starting
udhcpc.
The cause is that root_is_nfs() does not work after kernel-2.6.37,
since the device name has been changed from /dev/root to
${IPADDR}:${NFSDIR} on /proc/mounts. which leads to remove
the default routes to nfs server,
Now we use a loose match to check if rootfs is nfs.
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
eglibc: Fix build when OPTION_POSIX_WIDE_CHAR_DEVICE_IO is not set
poky-tiny disables certain eglibc options which gives good excercise
for eglibc's componentized builds. This patch essentially updates the
GLRO patch to account for additions of GLRO(dl_debug_mask) and
converts them to GLRO_dl_debug_mask
Secondly adds a new patch where it was creating a undefined alias
because we were using INTUSE macro which got exposed when we
disable OPTION_POSIX_WIDE_CHAR_DEVICE_IO
currently gcc installs a limits.h which references to another
limits.h which it expects from target sysroot and that header
in target sysroot will come from eglibc. So we need to break
this catch-22 and hence we install a self sufficient limits.h
which is then happy when referenced and doesnt complain about
missing limits.h from target sysroot.
This is mostly used when eglibc-initial configure is run
eglibc-initial: Fix build failure due to missing limits.h
We have had these things in place to overcome a limitation
from our gcc-initial-cross not staging a self sufficient
limits.h. Now thats fixed we do reset TOOLCHAIN_OPTIONS
to point to sysroot where linux kernel headers are staged
and not the bootstrap sysroot which will infact be popuated
by eglibc-initial itself.
Secondly we dont need to set CPPFLAGS specially as we
are doing that in eglibc.inc so we override that
Paul Eggleton [Mon, 23 Jul 2012 21:42:26 +0000 (22:42 +0100)]
classes/package_deb: add PackageArch field
If we want to query the PACKAGE_ARCH from the installed package (as we
do in order to be able to do a pkgdata lookup for example) then we need
to have this stored in its own field as this is not always the same as
the Architecture field for deb packages.
Andrei Gherzan [Mon, 23 Jul 2012 21:42:24 +0000 (22:42 +0100)]
package.bbclass: Create symlinks for packages with different packaged name
While generating license.manifest package information is searched in:
filename=`ls ${TMPDIR}/pkgdata/*/runtime/${pkg}| head -1`
This is ok as long as package name is the same as the package name
after packaging.
For example dbus is packaged as dbus-1. So, searching
ls ${TMPDIR}/pkgdata/*/runtime/dbus-1 will fail because there is no file
with this package name.
Create a symlink to the pkgdata file in a runtime-reverse directory so
that these reverse lookups are possible.
kernel bbclass: Recreate uImage only when KEEPUIMAGE != "yes"
The intent of the uImage code in this class includes the following
1) be able to specify custom load addresses without needing to patch the kernel
2) add better information to the uImage description field
The current state is a NOP anyway, the kernel will always build a uImage when you tell it to 'make uImage'.
weakly Set KEEPUIMAGE to 'yes' in default-distrovars.inc which preserve the
current OE-Core behavior. Machines which are being ported from oe.dev and need to
regenerate uImage can set this to be empty
This recipe is imported from meta-oe its a requirement for
systemd to work. Now that systemd is living in a layer of
its own. Lets have this recipe into core metadata
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Paul Eggleton [Mon, 23 Jul 2012 08:38:46 +0000 (09:38 +0100)]
dhcp: remove dependency of dev/staticdev packages on main package
The main package is empty and is not produced, which leaves the dev
and staticdev packages broken. Remove the dependencies (added in
bitbake.conf by default) to fix this.
Otavio Salvador [Mon, 23 Jul 2012 17:37:17 +0000 (14:37 -0300)]
shadow: use 'users' group by default
The rootfs has 'users' group at number 100 and without this fix it
would assign to a non-existent group and if a group with gid as 1000
is created later it would own all files for users created.
Otavio Salvador [Mon, 23 Jul 2012 17:37:16 +0000 (14:37 -0300)]
shadow-native: use 'users' group by default
The rootfs has 'users' group at number 100 and without this fix it
would assign to a non-existent group and if a group with gid as 1000
is created later it would own all files for users created.
Without that fix we have the following while compiling compat-wireless.
include/linux/mmzone.h:18:30: fatal error: generated/bounds.h: No such file or directory
Note that the compat-wireless recipe will be added in another commit.
make -C $kerneldir _mrproper_scripts deleted this file along with
other things so we resurrect it with this patch.
initscripts: don't bg mk_dirs in populate-volatile
If a directory needs to be created to create something else in volatiles,
there's no guarantees on ordering due to the backgrounding. We can't guarantee
with certainty that the create directory commands are complete before the
later ones run. This ensures that we wait for directory creations to complete
before we proceed.
Chris Hallinan hit an actual failure due to this back in March of last year.
Scott Rifenbark [Mon, 23 Jul 2012 18:23:56 +0000 (11:23 -0700)]
documentation: Moved the Eclipse chapter to the YP Dev Manual.
The detailed chapter that describes how to install and configure
the Eclipse Yocto Plug-in has been moved to become a subsection of
the "Workflow" chapter in the YP Development Manual. This commit
accomplished the bulk move, edits to integrate the information,
and fixes to all cross-references. Moving the chapter creates a
sectioning issue in the YP Development manual that results in
subsections that are six levels deep. Not ideal. Will look at
fixing these with a subsequent commit.
Scott Rifenbark [Mon, 23 Jul 2012 17:15:04 +0000 (10:15 -0700)]
documentation: Changes to ADT Manual title
The name of the ADT manual has changed to the "Yocto Project
Application Developer's Guide." This change had some ripple effect
regarding cross-references into the manual. These are now fixed.
Scott Rifenbark [Mon, 23 Jul 2012 17:05:44 +0000 (10:05 -0700)]
documentation/dev-manual/dev-manual-model.xml: Edits for Eclipse insertion
In preparation for taking the Eclipse installation and configuration steps,
I have made an edit pass through the section "Workflow Using the
ADT and Eclipse". Minor edits performed to integrate the new
information.
Martin Ertsaas [Thu, 19 Jul 2012 11:26:25 +0000 (13:26 +0200)]
bitbake: Change bzr fetcher to use branch instead of co. Fixes: bzr: ERROR: No pull location known or specified.
This problem occurs when fetching a different revision of the same source. Which mean every time you update a bzr package.
Using branch sets the pull location, and are the preferred way of cloning/branching a repository in bzr.
Richard Purdie [Mon, 23 Jul 2012 16:26:06 +0000 (16:26 +0000)]
bitbake: cooker.py: Ensure we track parser errors and only show bbappend issues on complete parse
Currently if any parsing failure occurs, there can be a long list of
bbappends that are "dangling" based on the fact that recipes were not
parsed. This change firstly ensures the error counter is incremented
and secondly that the bbappends list is only shown on a completed
parse list.
Richard Purdie [Mon, 23 Jul 2012 14:28:46 +0000 (14:28 +0000)]
libgcc: Add missing dependency on libc:do_package
do_package writes out shlibs data and libgcc can depend on the values
there. We therefore need to express the depdency so that sstate can account
for it for example.
Without this a version change in eglibc can "psersist" in the sstate cache
and corrupt builds.
Richard Purdie [Mon, 23 Jul 2012 11:24:34 +0000 (11:24 +0000)]
grub: Allow reautoconf with the correct parameters
Without this change, an effective reautoconf happens at compile time with potentially
incorrect parameters. This change ensures it happens once, in do_configure with the
correct parameters.
Richard Purdie [Fri, 20 Jul 2012 16:19:10 +0000 (17:19 +0100)]
gnome-doc-utils: Update to use python-native
This includes a wrapper so that the full path to python-native is encoded whilst not
exceeding any environment length constraints as hinted at in the patch to this area
of code already included.