Compare commits

...

1361 Commits

Author SHA1 Message Date
Kang Kai
20dc7d2766 bitbake: hob2: add elf to hcc supported image types
[Yocto #2709]

OE Core Commit c9b01af84b add elf image
type. This will cause hob build image failed.
Add elf to hcc supoorted image types to fix this issue.

(Bitbake rev: a93a58b7cea2ddb9596cb4d718c0801db5d1a295)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-17 17:57:32 +01:00
Tom Zanussi
eb0cb7e823 perf: add perl, python to DEPENDS
perf has perl and python compile-time dependendencies, add them.

(From OE-Core rev: 1b40dac2c501ae8c8d812cf2866fe7917f144a19)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-12 12:52:09 +01:00
Tom Zanussi
8efb5fd8a9 linux-yocto: update mpc8315e-rdb linux-yocto-3.4 kernel SRCREV
The mpc8315e-rdb was updated to the 3.4 kernel, but the SRCREV wasn't
updated along with it; this updates it.

(From meta-yocto rev: 422619e0aa68b24ca04c652a7369eebb1b0f597e)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 23:24:39 +01:00
Bruce Ashfield
89008d4fed linux-yocto-3.0/meta-yocto: perf script fixes
Updating the yocto reference boards to have the perf scripting fixes
from 3.2/3.4:

 cef17a1 perf: add sgidefs.h to for mips builds
 3258da3 perf: change --root to --prefix for python install
 1f9c25b perf: add 'libperl not found' warning
 f2b1bf1 perf: use pkg-config instead of python-config
 568e05f perf tools: Add support to install perf python extension
 7e47f81 Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"

(From meta-yocto rev: 46cc23ac62bfd4528aecc2f049326d0137e713b9)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 17:43:04 +01:00
Bruce Ashfield
8514aa99e8 linux-yocto-3.0/meta-yocto: perf script fixes
Updating the yocto reference boards to have the perf scripting fixes
from 3.2/3.4:

 cef17a1 perf: add sgidefs.h to for mips builds
 3258da3 perf: change --root to --prefix for python install
 1f9c25b perf: add 'libperl not found' warning
 f2b1bf1 perf: use pkg-config instead of python-config
 568e05f perf tools: Add support to install perf python extension
 7e47f81 Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"

(From meta-yocto rev: a3dedc83578b1b9d6010bc1c78e69cdfe387b902)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 17:36:08 +01:00
Paul Gortmaker
b1a606112b meta-yocto: mpc8315e-rdb change preferred version to 3.4
Update the yocto hardware reference platform to use the
3.4 kernel by default.

This platform is supported in mainline, so no patch carry
forward or similar is required.  Tested via NFS booting the
kernel on real hardware with 3.4.1 and things just work as-is.

(From meta-yocto rev: fbe1be490172993140db31472d14652d8ed45624)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 17:04:57 +01:00
Bruce Ashfield
581b967f72 linux-yocto/3.0: perf scripting support
Updating the 3.0 SRCREVs to pickup the recent perf scripting fixes.

  cef17a1 perf: add sgidefs.h to for mips builds
  3258da3 perf: change --root to --prefix for python install
  1f9c25b perf: add 'libperl not found' warning
  f2b1bf1 perf: use pkg-config instead of python-config
  568e05f perf tools: Add support to install perf python extension
  7e47f81 Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"

(From OE-Core rev: 20405bdab18b7a2b101f818e72863d289d5945e4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 17:04:43 +01:00
Andrei Gherzan
a3a697c425 bitbake: fetch2/__init__.py: Warn user if SRC_URI is using "proto" and not "protocol"
As well, if "proto" is used, get the associated value as "protocol"

(Bitbake rev: 53e6b630f0463d2d07cdaa9c9eb36794dc9b6b69)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:26 +01:00
Andrei Gherzan
c26f6b2b94 bitbake: fetch2/bzr.py: Use "protocol" parameter to get the protocol
(Bitbake rev: 630876b40ed181312e84f902c4cfb97361afbe81)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:25 +01:00
Andrei Gherzan
bd8d18f742 bitbake: fetch2/hg.py: Use "protocol" parameter to get the protocol
(Bitbake rev: f4a780a7f50fdd8f2bd75888dad790bcfe95b873)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:25 +01:00
Andrei Gherzan
cf599d12d3 bitbake: fetch2/osc.py: Use "protocol" parameter to get the protocol
(Bitbake rev: 01040efce82cfbaa76f46d9f95c984be8f9ea810)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:25 +01:00
Wenzong Fan
6a210e88b7 bitbake: bitbake: Abort build if runtime dependency conflict
Currently if there are multiple preferred providers available for
a runtime dependency, bitbake will print an Error message and let
the build go on. Anyways the build should abort while any Errors
occured.

[YOCTO #2734]

(Bitbake rev: 5f81a714f4fca785780bef555b419f0250e5ec1c)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:25 +01:00
Ross Burton
311550149a connman-gnome: remove unused patches, they were all merged upstream
(From OE-Core rev: bf134eaf752cd5db6cce79ad4c1ae0f25d46b08e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 15:55:24 +01:00
Matthew McClintock
6382732a75 libgomp: add libgomp (openmp) library, and build for powerpc targets by default
(From OE-Core rev: b76a7bc8dcb7aed7d6f026e77a226837004c50af)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:53 +01:00
Matthew McClintock
b424a3a31b gcc: gcc-cross-canadian: use correct location for libraries for powerpc64
This fixes the issue where gcc invokes the linker with an incorrect -L
library location and gives up because it can't find libraries. It was
looking in a /lib folder instead of /lib64

(From OE-Core rev: 1b428f0151a5b86332b501871bf4a925b43580a5)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:53 +01:00
Matthew McClintock
fd9a9a2a9a gcc-configure-common.inc: use --with-long-double-128 on powerpc to comply with ABI
(From OE-Core rev: 243539efec94e79dade2525d0ab3586eea48c529)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:52 +01:00
Matthew McClintock
38a0967425 openjade-native_1.3.2.bb: fix typo and change the deps exclusion to correct var
(From OE-Core rev: 4be17f018f8dd0ed576498badc03ee13095b2263)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:52 +01:00
Matthew McClintock
ef8d669252 dtc.inc: fix for libdir == /usr/lib64
On 64bit systems dtc will still install libaries in /usr/lib
unless we havet this override

(From OE-Core rev: b60579e66601ba60669a9e1194409fcd8b80530e)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:35:52 +01:00
Zhenhua Luo
82bdf46dbe valgrind: fix default.supp missing issue
When run valgrind, following error appears:
    ==2254== FATAL: can't open suppressions file "/usr/lib/valgrind/default.supp"

(From OE-Core rev: 0b3261d513cdad80174a9b9e804981c50bcb7ca2)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:15:24 +01:00
Dennis Lan
125e702dc5 directfb: disable imlib2 explicitly
When HOST machine installed imlib2, compiling directfb in OE will
direct this library, and try to use it. This is wrong, since there is
no imlib in OE, so we should disable it explicitly here.

Error as following:
| idirectfbimageprovider_imlib2.c:64:20: fatal error: Imlib2.h: No such
file or directory

Config.log as following (which is wrong):
configure:19602: checking for imlib2-config
configure:19620: found /usr/bin/imlib2-config
configure:19633: result: /usr/bin/imlib2-config

(From OE-Core rev: fbdee213465f38791f3dd6c2663f2fe295be3596)

Signed-off-by: Dennis Lan <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-11 11:15:24 +01:00
Robert Yang
5142a1e95e subversion: do_install failed (parallel issue)
install-neon-lib needs libsvn_delta-1.la which will be regenerated
during libsvn_delta-1.la's installation, if libsvn_delta-1.la is
in regenerating and at the same time install-neon-lib links it, the
error willl happen.

The error message is:
/bin/ld: cannot find -lsvn_delta-1
collect2: error: ld returned 1 exit status

This is a parallel issue, so it doesn't happen often.

Note:
The autoreconf doesn't generate build-outputs.mk, it would be generated
by autogen.sh (use build.conf as the input), but autogen.sh isn't
suitable for cross compiling, so both modified build-outputs.mk and
build.conf.

[YOCTO #2727]

(From OE-Core rev: ce37c45abb4cf43e5009867f695982de2eb33450)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:35:11 +01:00
Saul Wold
8af21f1511 gnupg: ensure deterministic build by disabling libcurl
gnupg has it's own fake curl, since we use gnupg with zypper, there does not
seem to be a strong reason to add curl to the depends list.

(From OE-Core rev: 44ea2cf548ca20488449d347f8f3b7d49f7e7493)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:33:25 +01:00
Tom Zanussi
6a9886281c perf: add perf-tui feature
Add a new feature named 'perf-tui'.  Adding this into the
PERF_FEATURES variable in perf.inc will enable the perf TUI (Text-base
UI) user interface on a target, which adds libnewt and turns on the
perf text UI options in perf, if perf is included in an image.

If 'perf-tui' isn't named as a feature (the default), the perf TUI
will be disabled and unavailable.

(From OE-Core rev: 4fd8a550886f02189e4ed127d0a2f16e92f8474c)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:27:02 +01:00
Tom Zanussi
2dac207e39 perf: add perf-scripting feature
Add a new feature named 'perf-scripting'.  Adding this into the
PERF_FEATURES variable in perf.inc will enable perf scripting on a
target, which will turn on all the language bindings currently
available in perf (Perl and Python), if perf is included in an image.

If 'perf-scripting' isn't named as a feature (the default), all perf
language bindings will be disabled and unavailable.

(From OE-Core rev: fc0661041436013b9099dbd659994a2b8b292c19)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:27:02 +01:00
Tom Zanussi
a8c3bc8f11 perf: add perf.inc
Add a perf.inc to contain utility functions and definitions and to
avoid cluttering up the main recipe.

(From OE-Core rev: 414d00be5b350ea84fc7e1ff690f78b3396cfcd0)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:27:01 +01:00
Bruce Ashfield
d668ed4b32 linux-yocto/3.4: perf, unionfs and yaffs2 fixes
Updating the 3.4 SRCREVs to pickup the following changes:

  6297e4c perf: add sgidefs.h to for mips builds
  69b7817 yaffs: add leading underscore to mtd_info function names
  160f1ac yaffs: change type for mode to umode_t
  2d875e8 Unionfs: use mode_t

(From OE-Core rev: 9d75c34948f5d961cff9d72fbaa628ff58821cc7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:27:01 +01:00
Bruce Ashfield
7b31ae8429 linux-yocto/3.2: perf: fix mips build
Updating SRCREVs for the following fix:

Author: Tom Zanussi <tom.zanussi@intel.com>
Date:   Tue Jul 10 09:38:40 2012 -0500

    perf: add sgidefs.h to for mips builds

    Allow Python.h to find the definitions it needs on mips i.e. get rid
    of the error: "_ABIN32" is not defined.

    Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>

(From OE-Core rev: 04396899dc7973261404d5fbec3f85aa03a32e03)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 20:26:34 +01:00
Paul Eggleton
06348fe764 opkg: fix installation of dev / dbg packages
OE-Core revision ffe93e2a099e4cadb1829dc12a58a6d7bef9a5a7 moved opkg's
configuration file into /etc/opkg, and opkg always reads all files under
this directory even if -f is specified (as it is during do_rootfs in
order to specify our own generated config file), and this means that
after opkg-collateral is installed into the rootfs, this version of the
config is used, resulting in opkg ignoring the list of packages it has
already downloaded (since it now sees list_dir as /var/lib/opkg instead
of the default /var/lib/opkg/lists) and thus it fails to install any of
the "attemptonly" packages (including *-dev, *-dbg, etc.).

If we change the -f option to ignore configuration files in /etc/opkg
then we no longer have this problem.

Fixes [YOCTO #2595].

(From OE-Core rev: 37df134557802ba116f001597b7cd5e9bc39e188)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 17:39:24 +01:00
Richard Purdie
029e3cea52 bitbake: fetch2/wget: Use FETCHCMD_wget to provide the commandline and options
This also changes to use  -t 2 -T 30 as the defaults which are more sane for
a modern fetcher and already specified in OpenEmbedded metadata.

(Bitbake rev: bf0e5dddf0f63cdb0648fb6d872af5ceef6fbfb0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:38 +01:00
Richard Purdie
254488f089 bitbake: fetch2/cvs.py: Switch to use FETCHCMD_cvs and handle parameters in the fetcher itself
This brings the cvs fetcher more into line with the others and allows consistent usage
of the FETCHCMD variable and option handling.

(Bitbake rev: 390ad59739356422852e976fa246375abc6aba08)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:38 +01:00
Richard Purdie
a5e31cb713 ccache: Ensure CCACHE_DIR is cleaned by do_clean task
This ensures a rebuild does really build from scratch when ccache is in use.

[YOCTO #2696]

(From OE-Core rev: ddf52d0161096b089fad8f3ace69b6515d7b7226)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:38 +01:00
Richard Purdie
064ef460b2 libxml2: Fix libzypp ansidecl related build failures
cmake looks at all include statements, even if they're not used. To make
builds deterministic and avoid needing to add binutils as a dependency
for libzypp, completely remove the include from the header file, even if
it is never used.

This avoids issues where you'd build binutils, then libzypp, then remove
binutils (and hence ansidecl.h) and then recompile libzypp which would
still have the dependency and hence fail.

(From OE-Core rev: bfaaeb44c5023e2d2a9414c07694c75fa527283b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:37 +01:00
Richard Purdie
89ca5701ea bitbake.conf: Drop the remainder for the FETCH/CHECK/RESUMECOMMAND variables
This completes the removal of these older variables and their replacement
with FETCHCMD. This change requires the latest bitbake to operate optimally.

(From OE-Core rev: 7dd2a12ebe49865720dcea60cd2ed13205c0c4fd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:37 +01:00
Richard Purdie
addcefaae1 bitbake.conf: Add passive-ftp option to the default FETCHCMD_wget
This brings it into sync with the wget FETCHCOMMAND and RESUMECOMMAND
variables.

(From OE-Core rev: 0f8290ff1c9bc86c744f67ce6194dd6911533012)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:37 +01:00
Richard Purdie
449732e72c bitbake.conf: Drop the old svn FETCH/UPDATE/RESUMECOMMAND variables
The svn fetcher converted to use FETCHCMD a long time ago. This drops
several variables which are effectively useless.

(From OE-Core rev: 34a8cdafee145d04f8b526b094341c34cf36ba1b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:25:37 +01:00
Robert P. J. Day
cf94f383bd core-image-*.bb: Remove usage of EXTRA_IMAGE_FEATURES from some .bb files
Replace the usage of EXTRA_IMAGE_FEATURES in a small number of .bb
files with IMAGE_FEATURES, and leave the use of EXTRA_IMAGE_FEATURES
for developers in their local.conf files, to avoid the possibility of
undesirable side effects.

(From OE-Core rev: 347fc6e82a3d1c1ac7dbabd9e5cdd08abd864bfb)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:21:58 +01:00
Paul Eggleton
adad2923d8 core-image-*: remove copyright notices
These image recipes are meant to be examples that people can copy and
modify completely for their own purposes, and most of them are so
trivial they don't really need copyright notices anyway, so trim them
off.

(From OE-Core rev: 22db8917f6301595a48f6dcbcccc27627c8a3941)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:21:57 +01:00
Paul Eggleton
d5f4227efd core-image-minimal-dev: base on core-image-minimal
When core-image-minimal has been updated in the past, we have on several
occasions missed applying those updates to this recipe, so let's just
base it directly on core-image-minimal and completely avoid that problem
in future.

(From OE-Core rev: 7681e50da86606f4d7b63504f0c9233a1c87b642)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:21:57 +01:00
Paul Eggleton
56e0835872 libgsmd - remove
This project has been unmaintained for some time, and even the OpenMoko
project is not using it any more (in favour of FSO). Since we have ofono
in OE-Core which replaces and surpasses its functionality, we can remove
libgsmd.

(From OE-Core rev: 4cd880c61e9d74dbf1a747f3654239cadadf45ce)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 14:21:57 +01:00
Bruce Ashfield
2e80a0b1f8 linux-yocto/3.2: perf scripting updates
Updating the 3.2 SRCREVs to reflect the perf scripting fixes by TomZ

standard/default/base:
  0ec416e perf: change --root to --prefix for python install
  18ad076 perf: add 'libperl not found' warning
  e0f641d perf: use pkg-config instead of python-config
  3195098 Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"

meta:
  07ee09b features/ftrace: enable FTRACE_SYSCALLS

(From OE-Core rev: c8f60299424dd912c6402847773f89c0490a1857)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-10 09:58:54 +01:00
Saul Wold
90ad663909 upstream_tracking: update boost
(From meta-yocto rev: ba8dafd89044cd33f9389dc4c0717b3ff19a39ea)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 17:21:38 +01:00
Alexandru DAMIAN
29aa1f398c maintainers: Update recipe ownership
Romania team performed package maintainers modification
based on relevant experience and expertise area assignement.
No entries outside Ro team were touched.

(From meta-yocto rev: 39a68249e561f7e36f1819769719f35f62c1f3d2)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 17:21:38 +01:00
Robert Yang
041a0e8dff bitbake: bitbake/cooker: Print which pkgs would be built in -g output
This is for giving the user a clear list to show which pkg would be
built, we have the "bitbake -g", but it is not easy to read for people,
it is for "dot". Improve the "bitbake -g" to also save a pn-buildlist:

$ bitbake -g core-image-sato
...
NOTE: PN build list saved to 'pn-buildlist'
[snip]

The contents of pn-buildlist:

busybox
shadow-native
pth
sysfsutils
qemu-helper-native
curl-native
ncurses-native
gdbm
xserver-xorg
linux-libc-headers
[snip]

[YOCTO #2404]

(Bitbake rev: 18aff925aece774d0172894e25584353519ca03f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 17:19:32 +01:00
Bruce Ashfield
c857fa97b4 linux-yocto/3.4: perf scripting & unionfs fixes
Updating the SRCREVs to pickup the following changes:

standard/base:
 95c79fb Unionfs: update ->show_options prototype
 49f1599 perf: change --root to --prefix for python install
 8ff1ab6 perf: add 'libperl not found' warning
 b4bc865 perf: use pkg-config instead of python-config
 a2257bf Revert "perf: hard-code NO_LIBPERL/NO_LIBPYTHON"

meta:
 a8cf770 features/ftrace: enable FTRACE_SYSCALLS

(From OE-Core rev: 8d8b9e77aa3403e880cbbdfefc7f24a993b3161f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 17:17:24 +01:00
Franklin S Cooper Jr
17fcc39c9c psplash - Update to latest psplash version. LIC_CHKSUM Tweak
* Update psplash to the latest version.
* Change the license checksum to use the lines in the psplash.h that contains
  license information instead of doing a checksum on the entire file.

(From OE-Core rev: e15dd9dede74c8906e118647ab93941c1fcb35b1)

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 17:17:24 +01:00
Bruce Ashfield
0c9195b683 kernel.bbclass: add non-santized kernel provides
If the kernel version string uses characters or symbols that
need to be santized for the package name, we can end up with a
mismatch between module requirements and what the kernel
provides.

The kernel version is pulled from utsrelease.h, which contains
the exact string that was passed to the kernel build, not
one that is santized, this can result in:

 echo "CONFIG_LOCALVERSION="\"MYVER+snapshot_standard\" >> ${B}/.config

 <build>

 % rpm -qp kernel-module-uvesafb-3.4-r0.qemux86.rpm --requires
update-modules
kernel-3.4.3-MYVER+snapshot_standard
 % rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
kernel-3.4.3-myver+snapshot-standard = 3.4-r0

At rootfs assembly time, we'll have a dependency issue with the kernel
providing the santizied string and the modules requiring the utsrelease.h
string.

To not break existing use cases, we can add a second provides to the
kernel packaging with the unsantized version string, and allowing the
kernel module packaging to be unchanged.

   RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"

 % rpm -qp kernel-3.4.3-myver+snapshot-standard-3.4-r0.qemux86.rpm --provides
kernel-3.4.3-MYVER+snapshot_standard
kernel-3.4.3-myver+snapshot-standard = 3.4-r0

(From OE-Core rev: 7be043178f5b9d16d9a06696bc0b96689f202a8d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:59:00 +01:00
Ross Burton
cc646d869f connman: ship the empty plugins directory in the connman package
Otherwise we get a QA warning that /usr/lib/connman/packages isn't shipped.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:59:00 +01:00
Ross Burton
be696b35df connman: remove some obviously wrong (circa early-GNOME 2?) directories from FILES
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:59:00 +01:00
Saul Wold
6e41732550 ncurses: fix packaging issue in multilib build
ERROR: QA Issue: lib32-ncurses: Files/directories were installed but not shipped
  /usr/bin/clear.ncurses
  /usr/bin/reset.ncurses

(From OE-Core rev: e3a29405a59df45ff72f088c602181e1435d8abe)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:59:00 +01:00
Saul Wold
198d300193 bluez4: fix packaging issue after update
WARNING: QA Issue: bluez4: Files/directories were installed but not shipped
  /usr/share/dbus-1
  /usr/share/dbus-1/system-services
  /usr/share/dbus-1/system-services/org.bluez.service

(From OE-Core rev: 8635372d8e1886d3f0c066341f6909e5015d81f6)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:59 +01:00
Matthew McClintock
6a605120ca packagedata.py: Fix get_subpkgedata_fn for multilib
This happens when tryng to add libgcc-dev to as a multilib package
(e.g. IMAGE_INSTALL_append = " lib32-libgcc-dev")

| Processing task-core-boot...
| Processing fman-ucode...
| Processing dosfstools...
| Processing lib32-libgcc-dev...
| Unable to find package lib32-libgcc-dev (libgcc-dev)!
NOTE: package fsl-image-full-1.0-r1.1.3.6: task do_rootfs: Failed

RPM (or bitbake?) is looking in the tmp/pkgdata, however some of these file
paths are mungned for the multilib scenario:

$ find tmp/pkgdata/ | grep libgcc-dev$
tmp/pkgdata/ppce5500-fsl-linux/runtime/lib32-libgcc-dev
tmp/pkgdata/ppc64e5500-fsl-linux/runtime/libgcc-dev

This patch fixes where we look for these files so they can be found and
properly installed for the multilib root file system

(From OE-Core rev: 4e65ddda5d351bd9f2172e77e656903f61a52f34)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:59 +01:00
Matthew McClintock
a29455652c qemu-0.15.1: add patch to fix compilatation problems on powerpc
ERROR: Function failed: do_compile (see /opt/yocto/cache-build/p5020ds-64b/build_p5020ds-64b_release/tmp/work/ppc64e5500-fsl-linux/qemu-0.15.1-r6/temp/log.do_compile.28447 for further information)
ERROR: Logfile of failure stored in: /opt/yocto/cache-build/p5020ds-64b/build_p5020ds-64b_release/tmp/work/ppc64e5500-fsl-linux/qemu-0.15.1-r6/temp/log.do_compile.28447
Log data follows:
| DEBUG: SITE files ['endian-big', 'bit-64', 'powerpc-common', 'common-linux', 'common-glibc', 'powerpc-linux', 'powerpc64-linux', 'common']
| ERROR: Function failed: do_compile (see /opt/yocto/cache-build/p5020ds-64b/build_p5020ds-64b_release/tmp/work/ppc64e5500-fsl-linux/qemu-0.15.1-r6/temp/log.do_compile.28447 for further information)
| NOTE: make -j 24
|   LINK  ppc-linux-user/qemu-ppc
| /opt/yocto/cache-build/p5020ds-64b/build_p5020ds-64b_release/tmp/sysroots/x86_64-linux/usr/libexec/ppc64e5500-fsl-linux/gcc/powerpc64-fsl-linux/4.6.4/ld:/opt/yocto/cache-build/p5020ds-64b/build_p5020ds-64b_release/tmp/work/ppc64e5500-fsl-linux/qemu-0.15.1-r6/qemu-0.15.1/ppc64.ld:84: syntax error
| collect2: ld returned 1 exit status
| make[1]: *** [qemu-ppc] Error 1
| make: *** [subdir-ppc-linux-user] Error 2
| make: *** Waiting for unfinished jobs....
| ERROR: oe_runmake failed

(From OE-Core rev: a9207aad5b163a071cd8298517d61514c587e0ed)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:59 +01:00
Matthew McClintock
869d6f4be1 libxml-parser-perl_2.41.bb: fix MakeMaker issues with using wrong CC/LD/etc
MakeMaker has a bug where it does not propagate CC/LD/etc information
down to subproject it generates Makefiles for... this recipe has has an
Expat subproject which has issues building if we are using sstate-cache
and it will reference the old sysroots and be unable to build properly.
There is an upstream MakeMaker bug for this issue but we can work around
it by fixing up the Makefiles for now

See:
https://rt.cpan.org/Public/Bug/Display.html?id=28632

(From OE-Core rev: 2c3629a698e537c69c71039bc6172b3c0e617ff1)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:59 +01:00
Richard Purdie
2717309501 utils.bbclass: add helper function to add all multilib variants of a specific package
This is useful for the scenario where we want to add 'gcc' to
the root file system for all multilib variants

(From OE-Core rev: 7cd54693363882854cd026ebe071e9f2e03d364e)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Peter Seebach
fe5feba665 pseudo: Update to 1.3.1 (fixing chroot crash)
Yocto bug #2639.  If a chroot path was long, expanding absolute
paths within the chroot path could overrun a buffer.

(From OE-Core rev: 282cbf7002112f6b58ca1ee070c0b1285b838db7)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Darren Hart
70067f082a grub-efi: Do not use help2man
Fixes [YOCTO #2527]

Modify configure.ac and the generated configure script to avoid using
help2man during the compilation process. For grub-efi we are only
deploying the EFI payload and are not installing grub on the target
root filesystem. Therefor, we do not need the man pages.

Cleanup the SRC_URI whitespace while we add a line to it.

(From OE-Core rev: 035bc3f5ee99ed3bd74219d9717239299e4bc765)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Paul Eggleton <paul.eggleton@linux.intel.com>
CC: Radu Moisan <radu.moisan@intel.com>

grub-efi-native whitespace cleanup (INC)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Darren Hart
7af1525794 init-install: Clean up partition alignment
The current partitioning scheme leaves a 1MB gap between all the
generated partitions by adding a 1 to the end of the last partition to
use as the start of the next. parted is smart enough to not overlap
start and end positions of the same value. This avoids the 1 MB gaps.

Rather than pad the disk with 1MB in the beginning and cut it off at the
MB boundary on the end, we can use 0% and 100% to allow parted to do the
required math and use as much of the disk as possible.

(From OE-Core rev: 8aac6ecc5194c734dfd3d677017ab3ea045b2339)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Darren Hart
6f932f80bb init-install: Correct ext2->ext3 typo in logging
We create both the boot and root partitions as ext3 now, update the
logging accordingly.

(From OE-Core rev: 4436639eed57d818992596d6f0f7b53d3bbd4800)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Darren Hart
ae18c85da6 init-install: Use swap_ratio in the calulation of swap_size
swap_size currently uses a hard coded percentage and ignores the
swap_ratio variable. Fortunately they are the same value currently. Make
the calculation use the variable to avoid problems in the future.

(From OE-Core rev: 2678ce668499af0e90994b9da8c518e85de56651)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Paul Eggleton
2fefa9c335 classes/license: fix manifest to work with deb
Prepend the license manifest creation call to ROOTFS_POSTPROCESS_COMMAND
instead of appending to ROOTFS_POSTINSTALL_COMMAND. The latter is not
implemented for the deb backend (and probably ought to just be removed
completely), and by using _prepend we can still ensure it occurs before
package info is removed (and before buildhistory in case it is needed
there in future).

(From OE-Core rev: 56fafe083fdb63f156a081344fb1d836e3182bf0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:58 +01:00
Scott Garman
91a3a07884 runqemu: fix support for ext4 rootfs images
(From OE-Core rev: c9479ae46d0b891eda8f0db89bc66fdf08c3f7c2)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:57 +01:00
Scott Garman
24f02d58a7 runqemu: fix usage() help for MACHINE setting
(From OE-Core rev: 36482a0064993b047829631d063beadbc03f2cbf)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:57 +01:00
Robert Yang
2dee999ab2 sanity.bbclass: the tmpdir can't be longer than 410
There will be errors when the length of the tmpdir is longer than 410:

1) Longer than 420:
Can't exec "/bin/sh": Argument list too long at /usr/lib/perl/5.10/IO/File.pm line 66.

This error happens on both Ubuntu 10.04 and 10.10 when the pkg needs run
"autoreconf", this is because it passes many files with absolute path to
aclocal, aclocal passes them to perl, this is a limitation of the perl
on Ubuntu 10.04 and 10.10, and the perl-native is not ready at this very
early stage.

2) Longer than 490:
bitbake/lib/bb/persist_data.py", line 197, in connect(database=...)
    >    return sqlite3.connect(database, timeout=5, isolation_level=None)
OperationalError: unable to open database file

This error happens on Ubuntu 10.04, 10.10 and Fedora 17. This is because
the length of the database in sqlite3 module (host's) can't be longer
than 490 (or little smaller). The python-native is not ready at this
very early stage.

The 2 errors are host related, I think that limit the length of the
TMPDIR to 410 is OK for most of the build, rarely build sets TMPDIR's
longer than 410.

[YOCTO #2434]

(From OE-Core rev: ebcf949853ff667478a1ea1d3f1f8f41d643e708)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:57 +01:00
Robert Yang
12c8d9d451 apt 0.7.14: runtime error: Method file has died unexpectedly
When the length of the tmpdir is longer than 400, there is an error
when run "apt-get update":

Method file has died unexpectedly!

This is because the "char S[1024]" is not enough for long URI, S[2048]
would be enough.

[YOCTO #2689]

(From OE-Core rev: 3ed08bd24cef39a85c528159a494e8f0dd001739)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:57 +01:00
Robert Yang
f06c1c3df0 apt 0.7.14: runtime error: filename too long (tmpdir length)
when the tmpdir dir is longer than 220, there is no files saved in
tmp/sysroots/x86_64-linux/var/lib/apt/lists/ after run apt-get update,
this is because apt-get uses the path as the file name, but the file
name can't be longer than 255 according to /usr/include/linux/limits.h.

[YOCTO #2688]

(From OE-Core rev: 9a0c0393871eda4bbcecfdd4b595f0c1b8e42edf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:57 +01:00
Alexandru DAMIAN
460119a5b9 curl: upgrade to 7.26.0
Config system changed from 7.24.0 and the noldlibpatch
is no longer needed, thus deleted.

(From OE-Core rev: 0d2d59420b5924491ccd5c091c823b9c277a6721)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:56 +01:00
Kartik Mohta
d0900924a6 gcc-common: Don't use "is" for comparing strings, use "=="
Needed because the equality check was failing here even though upon
printing the LHS and RHS were the same.
As per http://stackoverflow.com/a/2987975/64537, using "is" compares the
memory addresses of the two objects which is not what we want here. We
just want to compare the values.

(From OE-Core rev: 7fd82cc90a48302ed42b6bfa962bb0de2c652b45)

Signed-off-by: Kartik Mohta <kartikmohta@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:56 +01:00
Robert P. J. Day
e557af5710 recipes.txt: Add entries for "recipes-rt" and "recipes-support"
(From OE-Core rev: 9705ccc10892b15fa3269ed071bb41d45987694c)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:56 +01:00
Laurentiu Palcu
254d225f9c pixman: upgrade to 0.26.2
Also, disable Loongson MMI for now because Pixman's build system will
autodetect a Loongson2f architecture revision and the build will fail.

(From OE-Core rev: 7dded4da52bc73677583da740620b0c81e594d62)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:56 +01:00
Laurentiu Palcu
da043d0dc1 xinput: upgrade to 1.6.0
Licence file changed, an entire part has been removed.

See diff below:

<<
 TORTIOUS  ACTION, ARISING    OUT OF OR   IN  CONNECTION  WITH THE USE OR
 PERFORMANCE OF THIS SOFTWARE.

-
-Copyright 2007 Peter Hutterer
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of the author shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from the author.
-
-
+Copyright © 2007 Peter Hutterer
Copyright © 2009 Red Hat, Inc.

Permission is hereby granted, free of charge, to any person	obtaining a
>>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:55 +01:00
Laurentiu Palcu
184959a600 libxi: upgrade to 1.6.1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:55 +01:00
Laurentiu Palcu
a5180e43ba libx11-diet: upgrade to 1.5.0
The X18NCMSstubs.diff was modified to please the -Werror=return-type
compiler option. Otherwise, it will throw an error.

(From OE-Core rev: 708785266d1d671f5d2a8e8af81a77e34c70662f)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:55 +01:00
Laurentiu Palcu
f013f72285 libx11-trim: upgrade to 1.5.0
(From OE-Core rev: 817742fa1a5261b3b2c697de3c14e602d55713e2)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:55 +01:00
Laurentiu Palcu
9d2e665d71 libx11: upgrade to 1.5.0
Removed one backported patch.

(From OE-Core rev: 52d4ff7b35602faa52360a3e7a800891ef60c739)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:55 +01:00
Laurentiu Palcu
0ae1887576 directfb-examples: upgrade to 1.6.0
(From OE-Core rev: 37a1e3c0ed5347c77ace9f3ce262f34d9ac53528)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:54 +01:00
Laurentiu Palcu
7f906a7ae5 directfb: upgrade to 1.6.1
Removed two backported patches that already exist in the current
version and fixed a compilation issue when zlib is used.

(From OE-Core rev: 47800f9bff7a799489851156c341151ee9cf364f)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:54 +01:00
Mark Hatle
e2b9acb888 multilib: Enable multilib remapping for SDK generation
Enable the remapping for SDK generation, this is required to be able to
create an SDK that targets an alternative multilib.  Note, this work does
not finish SDK/multilib support, but it is one more step toward making
it work properly.

(From OE-Core rev: d66d2bdf6214939e8b131f47db2f35d3c64e7dd2)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 16:58:54 +01:00
Mark Hatle
f40ce3e1f4 package_rpm: Avoid duplicate package generation failures
When constructing a multilib based image, it's possible to end up with
the same package listed in multiple steps of the install.  During resolution
we use the --replacepkgs option to avoid errors, as the resulting install
solution will be as expected.  (We do not enable the replacepkgs option
for the final install step, only the generation of the install solution.)

(From OE-Core rev: 68ea7d827710ae7c5cf402887d4c12319038e064)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:02 +01:00
Mark Hatle
54a18cc1e7 populate_sdk_rpm: Sync multilib configuration with rootfs_rpm
An anonymous python chunk configures some multilib settings for both
populate_sdk_rpm and rootfs_rpm.  The two classes should contain identical
versions to ensure that the generated multilib configuration is the same
for the SDK and the rootfs.

(From OE-Core rev: 0f60722ef460fa826e4f02e7457004e64ca41d76)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:02 +01:00
Mark Hatle
0e832baadf rpm: Fix PACKAGECONFIG dependencies
neon requires expat to be built first

lua similarly requires expat if enabled

selinux package name should be "libselinux" (from meta-selinux).

(From OE-Core rev: 6b3c9802b659ca1d3b7638ff80e6492cc0e16d6f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:02 +01:00
Saul Wold
e17ae2c830 gnutls: make sure native is patched for gettext version
(From OE-Core rev: 92ede8a994b9a24387d3d7dc79e80705f6be4524)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:02 +01:00
Kang Kai
7890697c8f lsbinitscripts: increase ALTERNATIVE_PRIORITY
[YOCTO #2133]

Increase ALTERNATIVE_PRIORITY of file functions to be higher than
the value in package initscript. Then when lsbinitscripts installed,
file functions provided by lsbinitscripts will be used.

(From OE-Core rev: 33f9abed7658bd5eae39e987b210651d202e1f4e)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:02 +01:00
Kang Kai
d6170515e1 initscripts: use update-alternative to handle file functions
lsb need a more abundant /etc/init.d/functions file to handle lsb test.
Use update-alternative to install file funtions in package initscripts,
when package lsbinitscripts installed the file functions of
lsbinitscripts will be used.

(From OE-Core rev: 478f821462665a9dc6f1755059cdbf642aebbf4d)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:38:01 +01:00
Cristian Iorga
fc17afa42c Upstream tracking partial updates
Manually checked packages for updates.
Changed the necessary fields with updated values.
Added missing recording where necessary.
Beautified some packages info.
Removed small typos in distro_alias.inc and recipe_color.inc.
All changes easy detectable in the diff.

(From meta-yocto rev: 387445c38b5eec0fad9dc8a819cedd5d89171c17)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:31:23 +01:00
Scott Garman
a7e2b56ee7 upstream_tracking.inc: recipe upgrades and manual check updates
Updated gzip and sudo to reflect recent recipe upgrades.

Updated manual check information for e2fsprogs, chrpath, opensp,
expat, nfs-utils, and libpng.

(From meta-yocto rev: eb52c5988e67adb1f6843da83f3ffe8bccda207b)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:31:22 +01:00
Saul Wold
edeea673ff upstream_tracking: Update manual checks and Header info
(From meta-yocto rev: 9bc9243034af0c7d655f74fe148b061fb6eb355e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 11:31:22 +01:00
Scott Rifenbark
a40d398166 documentation/bsp-guide/bsp.xml: Fixed referece to source directory
I missed a "Yocto Project Files" term because the damn thing split
across two lines in the source file and my grep method did not find
it.  Changed it to "source directory."

(From yocto-docs rev: 31a261c141d3e26f4a87b9725097005c96345e2e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 10:47:57 +01:00
Scott Rifenbark
59a40f543e documentation/yocto-project-qs/yocto-project-qs.xml: edits to super user
Mentioned at the very end of the beagleboard build that the image
can now be run on the target hardware.

Also, specically noted the local.conf file as "conf/local.conf" in
the build directory.

Reported-by: Kevin Strasser <keven.strasser@intel.com>
(From yocto-docs rev: a4b41c7f5e8e8017401961097e0df4b13458ac24)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 10:47:57 +01:00
Martin Jansa
cd0bc2dd61 matchbox-panel-2: bump PR because libxcb-util soname was changed
(From OE-Core rev: 31b8fe8d1a9921e4efc64b6ab00c26e4bd09ed2c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 10:47:57 +01:00
Martin Jansa
64b20d1016 startup-notification: bump PR because libxcb-util soname was changed
(From OE-Core rev: 1dc4100dd35c050b38e4733cb98752c1323ef7b1)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-09 10:47:57 +01:00
Robert P. J. Day
5051e9837f bitbake: usermanual: Fix missing markup
(Bitbake rev: 68af2b09315ba35eae24933a599014a662789c2c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:41:56 +01:00
Scott Rifenbark
b201616981 documentation/yocto-project-qs/yocto-project-qs.xml: Some link fixes
Minor fixes to some links and some typos.

(From yocto-docs rev: 8d1f53bca404461f8edc526d5e144ef7d76f0594)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:25 +01:00
Scott Rifenbark
9a4191fd72 documentation/yocto-project-qs/yocto-project-qs.xml: Scrub and edit
I did a scrub for the term "Yocto" and substituted appropriately.
This resulted in the term "Yocto Project build system" going away and
being replaced by "OpenEmbedded build system."  The "Yocto Project
build directory" was replaced by "build directory."  I also found a few
little things that were wrong like including the Debian distro in the
list of supported distros so I removed that.  Finally, a spell check
produced a couple of fixes.

(From yocto-docs rev: 6957658982516aa4b0e4726c9344c46854aa11d3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:25 +01:00
Scott Rifenbark
e92e0c904d documentation/poky-ref-manual/technical-details.xml: Fixed various terms
I fixed several "Yocto Project build system" terms and some "Yocto
Project Build Directory" terms.

(From yocto-docs rev: 10c1d50380336ac684243525646ac9aa3c1812d4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:25 +01:00
Scott Rifenbark
2571a56215 documentation/poky-ref-manual/faq.xml: Removed old YP Build Directory
Found a stray reference to "Yocto Project Build Directory."  I changed
to "build directory."

(From yocto-docs rev: e0c593ac162c61f7d42625482b95c253d0f8622a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:25 +01:00
Scott Rifenbark
229f7c57ee documentation/poky-ref-manual/ref-structure.xml: log directory and typo
Updated the build/tmp/log directory description to mention that running
a build does not necessarily mean a log directory is created.  Also,
ran a spell check and found a typo.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: c602919a1f188a4dff23f965bcc52b635f9a92ae)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:24 +01:00
Scott Rifenbark
4239ff0532 documentation/poky-ref-manual/ref-structure.xml: removed "/" from recipes.txt
the section describing meta/recipes.txt had the "/" character at the
end of the filename, which is incorrect.  I removed this.

Reported-by: Paul Eggleton <paul.eggleton@linux.intel.com>
(From yocto-docs rev: 28295d8c46d3a2cc6b53f0a7ccea35f1db77d1df)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:24 +01:00
Scott Rifenbark
cb2e0ee066 documentation/poky-ref-manual/ref-structure.xml: Edits to BitBake directory
Made a few edits to better describe how the scripts and bin/bitbake
directories are placed into the PATH variable.

Reported-by: Paul Eggleton <paul.eggleton@linux.intel.com>
(From yocto-docs rev: 1e45731898935d40db6e6705f60bdea9633255ab)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:24 +01:00
Scott Rifenbark
ef098d575e documentation/poky-ref-manual/ref-structure.xml: Updated BitBake
The description of how BitBake is run and where its executable and
wrapper script reside has been updated to be more accurate.

Reported-by: Robert J. P. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 885b4c42a3ec3d228f1f5659a887627f4fe2d939)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:24 +01:00
Darren Hart
d9302305fa bootimg: Use STAGING_KERNEL_DIR
bootimg.bbclass using STAGING_DIR_HOST/kernel instead of
STAGING_KERNEL_DIR, resulting in build failure of live images.

| install: cannot stat `/usr/local/dev/yocto/fishriver-test/build/tmp/sysroots/fishriver/kernel/bzImage': No such file or directory

Replace it with STAGING_KERNEL_DIR.

(From OE-Core rev: 8f16811a8d51982a8b3d70e6087aef4a41926840)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Tested-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-06 09:39:23 +01:00
Scott Rifenbark
b0510e547e documentation/poky-ref-manual/usingpoky.xml: added package-depends.dot
The section on "Dependency Graphs" failed to mention the
package-depends.dot file among the files.  Added this file to the
list.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 0ebf8ddf54e146454d6f300f790964decaeec6a9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 16:01:32 +01:00
Tom Zanussi
b502bc282d perf: remove unconditional python-ext install
This shouldn't be unconditional - a later patch made it so, but that's
not yet pulled in.  In the meantime, to fix build failures remove the
unconditional install.

(From OE-Core rev: dcc43c34bfa9304233ecfd3f518a84ddfdc2fd90)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 16:01:32 +01:00
Robert Yang
39b5d509a3 dpkg 1.15.8.7: bad interpreter when long tmpdir
When use PACKAGE_CLASSES = "package_deb", and the length of tmpdir is
longer than 177, the error occurs during the image generation:

/very/long/path/totmp/sysroots/x86_64-linux/usr/bin/dpkg-scanpackages:
bad interpreter: No such file or directory

The interpreter is perl, and it does exist, this is because the first
line:

  #!/very/long/path/to/perl

in the script can't be very long.

Create a wrapper for it would fix the problem.

[YOCTO #2640]

(From OE-Core rev: 7d3281be18567207de8ce2cabce03957bf2cbca8)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 16:01:32 +01:00
Richard Purdie
52c6977f82 netbase 4.47 -> 5.0
(From meta-yocto rev: 16b2b3fbfb5429ff26ad5e9bd800249530cf31ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:58 +01:00
Scott Rifenbark
1e6343d3d0 documentation/poky-ref-manual/ref-structure.xml: Added meta/recipes-rt.
this information was missing in the appendix.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 64ea0871e0a6cef45259502ff26e1c5b5a66cac1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:57 +01:00
Scott Rifenbark
e0dc993af6 documentation/poky-ref-manual/ref-structure.xml: Added tmp/deploy/licenses
Information about this directory was absent in the manual.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 64e5f5a403e4c8494885c7da504194d1baecb0ed)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:57 +01:00
Cristian Iorga
a8d7e1471d netbase: update to ver. 5.0
(From OE-Core rev: 5beb7176d361d4bfa279bbfab5a17b8fe4fa3b73)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:57 +01:00
Cristian Iorga
d27b8dd3be bluez4: update to ver. 4.101
(From OE-Core rev: 1b2f6a21dde6045c4604ca5463e6c4db3499ee06)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:57 +01:00
Cristian Iorga
11a3e6123e ofono: update to ver. 1.8
(From OE-Core rev: 80f05ff2afed7ef24d17209d39a17cf8139855bb)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:57 +01:00
Cristian Iorga
ad98a890f0 gst-plugin-bluetooth: update to ver. 4.101
(From OE-Core rev: 5d0e81b370a4c6b0473efd7989b6881a16e02f29)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:56 +01:00
Cristian Iorga
84b0cf38c4 telepathy-glib: update to ver. 0.19.2
(From OE-Core rev: 2cc263bf5402e21429a5057c183a10918491da48)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:56 +01:00
Paul Gortmaker
9d64d83e2b u-boot: make FILESDIR a shared setting via FILESPATH
The setting is the same in all recipes, so move it to
the shared settings in u-boot.inc

Since FILESDIR is also being phased out, use the FILESPATH
setting as suggested by Richard Purdie.

Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: 1b78904b115b50172cf82948d8a68dc3a98005ce)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:56 +01:00
Martin Jansa
68cdea67d5 linux-firware: bump PE because git SRC_URI was changed resulting in LOCALCOUNT reset
(From OE-Core rev: 088b59e7888ae670710be19c868d0fe90ca44b78)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 14:21:56 +01:00
Richard Purdie
136751122a bitbake: data_smart: Fix multiple override interaction with append and prepend operators
Variables which used multiple overrides and the append/prepend operators were
not functioning correctly. This change fixes that.

This fixes the testcase:

OVERRIDES = "linux:x86"
TESTVAR = "original"
TESTVAR_append_x86 = " x86"
TESTVAR_append_x86_linux = " x86+linux"
TESTVAR_append_linux_x86 = " linux+x86"

[YOCTO #2672]

(Bitbake rev: dc35a2e506e15fb7ddbf74c3b3280e9e83ab33bb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 12:36:45 +01:00
Richard Purdie
bf9a8ec7f2 lib/oe/sstatesig.py: Exclude subversion-native from sstate checksums
If we don't do this, target and cross recipes end up with different sstate
checksums for shared work directory tasks which is bad in the case of gcc.
It leads to multiple fetch/unpack tasks against the shared directory
which ends up with build failures/races.

(From OE-Core rev: 793ce6cd9aa632e0f13789c8293770a86085d28d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 12:36:45 +01:00
Richard Purdie
e3b3aaf4c7 gcc: fix collect2 host contamination problem properly
We added the autoconf cache line a while back to ensure that configure doesn't
poke into some hardcoded host paths looking for things it shouldn't. Applying
it as part of do_configure wasn't getting it to the do_compile tasks
where much of the configure scripts are run by gcc. This changes it to a simple
export to ensure it reaches the places it needs to and truly gets rid of
the cross compile badness messages from the logs.

(From OE-Core rev: af58d5c3a5c5e632aa20b1d007d47dbbfb4ed6e6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-05 12:36:45 +01:00
Richard Purdie
3051f36444 bitbake: runqueue.py: Fix recursive task pruning to only prune self referencing tasks
(Bitbake rev: 4962a59793504b26b06cf058dda600a07fbbd951)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:38 +01:00
Robert P. J. Day
ee89e38d47 prexport.bbclass: Fix typo in warning: "AUROPR" -> "AUTOPR".
(From OE-Core rev: 0b79c730f3e5c3c5329e439dffd137f2605b6cba)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:38 +01:00
Saul Wold
d83e034b4a lsbinitiscripts: Add glib-2.0 to DEPENDS list
ppp-watch requires it.

x86_64-poky-linux-gcc    -m64 --sysroot=/intel/poky2/builds/fetch/tmp/sysroots/qemux86-64 -O2 -pipe -g -feliminate-unused-debug-types  -Wall -D_GNU_SOURCE `pkg-config glib-2.0 --cflags` -c ppp-watch.c -o ppp-watch.o
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
ppp-watch.c:78:18: fatal error: glib.h: No such file or directory
compilation terminated.
make[1]: *** [ppp-watch.o] Error 1
make[1]: Leaving directory `/intel/poky2/builds/fetch/tmp/work/x86_64-poky-linux/lsbinitscripts-9.03-r0/initscripts-9.03/src'

(From OE-Core rev: 488610f4a5b7591a989ff1a6137f276a85fd7a85)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:38 +01:00
Tom Zanussi
fb8aaf6f8e qemumachines: make MACHINE_FEATURES append follow qemu.inc include
qemu.inc does a straight assign to MACHINE_FEATURES so overwriting the
preceding append to MACHINE_FEATURES, so the MACHINE_FEATURES append
needs to be moved after the include.

This situation came about as a result of commit 71a4bf386:

    qemumachines: Enable xserver-xorg as default xserver

    For qemux86 and qemux86-64 include qemu.inc after defining XSERVER

which missed this side-effect (and maybe others).

(From OE-Core rev: 4f336e5f416df382fdd2b405314741164d537b22)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:37 +01:00
Tom Zanussi
c964536dc9 perf: add libexec/perf-core and contents
libexec/perf-core contains all the pre-canned scripts and modules
needed by both the Perl and Python bindigs.  Add libexec/perf-core
along with all the pre-defined perf scripts underneath it.

(From OE-Core rev: 00f9e8aed9f111d351c2dc71cd8605ccbd11f68f)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:37 +01:00
Tom Zanussi
d4eaa2d384 perf: enable Perl binding
Add support to enable the perf Perl binding.

The build depends on perl-native to retrieve the configuration
settings needed for the binding.  cpan-base adds some useful functions
like is_target() and get_perl_version() that we need for
PERLCONFIGTARGET and related settings, which allow us to use the
target's Config_heavy.pl settings for ExtUtils:Embed when building for
the target.

Also adds the perl-modules dependency to give the target the perl
modules that scripts using the binding need.

(From OE-Core rev: 73a8eed010a821fc4f5c0e71ef749938ed780b44)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:37 +01:00
Tom Zanussi
7a2cf8682e perf: enable Python bindings
Add support to enable the perf python bindings.  The combination of
these changes and the changes in the python-config sections in the
kernel Makefile enable all the python bindings currently available in
perf.

(From OE-Core rev: 487c3a72f0ac7121b79d2f78b81f1d4732bc258a)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:37 +01:00
Tom Zanussi
aeca6512f3 perl: use @STAGINGDIR@ in config.sh
archlibexp in the snapshotted config.sh needs to be relative to
staging dir - it gets generated into Config_heavy.pl as one of the
settings and is used by ExtUtils::Embed during the target build.

The substituted setting doesn't make it into the target package
because it's removed by perl_package_preprocess() before packaging.

(From OE-Core rev: b647d2ab84ff0eb94f4b6a1b731d74aaf8c60b9d)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:36 +01:00
Tom Zanussi
2cae5a9fd0 perl: add @STAGINGDIR@ for config.sh substitions
For some config.sh substitions, we'd like to be able to use
STAGING_DIR_HOST; add @STAGINGDIR@ to allow for that.

(From OE-Core rev: cc594be0877b2a6616453c402db0a58ef265bc8d)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:36 +01:00
Tom Zanussi
7ebe4ca0cf perl: keep original libperl location
Things like ExtTools expect to find libperl at the original
(${libdir}/perl/${PV}/CORE/libperl.so) location, so keep it there but
symlink to it for the original (?) reason.

(From OE-Core rev: deb5d5ededfc404f4c54b18f3dcf8192e1c835e0)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:36 +01:00
Raymond Danks
39c819b330 mkelfimage: Add stable git build (initial recipe)
(From OE-Core rev: c04136393325967cbd491636b582d3e0f394de16)

Signed-off-by: Raymond Danks <ray.danks@se-eng.com>
Acked-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:36 +01:00
Raymond Danks
c9b01af84b image_types: Add elf image type
On x86, an ELF image file may be stored as a coreboot payload.
The image file is constructed, using the mkelfimage utility,
from a kernel and an initrd.

(From OE-Core rev: 93e9de4e27919f59b6783d53f314df6e49ccb436)

Signed-off-by: Raymond Danks <ray.danks@se-eng.com>
Acked-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:35 +01:00
Saul Wold
0a1d5f5977 package.bbclass: enable the use of package_qa_handle_error
This will allow the reporting of these errors as either WARNINGs (default)
or ERRORs if installed_vs_shipped is added to the ERROR_QA of the policy
file (such as a <distro_name>.conf file.

V2: found the code I had intended to send instead of that other junk,
    was just not watching what I pushed on that one, sorry. (this is edit in
    no in the actual commit message)

(From OE-Core rev: 20d4205a4e408b6a99db392d4df458156113106a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:35 +01:00
Mark Hatle
f47c151aea oprofile: Change /root to /home/root
OE uses /home/root instead of /root for the root user's directory.  Update
oprofile to match.

Upstream-status: Inappropriate [OE Specific]

(From OE-Core rev: d50c44585e72057532b8e0d9221ebf058e514672)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:35 +01:00
Saul Wold
2933dc1f17 speex: use lib_package bbclass
This is a clean-up following the recent addition of PN-bin
to bitbake.conf and lib_package

(From OE-Core rev: 4c41954227144606d2d22fbdf07231f4c7207ac5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:35 +01:00
Saul Wold
5ce21006ad gnutls: use lib_package bbclass
This is a clean-up following the recent addition of PN-bin
to bitbake.conf and lib_package

(From OE-Core rev: b9553b5fe8e06032770fd34e26ab97e6834292ab)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:34 +01:00
Saul Wold
fb0b75ad33 db: use lib_package bbclass
This is a clean-up following the recent addition of PN-bin
to bitbake.conf and lib_package

(From OE-Core rev: b3bfeec4db7d8fa6b8cc4bb2153c7f94cbe1dcc3)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:34 +01:00
Saul Wold
82b05d21a2 pulseaudio: use lib_package bbclass
This is a clean-up following the recent addition of PN-bin
to bitbake.conf and lib_package

(From OE-Core rev: 42dfedc01beb90adfa222a0c671ca8876849f938)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:34 +01:00
Saul Wold
b8d37a477e libacpi: use lib_package bbclass
This is a clean-up following the recent addition of PN-bin
to bitbake.conf and lib_package

(From OE-Core rev: 6597f7c77e1ccb21d73f8e3cec25bb27a901b500)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:34 +01:00
Saul Wold
7a16e34e73 lib_package: use PACKAGE_BEFORE_PN
Since this check effective is not a change becase the package
order that was in this file has not really changed no PR Bumps
are needed.

(From OE-Core rev: d807d5dd5bd0e161057ee115256dc050dbe8609b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:33 +01:00
Saul Wold
0add8ba1db bitbake.conf: Add PACKAGE_BEFORE_PN to PACKAGES
By doing this we can easily add addtional packages that can be
greedy before PN, but after some of the other standard packages.

This will also allow us to simplify the lib_package class to set
this variable.

(From OE-Core rev: b41b2bc584756956a48c9c5f91e7337e821105b2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:33 +01:00
Darren Hart
68a8caa738 kernel: Add kernel headers to kernel-dev package
[YOCTO #1614]

Add the kernel headers to the kernel-dev package. This packages what was
already built and kept in sysroots for building modules with bitbake.
Making this available on the target requires removing some additional
host binaries.

Move the location to /usr/src/kernel

Before use on the target, the user will need to:

    # cd /usr/src/kernel
    # make scripts

This renders the kernel-misc recipe empty, so remove it.

As we use /usr/src/kernel in several places (and I missed one in the
previous version), add a KERNEL_SRC_DIR variable and use that throughout
the class to avoid update errors in the future.

Now that we package the kernel headers, drop the
kernel_package_preprocess function which removed them from PKGD.

All *-sdk image recipes include dev-pkgs, so the kernel-dev package will
be installed by default on all such images.

(From OE-Core rev: 6125ea40d4483965f793bd847b3ce14b668a5b1e)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:33 +01:00
Bruce Ashfield
a0bbbdfdc8 linux-yocto-tiny: add KMETA specification
With recent kern tools changes, having a meta branch is opt-in. The
other linux-yocto recipes were updated, but linux-yocto-tiny was
missed.

Without specifying a meta branch, the kernel configuration audit
won't return any useful results, and throws a warning message.

 WARNING: Can't find any BSP hardware or required configuration fragments.
 WARNING: Looked at //cfg///hdw_frags.txt and //cfg///required_frags.txt in directory: //cfg//
 NOTE: package linux-yocto-tiny-3.2.18+git1+ee78519365bdb25287703bbc31c06b193263c654_1+27b68a93eb791e830da8d3a2c0fc99780897ad89-r3.0: task do_kernel

(From OE-Core rev: 29dbe7d7ba66c66e9e5c8dc438f89d9b46c509a0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:33 +01:00
Bruce Ashfield
a3d231bddc linux-yocto/3.4: update preempt-rt to 3.4.4-rt13
Updating preempt-rt in the 3.4 kernel to the latest upstream version
3.4.4-rt13.

(From OE-Core rev: f5ed8bc876fd24e4f08d29da06454037eec818e6)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:33 +01:00
Bruce Ashfield
5783db4622 linux-yocto/3.4: v3.4.4 + configuration updates
Bumping the kernel version to v3.4.4 and importing the following
meta branch commits:

 9b7c74b meta: bump kver to v3.4.4
 8231dec ck: relocate config post patches
 26b965e net_sched: remove dupicate configuration option
 df8bf19 meta: remove non applying routerstationpro patch
 292d8ea arm: import upstream versatile io.h fix
 f4824b1 net_sched: select ACT as a dependency of INGRESS
 30ae722 cgroups: delete obsolete namespace option
 51f94f0 meta: add qemumipsel mapping

Built and boot tested on qemu*

(From OE-Core rev: 3d33b8c8b3be5dcdac30c115b9fec427269db2b4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:32 +01:00
Bruce Ashfield
60ea6f475a linux-yocto/3.4: add qemumipsel machine mapping
Updating the meta branch with a board description and configuration
that can be found from the linux-yocto recipes without doing a
MACHINE -> KMACHINE mapping.

From the meta branch commit:

    The mti malta board description for a little endian config can't
    be found by default unless it has a matching KMACHINE, or the
    KMACHINE is set in a kernel recipe. In this case, it is easier to
    just add qemumipsel in the KMACHINE list, so the recipe doesn't
    need to do the mapping.

The little endian mips support reuses everything but the endianess
settings from the big endian mti malta board emulation.

This change adds the required mappings and SRCREVs, but does not
update the machine compatibilty, since official support is still
pending. The compatibility can be set in addon layers until that
time.

(From OE-Core rev: de2535b2bb47b80bdaeb3053b0ac0d1bbb9c5d53)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:32 +01:00
Cristian Iorga
65d637b39c telepathy-glib: update to ver. 0.19.1
(From OE-Core rev: 5109954afefc48d8f44776ec1f2d8a94a21c04f6)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:32 +01:00
Robert P. J. Day
ef6e25a8dc pcmcia-cs: Remove references to long-deprecated pcmcia-cs.
pcmciautils is the appropriate PCMCIA package these days.

(From OE-Core rev: 5066f7e9750253bc4678f2884e15f0333e60932b)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:31 +01:00
Laurentiu Palcu
96ebfa7c5f lighttpd: upgrade to 1.4.31
(From OE-Core rev: 913f4831aeb83e2c7f08daa47a31089dbf06f2be)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:31 +01:00
Laurentiu Palcu
5384eefe79 xcb-util-keysyms: upgrade to 0.3.9
(From OE-Core rev: f89834e7277a77d46b21a363a82371085f028969)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:31 +01:00
Laurentiu Palcu
22801c1f59 xcb-util-image: upgrade to 0.3.9
(From OE-Core rev: 3a88f34e9aa04f5aa988f9f77cf68189da169084)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:31 +01:00
Laurentiu Palcu
bab167c9eb xcb-util-wm: upgrade to 0.3.9
(From OE-Core rev: fba0788bb5ef1743aeceb9d874eb099f7240d118)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
2d96a934bc libxft: upgrade to 2.3.1
(From OE-Core rev: d1e7823c33eafbdd8ca086b8ba48f61faf391f20)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
03c0c851ef ethtool: upgrade to 3.4.1
(From OE-Core rev: 5550c437b50ea9124ce06fa7d17166f2be6d4ee5)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
e0ed10b034 libdrm: upgrade to 2.4.35
(From OE-Core rev: 4b640c4737806cbc035fa49bb22b3ee39e372e6a)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
0ad5637c0b xcb-util: upgrade to 0.3.9
(From OE-Core rev: 8c6acf7edabb95051384025d3793f6346e234b71)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
2f96fd0449 xf86-input-synaptics: upgrade to 1.6.2
(From OE-Core rev: 1e42302426780d8603517418163f46a7eef9931b)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:30 +01:00
Laurentiu Palcu
91a744eb72 xf86-input-vmmouse: upgrade to 12.9.0
(From OE-Core rev: 886c923c1f0259204399582eeb8523fd146c2c62)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 17:40:29 +01:00
Scott Rifenbark
ddafc107cd documentation/dev-manual/dev-manual-newbie.xml: Edits to submitting change
Fixes [YOCTO_#2671]

Added a bit more in here about considering requesting rights to have
a contrib area to YP and OE if user is a regular and significant
contributor.

(From yocto-docs rev: b54bba33b2706bed593a9ee66d5c72f820c37d32)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:17 +01:00
Scott Rifenbark
75d007be84 documentation/dev-manual/dev-manual-newbie.xml: edits to sending patch
The section that describes how to send a patch upstream via email
did not have a good connection to the various mailing lists.  I
added some references to this section and also mentioned using
the scripts if the user has many changes to commit.

(From yocto-docs rev: ad75ae45420c43bda974d22b02094237b5c7cc50)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:17 +01:00
Scott Rifenbark
bf753f8aef documentation/dev-manual/dev-manual-newbie.xml: Fixed typo.
(From yocto-docs rev: d1ca036f11203f842eb87a204487c414ee901818)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:17 +01:00
Scott Rifenbark
a7cf3cd9c2 documentation/poky-ref-manual/ref-variables.xml: Added link to PR
(From yocto-docs rev: d64bf592f16f2462727aedf6b9c552ec9c73d72c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:16 +01:00
Paul Eggleton
b64ad8ba85 dev-manual: menuconfig now works properly
Bug 2256 is now fixed in master and the fix will be in the next release,
so update the documentation accordingly.

(From yocto-docs rev: 877a7ecfd1623417d0793a5dd16b66c35b6fdbae)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:16 +01:00
Paul Eggleton
f7cce1bb91 shared state memory -> shared state cache
"shared state cache" is the generally accepted term for this.

(From yocto-docs rev: a15f629afe46e7217182a1ac077ab59641be9a8c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:16 +01:00
Paul Eggleton
9568530dd9 dev-manual: correct SMP_CONFIG
It's CONFIG_SMP here, and since the title of the section already
mentions it, just change the sentence to be more generic.

(From yocto-docs rev: 32e6145b5f41d4eb293f8267ef01d02217143152)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:16 +01:00
Paul Eggleton
257e61a2cb dev-manual: tidy up "How to Submit a Change" section
* Change some of the language and patch submission directions to
  correctly represent how we work together with OpenEmbedded (this
  changed with the introduction of OE-Core a few releases ago).
* Correct --help option to -h for pull request scripts
* Clarify commit message guidelines
* Touch up a few other bits and pieces

Fixes [YOCTO #2671].

(From yocto-docs rev: 3170ce5e0757951afee13207c117316e33449b39)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:15 +01:00
Richard Purdie
dd5f6ae551 bitbake: fetch2/svn: Enhance to cope with subversion 1.7 upgrade
svn changed working checkout formats between 1.6 and 1.7. Its convoluted to
detect what format a given working copy is in so the simplest solution is simply
to run "svn upgrade" within the working copy.

The base svn command variable is relocated slightly to enable this new code to
work effectively.

(Bitbake rev: ebd3ecdb5f3c6d3fe1fad27cbed4d80f4277e92e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:15 +01:00
Richard Purdie
852266d0bc bitbake: usermanual: Improve task dependency documentation to match reality
(Bitbake rev: f67c0606fc681359fb0c68be55cfc9f11d410f17)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:15 +01:00
Richard Purdie
3488966926 bitbake: runqueue.py: Allow recrdeptasks that have self references
In some cases we want to pull in DEPENDS and RDEPENDS of recrdeptask
dependencies but we need a way to trigger or avoid this behaviour
depending on context. The logical syntax to trigger such behaviour
would be a self referencing recrdeptask:

do_a[recrdeptask] = "do_a do_b"

The dependency chains already recurse this kind of expression correctly, the
missing piece is to avoid any circular reference errors. Since the dependencies
have already been recursively resolved, simply removing any recrdeptask
references is enough to break the circular references.

This patch therefore removes any circular references using the set
difference_update() operator. There will be metadata tweaks required to
add any references needed to the extra taskname.

(Bitbake rev: a5324da9b8a0c9307a6c511ea9009f34be70c92b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:14 +01:00
Liming An
5d79175b87 bitbake: Hob: fixed some variables not clean bug in detail page
[YOCTO #2679]

(Bitbake rev: 73801f571e040dcdfeb15a15b9a484cbefaae70c)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:14 +01:00
Enrico Scholz
86aeee98cf bitbake: git: do not execute 'git remote prune'
'git remote prune' at this location does not make much sense because
the following 'git remote rm' will prune stale and non-stale branches.

The 'prune' can cause trouble because it will access the network
bypassing the no-network code in bitbake. When this operation fails and
throws an exception, the next command (--> 'git remote rm') will be
skipped.  This in turn, will make all the following operations fail,
because they assume that the remote does not exist yet.

(Bitbake rev: 2ba23df5fad4b94d38a6aed97f7822226d72eb89)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:14 +01:00
Richard Purdie
5c581b2610 meta/classes: Update recrdeptask fields for recursive dependency handling changes in bitbake
This also deletes the buildall task since I seen usecases for it.

(From OE-Core rev: 8229fb5d7205f5e5b198ab2860fbcc02054476eb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:13 +01:00
Richard Purdie
024d587555 subversion-native: Enable subversion-native 1.7 and remove it from ASSUME_PROVIDED
This enables a switch to subversion 1.7 now bitbake is able to cope with
upgrading existing working copies. The impact of this change should be
minimal since we don't have many subversion recipes now.

(From OE-Core rev: ac0aa35ba6d7a21636bdd23d45ae0bf8112bdaa8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-04 14:48:13 +01:00
Paul Eggleton
bc6c98555a poky-ref-manual: update mailing list info in ref manual
We need to include the OpenEmbedded and BitBake mailing lists here as
they are an integral part of the community especially for patch
submission.

Note that this supersedes the information about mailing lists in the dev
manual (which should be replaced with a link to this section).

(From yocto-docs rev: e9bae0a323af2d95505c5492be985232440842ff)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:04 +01:00
Robert P. J. Day
c3d6fb2928 documentation/poky-ref-manual/ref-variables.xml: Fixed example.
(From yocto-docs rev: 3da2ed1ccdb812d1b0999f95f0db19fc5e5bf818)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:03 +01:00
Scott Rifenbark
5966b44893 documentation/poky-ref-manual: Yocto Project scrub
I have changed as many "Yocto Project" terms as possible so that
better reflect reality.

(From yocto-docs rev: 5f729e53b0cb653c97621e4e6598d9295d60ada5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:03 +01:00
Scott Rifenbark
7064538309 documentation/poky-ref-manual/poky-ref-manual.xml: Removed comments
Got rid of some old author text.

(From yocto-docs rev: 358ff9b2de4196d23a51215ea56193fa23ebaa1a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:03 +01:00
Scott Rifenbark
e70dc3ab99 documentation/kernel-manual: Scrubbed the Yocto Project term
Changed all occurrences of "Yocto Project" to terms better suited
to reality.

(From yocto-docs rev: fdd7b8c2bcbaf566cad336c67c582c2a24aa9dc1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:02 +01:00
Scott Rifenbark
d779c83e71 documentation/dev-manual: Fixed "Linux Yocto" term
Throughout the manual, the kernels that are built and available through
the Yocto Project were being referenced as a "Linux Yocto kernel."
This reference is poor.  First, it placed Linux and Yocto very close
together and could upset the Linux folks.  Second, a better way would
have been to say "Yocto Linux kernel."  I have fixed by referring to
kernels that are available through the Yocto Project as
"Yocto Project kernels."

(From yocto-docs rev: 9b8319328cd4ab4ce3363001c9feeec585d9cab9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:02 +01:00
Scott Rifenbark
85673e5466 documentation/dev-manual: Scrub for Yocto Project term
I have replaced the term "Yocto Project" with more appropriate terms
where possible.

(From yocto-docs rev: 622ef9a2b4897ecd151b641b43d7706ab673c989)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:02 +01:00
Scott Rifenbark
7606c30c19 documentation/dev-manual/dev-manual-bsp-appendix.xml: Yocto term scrub
Scrubbed the manual for the term "Yocto Project", which has been
over-used.  I updated occurrances to better represent actual bits
rather than generically referring to everything as Yocto Project.

(From yocto-docs rev: f70cffeffa0d8863a88783607621bf6f7125d02d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:02 +01:00
Lianhao Lu
b634676b29 task-core-tools-debug: Added openssh-sftp-server.
[YOCTO #2605].
Added openssh-sftp-server to the tools-debug IMAGE_FEATURE.

(From OE-Core rev: a6b6df1350149c116050cb93c3c7b4802c709d31)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:01 +01:00
Lianhao Lu
286b2666dc image/core-image: Handle conflicting IMAGE_FEATURES.
IMAGE_FEATURES such as 'ssh-server-dropbear' and 'ssh-server-openssh'
can't be both enabled. User can use the following variables to define
the relationship of image features:

IMAGE_FEATURES_REPLACES_foo = "bar" means including image feature "foo"
would replace the image feature "bar".

IMAGE_FEATURES_CONFLICTS_foo = "bar" means including both image features
"foo" and "bar" would cause an parsing error.

(From OE-Core rev: e36d12a9c1cf69540079e48a1dfadbc343758e48)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:01 +01:00
Dennis Lan
6121186ff9 openjade-native: fix undefined Getopts error, use std namespace
Using Gentoo Linux as the build host, it fails without this patch
Use Getopt::Std in place of getopts.pl.

https://bugs.gentoo.org/show_bug.cgi?id=420083

which following error:
/usr/bin/perl -w ./../msggen.pl -l jstyleModule InterpreterMessages.msg
/usr/bin/perl -w ./../msggen.pl -l jstyleModule DssslAppMessages.msg
Undefined subroutine &main::Getopts called at ./../msggen.pl line 22.
make[2]: *** [InterpreterMessages.h] Error 2
make[2]: *** Waiting for unfinished jobs....
Undefined subroutine &main::Getopts called at ./../msggen.pl line 22.
make[2]: *** [DssslAppMessages.h] Error 2

(From OE-Core rev: 169a89b10817b742c063fcd76721e4dbbcca6199)

Signed-off-by: Dennis Lan <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:01 +01:00
Mark Hatle
8c87f255c0 base.bbclass: Add cross-canadian-${TRANSLATED_TARGET_ARCH} to the license exclusion list
This appears to be an oversight in the original implementation.  All of the
host package types were being ignored except for the SDK cross-canadian type.

(From OE-Core rev: 750f99d4e2c805985cd87a2358b0625a808ecf4d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:00 +01:00
Mark Hatle
b70c9154e4 image.bbclass: Add support to build the SDK in parallel with the image
When building an image recipe, you can now build a companion SDK by
calling the populate_sdk task:
  bitbake -c populate_sdk core-image-minimal

Note: there are still issues w/ the SDK not working completely with
multilibs.

A lock is required between rootfs and populate_sdk activities to prevent
configuration file clashes and similar package management problems in ipk
and deb based systems.  (RPM already had a lock for a different reason.)

(From OE-Core rev: a0de2a56f19ae4d8cd88e46e96917a7a019fe1ab)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:00 +01:00
Mark Hatle
63c6f46b22 package.bbclass: Allow a package to skip per file dependency generation
Most of the time skipping per file dependency generation is a bad idea, but
when building a nativesdk or similar you may be required to pickup host
dependencies.  These host dependencies can not always be reconciled within
the scope of other nativesdk components, so if we skip them we can facilitate
this unique situation.

(From OE-Core rev: a1ca125de55a8e7cab402e2ba5737a56d4e890c2)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:00 +01:00
Mark Hatle
6cb13874ec libc-common: Allow -dbg package to append, and not just set package variables
The libc-common attempts to rewrite the package information in a way similar
to debian.bbclass.  When it does this, it should be appending to the
dependency variables (RPROVIDES, RREPLACES, and RCONFLICTS), instead
of simply setting a hard coded value.  Otherwise the lib package can not
tailor the dependency variables to suite it's needs.

(From OE-Core rev: fa1c7b797593cbd5e82dc264bde2667620eb0515)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:55:00 +01:00
Richard Purdie
b8bd56e34d autotools.bbclass: When configure fails, dump the config.log files the logs
When configure fails, it usually says "see config.log" yet nobody ever shares
the config.log file meaning the person trying to help invariably has to ask
for more information.

This patch dumps all the config.log files into the main bitbake log files when
configure fails, meaning all the information is present to help someone debug
such failures. It does make the log rather larger but this is preferable to
not having enough information in most cases.

[YOCTO #2463]

(From OE-Core rev: 7ad08f5b73aa949a877adc5641b4bb1d007de750)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:59 +01:00
Paul Gortmaker
b6cf8f9023 u-boot: do not clobber PARALLEL_MAKE setting
The u-boot tree is fully capable of parallel builds, so this
setting should not exist as a blanket setting for all of the
recipes.  Going forward, if there is a parallelism issue
in u-boot, it needs to be reported and fixed there, and not
with the "make -j1" band-aid approach.

(From OE-Core rev: 7fdd1f82803df9752e908f01f7643d66b82a690e)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:59 +01:00
Paul Gortmaker
feb06a0a2d u-boot: Don't make the -Os removal part of global settings.
We don't want to force everyone to be stripping the -Os
flags from their u-boot builds.  Remove it, since it pertains
to an old toolchain issue that is no longer relevant, and it
breaks the powerpc mpc8315.

(From OE-Core rev: 5e3f777f9fcc986ae66203651830b5765bca49fd)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:59 +01:00
Mark Hatle
01e891ad71 populate_sdk: enable basic multilib support
In order to enable basic multilib support for the export of an SDK
image, a number of minor changes had to be made:

The value of MULTIMACH_TARGET_SYS needs to be variable.  This way we
can define the value to the appropriate multilib.  (Also in some cases
the default PACKAGE_ARCH is set to MACHINE_ARCH which is incorrect for
the SDK.)  Add a companion REAL_MULTIMACH_TARGET_SYS, based on code
from meta-environment, to allow for this.

We have to convert the do_populate_sdk into a python call, and then
break up the previous items into three parts.
  * Image construction
  * Setup of environment files
  * Generation of the tarball

Then we can iterate over the multilibs to populate the environment files.

Finally, matching changes were needed in the toolchain-scripts file.  And
what I presume is an optimization of immediate evaluation for
TOOLCHAIN_CONFIGSITE_NOCACHE and ..._SYSROOTCACHE needed to be done at
runtime, otherwise the wrong values may be used.

(From OE-Core rev: 42545ffbb37f2646a2a8c20999c21d3300e24f59)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:58 +01:00
Mark Hatle
66d3d3b228 populate_sdk_base.bbclass: Change to using task specific depends
If we combine the do_populate_sdk with the image generation, we want
to avoid the dependency processing unless do_populate_sdk is run.

This requires the bitbake change to implement task based rdepends.

(From OE-Core rev: 5fa9f980248e7813ce74f48a29c4b7d94e308cf9)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:58 +01:00
Mark Hatle
41550ca5de populate_sdk: Allow for attempt only packages in the SDK
We want to be able to supply attempt only packages in the SDK in order to
support more advanced SDK images that more closely match specific image
recipes.

(From OE-Core rev: 9b9efa96537f4977b158c29151e53d02600d2294)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:58 +01:00
Mark Hatle
1d5271153d populate_sdk.bbclass: Split into two parts
populate_sdk was renamed to populate_sdk_base in order to allow for changes
that may break existing SDK recipes.  Any such changes need an analog
in populate_sdk (new version) to restore previous desired behavior.

In addition to the rename, one minor change was made.  The _base version
only had the do_populate_sdk as an added task, but no before or after defined.

For compatibility, populate_sdk has do_populate_sdk defined as "after"
do_install and before do_build, this is identical to the original behavior.

(From OE-Core rev: bde224ba44c16edc1892cea1b33ab973ae971115)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:58 +01:00
Mark Hatle
9870fbc9f8 Fix manual log file paths
When a recent change, the path to log files may be contained within an
arbitrary directory.  To generate the manual log files in the correct path
we should be using the ${BB_LOGFILE}'s path instead of always assuming the
logs go into ${WORKDIR}/temp.

(From OE-Core rev: 779db325d407f0bade84572ef99fdad4d0c88011)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:57 +01:00
Darren Hart
bd2d6016c0 core-image*sdk: Add kernel-dev to sdk images
While sdk images already have dev-pkgs included, the kernel-dev package
is special and does not get installed. Add kernel-dev explicitly to the
*sdk image recipes.

Note: We have to be careful with "IMAGE_INSTALL +=" as it must appear
after "inherit core-image" which makes an "IMAGE_INSTALL ?=" assignment.

(From OE-Core rev: 337428316de3612a8e1efa70b3a4ba7cb6e058d2)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Jessica Zhang <jessica.zhang@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:57 +01:00
Darren Hart
cf65e4ec8f linux-yocto-custom: Remove linux-tools
Remove the linux-tools include as perf is now packaged independently.
Without this, including meta-skeleton in bblayers.conf results in a
build failure as linux-tools.inc cannot be found.

(From OE-Core rev: 9d27daeafcc6ea892dee0ee5d0816069b04f6771)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:56 +01:00
Robert Yang
7449260c75 icu 3.6: do_install failed: Segmentation fault
There is a "Segmentation fault" error when the tmpdir is longer than 470
(or less), this is because it used "char cmd[1024]" which is not enough
for the command line. Allocate a larger memory size should fix this problem.

[YOCTO #2664]

(From OE-Core rev: 3fd5d0334439b6231a6afd2a544a16b87ae81c99)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:56 +01:00
Khem Raj
44fe9de20d kconfig-frontends: New recipe
kconfig-frontends provides the kconfig infrastructure
thats used for linux kernel as a standalone package. Its
not intended to be used for kernel itself but can be
used by packages who are based on kconfig e.g. busybox
uclibc or new packages who wants to use kconfig infra
for the package build

kconfig-frontends names it's shared library as -3.4.0.so instead of .so.3.4.0,
this causes the -dev package to grab it since it matches on *.so. This error
would also have shown up with the old PACKAGE order.

(From OE-Core rev: 705baf06d151eb4f9dcae7b23c7f3e57c0c09a74)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-03 14:54:56 +01:00
Scott Rifenbark
644ad4bf1e documentation/bsp-guide/bsp.xml: Yocto term paring
Pared down the use of the term Yocto Project.

(From yocto-docs rev: d62747ca1d42cae703d1cd307dfe16bb9682b741)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:45 +01:00
Richard Purdie
58977a94dd package.bbclass: Add missing PKGR, PKGV, PKGE and ALTERNATIVE variables from PACKAGEVARS
These variables all take package name extensions and should be considered in sstate
dependency processing.

This may also fix some multilib alternatives issues (unconfirmed).

[YOCTO #2056]

(From OE-Core rev: 64422f7c5da160050a5454817c8fa9d070104b34)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:45 +01:00
Richard Purdie
91a077282f package_deb: When searching for E:, anchor expression
If we don't do this it will match on expressions like "NOTE:" which
are not fatal errors.

(From OE-Core rev: 8f4e160ce0b0c755545d62b06db14decd45b9f1e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:45 +01:00
Richard Purdie
4147d2e52f EXTRA_IMAGEDEPENDS is used to ensure things like qemu-native are built and these are not strictly dependencies of the do_rootfs task. This patch moves them to the do_build task allowing bitbake a little more flexibility about when things need to get built by.
I noticed this when qemu-native failed to build and a rootfs was not generated
which is not the intended behaviour.

Also update the syntax to use appendVarFlag instead of get/setVarFlag

(From OE-Core rev: fa13e83ec3f91dce866ac212e91b62db24b6486d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:45 +01:00
Robert P. J. Day
1d9e129c25 kernel-arch: Remove test for long-dead arm26 architecture.
(From OE-Core rev: ff3f912eed0270afa14d706fc1e57f8a1de2614b)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:44 +01:00
Robert P. J. Day
44b18033ae irda-utils: Add missing "inherit update-rc.d" for INITSCRIPT_*
(From OE-Core rev: 8846728da016a964f581e3aa76ec9d457a3d795d)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:44 +01:00
Paul Eggleton
d53c80fd9c site/common-linux: fix incorrect size of pid_t for apr
If cross-compiling, apr's configure script assumes that pid_t is
64-bit which is wrong - it appears that 32-bit is a safe assumption
for Linux no matter what the architecture, so use that instead by
default.

This fixes Apache writing garbage to its pid file when built using apr
produced from this recipe.

(From OE-Core rev: 81eb71736a4d14abe85d810f9862d8a9421e9ef5)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:44 +01:00
Paul Eggleton
3a39cbcce6 apr: add util-linux to DEPENDS for libuuid
apr will use libuuid if it is present, and thus we should require that
it is there so that we have a deterministic build.

(From OE-Core rev: b880cebf503ca13cd4fcb741895e57e6353065be)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:44 +01:00
Robert P. J. Day
bf04836ca5 bitbake.conf: Tidy up a few comment typoes; no functional changes.
(From OE-Core rev: 935a7f3847bd86ed78418db5cb6dd98ac0b6e65d)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:44 +01:00
Richard Purdie
035503b729 documentation.conf: Improve PRIORITY documentation
(From OE-Core rev: 3c8d0a3ebd557332f7ab82de4b8fee4e607a6062)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:43 +01:00
Cristian Ciupitu
9a4b266674 runqemu: fix fedora pkg names when run fails
runqemu can fail to with the following message:

    You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator.
        Fedora package names are: mesa-libGL mesa-libGLU.

The libGL.so and libGLU.so files are provided by the mesa-libGL-devel
and mesa-libGLU-devel Fedora packages (yum provides '*/libGL*.so').

(From OE-Core rev: f2b6f9c3a8b4f87b5570b78766a118e4290d773a)

Signed-off-by: Cristian Ciupitu <cristian.ciupitu@yahoo.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-07-02 16:47:43 +01:00
Liming An
a5b2c1e4ce bitbake: Hob: change 'run image' and 'deploy' Gui and work flow for building detail page
In build detail page, the response action of clicked the 'run image'
or 'deploy' button will accroding to below as ui design:
1)if there has one file in building result, it will responsed the
'run image'(now, we only support the qemu) or 'deploy' directly
2)if there has more than one file, it will popup a dialog with listed
created files type, they are has same action attributes 'deploy'
or 'runnable'.
Note: because the qemu image (runnable file) can't be deployed and
we can't generated a image that has the two attributes now, can be run
or can be deployed,  so the code will not deal with this case.

[YOCTO #2155]

(Bitbake rev: 0d24b1e85a11b68c8464cf15b49d3fc78f216818)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 14:46:47 +01:00
Valentin Popa
b3edfb13c7 build-appliance-image: rename from self-hosted-image
(-) rename it also in maintainers.inc

[YOCTO #2636]

(From meta-yocto rev: eabf9a60e6b56a9074319e5216119c03a76e44ba)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:02 +01:00
Darren Hart
602808b788 linux-libc-headers-yocto: Do not include linux-yocto
The only bit we seem to need from the linux-yocto include is the
SRCREV_FORMAT. If we define this explicitly, we can avoid including the
linux-yocto include.

This is desirable so that linux-yocto can require kernel and simplify
the PR update process of all the linux-yocto* recipes. Pulling in
kernel to the linux-libc-headers-yocto recipes causes build failures by
pulling in "update-modules-nativesdk".

(From meta-yocto rev: be73421c4c8f5ae119aa8c030cca2442087d5c22)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:02 +01:00
Scott Rifenbark
347424e558 documentation/adt-manual: Adjustments to Yocto Project term
Changes throughout the manual that either eliminate or change
many of the "Yocto Project" strings.  The file structure for
the meta data is now called "source directory."  The build
directory is referred as just that - "build directory."  Any
where the build system is referred to it is called the
"OpenEmbedded build system."

(From yocto-docs rev: 1210c19f90d4a52042fec12657212ae3e58e13d6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:02 +01:00
Jonathan Santos
7a4cc0e884 mklibs-native: Upgrade to 0.1.34
include-unistd.h-for-gcc47.patch is no longer needed, since it was fixed upstream.

(From OE-Core rev: 54429dfcca0e35a3aeaa78e509240b87d6a8f4ac)

Signed-off-by: Jonathan Santos <jrsantos@jonathanrsantos.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:02 +01:00
Valentin Popa
552883c169 qt4e-demo-image: new description
(-) replaced qt4e-demo-image description

[YOCTO #2636]

(From OE-Core rev: 5a06c7d357cd08d9c6392a72e9581e3c6b6f75fc)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:01 +01:00
Valentin Popa
d7bafd3a2e build-appliance-image: rename from self-hosted-image
(-) renamed self-hosted-image to build-appliance-image
(-) replaced build-appliance-image description

[YOCTO #2636]

(From OE-Core rev: 04096f31778886479dac479132bded57e717653e)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:01 +01:00
Darren Hart
934bb7bbfc linux-yocto: Use INC_PR and move kernel require to linux-yocto.inc
When making changes to kernel.bbclass, it would be nice not to have to
manually change the PR of every linux-yocto*.bb file that requires it.

Move the "require kernel" line to linux-yocto.inc and update the
linux-yocto recipes to use INC_PR.

(From OE-Core rev: 7a41d96c946029aeec03cd26f326bc6ca26e74fd)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:01 +01:00
Joe MacDonald
11809e3fd1 apr: Install apr-local libtool in build dir
Building apache with this version of apr would blow up on the results
from:

   apr_config --apr-libtool

Errors of the form:

   /bin/sh: /media/large/tmp/sysroots/x86_64-linux/usr/share/build-1/libtool: No such file or directory

Fix that by ensuring libtool from apr's build lands in
.../usr/share/build-1/.

(From OE-Core rev: eefbc2f219571dd0c66e1099ea4ad72b1a973fd4)

Signed-off-by: Joe MacDonald <joe.macdonald@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:00 +01:00
Khem Raj
c4c029ad51 bison: link in librt on uclibc
uclibc has some functions in librt that are needed
by bison build.

(From OE-Core rev: 987bc3ff3e1a619132434c5d939c7035d3d19fcb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:00 +01:00
Khem Raj
56bcc2ff59 uclibc-0.9.33: add posix_fallocate implementation
This gets systemd building with uclibc

(From OE-Core rev: d577fa59d8643954249fed7a79232e609add36f8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:31:00 +01:00
Khem Raj
55e369dd90 uclibc-git: Update for building systemd
This adds uclibc patches to build systemd there are
new functions that are used by systemd which are needed

Additionally when using gold linker to build userspace
based on uclibc there are spurious hidden symbol that
show up in librt.so and libc.so which should not exist

So we patch uclibc for that

(From OE-Core rev: ecffa7571ed27a75e3248cb860affae233249440)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:59 +01:00
Khem Raj
e5c81d7a0e glib-2.0: Add missing dependency on virtual/libiconv
(From OE-Core rev: 5cb4de2f77b905279d85b04f236b7a135016db28)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:59 +01:00
Khem Raj
c5274b1d25 uclibc: Separate the bits between uclibc and uclibc-initial
uclibc and uclibc-initial were providing conflicting PROVIDES
separate the common bits into logical pieces. Create a common
inc file to hold package information and version specific includes
so correct logical units can be included in uclibc and uclibc-initial
recipes.

(From OE-Core rev: bdfd2f6f286889b8920ebf6a670542b26534c1cb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:59 +01:00
Dennis Lan
cc6a65dfd4 eglibc: support mipsel little endian, filter out -march=mips32
Quote for eglibc source:
 for mips eglibc now builds syscall tables for all abi's
 so we make sure that we choose right march option which is
 compatible with o32,n32 and n64 abi's
 e.g. -march=mips32 is not compatible with n32 and n64 therefore
 we filter it out in such case -march=from-abi which will be
 mips1 when using o32 and mips3 when using n32/n64

(From OE-Core rev: 6a013236d362874c661aa5f15b948aac32177181)

Signed-off-by: Dennis Lan <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:59 +01:00
Khem Raj
a4d55aafa7 eglibc-2.15: Update to latest on 2.15 branch
(From OE-Core rev: e052ab9ac0f464ae4c7054a9af6663a0213d4192)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:58 +01:00
Khem Raj
3916fb9bf4 gcc-configure-sdk, gcc-configure-cross: Dont recompute USE_NLS
This was needed because on eglibc based builds we did not
define USE_NLS but now we define it in default config to have
a valid value so we do not need this here. Moreover it was
wrong and was not covering all cases of uclibc triplets

(From OE-Core rev: fc9492654aab2a6e3f46977193b5a5f388e4ee85)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:58 +01:00
Khem Raj
daed800397 bitbake.conf: Add weak definition for USE_NLS
USE_NLS is generally defined for uclibc based system builds
and generally its defined to 'no' there. However this variable
does not exist at all for eglibc/glibc distributions. This
patch adds a weak definition to 'yes' on eglibc based system
builds. This will ease out some of the cryptic contructs we
have to define certain options based on USE_NLS and also
checking got uclibc at the same time to avoid pythong exceptions
when its not defined.

(From OE-Core rev: 41db1bf69314e542a9d7ac1fb1b4bc65db75b642)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:58 +01:00
Khem Raj
c27d535b09 libgcc: Remove unpackage unwind.h
Fixes build warnings like below

WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include
WARNING:   /usr/lib/arm-oe-linux-gnueabi/4.7.2/include/unwind.h

(From OE-Core rev: f7ec6ea2b32207993e7fc92ed67c08f542007953)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:57 +01:00
Robert Yang
6d96686ddd icu 3.6: dropp apply=yes from path
The "apply=yes" doesn't appear to be necessary, so drop it.

[YOCTO #2664]

(From OE-Core rev: 78abdd12305d4b74d7ec82fd38b7a27aaa8d7d95)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 13:30:57 +01:00
Xiaofeng Yan
4d48398798 local.conf.sample.extended: Add filtering function to archiver.bbclass
Add the option to filter packages according to license.

[YOCTO #2473]

(From meta-yocto rev: 156147991dc1ec7f58ac355b8e0f430958de2831)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
7afc6af42a documentation/poky-ref-manual/faq.xml: added FAQ on deleting tmp
Added a new FAQ entry on how to get rid of build output and
start over.  Sourced by Robert P. J. Day.

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 3b94911aaf64b9618f8dbc0d8b98384b9ebd33b4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
5f36c2c37f documentation/poky-ref-manual/faq.xml: Clean up to ext. toolchain
I have cleaned up a bit of the FAQ entry for how to use an
external toolchain.  This is not complete yet.

(From yocto-docs rev: 030324a6881d8b9b0bcf476a2b7bfdd6fbd978a8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
060e7b4ca5 documentation/poky-ref-manual/ref-variables.xml: Updates to TCMODE.
Cleaned up the glossary description a bit.

(From yocto-docs rev: 344ff68ebb58f4ea62d6cb052b712466f593a9f2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
ffb7f52db6 documentation/poky-ref-manual/ref-variables.xml: Added link to TCLIBC.
(From yocto-docs rev: c3a1cdf6c6f157b6796e2091b342d1ff157fd0e1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
8bcbd30a71 documentation/dev-manual/dev-manual-kernel-appendix.xml: Added branch step
The example did not specify to switch to the "denzil" branch after
establishing the local repo of poky-extras.  The example will not
work without this step.

(From yocto-docs rev: 90071570bca2edfceb4adb91bdd9093c095c8825)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Scott Rifenbark
2282764f51 documentation/adt-manual/adt-prepare.xml: Inserted note
Added a note to warn the user about mixing ADT Intaller installation
methods.

(From yocto-docs rev: 718a48a7ea4753eb1e59e17a75c3d94a9ed166bb)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:58 +01:00
Richard Purdie
4129d5dc7c bitbake: runqueue.py: Handle multiple rdeptask entries
I'm not sure why we don't currently allow multiple entries in rdeptask when
we do in deptask. This makes the handling match between the two since
its trivial to fix.

(Bitbake rev: 19c84fe8854639768c874cc1449963a9867ad397)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
18e3b500b9 bitbake: fetch2: Revert the regexp removal for the type field and instead anchor regexp
People are using regexps in the url type field so we need to preserve
this bitbake behaviour. To address the issues with https:// urls mapping
badly to file:// urls we anchor the regexp if its not already anchored.
There should be no expressions in the wild which would break with this
change.

(Bitbake rev: ce0579dc256251e523c6330641f98b9f5a0e5761)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
c525c131a6 bitbake: test/fetch: Switch the comparision order to make test failures slightly clearer
(Bitbake rev: 2b1311e21172847b6a86cfb21a84fd00e4ab1ac5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
b13951f96d bitbake: test/fetch: Ensure cwd is valud for the git clone
(Bitbake rev: 60b1a9f52dfec98e55a879a637f7142b0175b452)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
5fa6036d49 bitbake: runqueue: Reimplement recrdepends so it works more correctly
Currently, recrdepends is extremely greedy. For example:

do_foo[rdepends] = "somedep:sometask"
addtask foo

which adds foo with *no* dependencies, will suddenly start appearing
as a dependency in every task which uses recrdepends. So far this has
been mildy annoying but we now have use cases where this makes no sense
at all.

This reworks the recrdepends code to avoid this problem. To do this we
can no longer collapse things into lists just based on file ID. The problem
is this code is extremely performance sensitive. The "preparing runqueue"
phase spends a lot of time in these recursive dependency calculations so any
change here could negatively impact the user experience.

As such, this code has been carefully tested on convoluted dependency trees
with operations like "time bitbake world -g". The net result of this change
and the preceeding changes combined is a net speed up of these operations in
all cases measured.

Tests were made comparing "bitbake world -g" task-depends.dot before and after
this patch. There *are* differences for example -nativesdk do_build dependencies
on -native recipes are no longer present. All removed dependencies appear to
be sensible improvements to the system. The "rdepends" cross contamination
issue above is also fixed.

(Bitbake rev: 82d73423c57569b984ee0ae3d93e3c3bd5dc5216)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
be22b92627 bitbake: runqueue.py: Convert depends variable to use sets
This gives some small performance gains and sets the scene for other
improvements by removing the need for duplicate detection code.

(Bitbake rev: 6fd723479e8d49227fd58040b3485c1d5afc4bc5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Richard Purdie
edfb2ba32c bitbake: taskdata: Add gettask_id_fromfnid helper function
This is like gettask_id but doesn't require translation of fnid -> fn
first which the function then translates back. This gives a sizeable
performance improvement since a significant number of lookups are avoided.

(Bitbake rev: 3190cb83e2af195a464f669c5aa8aedbf795160e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Bruce Ashfield
d498bd6bf3 linux-yocto/3.0: update BSP descriptions to new kern-tools format
In tree linux-yocto 3.0 boards indicate that they are BSPs via
the older/obsolete syntax "scc_leaf". This line in their board
description is detected by the build process and is used to find
the BSP description and the kernel type they use as their base.

To work with the latest kern tools, the BSP descriptions should
be updated to "include <ktype> branch <machine>" to acheive the
same result.

All trees newer than 3.0 already have this change and do not need
to be updated.

(From OE-Core rev: e32c993859337964033a285922dac3971e5add2d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Robert Yang
f64d68fb97 bitbake.conf: disable ccache explicitly if it is not enabled
The autogen-native built error on FC17:

ccache: failed to create /dev/null/.ccache

This is because the default gcc command of FC17 is a symlink to ccache,
so the ccache will always be used regardless to the setting of CCACHE,
ccache uses $HOME/.ccache as the CACHE_DIR by default, but autogen set
HOME=/dev/null, so the error happens.

Disable ccache explicitly if it is not enabled would fix the problem,
otherwise it would always use ccache regardless to the setting of CCACHE
on Fedora 17.

The ccache 3.1.7 has a bug, it would always create $CCCHE_DIR/.ccache
even CCACHE_DISABLE=1.

Unset CCACHE_DISABLE in ccache.bbclass, since ccache only checks whether
there is a CCACHE_DISABLE in the environment or not, it doesn't care about
its value, so we need unset it explicitly when enable ccache.

[YOCTO #2554]

(From OE-Core rev: dd2bab9b6a973d8086dfb6282e781fd79d30b05a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:32:57 +01:00
Xiaofeng Yan
c3d8b100a2 archiver.bbclass: Add the function of filtering packages
This function can miss packages whose license is in
"COPYLEFT_LICENSE_EXCLUDE" and tarball packages with license in
"COPYLEFT_LICENSE_INCLUDE".

[YOCTO #2473]

(From OE-Core rev: 4800bed394ebd7fb50552a96d6a5f83d98fe790f)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Marcin Juszkiewicz
fb4a1c88eb libxml: disable lzma
On my system libxml-native got linked with host copy of liblzma and as a
result libxslt-native was not linkable:

| x86_64-linux-libtool: link: gcc -isystem/home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/include -O2 -pipe -Wall -Wl,-rpath-link -Wl,/home/hrw
/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link -Wl,/home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-
linux/lib -Wl,-rpath -Wl,/home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib -Wl,-rpath -Wl,/home/hrw/HDD/devel/canonical/ci-linaro/oecore/buil
d/tmp-eglibc/sysroots/x86_64-linux/lib -Wl,-O1 -o .libs/xsltproc xsltproc.o  -L/home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib -L/home/hrw/
HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/lib ../libxslt/.libs/libxslt.so ../libexslt/.libs/libexslt.so /home/hrw/HDD/devel/canonical/ci-linaro/oecore/
build/tmp-eglibc/work/x86_64-linux/libxslt-native-1.1.26-r8/libxslt-1.1.26/libxslt/.libs/libxslt.so /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux
/usr/lib/libxml2.so -ldl /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/liblzma.so -lrt -lz -lm -pthread -Wl,-rpath -Wl,/home/hrw/HDD/deve
l/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib
| /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/libxml2.so: undefined reference to `lzma_code@XZ_5.0'
| /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/libxml2.so: undefined reference to `lzma_auto_decoder@XZ_5.0'
| /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/libxml2.so: undefined reference to `lzma_end@XZ_5.0'
| /home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/sysroots/x86_64-linux/usr/lib/libxml2.so: undefined reference to `lzma_properties_decode@XZ_5.0'
| collect2: error: ld returned 1 exit status
| make[2]: *** [xsltproc] Error 1
| make[2]: Leaving directory `/home/hrw/HDD/devel/canonical/ci-linaro/oecore/build/tmp-eglibc/work/x86_64-linux/libxslt-native-1.1.26-r8/libxslt-1.1.26/xsltproc'

(From OE-Core rev: d4651d420a8cf359436a9614fbc9b56f901410c7)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Ross Burton
d3343f7307 gconf.bbclass: don't register schemas in the install stage
Previously this was installing schemas in the sysroot, which is wrong for native
packages as nothing should touch the sysroot directly, and even more wrong for
non-native packages as the sysroot is irrelevant.

So, export the environment variable that stops the registration happening at
install time. The postinst script will handle the non-native case, and for the
sysroot I've opened #2648.  This isn't a massive problem as nothing to my
knowledge actually installs schemas to the sysroot.

[YOCTO #2245]

(From OE-Core rev: f9f2e0309a03a4dc9ed5e6cff7db6f29962b7d60)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Saul Wold
6b66a81ef7 native.bbclass: correct PATH to have native-intercept be prepended
This was needed since it was after the sysroots and thus in some cases
the native sysroot chown was being found and used instead of the script
provided by native-intercept/chown.  This was noticed by the non-gplv3
build since it's coreutils depends on coreutils-native.

(From OE-Core rev: bb5095d3f73a00222f50f9dd2cf8dc27cc72b4a2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Zhenhua Luo
8c904eb643 linux-dtb: add multi-dtb build support
including following enhancement:
    * support multi-dtb build
    * skip dtb build and install when KERNEL_DEVICETREE is empty
    * print a warning message when specified dts file is not available

(From OE-Core rev: 66f7921f34dfa8b3c7f8f7184715214164f3f8b0)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Saul Wold
6c7fccbd09 busybox: add correct ALTERNATIVE_TARGET for init.d/syslog
[YOCTO #2535]

(From OE-Core rev: 36ea756883d35f654b102f0cd6bdb2ec284753d0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:44 +01:00
Wade Farnsworth
b8c9a593b5 systemtap: update to version 1.8
Update the systemtap recipes to the recently released 1.8.  Remove a
couple patches whose changes are already present in the new version.

(From OE-Core rev: 1c5a127d075ebf78b70d14e3ca1d0ff640a80cb8)

Signed-off-by: Wade Farnsworth <wade_farnsworth@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Bruce Ashfield
d7be5def1c linux-yocto/3.4: -rt build fixes + configuration audit (part2)
Updating the 3.4 SRCREVs to pickup build fixes for -rt, feature backports,
and a second set of 3.4 configuration audit results.

  d65afd9 profiling: delete reference of obsolete CONFIG_X86_UP_APIC
  9431490 meta: fix net_sched.cfg include
  242149d meta: add CONFIG_VIRTIO_CONSOLE to virtio configuration
  671a822 meta: resync series -> branches
  e044ee1 rt: integrate patch to fix compile fail on certain configs
  edac822 ktest: update with v3.5 content
  182b8da net_sched: Add CODEL queue management algorithm.
  c6adcd9 net_sched: move content out of cgroups dir
  c8edb3e sys940x: branch before merge
  6d06257 ext3: delete duplicate enablement settings.
  6a5a2f8 ipv6: build in the core support vs. it being modular
  e106230 ipv6: make standard and RT share a common config block
  42996fb netfilter: coalesce bridge settings for standard and RT into a common file.
  2b62fea netfilter: coalesce IPv6 settings for standard and RT into a common file.
  d1c38c8 netfilter: coalesce IPv4 settings for standard and RT into a common file.
  b5f9c7c preempt-rt: align with standard kernel type for basic cfg
  ea33e01 cfg: move devtmpfs cfg/scc to cfg/fs dir
  517eda4 preempt-rt: combine two config fragments into one
  171a30a cgroups: re-enable net_traffic config fragment
  86a599d cgroups: delete old blkio patches
  8be6e5b netfilter: add comment documenting external bb use case
  90e06bf x86[_64]: align with korg on HOTPLUG_PCI, HOTPLUG_PCI_PCIE and PCI_MSI
  e103f7c seccomp: backport of BPF syscall filtering from v3.5

[YOCTO #1694]

(From OE-Core rev: 0c522dfabbf6b25488865a7653ea30f994d8177f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Bruce Ashfield
f6bc24334f linux-yocto-rt/3.4: update qemuppc branch
The 3.4 kernel adopted the qemu machine name for the kernel branches, so
the 3.4-rt recipe needs to be updated to reflect that.

(From OE-Core rev: 9cec3f55cd2381c5d69c6f0911bd985311e2baf9)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Bruce Ashfield
3426c8bfa4 linux-yocto/3.4: update to v3.4.3
Bumping the linux-yocto 3.4 SRCREV to import the -stable update
to v3.4.3.

(From OE-Core rev: 529d07cf663e671140ea99877e73db091d5a9734)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Bruce Ashfield
4f9f8c62d5 linux-yocto/3.4: update and categorize configuration options
Updating the 3.4 kernel tree with some initial results of the 3.4
kernel configuration audit and refresh. This is the start of the
3.4 kernel configuration policy update and includes a refresh / update
with respect to kernel.org defaults and new categorization of
configuration fragments.

 0f6975b Sched: Import base BFS-423 for v3.4
 c517c5c cfg: strip off redundant path prefixes
 689fd20 cfg: create timer subdir for HZ and HPET related settings
 5367b46 cfg: add a fs dir for filesystem related configs
 67a784b x86/x86_64: disable MTRR sanitizer
 5da51ea x86/x86_64: consolidate ACPI and EFI settings
 7627402 x86/x86_64: enable CONFIG_NO_HZ=y by default.
 9ca6026 mips: select HZ=100 by default.
 149efc6 arm: select HZ=100 by default.
 29c9fc7 x86/x86_64: use HZ=1000
 700b8b5 x86/x86_64: enable boot mem corruption checks; align with korg defaults
 bbd054d x86: enable CONFIG_HIGHPTE=y by default.
 2569871 x86: align to korg defconfig on IRQ fixups and microcode
 ec5cdc2 x86/x86_64: enable SMP by default
 b9932fa cfg: relocate/add a frag for HPET / RTC enablement
 f9645f5 8250: separate out the 8250 configuration from feature dir
 5e8fea0 bsp: tie cfg/x86.scc into all "KARCH i386" boards
 4020ade cfg: make a common landing ground for ARCH=x86
 e126316 cfg: add basic HZ fragments
 4a8627b cfg: delete instances of any reference to dmesg buf size.
 0794c16 routerstationpro: lib/kobject_uevent: switch to uevent_sock_mutex

[YOCTO #1694]

(From OE-Core rev: 92ff386b950879255802d3a74590fef36d160ba4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Bruce Ashfield
641a7091e4 kern-tools: add buildall and robustness fixes
Updating the kern-tools SRCREV to pickup the following functionality:

 - buildall: provides the ability to build all kernel branches
             without a build system, only a cross compiler and configme
             are required.

 - robustness/cleanups: obselete/unused code removal and general robustness
                        fixes from Paul Gortmaker and Bruce Ashfield

The following kern-tools commits are part of this series:

 b8dfd3d buildall: add whitelist/blacklist support
 0ef039c configme: catch errors found during fragment sanitization
 5b6498c buildall: remove all instances of it using/reading scc files
 2e57550 buildall: support semi seamless restarts
 4b5dd4d kconf_check: simplify cmdline args, dont store data per branch
 58fbb6e configme: relieve it of all knowledge of scc files
 a03e291 configme: strip out alternative meta series logic.
 96d2bcf kgit-init: check for valid branchpoint
 5598db6 buildall: allow a max cap on the number of builds done
 b46abec buildall: add support for randomizing build order
 68a04e9 buildall: dont copy failed build logs into main build dir
 5575d85 buildall: script to independently build all board kernels
 86d6200 configme: delete unused variable
 8d4e29d configme: delete unused KPROFILE setting
 7e15436 configme: ensure we have a valid machine type set
 152b9cb scc: remove depreciated/unused commands
 bb4e96a scc: allow includes within conditional statements
 7da7951 configme: derive path to tools from $0
 152dc45 configme: test for BUILD_DIR != ""
 129f7b0 kgit-scc: add warnings about bad input args.
 e977662 kgit-scc: add text for no arg and invalid arg case.

[YOCTO #843]

(From OE-Core rev: be3cff86d55db6255e036d68e943e527802b4f4c)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:43 +01:00
Lianhao Lu
41ed2e6532 classes/image: Allow openssh empty passwords login.
Allow empty passwords login so that the default root user can login in
through openssh.

(From OE-Core rev: 39ef0a705ca059f9a7c68aa1710c81411fb7c762)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:42 +01:00
Andrea Adami
2fa7732840 mtd-utils: do not stage headers in sysroot
* Headers are included in the package for compatibility
* but have not yet been synched with linux 3.0
* The actual issue was that ubi-user.h in sysroot
* was overwritten by the older version.
* Unfortunately one ioctl was renamed:
* http://lists.infradead.org/pipermail/linux-mtd/
* 2011-March/034419.html
* Note: the recipe will still use its own older header,
* following upstream.

(From OE-Core rev: 2a4ab6fc2ef10202d13568aba5d7633e88aa71e5)

Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:42 +01:00
Saul Wold
ea88444b40 mx: Upgrade to 1.4.6
Remove patch as introspection.m4 is now included with the upstream

(From OE-Core rev: 6c33d56f0f6b472e8ba695d1f2636bc829e56696)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-28 16:26:41 +01:00
Darren Hart
bcc04b2880 tiny-init: Basic init mechanism for poky-tiny
Currently poky-tiny images will boot and run /bin/sh, which results in
error messages to the console about being unable to open the tty and job
control being disabled.

The shell must be session leader to open the tty, and the tty must not
be /dev/console (it should be a vt or a physical tty like ttyS0), the
tty is required for job control (handling signals, etc.).

The goals of poky-tiny are to be an initial starting point from which to
build a distribution that does what you want, and NOTHING more.

This patch results in a system that boots with the virtual filesystems
mounted, the local network interface up, and a shell with job control
running, and a hook (/etc/rc.local) for easy customization. Nothing
else.

Enabling the basic busybox init, including the ability to give the
controlling console to commands starting with a dash in inittab results
in a 5664 byte delta (compared with 2560 bytes for enabling setsid and
cttyhack). Note that the help in busybox suggests the cttyhack may be
more reliable than the init support for handing over the controlling
terminal.

So the difference between using a standard init and just enabling the
two options is about 3k, but enabling setsid and cttyhack may enable
others to things besides what I am looking to do. Enabling init in both
DISTRO_FEATURES and busybox is fairly trivial to do, so I think it's
better to leave that as something to add if needed, rather than
something to remove, as that is more consistent with the goals of
poky-tiny.

Thanks to Tim Bird for his suggestion to include support for rc.local by
default.

(From meta-yocto rev: 5ae60ed46b34cbf4ab17fe7eab3d46e2f78ee7b8)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Tim Bird <tim.bird@am.sony.com>
CC: Thomas Frydrych <tf+lists.yocto@r-finger.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Paul Eggleton <paul.eggleton@linux.intel.com>
CC: Phil Blundell <philb@gnu.org>
CC: Khem Raj <raj.khem@gmail.com>
CC: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:40 +01:00
Darren Hart
20a426b975 busybox: Introduce poky-tiny defconfig override
When building very small systems, it can be useful to spawn a shell from
a simple init script, rather than a full System V Init process. This
requires the shell be the session leader and be able to open the
controlling terminal if it is to have job control.

Create a busybox bbappend in meta-yocto with a poky-tiny/defconfig.
This adds SETSID and CTTYHACK for poky-tiny on top of the oe-core
defconfig.

(From meta-yocto rev: 04842688748f58966be533ed6ebc95a19190a31c)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Tim Bird <tim.bird@am.sony.com>
CC: Thomas Frydrych <tf+lists.yocto@r-finger.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Paul Eggleton <paul.eggleton@linux.intel.com>
CC: Phil Blundell <philb@gnu.org>
CC: Khem Raj <raj.khem@gmail.com>
CC: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:40 +01:00
Tom Zanussi
2a29b7d087 yocto-bsp: update yocto-bsp xorg.conf templates
The non-x86 qemu machines now require an xorg.conf, change the
templates accordingly.

Fixes [YOCTO #2559]

(From meta-yocto rev: d465c09d8df0e6d210ba8cd3c17549a07a8e134d)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:40 +01:00
Tom Zanussi
cad078c4d0 yocto-bsp: update yocto-bsp machine.conf template
Some changes in the ordering assumptions of the qemu include rendered
X inoperative, fix those in the qemu machine template.

Fixes [YOCTO #2559]

(From meta-yocto rev: c3d208267dea6bc0f8be2eb9c63b4125730bb21b)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:40 +01:00
Saul Wold
7c03f78a05 upstream_tracking: Update Upgraded and Manual Checked upstream
Remove VERSION and CHECK_DATE info for packages we can generate
the information for automagically.

Manually checked:
console-tools
sysfsutils
cracklib
less
psmisc
sysstat
glew
libmad
boost
libcheck
libcap
libexif
sqlite3

Upgraded:
sqlite3: Update to 3.7.13
psmisc: Update to 22.19
sysstat: Update to 10.0.5
util-linux: Update to 2.21.2
libxml2: Update to 2.8.0
mx: Upgrade to 1.4.6
libxml-simple-perl: Upgrade to 2.20
cracklib: Upgrade to 2.8.19
resolvconf: Upgrade to 1.67
libtasn1: Upgrade to 2.13
gnutls: Upgrade to 2.12.20
foomatic-filters: Upgrade to 4.0.16
libidn: Upgrade to 1.25
libtiff: Upgrade to 4.0.2

(From meta-yocto rev: 5d2f68863a7684eab4f6d3cb0054cdc26b50dd11)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:40 +01:00
Bruce Ashfield
26e6b0a143 linux-libc-headers-yocto: update to v3.4 and remove unecessary code
Updating the linux-libc-headers-yocto recipe to 3.4. There are blocks
of code and definitions that are handled by the included libc-headers.inc,
so we shouldn't be repeating them in this recipe.

(From meta-yocto rev: ad8456e013907c444d972ad945b8d6e96be1d4f0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:39 +01:00
Bruce Ashfield
58fcd84206 linux-libc-headers-yocto: use kernel-arch to set ARCH
The arch mapping done in kernel-arch should be used instead of
recipe local mapping. Inheriting kernel-arch consolidates the
code and simplifies the libc-header recipe.

(From meta-yocto rev: 4978935df1c59afdaeeb2f975647d4b6c9b7a9c3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:39 +01:00
Scott Rifenbark
93d890fcf0 documentation/yocto-project-qs/yocto-project-qs.xml: Updated Fedora packages
Changed the xsltproc package to libxslt.

Fixes [YOCTO #2652]

Reported-by: Cristian Ciupitu <cristian.ciupitu@yahoo.com>
(From yocto-docs rev: aa187423e7516fea172cce5fbd4432810d9a63e3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:39 +01:00
Scott Rifenbark
123e4c2903 documentation/poky-ref-manual/ref-images.xml: Fixed product name
(From yocto-docs rev: 58a6b4950ba5c8cc3649391f47f08513399556f2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:39 +01:00
Scott Rifenbark
a9f9eb27d3 documentation: Re-defined "Build Appliance" to mean the file
Previous renditions of the term "Build Appliance" referred to the
VMware system.  However, it was determined that the term
"Build Appliance" should really refer to the actual image that
can be booted and run on the VMware applications.  I have updated
the areas affected by this change.  The change assumes the name of
the built or downloaded file you boot will be named
"build-appliance-image."

Fixes [YOCTO_#2656]

(From yocto-docs rev: 6b27b7d92b9722351eb43a7c2a341ce3af056dba)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-26 15:34:39 +01:00
Richard Purdie
8ce8d25bcd sanity.bbclass: Increase LAYER_CONF_VERSION to match bblayers change
(From OE-Core rev: f4b5afe46ff018570c1949653eb6995428827f6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 17:20:54 +01:00
Richard Purdie
5e3a61b40b bblayers.conf.sample: Fix empty BBPATH entry warnings
Many people are seeing issues from the empty path warnings from BBPATH.
The empty path entry corresponding to the current working directory is a
problem since if cwd changes, so does BBPATH and build reproducibility.

Simply removing the empty element causes problems since the build
directory then isn't listed in BBPATH which means local.conf isn't found
and this gives an extremely confusing error message about bbappends
being unsatisfied.

The build directory in bitbake terms is TOPDIR. The correct way to fix
things is to add in TOPDIR into bblayers.conf itself. This means the
layers can happily append/prepend to BBPATH at will as its no longer
empty hence neatly solving all the various problems. Since the file has
changed, the version is also changed.

(From meta-yocto rev: 7bbbedf64b0820cacffe723789486d3081894827)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
4d7636322c tcmode-default: Update gzip PREFERRED_VERSION to 1.15
(From OE-Core rev: 28d5fec9a68411343fd304be055f55974c8c5cae)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
67ee10844a libtiff: Upgrade to 4.0.2
(From OE-Core rev: 2ee374c5c1dfef2c2a480a11b4ae81802e447e7d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
cf42eb9168 libidn: Upgrade to 1.25
(From OE-Core rev: 059460f1d7dc4f556a904658b4f26c2e7d684210)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
e178642399 foomatic-filters: Upgrade to 4.0.16
(From OE-Core rev: 3d2a5cb06f54d31fdcab640a9b59d7398f63f70a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
4982a72d2a gnutls: Upgrade to 2.12.20
(From OE-Core rev: 49ee683e5d3168e2e61873cc3eff2ede59ed2450)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
64af36de3b libtasn1: Upgrade to 2.13
(From OE-Core rev: c3af98c939c6c126cd0b14075868defcf0e0b5fb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
d51550241e resolvconf: Upgrade to 1.67
(From OE-Core rev: 1d56ae5b923346bd4f4c6e178e3429cd4e5ba8d0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:55 +01:00
Saul Wold
2a0e30f199 cracklib: Upgrade to 2.8.19
(From OE-Core rev: 33e295a017ff04a746e051f778eeee3556a2c8f4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
f679d152df libxml-simple-perl: Upgrade to 2.20
Change license file to LICENSE, which now contails both
Artistic-1.0 and GPL-1.0 License text

(From OE-Core rev: b92478f8067e1b69bbe7338e3c0a3b082c6df46d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
2ba070d906 libxml2: Update to 2.8.0
removed 2 patches that are now fixed upstream
updated hash.c LIC_FILES_CHKSUM due to updating the date to 2012

(From OE-Core rev: b13b2894217ba085931b2a0410b7715d7fa13868)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
953d7e2126 util-linux: Update to 2.21.2
Remove patch that was corrected upstream

(From OE-Core rev: 6cbcee1a7fe52437e58045d4acd169ea214b6cb3)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
e86032f32f sysstat: Update to 10.0.5
(From OE-Core rev: 819bdf2add2929d19cdb6c69f492c7f0163ae0d3)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
b2a5587cdd psmisc: Update to 22.19
(From OE-Core rev: 5e14635427494092db9e89344e564a8fa2d90b13)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
a576f1a05c sqlite3: Update to 3.7.13
(From OE-Core rev: 935a784a52d5eef73c55a8ba624ed556f7288760)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:54 +01:00
Saul Wold
f80dfacab0 distrodata: Fix missed VARIABLE name change
(From OE-Core rev: f0eba1569a16553d784f8234e5ce577ff2c66c38)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
06fe8a9a4e qemu.inc: Fix packageconfig options
--{en|dis}able-gl-accel is spcefic to gl
patches in 0.15.1 which may not be available
for other qemu's so if someone chooses to remove
gl from PACKAGECONFIG then we dont explicitly
use the --disable-gl-accel option since this
wont be recognised by configure.

(From OE-Core rev: 68a170c9b69fc70b22167f344e6f72f028938066)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
bd006a9671 uclibc: Fix packaging to match the new package order
This gets rid of some phony rdepends on uclibc-dev
being reported

(From OE-Core rev: 4eab0ed5dd23c2093992854c19ad5ab8c862746e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Paul Gortmaker
6e9606ebc3 linux-firmware: update to main repo on kernel.org
This is now the authoratative repository, taking updates.
The latest has a couple updated license files, vs. the previous
srcrev that was used.

(From OE-Core rev: b9d42ec94dfcbe92ce2a857045a0e3678c05c26c)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Scott Garman
a01b7ce6cc sudo: upgrade to 1.8.5p2
LIC_FILES_CHKSUM updated due to trivial copyright date change.

(From OE-Core rev: 373e4fef7b4687a875a24c2c51a89fe2f251a4a9)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Scott Garman
529d87ec2b gzip: upgrade to 1.5
LIC_FILES_CHKSUM updated due to trivial copyright date change.

Use new update-alternatives syntax.

(From OE-Core rev: 570788854be1372b095d5dd1ad0549e26c8e8992)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
08e15c2599 gcc: Remove csl gcc recipes
sourcery toolchain is available as external pluggable toolchain
if needed.

(From OE-Core rev: 7d0c7a759c29669b2b5828fd75837926506acd87)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
92e20d13c8 eglibc-2.13: Retire into toolchain layer
If anyone wants it add toolchain-layer from meta-openembedded
repo to your setup

(From OE-Core rev: 505d82df47628b72e2af6f73e7c33fbb9812fdd1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:53 +01:00
Khem Raj
2ef14dff79 gcc-4.6: Retire into toochain-layer
If anyone wants it add toolchain-layer from meta-openembedded
repo to your setup

(From OE-Core rev: a78260d8d041e606ce4d10c0bb52f196dd27832e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Valentin Popa
aecbfbc0ab gpgme: updated to 1.3.2
Licence update: the same licence and new copyright years added

(From OE-Core rev: 0328d64cdf1daf2deee0ddc2a3aa3bbc8b812096)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Kang Kai
0abfb690a8 runqemu-internal: qemu fails to run on ext2 image
[Yocto 2579]

When set DISTRO to poky-tiny, only ext2 image is created. But
runqemu-internal doesn't set QEMUOPTIONS for ext2 image that make qemu
fail to boot.

Fix it for qemux86 arch since poky-tiny can only build for qemux86 now.

(From OE-Core rev: 5f2f951bdcb6f29e3ece39250715293d92db5f69)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Valentin Popa
7874440990 xev: updated to 1.2.0
tested on sato

(From OE-Core rev: e7b3040f0a0f5356949e6a51d9d9d1c8dcf1f3c9)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Darren Hart
288dcf4238 cml1.bbclass: Only delay exit if the command fails
Rather than pause for 5 seconds, test the return code of the command and
require user input before exiting on failure. This avoids pausing after
successful command execution as well as possibly not waiting long enough
if the user happens to be doing something else for 5 seconds.

(From OE-Core rev: d99cc2b70bbda9a0cbc09a4430b871c287113041)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 16:35:52 +01:00
Scott Rifenbark
3257a7ce19 documentation/adt-manual/adt-eclipse.xml: Updated YP settings dialogue
The dialogue for the Yocto Project Settings is now "Yocto Project
Settings" instead of "Project Yocto Settings."  Updated the manual.

(From yocto-docs rev: 980b4d22dab4ac681c6dc1a85e78306213799062)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:18 +01:00
Scott Rifenbark
13ae887e4d documentation/adt-manual/adt-eclipse.xml: Updated Yocto ADT Project item
The selection "Yocto ADT Project" has changed to "Yocto Project ADT
Project."

(From yocto-docs rev: aa61cd4f93e08373ef430926c008da9f28f72ff8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Scott Rifenbark
9234b282aa documentation/adt-manual/adt-prepare.xml: Re-worded toolchain generation
The section that describes how to generate the cross-toolchain into the
Yocto build tree erroneously referred to this process as installing the
toolchain.  Furthermore, it actually mentioned the creation of a
toolchain tarball, which is wrong.  I updated the section to more properly
refer to this procedure as generating the toolchain.  I also removed the
bit about the tarball creation.

(From yocto-docs rev: 5ae8faa651ed6bf22c5475a4eacb5c758c62cea1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Scott Rifenbark
73411842a6 documentation/adt-manual/adt-eclipse.xml: Updated Yocto Project ADT item
The item to click in the step to configure the Eclipse Yocto Plug-in
changed from "Yocto ADT" to "Yocto Project ADT."

(From yocto-docs rev: fc860fe497be6da189e8e48f9546b105b9ff0075)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Scott Rifenbark
c45ad31753 documentation/adt-manual/adt-prepare.xml: grammar fix.
(From yocto-docs rev: e698503896615cf08366b004a66b4562f304e3b5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Cristian Iorga
2e4bd35df8 bitbake: Fix for Hob bug #2323
Removed unnecessary button from Recipes screen and
replaced the button that diplayed packages size and total image size
from Packages screen with a label.

(Bitbake rev: e6ff1d4bab43fdcd8af1230f1d54615f53c1978e)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Kang Kai
b224ed2065 bitbake: hig.py: use module tempfile to create temp file
I am sorry that use os.tmpname which casue a security warning.
Follow Darren's suggestion to use tempfile.NamedTemporaryFile instead.

(Bitbake rev: fe514a130579302312f68821536d108c8ceb4363)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Richard Purdie
72f04e760d bitbake: fetch2: Ensure star character doesn't end up in mirror tarball names
If '*' does end up in mirror urls accidently, some strange things
can break since supports_checksum() looks for this, ud.localpath can
then get ignored and this can lead to empty directories being downloaded
"successfully". '*' is a special case for file urls only at this point
so remove any entries that accidentlly make it in through url mapping.

(Bitbake rev: 1369bec2404d942acc3618a8d005ec6868dcfd41)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:17 +01:00
Paul Eggleton
bd3fd17fc5 bitbake: lib/bb/utils.py: remove unnecessary preserved variables
_ and LANG no longer need to be preserved from the external environment.
The value of _ changes between non-pseudo-wrapped and pseudo-wrapped
invocations (e.g. between "bitbake -p" and "bitbake target") and this
will currently trigger a full reparse in the absence of a whitelist
entry in BB_HASHCONFIG_WHITELIST, which is not ideal.

LANG used to be preserved in order to ensure the C locale was being
used for tools invoked by bitbake, however we now set LC_ALL in
bitbake.conf to take care of this.

Second part of the fix for [YOCTO #2600].

Acked-by: Jason Wessel <jason.wessel@windriver.com>
(Bitbake rev: 1c531dff2fb055ecab2d462027eecec3fabc2a44)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
9334b0d002 bitbake: fetch2: Add new mirror syntax to simplify mirror specifications
When writing mirror specifications, the current regexp syntax can be awkward
and hard to get it to do what you want. For example, extracting the 'basename'
of a repository:

PREMIRRORS = "git://.*/([^/]+/)*([^/]*) git://somewhere.org/somedir/\\2;protocol=file"

can now become:

PREMIRRORS = "git://.*/.* git://somewhere.org/somedir/BASENAME;protocol=file"

which is much clearer. A MIRRORNAME substitution is also added which contains
an encoded form of both host and path. One of the problems with the existing
regexp syntax is you couldn't access HOST information from PATH and vice-versa
which is an issue this patch also addresses.

Tests for the new syntax are also added.

(Bitbake rev: c6b1acbad7b3d2698530eb8b5249adb4ab95da21)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
e63dada732 bitbake: fetch2: Handle errors orruring when building mirror urls
When we build the mirror urls, its possible an error will occur. If it
does, it should just mean we don't attempt this mirror url. The current
code actually aborts *all* the mirrors, not just the failed url.

This patch catches and logs the exception allowing things to continue.

(Bitbake rev: c35cbd1a1403865cf4f59ec88e1881669868103c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
a87aa7b7af bitbake: process: Improve _logged_communicate buffering
There are two problems with the _logged_communicate that are both
caused as a result of buffering I/O issues:

1) log truncation when python fails

2) While a bitbake task is running it is impossible to see what is
   going on if it is only writing a small incremental log that is
   smaller than the buffer, or you get only a partial log, up until
   the task exists.  It is worse in the case that stderr and stdout
   are separate file handles, because previous code blocks on the read
   of stdout and then stderr, serially.

The right approach is simply to use select() to determine if there is
data available and also flush the log before exiting.

This is based on a patch from Jason Wessel <jason.wessel@windriver.com>
with some changes to flush upon exit, abstract the non blocking file
descriptor setup and drop the buffer size parameter.

(Bitbake rev: 361fb71e907aa84c28ecec79fefc6ca39c39172f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
15a31a93ba bitbake: taskdata.py: Add support for rdepends task flag
Currently its not possible to add arbitrary RDEPENDS to a specific task.
This can be useful and this patch adds functionality equivalent to the
'depends' task flag.

(Bitbake rev: db65080a6199baecc5c422294a4c4a9fd12dc29e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
be98c1fc29 bitbake: utils.py: Add function to set nonblocking operation on a file descriptor
(Bitbake rev: ab6d71ebfcfb7bedc064b25f84647c8815096e5a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Richard Purdie
e05b423cc6 bitbake: git.py: Remove -l option, its not necessary
If -l is specified and the source and destination are not on a common
filesystem an error occurs. The -l option is however the default for
git for local paths which the fetcher already now ensures in the
file:// case.

We can therefore safely drop the -l option.

(Bitbake rev: 3aeb268b2aaab4bb8b1cfff1450e0b76aa8ce855)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Paul Eggleton
df929f4d37 bitbake: lib/bb/siggen.py: log when tainting the signature of a task
Log a note when applying a taint to a task signature (e.g. when using
the -f or -C command line options) so that the user knows this has been
done.

(Bitbake rev: 0fd960fdea83874eedb541cbc2920257e0f3fb81)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:16 +01:00
Paul Eggleton
25441f47ca bitbake: bitbake: tweak help text for -C slightly
What is specified is a command (or "cmd" as in the help text for -f)
rather than a task - i.e. you specify compile, not do_compile, so change
the sentence to reflect that and reorder it slightly so it makes sense.

(Bitbake rev: 9ab269410ef5cd4753fe11ec74759f421685bb7b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:15 +01:00
Richard Purdie
eaf54b8dbf bitbake.conf/abi_version.conf: Update to use BasicHash signature generator
This switches to use the hash based signature generatior and update
layout_abi to match stamp file layout changes.

Angstrom and Poky did this a while ago. This brings the OE-Core defaults
into line with what is the best common practise at this point. Its been
discussed on the mailing lists and by the TSC at length, this just completes
the transition.

(From OE-Core rev: 4199efed48005a62267fa3374c33b13627d85f44)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:15 +01:00
Richard Purdie
8b92304d88 layer.conf/bblayers.conf.sample: Fix empty BBPATH entry warnings
(From OE-Core rev: 3d379929d119ee59b233116c5392441c625355f2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-25 14:57:15 +01:00
Bogdan Marinescu
b876f42821 guile: fix compilation on MIPS/PPC
This commit fixes the guile compilation segfault on MIPS/PPC.
Tested by compiling guile with MACHINE=qemumips.

[Yocto #2478]

(From OE-Core rev: e2cc4a44d510e0d473d15f207c1c886db6a5ccf7)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 14:42:25 +01:00
Ross Burton
6d0b60a15d sato-icon-theme: inherit the GNOME icon theme (Yocto #2594)
Many apps want to use the full GNOME icon theme and install it, but if our theme
doesn't inherit it the the icons are not available.

(From OE-Core rev: bece29110ead367fe501641ec83251e5f87f2430)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 14:42:25 +01:00
Saul Wold
d1e5ce9781 maintainers: Update for Transition
(From meta-yocto rev: 29758893de8fb139f412272874db960c8728ad11)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 14:41:46 +01:00
Jason Wessel
fa7c2b0743 bitbake: fetch2/git.py: Optimize clone fall back when it is local
A file:// url should use "clone -l" to greatly speed
up the clone in the case of a kernel when it is local.

(Bitbake rev: 2bab2cc3ffe67ee2a308074a6e4c2c7be5636d2f)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:21:23 +01:00
Kang Kai
dee397af90 bitbake: ui/depexp.py: use the new progressbar in Hob
[Yocto 2149]

Use the new progressbar in Hob, so that we can reduce the maintenance
burden of the multiple GUIs.

(Bitbake rev: 6c0da26adbdcaa0c56737bacddb61678a9095e32)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:21:23 +01:00
Richard Purdie
df0059b465 bitbake: fetch2: Update replace_uri to handle uri types explicitly
For mirror mapping, we never use regexps for the type component of
the url. Doing so causes various slightly bizarre behaviour such as
https:// urls being translated to files:// urls which we have no handler
for. This patch forces the type matches to be direct, not regexp based
and gives the expected bahvriour.

(From Poky rev: 695d8aca0999d2d61970b990e83c3132ba6f12cb)

(Bitbake rev: 604df1b25cf114e083f52917df2df64e01279c25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:34 +01:00
Richard Purdie
dd249ebe67 bitbake: test/fetch: Add a couple of extra test cases
(From Poky rev: 01d8220ef8580ca980a14c05d500765ca2d37e2c)

(Bitbake rev: 0d0a12fa0e4dabf01c1c24370aff54d26690a6dc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:34 +01:00
Richard Purdie
ad8d1d3a15 bitbake: test/fetch: Add in unit tests for uri_replace() and git premirrors
(From Poky rev: 4be81b5cadb7813d37152411c23764501f5869d3)

(Bitbake rev: f91b4c2e3a2b3029d653a18de7ae2b0ecd7e2536)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:34 +01:00
Richard Purdie
a627fe5afe bitbake: fetch2: uri_replace() only consider ud.localpath where its a file
Using ud.localpath as a basename when it points at a directory causes
problems. The supports_checksum() method gives a good indication of whether
ud.localpath can be used in the way we need.

(From Poky rev: 933ec8a44634e33f92f6f76de3a34094c3d63aa6)

(Bitbake rev: dcd79ae20ab2c72c3312b2251c2b6dc4cabe988e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
548465141a bitbake: fetch2: uri_replace() improve mirrortarball handling
We only consider mirror tarballs when the source and target urls are of
differing types. We also should clear all url paramters when handling
mirror tarballs.

(From Poky rev: da140b8b0b3dda5429f9eee68829ef5247cdfe12)

(Bitbake rev: 7619dcad29a6c2405b15a8fbadfa11e81b399ae1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
83bbfa07ab bitbake: fetch2: uri_replace() remove what amounts to a null operation and add some comments
(From Poky rev: 6d67200d052ba72258f5a0a178542ef99500a9cc)

(Bitbake rev: e67af4d12f390ce6083965509ca9ea85a76dc351)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
196982a803 bitbake: fetch2: Add parameter handling to uri_replace()
This means that parameters in the source expression are used as part of the
match. Parameters in the destination are used explicitly in the final
url.

(From Poky rev: c465cb0c5c927dd41d96ad6d6fa1566349574bb7)

(Bitbake rev: 3c468ac3ed6d045561afce19b85ae9dd18d87cea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
bf8501897b bitbake: fetch2: Remove basestring test and simplify uri_replace
(From Poky rev: d5657883d34bfef6beec594ac8d799f617b6b3ad)

(Bitbake rev: 84ffc261f376429b3a6b5d7bf2f6217cd10ca12a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
a7d5c57006 bitbake: fetch2: Simplify some looping constructs in uri_replace()
(From Poky rev: c6bd25150a842a530f958d7233b15ae50d42c6c8)

(Bitbake rev: 075296f3e5e5e3662290a888a6ba11229a36b95a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
20649e95ed bitbake: fetch2: Improve mirror looping to consider more cases
Currently we only consider one pass through the mirror list. This doesn't
catch cases where for example you might want to setup a mirror of a mirror
and allow multiple redirection. There is no reason we can't support this
and the patch loops through the list recursively now.

As a safeguard, it will stop if any duplicate urls are found, hence
avoiding circular dependency looping.

(From Poky rev: 0ec0a4412865e54495c07beea1ced8355da58073)

(Bitbake rev: e585730e931e6abdb15ba8a3849c5fd22845b891)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
3f441765a7 bitbake: fetch2: Explicitly check for mirror tarballs in mirror handling code
With support for things like git:// -> git:// urls, we need to be
more explicity about the mirrortarball check since we need to fall
through to the following code in other cases.

(From Poky rev: 28e858cd6f7509468ef3e527a86820b9e06044db)

(Bitbake rev: a2459f5ca2f517964287f9a7c666a6856434e631)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:33 +01:00
Richard Purdie
f3fb4dc40f bitbake: fetch2: Split try_mirrors into two parts
There are no functionality changes in this change

(From Poky rev: d222ebb7c75d74fde4fd04ea6feb27e10a862bae)

(Bitbake rev: db62e109cc36380ff8b8918628c9dea14ac9afbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Richard Purdie
927565c3b1 bitbake: fetch2: Ensure when downloading we are consistently in the same directory
This assists with build reproducuility. It also avoids errors if cwd
happens not to exist when we call into the fetcher. That situation
would be unusual but I hit it with the unit tests.

(From Poky rev: 86517af9e066c2da1d580fa66b7c7f0340f3403e)

(Bitbake rev: b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Richard Purdie
3c8a561a90 bitbake: fetch2: Only cache data if fn is set, its pointless caching it against a None value
(From Poky rev: c2df30bf6d1f8c263a38c45866936c1bf496ece5)

(Bitbake rev: f4b59cc6e1c3ddc168a1678ce39ff402ea1ff4cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Richard Purdie
4a0dc38da6 bitbake: fetch2: Fix error handling in uri_replace()
(From Poky rev: 1bfba28a583cb167f60e05ecdf34d0786dc1eec5)

(Bitbake rev: aa7467a764ddcbc7d65af99e88cf093b6ec6d24e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Richard Purdie
85dc355580 bitbake: fetch2/__init__: Make it clearer when uri_replace doesn't return a match
(From Poky rev: dc9976331c5cbb0983adb54f6deb97b9203bacbc)

(Bitbake rev: eb96609864dec95a516e6e687dd6a2f31d523acf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Paul Eggleton
c072fa8400 bitbake: bitbake: add -C option to invalidate a task and rebuild the target
This new command line option forces the specified task and all dependent
tasks up to the default task to re-run. This means that the following
single step:

bitbake -C compile somerecipe

is equivalent to the following two steps (with the recent change to -f):

bitbake -c compile -f somerecipe
bitbake somerecipe

Note that to work this option needs full hashing enabled (i.e.
BB_SIGNATURE_HANDLER must be set to a signature handler that inherits
from BasicHash). If this is not the case, -C effectively does nothing.

Based on a previous implementation of this option by Jason Wessel
<jason.wessel@windriver.com>.

Implements [YOCTO #2615].

(Bitbake rev: 2530e0faada5775897cfd1b93aba6925826dca73)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Paul Eggleton
5bd11a9bf3 bitbake: bitbake: ensure -f causes dependent tasks to be re-run
If -f is specified, force dependent tasks to be re-run next time. This
works by changing the force behaviour so that instead of deleting the
task's stamp, we write a "taint" file into the stamps directory, which
will alter the taskhash randomly and thus trigger the task to re-run
next time we evaluate whether or not that should be done as well as
influencing the taskhashes of any dependent tasks so that they are
similarly re-triggered. As a bonus because we write this file as
<stamp file name>.taskname.taint, the existing code which deletes the
stamp files in OE's do_clean will already handle removing it.

This means you can now do the following:

bitbake somepackage
[ change the source code in the package's WORKDIR ]
bitbake -c compile -f somepackage
bitbake somepackage

and the result will be that all of the tasks that depend on do_compile
(do_install, do_package, etc.) will be re-run in the last step.

Note that to operate in the manner described above you need full hashing
enabled (i.e. BB_SIGNATURE_HANDLER must be set to a signature handler
that inherits from BasicHash). If this is not the case, -f will just
delete the stamp for the specified task as it did before.

This fix is required for [YOCTO #2615] and [YOCTO #2256].

(Bitbake rev: f7b55a94226f9acd985f87946e26d01bd86a35bb)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:10:32 +01:00
Scott Rifenbark
abc0bef595 documentation/adt-manual/adt-prepare.xml: Added text about host gcc
It is important that the environment uses a host gcc when running the
adt installer.  I put some text in noting that.

(From yocto-docs rev: 7f63662913d6d79843e1bdcadc49bb120bb72688)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:07 +01:00
Robert P. J. Day
f3e184af04 documentation/dev-manual/dev-manual-newbie.xml: Typos fixed.
Typoes/fixes to chapter 3.

(From yocto-docs rev: 5cf906df6ae8a729a8f10510a89e570ed9d900e7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:07 +01:00
Robert P. J. Day
a291d007b6 documenation//dev-manual: Typos fixed.
Some minor typoes in first couple chapters

(From yocto-docs rev: 36618cc6a261a994b00c5c524c76cbf3952a2eae)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:07 +01:00
Scott Rifenbark
356ac1f9d7 documentation/poky-ref-manual/development.xml: Removed dbg and profile
The sections describing how to debug remotely and how to use the
oprifiler have been deleted.  these sections are now in the YP
Development Manual.

(From yocto-docs rev: 5f277a38a7afe1cc06eafe2ef1b07cc24c8ec546)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:07 +01:00
Scott Rifenbark
b2f4ddd6b4 documentation/dev-manual/dev-manual-common-tasks.xml: Moved dbg and profile
Moved the sections on remote debugging and using the profile out of
the YP Reference Manual and into the YP Development Manual.  These are
now two sections in the "Common Tasks" chapter.

(From yocto-docs rev: 42640bf69aa05c56eb112c10b6d7b96069173785)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:06 +01:00
Scott Rifenbark
6b8922dbcf documentation/poky-ref-manual/development.xml: changed image name.
(From yocto-docs rev: f82f9e50933bd364c6f118a60d26234ff8f1bf8d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:06 +01:00
Valentin Popa
5f18bc5126 evolution-data-server: updated to ver. 2.30_3
Tested using Tasks & Contacts

(From OE-Core rev: d5afa3dad51c7ab153c159d1dedfdad7a225f8fd)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:06 +01:00
Xin Ouyang
d4beac1be2 xinetd: Add default options.
Currently, xinetd cannot start if no service enabled.

 # /etc/init.d/xinetd start
 # ps aux | grep xinetd
 # cat /var/log/syslog
 xinetd[862]: 862 {init_services} no services. Exiting...

So add -stayalive option by default, as most distos do.

(From OE-Core rev: 53b6da085bfa78885f68b5d7db40d8c4e3f2f5bb)

Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:06 +01:00
Robert P. J. Day
a0ad64d3c7 Simplify "SRC_URI_append +=" to "SRC_URI_append ="
(From OE-Core rev: 17084891c0aa9114805f022ea185108e834e4fcd)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
086a70567b connman-gnome: upgrade to 0.7, which works with connman 1.0
(From OE-Core rev: 8206c326fc8c797f734adbb181bf4e793e98b020)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
6afc23113f connman-gnome: clean up runtime dependencies
There is no need to recommend Python as it isn't used, and specifying the connman plugins should be done by the image.

Add a dependency on connman itself as otherwise connman-gnome doesn't do much.

(From OE-Core rev: f399346a1806385458536a8401a48fbeeaf64d24)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
1747ed441b connman-gnome: fix build depends (Yocto #2556)
(From OE-Core rev: 78e0663dd420782836a137ced931190972ed2c23)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
84e5d58122 connman: upgrade to 1.0
Drop patches that have been merged upstream, or are not relevant any more.

License checksums changed because the (C) years were updated.

(From OE-Core rev: d7e7d38a2beded17937e330adf4edb89807bfdd4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
36f08d973f connman: add compat RPROVIDES for older packaging
wifi, bluetooth and 3g used to be plugins so were packaged separately, but not
anymore.

(From OE-Core rev: be2ce372863ef56a33ad4e4d4ddeec22873a6b8b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:05 +01:00
Ross Burton
89eebaa03a connman: rationalise configure options
dnsproxy and ntpd don't exist anymore, and the client is almost entirely useless.

(From OE-Core rev: ed328572c7c286ecc2b27bb89eb8d795eda9bb8c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Ross Burton
1d86b2c363 gitignore: ignore build*/ entirely
Previously parts of build*/ were ignored, but unless you committed the top-level
build/ in a branch this didn't achieve anything.  Change that to ignore all
top-level build* directories.

(From OE-Core rev: 6e3353872d377dfe2689832b3f04f18c2366bc8c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Bruce Ashfield
984b0dc8d4 linux-libc-headers: use kernel-arch to set ARCH
linux-libc-headers no longer needs its own ARCH mapping code,
since the mapping done in kernel-arch works and we can
consolidate all arch mapping code in a single place.

(From OE-Core rev: 7d73cfb2ae24ad2b694244c56dd4648ba7e2df11)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
c0b54eb457 gcc: Fix a case of sysroot with trailing / and gxx-include-dir leading slash
when using --with-sysroot=/ and --with-gxx-headers=/usr/include/c++
configure eats up one leading / from gxx include dir
fixed thusly

(From OE-Core rev: 51064de5fb92c53c99b21487c0ebcafeaf3cc3ad)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
7fb442a320 gcc-4.7: Update to tip of gcc-4_7-branch since 4.7.1 has been out
(From OE-Core rev: 7986e424995a4119b45a09767dc5100a5cdb5161)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
50bc31150b binutils: Enable plugins by default
Plugins work well in 2.22+ so lets enable them
helps with lto

(From OE-Core rev: 81ecc9d468c36b36c4b2ccc4ab5f366611a8fa46)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
e146139b42 binutils: Add with-sysroot to target binutils
Also rearrange the recipes to have common bits
in inc files and not include the target bb file
everywhere. This lets us add specific options
to specific recipes particularly target recipe in
this case

(From OE-Core rev: f4ed063e32f064e996a4c29760fa4ac49f1ed73c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Khem Raj
be9756ae12 uclibc-git: Upgrade to latest tip of master
(From OE-Core rev: 3c516e1032c86156dc09ffa509977fe197470090)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Bruce Ashfield
d227070192 recipes-kernel: remove linux-tools.inc
perf has been moved to a standalone package, making linux-tools.inc
unecessary. It can now be removed and recipes that included it
updated.

(From OE-Core rev: b485f3e0e55ad62079ed0913970ff0620f4808ea)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Liang Li
6b9c19140c recipes-kernel: make perf a standalone package
perf has been coupled to the kernel packages via kernel.bbclass.
While maintaining the build of perf out of the kernel source tree
is desired the package coupling has proved to be awkward in
several situations such as:

  - when a kernel recipe doesn't want to build/provide perf
  - when licensing of dependencies would prohibit perf and hence
    the kernel from being built.

To solve some of these problems, this recipe is the extraction of
the linux-tools.inc provided perf compilation into a standalone
perf recipe that builds out of the kernel source, but is otherwise
independent.

No new functionality is provided above what the linux-tools.inc
variant provided, but the separate recipe provides baseline for
adding new functionality.

(From OE-Core rev: ab883d0c1a05bd99e97e5d71bc7bed05cb1ae8c8)

Signed-off-by: Liang Li <liang.li@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:04 +01:00
Bruce Ashfield
a5b568eb37 kernel: save $kerndir/tools and $kerndir/lib from pruning
The kernel source tree in the sysroot has all unecessary source
code removed. The existing use case is to support module building
out of the sysroot, but as more toolsa are moved into the kernel
tree itself there are new use cases for the kernel sysroot source.

To avoid putting dependencies on the kernel, and to be able to
individually build and package these tools out of the source tree,
we can save $kerndir/tools and $kernddir/lib from being removed.
This enables tools like perf to be built our of the kernel source
in the sysroot, without significantly increasing the amount of
source in the sysroot.

(From OE-Core rev: e6cadd9074b18798f2df7c3f89dc35a98c29b6e5)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Robert Yang
9b8daa906f package_rpm.bbclass: fix incremental rpm generation
Fixes:
* Remove the "echo '# Remove manifest padding....' > remove.manifest,
  The remove.manifest would be used via "rpm -e `remove.manifest`",
  there would be error since there is no pkg called: Remove, manifest or
  padding

* The incremental.manifest can't be null when used by rpm, so check it
  before use.

* The rpm needs:
	--root "${target_rootfs}/install"
  when use:
	-D "_dbpath ${target_rootfs}/install"
  Otherwise it would use the ${target_rootfs} as the root, and use the
  ${target_rootfs}/var/lib/rpm as the dbpath, this is OK in a fresh
  installation, but there would be errors when increment rpm generation.

[YOCTO #2617]

(From OE-Core rev: 7d702c637b84c028c9763246b3ac355d10083ea3)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Martin Jansa
97dd7e14c6 opkg-utils: bump SRCREV
* there are 2 small fixes
  python-2.6 compatibility
  missing C option for opkg-build

(From OE-Core rev: f7caea892cf66236bae854dcbaffec9d4a2d09a2)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Saul Wold
4abc933287 gettext 0.16.1: Update FILES for post PACKAGE reoder
(From OE-Core rev: 840153f86cf7a6b5f4a8a5164fa97c789678c71f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Saul Wold
d6259dcda1 libpcre: clean up FILE after PACKAGE reorder
(From OE-Core rev: 88588d190c8f2a9bc30d06f593089ff20fcc4348)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Paul Eggleton
d0c615e51e conf/bitbake.conf: fix reparsing after -p is used
The bitbake wrapper script is set up such that the -p (--parse-only)
command line option is not executed under pseudo, and it sets the
PSEUDO_BUILD variable to indicate whether or not pseudo is being used.
Since PSEUDO_BUILD is allowed through into the environment via
BB_ENV_EXTRAWHITE it influences the data hash and thus if you run
"bitbake -p" and then run bitbake again to actually build something, the
change to PSEUDO_BUILD causes the cache from the -p execution not to be
used. This is fixed simply by adding PSEUDO_BUILD to
BB_HASHCONFIG_WHITELIST in bitbake.conf so that it doesn't influence the
data hash.

Fixes [YOCTO #2600].

(From OE-Core rev: 1e50225df2d6b5f10c5648703282235a11b1efb3)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:03 +01:00
Paul Eggleton
66123b9255 classes/cml1: ensure -c menuconfig forces a rebuild next time
Ensure the following results in the kernel being rebuilt, repackaged and
re-deployed in the final step:

bitbake virtual/kernel
bitbake -c menuconfig virtual/kernel
[ make changes to the kernel configuration and save ]
bitbake virtual/kernel

If there are no changes to the configuration saved, the rebuild will not
be triggered.

Note that this relies on a function recently added to BitBake and
requires full hashing (i.e. BB_SIGNATURE_HANDLER must be set to a
signature handler that inherits from BasicHash) - if this is not the
case or the function is not available in the version of BitBake being
used this change will do nothing.

Fixes [YOCTO #2256].

(From OE-Core rev: 9bf6b60e1599cf5dd87089d42584583cdfd6807a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Martin Jansa
e56205257b openssl: add deprecated and unmaintained find.pl from perl-5.14 to fix perlpath.pl
* openembedded-core/meta/recipes-connectivity/openssl/openssl.inc
*
* is using perlpath.pl:
*
*   do_configure () {
*           cd util
*           perl perlpath.pl ${STAGING_BINDIR_NATIVE}
*   ...
*
* and perlpath.pl is using find.pl:
* openssl-1.0.0i/util/perlpath.pl:
*   #!/usr/local/bin/perl
*   #
*   # modify the '#!/usr/local/bin/perl'
*   # line in all scripts that rely on perl.
*   #
*
*   require "find.pl";
*   ...
*
* which was removed in perl-5.16.0 and marked as deprecated and
* unmaintained in 5.14 and older:
* /tmp/usr/lib/perl5/5.14.2/find.pl:
*   warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl
*   core distribution in the next major release. Please install it from the
*   CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]},
*   line @{[(caller)[2]]}.\n";
*
*   # This library is deprecated and unmaintained. It is included for
*   # compatibility with Perl 4 scripts which may use it, but it will be
*   # removed in a future version of Perl. Please use the File::Find module
*   # instead.

(From OE-Core rev: c09bf5d177a7ecd2045ef7e13fff4528137a9775)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Martin Jansa
262e5ac4bc kernel.bbclass: pass KERNEL_VERSION to depmod calls in postinst
* without this, kernel upgrades where KERNEL_VERSION is changed
  e.g. 3.4.2 -> 3.4.3 generate .dep for running 3.4.2 and after reboot user ends
  up without any module loaded to make it worse after reboot nothing is upgraded
  to trigger another kernel(-module) postinst to generate .dep for now running 3.4.3

(From OE-Core rev: 4bd5c17f55bc96ce6bbaccf6559aa4ea123ff4cb)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Saul Wold
9ffec01bae libpcre: Clean up FILES_* after PACKAGES reoder
(From OE-Core rev: 7f08d3b6c95ed7ebc1d46852a18a785921d1cc23)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Saul Wold
ad130b97a5 libevent: disable openssl by default
This creates a more deterministic build and also reduces the size of this library.

(From OE-Core rev: 6c36fde6ce2e775ec3041f9cf2fcf02e20516b15)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Saul Wold
948e3e4e6a PR bumps for PACKAGES reorder
(From OE-Core rev: 19cb0aa7fbbbfc6b34280134dfdf9a4c77b6c430)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:02 +01:00
Saul Wold
6a5a4a1c48 curl: Clean up FILES_* after PACKAGES reoder
(From OE-Core rev: 760ee565b9c29f65e4c019c080274d5144f8c0ff)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
9bdb9c687d man-pages: Clean up FILES_* after PACKAGES reoder
(From OE-Core rev: c8c64741586fec2b930c5663fde2e73e2bcc7ede)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
b1ca0e3c5f hdparam: Clean up FILES_* after PACKAGES reoder
(From OE-Core rev: a833ae1941a2f5d1c2bcd1df90e2e9e1056d8375)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
a0f804a372 grub: Clean up FILES_* after PACKAGES reoder
(From OE-Core rev: 41dddc175c0b4887629268bc32b7ac18095b15b5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
9aa4e69ee1 libtool: add ${PN} in middle of package list to ensure .m4 get with ${PN}
With the new order scheme, ${PN} needs to be in the middle
for the .m4 files to be packaged, otherwise the move the
-dev package which is wrong in this case.

(From OE-Core rev: 57ad9075ea7521e8fa20d62aac31afb2e2130348)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
30e52c5cf6 webkit-gtk: remove /usr/libexec since it's empty
This was discovered due to the package reorganization

(From OE-Core rev: be98b49552e2256b5278e795cdf69245b9559da6)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:01 +01:00
Saul Wold
d421d030c7 js: clean up FILE after PACKAGE reorder
(From OE-Core rev: e8817a200212027bb77782c7459af0504707a575)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
eed46b1989 lttng-viewer: clean up FILE after PACKAGE reorder
(From OE-Core rev: 2692ff51924f003012f635a5e96eea96bf98a724)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
2c115816dc libidn: clean up FILE after PACKAGE reorder
(From OE-Core rev: 1abf29813d77aa1c54c17cd7b1ac23f5f74def9f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
d02f3423fa gtk-sato-engine: clean up FILE after PACKAGE reorder
(From OE-Core rev: 1d6f365ecfcc8512c4e41ded9d6fd38a1ff5c824)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
d524486c67 freetype: clean up FILE after PACKAGE reorder
(From OE-Core rev: 26675da6fc60438272ee70d6d40152311cac2041)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
6d15bb2324 gthumb: clean up FILE after PACKAGE reorder
(From OE-Core rev: 60144b62c1f238c066b425c4bfaaf4d5ad56207b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
a86e23e1fb slang: clean up FILE after PACKAGE reorder
(From OE-Core rev: 064265fde8b0be4915908f7356dce8575068d0bd)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
a07ee19462 gnome-keyring: clean up FILE after PACKAGE reorder
(From OE-Core rev: 1071a77a698d0f16d9bb05f562af4bb991f1abae)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
43616aa766 procps: clean up FILE after PACKAGE reorder
(From OE-Core rev: f68b38ce45b3af54096c58e282598b49f8cfcaba)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:03:00 +01:00
Saul Wold
28a1a0fbf6 cups: clean up FILE after PACKAGE reorder
(From OE-Core rev: 83f5bd8d2ae2f83060851d76ab87d01da7c4278b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:59 +01:00
Saul Wold
b33b5e3dd1 gettext: clean up FILE after PACKAGE reorder
(From OE-Core rev: 91d84900c4ff4c1b9456e6766deda956982f1775)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:59 +01:00
Saul Wold
461d0ab528 icu: clean up FILE after PACKAGE reorder
(From OE-Core rev: 2b7d50f4257c4ec206d12342dcd0331db931fb36)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:59 +01:00
Saul Wold
5658c12723 groff: clean up FILE after PACKAGE reorder
(From OE-Core rev: 12d33832a56fc47db47acec1ac497ce015ef6b80)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:59 +01:00
Saul Wold
52c72df049 libxml2: clean up FILE after PACKAGE reorder
(From OE-Core rev: 45e349ab7a6f2e2bf9a4f2144a236f150f6efa22)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:59 +01:00
Saul Wold
28b6b281d3 libpng: clean up FILE after PACKAGE reorder
(From OE-Core rev: 3fddd5314b51946f9b02760ca7d847bb3107fefa)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:58 +01:00
Saul Wold
fbe245a974 db: Ensure the library version matches package version
(From OE-Core rev: da10929059a4aba232d904d7a0d0a54715126c83)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:58 +01:00
Saul Wold
e4f1184510 gnutls: clean up FILE after PACKAGE reorder
(From OE-Core rev: 959c20c99ac980764a99ed4db575e44917600736)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:58 +01:00
Saul Wold
1e53c0bdac gpgme: clean up FILE after PACKAGE reorder
(From OE-Core rev: 0ee1923dc731447bf9988c70fa517367db2a4a2d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:58 +01:00
Saul Wold
14fde1117b libgcrypt: clean up FILE after PACKAGE reorder
(From OE-Core rev: e99f9cc28458ae59630d32197bd119d4556c81cd)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:58 +01:00
Saul Wold
16d2c6e772 libgpg-error: clean up FILE after PACKAGE reorder
(From OE-Core rev: 2aeae1897359b07c5b9bde2d541ee63d72f5eaca)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
a28c11896c libproxy: clean up FILE after PACKAGE reorder
(From OE-Core rev: 5347bb5fba2f84ed3c1f825b7bc94ca826029482)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
c96179ecc7 libusb-compat: clean up FILE after PACKAGE reorder
(From OE-Core rev: ad91a65434abc259045a0f517f934e720b2b3cdd)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
4d881e99ef pth: clean-up FILES list due to PACKAGE reorder
(From OE-Core rev: bd676271537acdaf9b3ea607b3337c3059aad788)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
7a66997322 taglib: correct location of taglib-config to -dev
(From OE-Core rev: 81c9ce2fdd74b7c0c664dec0b9f730fee97a086c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
da99f5d20c eglibc-package: Update PACKAGES and files based on new ordering
(From OE-Core rev: 13544fbc6217fee1731a6da1e2cf94901a500842)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:57 +01:00
Saul Wold
17d4fa09d8 pmutils: reorder file for correctness
(From OE-Core rev: 5d0a8f02dd560320fd36ca90d0ae020a033ba184)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Saul Wold
fd259b8894 bitbake.conf: add PN-bin and cleanup lib_package.bbclass
Since we now have PN as the end of the package list, we can almost get rid of
lib_package, each recipe can just add PACKAGES =+ PN-bin instead of the inherit

(From OE-Core rev: 7acdd6177fda4643d2f04f45eb7490e45a3d491e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Saul Wold
b11e5d77bc lib_package: remove the -dev list
Since we have re-order the full PACKAGES list, we do not need to reset
the -dev list, we still need this since the -bin package needs to be inserted.

(From OE-Core rev: cb43d97988475646074c53a264f563bf0cb2907a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Saul Wold
a5eb4d29a3 binconfig: add *-config files to the -dev package
This is part of the the package reorder, by having binconfig add -config
will the files first due to the order being greedy.

(From OE-Core rev: df651f5c30acb7cccbc0a0abf4b91a07f1a72e1f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Saul Wold
f68cbf56d8 bitbake.conf: reorder PACKAGES list
This change re-orders the PACKAGES list to move PN to the end of the list
this will ensure that base package gets the final bits since the packaging
is greedy. We can then have -dev and other package get bits first.

(From OE-Core rev: 66c36bcb7d9368718453265e58bd5e3c854c786a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Saul Wold
504e3733e5 curl: Use gnutls for target and openssl for native
Since gnutls is available on the target use it, but we do not build gnutls for
the native side as it adds too many dependecies, so use openssl.

(From OE-Core rev: 87610064a435f8b8b5694e4d6627e53b25d8f713)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 13:02:56 +01:00
Jason Wessel
e0a7054706 perl: Allow perl to cross build and native build in a directory named "t"
If any directory in leading up to your tmp directory has the name "t"
perl will fail to build with a very cryptic error shown below:

pod/buildtoc: no pods at pod/buildtoc line 305.
make[1]: *** [pod/perltoc.pod] Error 255

This is a result of the perl file checking making an assumption
that it is only looking at files and directories with in the perl
source directory.  This assumption fails with the way bitbake
sets up perl to properly cross compile.

(From OE-Core rev: f8a054aca9962ebfd4c74fc1d34cd684de6b3568)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:33:04 +01:00
Khem Raj
83b53d32eb libzypp: Fix build with uclibc
cstdio is included indrectly with eglibc based systems
but not with uclibc based systems and use of functions
like ::eof are then reported as warnings. Therefore
we include cstdio explicitly.

(From OE-Core rev: c9c74b1316aa671e7106962c9dae5b6046cd9946)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:32:30 +01:00
Xiaofeng Yan
de8b25deb3 lsbinitscripts: Add the header for functions.patch
Add upstream-status and signed-off-by to functions.patch

(From OE-Core rev: c44a459dbbcbdddf5488cbc3df03f568f44cff83)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:27:35 +01:00
Xiaofeng Yan
05428dac7b multilib.conf: Add the support of multilib for lsbinitscripts
Add the multilib support for this package to multilib.conf because error will
appear when building an lib32-core-image-lsb without this patch.

[YOCTO #2571]

(From OE-Core rev: 264425b0a54806c08c218bd8b500c20b8c3152f4)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:27:25 +01:00
Laurentiu Palcu
993245d2c6 puzzles: upgrade to r9561
Minor change in LICENCE file:

-This software is copyright (c) 2004-2010 Simon Tatham.
+This software is copyright (c) 2004-2012 Simon Tatham.

(From OE-Core rev: 2f1460b7bf96616a7d54753a9dbc63ed6d322d74)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:27:14 +01:00
Khem Raj
85c04b7f9a libzypp: Define OECMAKE_CXX_LINK_FLAGS when compiling for uclibc
(From OE-Core rev: 398928ea445f76ed37d1cc77cef6ae2ca85b7a0d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:27:02 +01:00
Khem Raj
c383a30aee zypper: Fix build on uclibc
uclibc does not have rpmatch() so we define
it if zypper is being compiled for uclibc

(From OE-Core rev: 1ea9b31f304e54ce4b7c2d38582d1775a46cd8c6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:26:48 +01:00
Khem Raj
13136e4c20 rpm: pass lrt and lpthread to link step explicitly for uclibc
These need to appear in DT_NEEDED for librpmio.so
for uclibc somehow it does not get added to link
cmdline so we do it explicitly.

(From OE-Core rev: e5d141fff4a96fbdac63586638fb286f263af216)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:26:26 +01:00
Khem Raj
fd3e09c023 sat-solver: Fix build on uclibc
futimes is not available on uclibc so use utimes
qsort is also not as expected by sat-solver therefore
for uclibc we resort to using internal version of
qsort

(From OE-Core rev: e0800be814c8f8adf8d6682aacea1d3ce9b14c9e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:25:14 +01:00
Khem Raj
bdc73dfc11 rpm: Use link time check for libssp
-fstack-protector needs libssp to link with
so when checking for this option support we
need to find if libssp is staged in root file
system

(From OE-Core rev: 492297fce0b80547d3dac9f611f463c6cc95160b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:24:49 +01:00
Khem Raj
eaedf2e941 rpm: Fix compilation on uclibc
rpmatch is not there in uclibc therefore add logic to configure
to detect it.

x* wrappers need to be defined for uclibc as well.

(From OE-Core rev: 0cd3a4f3cfd0eb70915e3b59be8d04ee2d92749e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:24:40 +01:00
Khem Raj
5276472c5e site/x86_64-linux-uclibc: Cache definitions of guint32/guint64
Without this glib 2.32.x wont build.

(From OE-Core rev: 6cb8bb9a338097dd63be63732b8e67fc87eb1a5e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:24:30 +01:00
Khem Raj
cae148a581 uclibc_0.9.33.bb: Upgrade to latest git
This is needed otherwise glib-2.0 wont run
correctly

(From OE-Core rev: c495e31f278e49e15fb48285f3b68794f6cf888e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 17:24:18 +01:00
James Limbouris
66517610c5 debian.bbclass: invoke target objdump
Using the host objdump can lead to errors like:

objdump: library.so.1.0.0: File format is ambiguous
objdump: Matching formats: elf32-littlearm elf32-littlearm-symbian elf32-littlearm-vxworks

with certain configurations of binutils.

(From OE-Core rev: 6d761ae17ddbd3d936e7fe985b40825ad62b2418)

Signed-off-by: James Limbouris <james@digitalmatter.com.au>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:59 +01:00
Martin Jansa
85d7c018fe tzdata, matchbox-session, mini-x-session: replace RCONFLICTS with RCONFLICTS_
(From OE-Core rev: 8f4e7dfd8b60a10411261666b4da2b4aff1c4231)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:58 +01:00
Martin Jansa
79e4de8406 recipes: replace CONFLICTS with RCONFLICTS_${PN}
(From OE-Core rev: fbcda6eff010e0a39cc0145a514e7de99f475145)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:58 +01:00
Anders Darander
0529f93440 qt4-embedded: fix QT_ARCH usage in QT_CONFIG_FLAGS
After the change to shell style functions (from python style), the
ability to use oe_filter_out on QT_CONFIG_FLAGS got broken.

This patch solves that by referring to QT_ARCH in a more correct way.

(From OE-Core rev: abd5d5a712686a379a1a1da29d78a0f374f13e33)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:58 +01:00
Saul Wold
bbd25aa3f2 mdadm: Don't depend on ansidecl.h header
We don't DEPEND on binutils for ansidecl.h so ensure we should never use the header.
This makes builds determinstic and means something like:

bitbake binutils
bitbake mdadm -c compile
bitbake binutils -c clean
bitbake libxml2

doen't fail to build.

(From OE-Core rev: 5b51872ec4c2400ae60f434478f04e9aca3ccb7d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:58 +01:00
Saul Wold
6b93b86d52 directfb: fix Upstream-status -> Upstream-Status
(From OE-Core rev: 45b40d483c675369cdc164babd0db5c87adf0de4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:57 +01:00
Kang Kai
a7f6b0a03a cleanup-workdir: update help text
Update the help text to tell user that the files and dirs under WORKDIR
which are not created by Yocto will be deleted.

(From OE-Core rev: dcd2ebc5d63965a7ad6e714406149f63ffb4a704)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:57 +01:00
Kang Kai
3360a4f1b3 cleanup-workdir: only deal dirs related to current arch
Some users may build for different archs under same workdir, so they
don't want to clean the dirs not related to current arch.

Run command 'bitbake -e' with selected packages to get the dirs related
to current arch then clean them.

Update the way to get the WORKDIR by parsing the IMAGE_ROOTFS by the
way.

(From OE-Core rev: a16727ebc341e0a0ce59a5200dc774cf672593ee)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:57 +01:00
Kang Kai
21d84d2fe3 cleanup-workdir: replace commands with subprocess
Use modules subprocess to run command instead of module commands.

(From OE-Core rev: 33f18965bbeeec47f694f2aa165e5e07eadb7ab7)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:57 +01:00
Kang Kai
7dbc26874f cleanup-workdir: update the way to check obsolete dirs
Update the way to check obsolete directories.

According to package and its version construct a list of all packages'
current build directory. If any directory under $WORKDIR/*/ is not in
the list will be removed.

At same time, all the files(vs. directory) under $WORKDIR and
$WORKDIR/*/ will be removed because they are not created by poky.

(From OE-Core rev: 4d2920dee32bbc5d12ed98234de096d28d29415b)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:56 +01:00
Bruce Ashfield
21bd4552d6 meta-skeleton: add linux-yocto-custom reference recipe
Adding a skeleton/refrence recipe for using a subset of the yocto
kernel tools against kernel git repositories.

Sample/reference configuration fragments, features and a patch are
provided and documented in the recipe.

From the recipe itself:

   Provides an example/minimal kernel recipe that uses the linux-yocto
   and oe-core kernel classes to apply a subset of yocto kernel
   management to git managed kernel repositories.

 Notes:

   kconfig(s): the kernel must be configured with a defconfig, or via
               configuration fragment(s). Either of these can be added
               via bbappend.
   patches: patches can be merged into to the source git tree itself, added
            using standard bbappend syntax or controlled via .scc feature
            descriptions (also via bbappends)

   example configuration addition:
            SRC_URI += "file://smp.cfg"
   example patch addition (for kernel v3.4 only):
            SRC_URI += "file://0001-linux-version-tweak.patch
   example feature addition (for kernel v3.4 only):
            SRC_URI += "file://feature.scc"

 Warning:

   Building the sample kernel tree (kernel.org) without providing any
   configuration will result in build or boot errors. This is not a bug
   it is a required element for creating a valid kernel.

[YOCTO #2397]

(From OE-Core rev: 4b6f29ddb00480896f47d96ea376f3a6f6d8451e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:24:56 +01:00
Khem Raj
eda6a522d1 libzypp: Fix build with uclibc
cstdio is included indrectly with eglibc based systems
but not with uclibc based systems and use of functions
like ::eof are then reported as warnings. Therefore
we include cstdio explicitly.

(From OE-Core rev: ded71e4904ed8df23fe4ca5c5e4516a8a6e9fc76)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:23:59 +01:00
Mark Hatle
c16eddd1d9 busybox: Fix syslog configuration file
When update alternatives was modified, the syslog configuration file
alternative was incorrectly defined to be "busybox".  Fix this by
enabling the proper target file.

[YOCTO #2557]

(From OE-Core rev: 935f2c02809814de2b903a704707d7bc85bbefdf)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:22:18 +01:00
Laurentiu Palcu
9890bf8182 core-image-gtk-directfb, qt4e-demo-image: Remove module-init-tools from IMAGE_INSTALL list
As module-init-tools package does not exist anymore there's no reason to
have it in the IMAGE_INSTALL package list. If RPM package manager is
used, build will fail with:

Unable to find package module-init-tools (module-init-tools)!

[Yocto #2580]

(From OE-Core rev: 85d612737d050d4633013c706d9ad6b8169814af)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:22:17 +01:00
Robert Yang
a41c3e4867 gcc-cross: argument list too long when do_install
There would be an "Argument list too long" error when the length of
tmpdir is longer than 190, this is caused by:

headers=`echo $(PLUGIN_HEADERS) | tr ' ' '\012' | sort -u`

The PLUGIN_HEADERS is too long before sort, so the "echo" can't handle
it, use the $(sort list) of GNU make which can handle the too long list
would fix the problem, the header would be short enough after sorted.
The "tr ' ' '\012'" was used for translating the space to "\n", the
$(sort list) doesn't need this.

This doesn't impact the output, so it doesn't need the PR bump.

[YOCTO #2591]

(From OE-Core rev: b9b75e6cf31991c046713194f75bc61027558464)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-18 13:22:17 +01:00
Bruce Ashfield
4f65868ea5 linux-yocto/meta-yocto: update yaffs2 and drop rc6
Updating the 3.4 SRCREVs to pickup a yaffs2 update and the removal
of a feature that was required in the 3.2 kernel tree.

1/2 [
    meta: rc6: remove rc6 patches for snb

    The sandybridge rc6 patches are part of the released v3.4 kernel.
    Hence there is no need to keep these patches in the 3.4 linux
    yocto kernel repository.

    Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
]

2/2 [
    yaffs2: update core support

    Uprev yaffs2 to latest version as of 2012-05-29
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:48:49 +01:00
Scott Rifenbark
8cdb88330c documentation/poky-ref-manual/development.xml: removed section
Removed the "Development Using Yocto Project Directly" section.
This information is better covered in the YP Development Manual
where it talks about modifying temporary source code.

(From yocto-docs rev: f3c8c182a8b34c8fdfe4be8c497948f8b777ddf2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:27 +01:00
Scott Rifenbark
fef4f4ecf5 documentation/dev-manual: Moved temp source code mod into dev model
The section "Modifying Temporary Source Code" that was in the chapter
for "Common Tasks" was moved to the "Common Development Models" chapter.
After discussion with Darren Hart, modifying temporary source code
is a valid develop model.  So, rather than isolate it in the common
tasks chapter it has been placed in the development model chapter,
which now has four types of development.

Changes were made to update the introductory text of all the concerned
areas of the manual.

(From yocto-docs rev: 8b07ee3bcda9c13e576b54b0079b0656cd8fcc32)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:27 +01:00
Scott Rifenbark
513af3c550 documentation/poky-ref-manual/development.xml: Removed Eclipse section
The section "External Development Using the Eclipse Plug-In" is
redundant.  We have an entire chapter in the YP ADT manual for
this information.  The section has been removed.

(From yocto-docs rev: fa9d4785032aada0a52acd1cec083d00dc4ac21b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:27 +01:00
Scott Rifenbark
fa332a5b27 documentation/poky-ref-manual/development.xml: Removed toolchain dev section
The section "External Development Using the Meta-Toolchain" was removed.
The information in this section is better presented in the ADT manual
and in the YP Development manual.

(From yocto-docs rev: 2488d6ac9872b00a8887a12a6c77aa16d30ad5e4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:26 +01:00
Scott Rifenbark
91911f600f documentation/poky-ref-manual/ref-images.xml: removed links to section
Three cross-references to the section "External Development
Using the Meta-Toolchain" were removed.  This section is going
away in the YP Reference Manual.  There is no replacement section
that makes sense so the cross-reference is removed.

(From yocto-docs rev: 97ed489c335d6d2782cc3ed684fce92c78b4fec8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:26 +01:00
Scott Rifenbark
45f26d5630 documentation/bsp-guide/bsp.xml: Review comments to recommendations
I added a small review comment to the section based on reviewer
feedback.

(From yocto-docs rev: 68cc2bac8dca78572d197af326452bbd37c947f9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:26 +01:00
Scott Rifenbark
363efd4e99 documentation/dev-manual/dev-manual-start.xml: Updates to pre-built section
The "Using Pre-Built Binaries and QUME" section needed to incorporate
some information from the YP Reference Manual.  I have merged those
changes in and did some re-writing to blend it well.

(From yocto-docs rev: 5c20f00f9ec75c19fd0106c9f241751381ba7e3c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:26 +01:00
Scott Rifenbark
857b2d45f6 documentation/poky-ref-manual/development.xml: Removed pre-built section
Removed the section about developing binaries using QEMU.  This section
is better placed in the YP Development Manual.

(From yocto-docs rev: 83a4e84b69051f217993d80b525e9d07d64d1c6d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:26 +01:00
Scott Rifenbark
8f67927df6 documentation/bsp-guide/bsp.xml: Added note to BSP recommendations
Inserted a note warning the developer that it is their responsibility
to understand and meet all licensing requirements if they are going
to be including images as part of a BSP.

(From yocto-docs rev: b8154904be02a4185bf417f193eb125b8470bc8d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:25 +01:00
Scott Rifenbark
0be49103fd documentation/bsp-guide/bsp.xml: Updates to requirements section
Implemented review feedback from Dave Stewart and Tom Zanussi.

(From yocto-docs rev: 5ed73c29b6a46737a009a38b294bdd61e4c63d85)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:25 +01:00
Scott Rifenbark
4969df1279 documentation/bsp-guide/bsp.xml: BSP recommendations section added
Added the "Requirements and Recommendations for Released BSPs"
section.  This section was requested by Dave Stewart based on
community input for direction on how to create a BSP that was
compliant with the Yocto Project.  The input for the section came
from Tom Zanussi.

A spell-check was performed also prior to this commit that addressed
a few spelling issues across the file.

(From yocto-docs rev: 7ed0dd1093b33491231dec06f7b5f8e76004130d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:25 +01:00
Scott Rifenbark
c29a721a68 documentation/kernel-manual/kernel-how-to.xml: Updates to showing changes
I updated the "Show a Particular Feature or Branch Change" section so
that it reads better.  I also included some real examples.

(From yocto-docs rev: 42aa13c7fbf45abf869b056deec063be6682c70b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 17:18:25 +01:00
Laurentiu Palcu
4bb7ef94fc directfb: added missing Upstream-status
(From OE-Core rev: 63d1ae1c2828cda03828b4c3fdde037d7a23f1e4)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:44:39 +01:00
Lianhao Lu
55a6587ec5 pango: added upstream-status status.
Added missing upstream status.

(From OE-Core rev: 5938eb43b3d7de65e58610f9d5044fadd42cc225)

Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:44:38 +01:00
Saul Wold
4d8fa40238 distrodata: cleanup after moving distro_tracking_fields
Remove some of the older fields that are not in the new list as we
are able to better automagically generate this directly from the
recipe files the extra files will go away.

To use this, one will have to include the appropirate files, such
as maintainers.inc, upstream_status.inc

(From OE-Core rev: f159ea18cf2a3f0c94d7324a2b63a6f0aabf73f2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:44:38 +01:00
Saul Wold
0cb6bc0dc5 distro tracking files: Add seperated set of files
This patch creates a split up of the orignal distro_tracking_files
since we need to manage this more in the meta-yocto space, each
file has a set of comments describing the contents

maintainers.inc is a list of the maintainers
recipe_color.inc is a burn down list of recipes that need to be checked
recipe_data.inc contains data for creating the BOM and tracks some
info that could be moved into the recipes directly.
upstream_tracking.inc: Version and Date information that can not be
discovered automagically.

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:44:03 +01:00
Bogdan Marinescu
c8a22b797f strace: update to 4.7
Removed the x32 specific patches, since they seem to be fully
integrated into 4.7. Also removed the sigmask patch, since the
new version doesn't seem to use sigmask anymore.

(From OE-Core rev: fec92fb65a0135b17fea49a239bd9a73c96bba51)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:45 +01:00
Saul Wold
6aabd47550 beecrypt: add patch for build issue on Fedora 17
../../x86_64-linux-libtool --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include  -isystem/intel/poky/builds/f17/tmp/sysroots/x86_64-linux/usr/include  -isystem/intel/poky/builds/f17/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -Wa,--noexecstack -c -o Properties.lo Properties.cxx
x86_64-linux-libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../../include -isystem/intel/poky/builds/f17/tmp/sysroots/x86_64-linux/usr/include -isystem/intel/poky/builds/f17/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -Wa,--noexecstack -c Properties.cxx  -fPIC -DPIC -o .libs/Properties.o
In file included from ../../include/beecrypt/c++/util/Hashtable.h:42:0,
                 from ../../include/beecrypt/c++/util/Properties.h:36,
                 from Properties.cxx:25:
../../include/beecrypt/c++/util/AbstractSet.h: In instantiation of 'bool beecrypt::util::AbstractSet<E>::equals(const beecrypt::lang::Object*) const [with E = beecrypt::util::Map<beecrypt::lang::Object, beecrypt::lang::Object>::Entry]':
Properties.cxx:228:1:   required from here
../../include/beecrypt/c++/util/AbstractSet.h:59:27: error: 'containsAll' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
../../include/beecrypt/c++/util/AbstractSet.h:59:27: note: declarations in dependent base 'beecrypt::util::AbstractCollection<beecrypt::util::Map<beecrypt::lang::Object, beecrypt::lang::Object>::Entry>' are not found by unqualified lookup
../../include/beecrypt/c++/util/AbstractSet.h:59:27: note: use 'this->containsAll' instead
../../include/beecrypt/c++/util/AbstractSet.h: In instantiation of 'bool beecrypt::util::AbstractSet<E>::equals(const beecrypt::lang::Object*) const [with E = beecrypt::lang::Object]':
Properties.cxx:228:1:   required from here
../../include/beecrypt/c++/util/AbstractSet.h:59:27: error: 'containsAll' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
../../include/beecrypt/c++/util/AbstractSet.h:59:27: note: declarations in dependent base 'beecrypt::util::AbstractCollection<beecrypt::lang::Object>' are not found by unqualified lookup
../../include/beecrypt/c++/util/AbstractSet.h:59:27: note: use 'this->containsAll' instead

[YOCTO #2593]

(From OE-Core rev: 93aa773c4c03c21a70d7d53cf93e43416e17007c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:45 +01:00
Saul Wold
b42744fac3 gcc-target: ensure target packages have the correct virtual package names
Resolves this error during do_rootfs:
|  * satisfy_dependencies_for: Cannot satisfy the following dependencies for task-core-standalone-sdk-target:
|  * eglibc (>= 2.15) *
|  * opkg_install_cmd: Cannot install package task-core-standalone-sdk-target.
NOTE: package core-image-sato-sdk-1.0-r0: task do_rootfs: Failed

(From OE-Core rev: 86e3b90d1963fa6982869e005d7858222a8527d5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:45 +01:00
Saul Wold
43c84ea496 eglibc: added ac_cv_path_ to CACHED_CONFIGUREVARS
On Fedora 17, bash has moved to /usr/bin/bash and the configure process finds it
on the host machine there, this ensures that it is set correctly for the target.

[YOCTO #2363]

(From OE-Core rev: 133c2a12d13028a3829c87a59a2ff4fe21f57260)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:44 +01:00
Saul Wold
ec07dfcbf4 quilt: added ac_cv_path_BASH to CACHED_CONFIGUREVARS
On Fedora 17, bash has moved to /usr/bin/bash and the configure process finds it
on the host machine there, this ensures that it is set correctly for the target.

[YOCTO #2363]

(From OE-Core rev: 958934049e4b3b84e5eaa9c6b0d672cf2c4a693e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:44 +01:00
Saul Wold
83fe2bb313 curl: enable ssl support
This patch enables ssl support for curl to allow git to clone from
https / ssl sites. We do not want to enable gnutls for native or
nativesdk, as it adds additional dependency and increase build time

[YOCTO #2532]

(From OE-Core rev: 653786096cb13560537905410e737e0dd9a9cf57)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:44 +01:00
Saul Wold
e90cfbdc95 busybox: Add check for wifi/bluetooth to enable rfkill
rfkill is a usefull tool when you have a device with bluetooth and wifi enabled

[YOCTO #2494]

(From OE-Core rev: f71258f0ef96802e714b6f12ecc8c17842d6cf87)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:44 +01:00
Robert Yang
2fa65dd42c opkg 0.1.8: do_fetch failed since no checksum specified
* We use meta/recipes-devtools/opkg/opkg_svn.bb by default, the
  opkg_0.1.8.bb failed since no checksum specified.

* The add_vercmp.patch in both opkg/ and opkg-0.1.8/, remove the one
  in opkg-0.1.8/

This patch doesn't impact the output, so I think that we don't have to
increment the PR.

[YOCTO #2498]

(From OE-Core rev: 316fac638646a50149f36ec4687b5a2a6d2e83b1)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:43 +01:00
Bruce Ashfield
de4bd3767c linux-yocto/3.4: create linux-yocto-rt recipe
Adding the 3.4 variant of the linux-yocto-rt recipe. This updates
to 3.4.1-rt9, and builds and boots on the supported targets.

(From OE-Core rev: 7f007994cbc5f188439ad2b26f60dbcc1c2763bd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:43 +01:00
Bruce Ashfield
d51d204e9c linux-yocto/3.4: update yaffs2 and drop rc6
Updating the 3.4 SRCREVs to pickup a yaffs2 update and the removal
of a feature that was required in the 3.2 kernel tree.

1/2 [
    meta: rc6: remove rc6 patches for snb

    The sandybridge rc6 patches are part of the released v3.4 kernel.
    Hence there is no need to keep these patches in the 3.4 linux
    yocto kernel repository.

    (From OE-Core rev: 7822565a3a3ae906112c88f7e59f396c7fdabd4c)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
]

2/2 [
    yaffs2: update core support

    Uprev yaffs2 to latest version as of 2012-05-29

    To include the following commits:

    662466a yaffs2 checkpointing: Add further checkpoint data sanity checking
    d9cae0a yaffs2: Make checkpoint block scanning skip bad blocks.
    eb12d56 Remove trace that should not be in mounting.
    9ee5d06 yaffs for u-boot: Cleanups to make patches acceptable for u-boot
    83d9993 Merge remote branch 'origin/master'
    07353dd Clean up checkin. Do not use
    00ebf30 Update timothy test Makefile
    1658295 yaffsfs: Allocate directory searches from a table rather than via malloc.
    8dae7f1 Fix compilation of python tests.
    14ff4e1 yaffs u-boot: Fix problem if an illegal nand chip number is entered.
    8b34846 Set up u-boot glue code and patching scripts.
    1a17e3a Add more descriptive comment for using the yaffs commands.
    80f8530 Add files to hook up yaffs direct to u-boot
    95ff7ef Merge branch 'master' of ssh://www.aleph1.co.uk/home/aleph1/git/yaffs2
    e49491a Put both the summary and checkpoint version stamps together, update checkpoint version
    468d72b Fix compilation of mkyaffsimage and mkyaffs2image
    87166df Fix resizing of large files.
    eeb0f17 Fix summary header validation
    d308180 Add a summary header
    7862c13 Remove extra line from banner.
    d14c6a6 Add script to handle common Linux and direct files
    6518138 Change Makefiles to support new way to structure yaffs_strxxx renaming for yaffs direct
    8429784 Update README about linux patching
    6ee2533 Update Makefiles for new sed-based way case-insensitive handling
    2369fad Set up new version of case insensitive code using sed
    4d8ae2f Add large file support changes to yaffs_vfs_single.c
    ce0a5fb Merge branch 'big-files':  Merge in large file support
    80d031a Add Waldemar's patches for Linux 3.2
    a7ae50c yaffs large file support: Fix max file size issue that prevented the scanning working.
    a7cb3a3 WIP Changes to tests
    2360446 yaffs large file support: Add more tests
    0ed6086 yaffs large file support: Saves and restores large files fine under yaffs direct.
    fc4028b large file storage WIP. Can save and verify a large file under yaffs direct.
    20de150 WIP large file support
    b4d93e2 First cut of changes to support large files.

    Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:43 +01:00
Robert Yang
1b112fa9cf pybootchartgui: Fix the filename and add a default format
* Fix teh output filename to make it easy to use
* Add a default output format (svg)
* Fix the usage message
* Fix the version to v1.0.0

Currently, the help messages are:

$ ./pybootchartgui.py --help
Usage: pybootchartgui.py [options] /path/to/tmp/buildstats/<recipe-machine>/<BUILDNAME>/

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -i, --interactive     start in active mode
  -f FORMAT, --format=FORMAT
                        image format: svg, pdf, png, [default: svg]
  -o PATH, --output=PATH
                        output path (file or directory) where charts are
                        stored
  -s NUM, --split=NUM   split the output chart into <NUM> charts, only works
                        with "-o PATH"
  -n, --no-prune        do not prune the process tree
  -q, --quiet           suppress informational messages
  --very-quiet          suppress all messages except errors
  --verbose             print all messages

[YOCTO #2403]

(From OE-Core rev: 138c2c31e41e3f1803b7efbedf78326d71821468)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:43 +01:00
Robert Yang
0ad3f75432 pybootchartgui: split the output chart into multiple ones
Split the output chart into multiple ones to make it more readable, it
only works with "-o path", which means that it doesn't work if the user
doesn't want to save the chart to the disk. For example:

$ ./pybootchartgui.py /path/to/tmp/buildstats/core-image-sato-qemux86/201205301810/ -f svg -s 5 -o /tmp/
bootchart written to /tmp/bootchart_1.svg
bootchart written to /tmp/bootchart_2.svg
bootchart written to /tmp/bootchart_3.svg
bootchart written to /tmp/bootchart_4.svg
bootchart written to /tmp/bootchart_5.svg

[YOCTO #2403]

(From OE-Core rev: 04a34899e1c15a70babd97a3a59ccb9f8af05bad)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:42 +01:00
Robert Yang
bc5b86f025 pybootchartgui: make the build profiling in pictures
The original patch is from Richard, I rebased it to the up-to-date
upstream code, here are the original messages from him:

We have just merged Beth's initial buildstats logging work. I was
sitting wondering how to actually evaluate the numbers as I wanted to
know "where are we spending the time?".

It occurred to me that I wanted a graph very similar to that generated
by bootchart. I looked around and found pyboootchartgui and then hacked
it around a bit and coerced it to start producing charts like:

http://tim.rpsys.net/bootchart.png

which is the initial "pseudo-native" part of the build. This was simple
enough to test with.

I then tried graphing a poky-image-sato. To get a graph I could actually
read, I stripped out any task taking less than 8 seconds and scaled the
x axis from 25 units per second to one unit per second. The result was:

http://tim.rpsys.net/bootchart2.png
(warning this is a 2.7MB png)

I also added in a little bit of colour coding for the second chart.
Interestingly it looks like there is more yellow than green meaning
configure is a bigger drain on the build time not that its
unexpected :/.

I quite enjoyed playing with this and on a serious note, the gradient of
the task graph makes me a little suspicious of whether the overhead of
launching tasks in bitbake itself is having some effect on build time.
Certainly on the first graph there are some interesting latencies
showing up.

Anyhow, I think this is the first time bitbake's task execution has been
visualised and there are some interesting things we can learn from it.
I'm hoping this is a start of a much more detailed understanding of the
build process with respect to performance.

[YOCTO #2403]

(From OE-Core rev: 6ea0c02d0db08f6b4570769c6811ecdb051646ad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:42 +01:00
Robert Yang
3d78bc19c5 pybootchartgui: add the original code
This is from:
http://pybootchartgui.googlecode.com/files/pybootchartgui-r124.tar.gz

Will modify it to make the build profiling in pictures.

Remove the examples since they would not work any more, and they cost
much disk space.

[YOCTO #2403]

(From OE-Core rev: 1f0791109e1aed715f02945834d6d7fdb9a411b4)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:42 +01:00
Andrei Gherzan
bc19f8bc9c coreutils: Fix a typo in v6.9 (bracket not braket)
(From OE-Core rev: 66cc81d2a5f5c74e4a44e79521a791f402deeb26)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:41 +01:00
Bogdan Marinescu
0affb563bc libpcre: updated to version 8.30
Tested by compiling lighttpd. The license file changed because the
copyright notice was updated to cover 2012.

(From OE-Core rev: 1ae74c5b1485ac438b8f83b2a7d162ef63b089d2)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:41 +01:00
Saul Wold
066ec29b45 distro_tracking_fields: move to meta-yocto as seperate files
We are going to take a phased approach of breaking up the
distro_tracking_fields, first is to remove it from oe-core,
then create new files in meta-yocto.  We are doing this because
the distro_tracking_fields is getting unweildly and some of
the data can be part of a burn down list instead continually
stored, thus it will get split up.

(From OE-Core rev: e8808c85a6bba8422cd82631b2bbc367543e4cdd)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-15 15:12:41 +01:00
Richard Purdie
3f29273540 gcc-configure-target: Fix sysroot option breakage I introduced (sorry)
(From OE-Core rev: ba380813c0198f95b1e786aa7f49b80c68cfe9b9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 19:48:47 +01:00
Richard Purdie
4ff6160d90 methodpool: Improve method already seen error message
The current error message is confusing, this improves it to explain the problem
and the possible ways to resolve it.

[YOCTO #2530]

(Bitbake rev: d316f28ed725ff40daa8771c1aa224ac46d5b224)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:20:51 +01:00
Richard Purdie
1faf02599a fetch2/local: Ensure quoting is handled correctly from the url
The commit 420eb112a4f (fetch2: quote/unquote url paths) caused a regression
since local file urls containing quoted characters are no longer being handled
correctly. This fixes things so the url is dequoted correctly, fixing various
fetcher failures with recipes like "gtk+".

[YOCTO #2558]

(Bitbake rev: 95c0595d66b3f8a5f0716662ba2a878600f312ea)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:18 +01:00
Jason Wessel
d43d3b007e fetch2: Fix missing output from stderr in fetcher logs
There are actually two problems to fix

1) The exception for bb.process.ExecutionError must be processed first
   because it is a derived from the bb.process.CmdError class and
   we never reach the ExecutionError otherwise.

2) The stderr needs to be printed as well as stdout to determine
   the root cause of a fetch failure.

The example I have is that I got a log that looked like:

--
ERROR: Function failed: Network access disabled through
  BB_NO_NETWORK but access requested with command
   /usr/bin/env wget -t 5 -nv --passive-ftp --no-check-certificate -P
   /localds 'http://downloads.yoctoproject.org/[...CLIPPED...] url None)
--

That really didn't tell me much, but with this patch I get error above
plus the following:

--
STDERR: /net/[...CLIPPED...]kernel-tools.git: Read-only file system
--

(Bitbake rev: af2133a04e1f4b22b181adf9c71f89c439bb88cf)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:18 +01:00
Liming An
ad78e3c189 Hob: fixed issue about 'select a base image' combo not sensitive
The combo view is not sensitive, after select recipes come back.
so fixed this issue.

[YOCTO #2500]

(Bitbake rev: debcea9c063f7bddcba1d4ed47edbe173ef1d9cf)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:18 +01:00
Liming An
2295ef1dc3 Hob: fixed an issue about no 'set_page' function in hob failed page show
Due in mistake deletion in previous patches, if building failed, will report
the error of no 'set_page', so add that function.

(Bitbake rev: b046f4316ee7f2afaa0bb723e4216714d9cb87a0)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:18 +01:00
Kang Kai
79df63514d image-writer: tweak some strings
Tweak some strings in accord with the script name 'image writer', and
remove extra noun 'button'.

(Bitbake rev: d2d65335e8fc2417ebd3910f645cc00a4abfbeaa)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:17 +01:00
Kang Kai
d2bdfe0e66 ui/crumbs/hig.py: simplify subprocess call
According to Darren's suggestion, subprocess.call() will wait until the
subprocess complete. So simplify the code, use subprocess.call() to wait
command complete.

(Bitbake rev: 3dea9d5a5af82d99d337238981807a4cb1bd5b93)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:17 +01:00
Kang Kai
a87ce4308e ui/crumbs/hig.py: tweak strings
Add comments for DeployImageDialog 'standalone' part of codes to make it
easy to read.
And tweak some strings.

(Bitbake rev: b0e604d3d6dbfcaeac0a2e0e4399aeb4327f8cbc)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 14:07:17 +01:00
Laurentiu Palcu
7f017cab0b connman: bump PR and add some comments
The comments are for informing anyone who wants to change USERADD_PARAMs
to make sure it's in sync with the one in xserver-nodm-init, in order
for rootless X to work.

(From OE-Core rev: c4d0b1c5438039dab07103c151c0c5a76a4c9499)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 13:11:23 +01:00
Laurentiu Palcu
d8d95d10bd sanity.bbclass: warn the user if BBPATH contains wrong entries
If BBPATH references the working directory, the user is warned and asked
to fix the problem.

[Yocto #1465]

(From OE-Core rev: 73f10ae955ba217078fa2c5288b736ae8a30b184)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 13:11:22 +01:00
Gary Thomas
5a50eb1ce6 webkit-gtk: Apply work around for all PowerPC targets
The current patch for bug #1570 only applies to qemuppc but should be
applicable for all PowerPC targets.  Also update the patch so that
only one language backend, either ICU or PANGO, is built.

Also remove some old customizations (dependencies on darwin) as these
should now be handled in a layer specific .bbappend file.

(From OE-Core rev: 2782caf0f07f61cab92d2981c5e82914f22bd700)

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:23 +01:00
Laurentiu Palcu
ca6d07c92c connman: make useradd parameters consistent with rootless X
Both connman and rootless X share the same xuser. However, useradd
parameters are not consistent and if connman runs useradd first,
rootless X will be broken.

[Yocto #2467]

(From OE-Core rev: 28087e7a9ddfd2d118aa907a29ed522bb8cbfc16)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:23 +01:00
Andreas Müller
5518a1a505 systemtap: update Upstream-Status and use correct syntax
patch was applied [1]

http://sourceware.org/git/gitweb.cgi?p=systemtap.git;a=commit;h=41df51cb6a6d3f09f8b57cb216dffa5ba335e326

(From OE-Core rev: 7fbe687da742be638d8c19f522d22fe9d6e8147a)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:22 +01:00
Khem Raj
e7d0a81a8f gcc-configure-common: Use build time sysroot for target gcc
Otherwise it assumes / as sysroot on build host and starts
searching for directories in there.

[RP: Tweak to add missing = for consistent syntax]
(From OE-Core rev: d132bcc41d9956f8cc171e34232d991e2b444689)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:22 +01:00
Jason Wessel
9f47c0f62e lsof: Fix cross 32 -> 64bit ranlib host contamination problem
When building on a 32bit host OS and building 64 bit binaries,
the cross ar and ranlib must be called, or you get an error
as follows:

   x86_64-wrs-linux-gcc    -m64 --sysroot=/opt/build/tmp/sysroots/qemux86-64 -o lsof dfile.o dmnt.o dnode.o dproc.o dsock.o dstore.o arg.o main.o misc.o node.o print.o proc.o store.o usage.o util.o -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -L./lib -llsof
   ./lib/liblsof.a: could not read symbols: Archive has no index; run ranlib to add one
   collect2: error: ld returned 1 exit status

(From OE-Core rev: 5c257ee55f9e0dd66fc1bbd6e9c08918e8820178)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:57:22 +01:00
Richard Purdie
1a9ad7f4d7 poky-tiny: eliminate mtrace rdepends
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:56:47 +01:00
Bruce Ashfield
6aff0d1575 meta-yocto/linux-yocto: fix routerstationpro build
The update from v3.0.24 to v3.0.32 removed a lock that the routerstationpro
BSP was using, and broke the build.

Updating the SRCREV to pickup a fix for the new lock and fix the board
build.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-13 11:42:07 +01:00
Richard Purdie
5ed855d12c openjade-native: Ensure we reautoconf the package
Currently since configure.in in is in a subdirectory, we don't reautoconf the
recipe. We really need to do this, to update things like the libtool script used
and fix various issues such as those that could creep in if a reautoconf is
triggered for some reason. Since this source only calls AM_INIT_AUTOMAKE to gain the
PACKAGE and VERSION definitions and that macro now errors if Makefile.am doesn't
exist, we need to add these definitions manually.

These changes avoid failures like:

----
| ...
| DssslApp.cxx:117:36: error: 'PACKAGE' was not declared in this scope
| DssslApp.cxx:118:36: error: 'VERSION' was not declared in this scope
| make[2]: *** [DssslApp.lo] Error 1
----

(From OE-Core rev: 6f0d830ed047f700702645d454054dfd6fea6f25)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 16:34:30 +01:00
Richard Purdie
7e62e24b6c cmd1.bbclass: Ensure ncurses is built and used for menuconfig tasks
Currently, the task just exits if something goes wrong. This adds the
ncurses-native dependency. It also adds a small delay before closing the
window so any messages displayed there can be seen.

Trying to get the kernel build system to correctly find and link with
our copy of ncurses is some kind of nightmare. I ended up having to add
it to HOST_LOADLIBES globally for this task which is rather nasty but I
couldn't find any other way.

[YOCTO #2513]

(From OE-Core rev: fe417e8a4d625c6933de72163d2fee52ac47f571)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 16:34:30 +01:00
Richard Purdie
cc96daa444 qt-x11-free.bbappend: Update to 4.8.1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 13:10:00 +01:00
Richard Purdie
dfcfe119ee qt4: Drop 4.7.4
We have 4.8.1 now and 4.7.4 is obsolete.

(From OE-Core rev: cb945328fe019c246c520904c02ca29d3798df07)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 12:59:16 +01:00
Mark Hatle
d7b7f13492 rpm: Ensure pkgconfig deps don't stray from the package being built
Force pkg-config to only look in the install directory, and not be
able to fall back to system pkg-config directories for resolution.

(From OE-Core rev: 7afcfeb1db00c800485b2f3a89dad1ed84083979)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:36 +01:00
Mark Hatle
9786663f9c package_rpm: Verify that the package manifests are not empty
An empty manifest will cause a failure condition.  We ensure that any install
actions occur only with a manifest larger then size 0.  Also ensure that padding
is added to the end of the manifest, instead of the beginning to enable this
size check.  (Padding is required for very small manifest files..)

(From OE-Core rev: 9b115181a8b10ec1eb8eac355405695f63e2e011)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:36 +01:00
Mark Hatle
f182f53cc3 createrepo: For compatibility w/ RPM 5.4.9 remove RPMVSF_NOSIGNATURES flag
The RPMVSF_NOSIGNATURES flag was removed from RPM5 - 5.4.9 as a result of
additional -requires- package validation to help protect from malicious
packages.  The createrepo "dump" script has been updated to no longer use
this flag.  This remains compatible with prior versions of RPM.

(From OE-Core rev: 24786ccbbdd1188aad4d8508e1757d38798b6f81)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:36 +01:00
Mark Hatle
43dd3512aa rootfs_rpm.bbclass: Update database configuration file
Move the creation of the database configuration files to just before we
perform the install actions.  This ensures they will exist even in SDK or
other non-target filesystem images.

(From OE-Core rev: 113e015afd46e46c9ba0413ca15f0316fa2eec24)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Mark Hatle
7fe15f02b5 rpm: Bump PR numbers on componets that require RPM
With the recent RPM uprev, libzypp, sat-solver and zypper should be
rebuilt to ensure they get the right BerkleyDB and rpmdb interfaces.

(From OE-Core rev: a57002c854fed27d9c06a360da7133637afec2d6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Mark Hatle
75c302ca80 package_rpm: Add capability to directly query packageorigin
Add functionality to RPM to directly query the packageorigin (path) from
the resolver database, instead of having to do this via an indirect method.

This results in a minor performance improvement.

(From OE-Core rev: a8ff3141fd78442bf328c9d3a489db88ad27486b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Mark Hatle
b81d788c79 ossp-uuid: Add oss-uuid package and RPM 5.4.9 integration
RPM 5.4.9 now strongly encourages you to have the ossp-uuid library available.

Add this recipe, and change RPM to use the uuid functionality.

(From OE-Core rev: 8a2b55c5b7c544ec15113bc21e5c62276449c9c3)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Mark Hatle
bc4a29df84 rpm: Upgrade RPM to 5.4.9
Beside upreving RPM, add necessary integration patches to libzypp.

Also change the configuration of RPM to support PACKAGECONFIG flags.
RPM is highly configurable, the default configuration is good for
minimal OE-Core use.

(From OE-Core rev: bf94103d4c532ffdfdcdcc6d27c9f65f7824f8f8)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Mark Hatle
b2381b63b9 rpm: Upgrade RPM to 5.4.8 (db to 5.3.15)
RPM 5.4.8 requires db 5.3.x, so both are upgraded together.

(From OE-Core rev: c5898ef3fc3820ff9c44bc5b1b16e5def64aa877)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 11:10:35 +01:00
Saul Wold
99822cd4a0 gnomebase: add GNOME_COMPRESS_TYPE variable
Upstream Gnome projects are starting to migrate to the .xz compress format,
so we need to add this to allow recipes to override the default of .bz2 as
the upstreams make the transition.

[YOCTO #2241]

(From OE-Core rev: 0eddc176e73e74d4b1a7d3163d65f619fcd4baf0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-12 10:58:22 +01:00
Bogdan Marinescu
60543b931d nasm: updated to 2.10.01
Tested by compiling syslinux

(From OE-Core rev: ba22e4fcf07eb8007f6d500908d503f1d3dbdd16)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:55:55 +01:00
Laurentiu Palcu
107b1b0471 menu-cache: upgrade to 0.3.3
Other changes:
	- licence MD5 for menu-cache.h has changed because some whitespaces
	  were removed;

(From OE-Core rev: fe1e9b40d5d0dd8d4daa2751f4c86db26936fc30)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:55:01 +01:00
Laurentiu Palcu
7d25922736 ethtool: upgrade to 3.2
Other changes:
	- the HOMEPAGE URL since project hosting chenged to kernel.org;
	- licence MD5 for ethtool.c has changed because a new copyright
	  line from Sun has been added: "Portions Copyright (C) Sun
	  Microsystems 2008"

(From OE-Core rev: ca1400b51bab2451bd6025a7b79ddabb1ac3d295)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:55:01 +01:00
Laurentiu Palcu
b2846ba4d3 tzdata: upgrade to 2012c
Other changes:
	- the licence header shifted one line down, hence the start/end lines
	  used to compute the MD5 sum were incremented by 1;

(From OE-Core rev: 2f1daa8e25bfc72d1fd75788a8e70b193accc0cb)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:55:00 +01:00
Laurentiu Palcu
287fabd66f freetype: upgrade to 2.4.9
(From OE-Core rev: 6dc49f00248ffb937de45c4d075907774b4cd8fc)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:55:00 +01:00
Bruce Ashfield
35c5a8ce73 linux-libc-headers: set default LINUXLIBCVERSION to 3.4
The 3.4 kernel is released, and is the default for qemu* builds, so
we can safely update the default libc-headers version to 3.4.

Built and booted for qemu*

(From OE-Core rev: 3e57510bb11b350fbe15cae2fb5bf851956061ac)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:53 +01:00
Jason Wessel
a166085ff3 v86d: Fix cross link using host-cross ar
If building on 32bit host and creating 64bit libraries, the target
package builds should not invoke the 32bit hosts's ar.  Specifically
you will get an error message like:

x86_64-linux-gcc  -m64 --sysroot=/opt/qemux86-64/tmp/sysroots/qemux86-64 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Llibs/x86emu v86_x86emu.o v86_mem.o v86_common.o  v86.o -lx86emu -o v86d
libs/x86emu/libx86emu.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status

(From OE-Core rev: 4bb926513084dfa6ebf5598a177239315530276e)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:52 +01:00
Jason Wessel
616fab3981 libnewt: Fix cross link using autoconf detected AR
If building on 32bit host and creating 64bit libraries, the target
package builds should not invoke the 32bit hosts's ar.  Specifically
you will get an error message like:

x86_64-linux-gcc    -m64 --sysroot=/opt/qemux86-64/tmp/sysroots/qemux86-64 -g -o test test.o libnewt.a -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -lslang
libnewt.a: could not read symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status

(From OE-Core rev: a02878d05e6b57f2455228785ea5f213a62ed976)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:52 +01:00
Paul Gortmaker
d411e7738d gitignore: add wildcard to match toplevel patch files
To support the basic workflow of trivial patches:

 git format-patch HEAD~.. ; git send-email --to foo@bar.com 0001-foo.patch

We don't want git status reporting on patches lying in the top
level dir in this case.

Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
(From OE-Core rev: f9c2d97d549e848127b741b967d90288c60f4d43)

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:52 +01:00
Khem Raj
abcc43634a augeas: Fix compilation failure
on uclibc we see this failure
too few arguments to function 'escape'

(From OE-Core rev: 4ea9c79cdcf0ffdc833b7a63e7a2b8388d6bf6e6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:52 +01:00
Khem Raj
2215a96717 task-self-hosted.bb,task-core-lsb.bb: Conditionalize pth inclusion
pth is not portable to uclibc therefore we need to exclude it for
uclibc based systems.

(From OE-Core rev: 6482f276533f3a177e07def9d616958d9bbc10c6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:52 +01:00
Khem Raj
429004f6a5 cmake.bbclass: Add OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS variables
In some cases we need to specify linker flags and right
now we do not have a way to communicate that to cmake
based systems. cmake defines CMAKE_C_LINK_FLAGS and CMAKE_CXX_LINK_FLAGS
for these needs. This patch therefore defines two local variables
namely OECMAKE_C_LINK_FLAGS and OECMAKE_CXX_LINK_FLAGS which
can be altered by recipes to tweak linker flags

(From OE-Core rev: 9e00a74749ba8e1cf0d15efe8e16af60b189e080)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
4b55c928c1 gcc-common: Replace use of TARGET_ARCH with TRANSLATED_TARGET_ARCH
TARGET_ARCH is poured into TRANSLATED_TARGET_ARCH
for gcc-cross family or gcc-crosssdk family
of recipes we have to check for TRANSLATED_TARGET_ARCH

(From OE-Core rev: 03f7322b1f4e1b1cf465a46cba3b82573384ab9e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
53981ad824 gcc-common: Enable hardfloat ABI when target is arm
We need to check target to be arm before enabling hard-float
ABI. There are crossdk targets or candian-cross targets built
for arm and we should not enable it for those class of recipes.

(From OE-Core rev: f48bb903218e14ba15dab452e8bb43ba25b9ea44)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
1a2f20d223 uclibc: Move to latest tip of master
This gets the important fix for eventfd syscall
handling which was exposed by glib 2.32 upgrade
without this patch core-image-sato would get stuck
and wont boot all the way through

Same patch is needed for 0.9.33 as well

(From OE-Core rev: 80fa01c6ea618ea32ab40d151d8be2347ede30b3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
2dcb935045 gnupg-2.0.19: Depend on npth for uclibc
(From OE-Core rev: 5bb9af52f59b91ff979d06178eeadbf91907bbe1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:51 +01:00
Khem Raj
fb8fabb8ed gpgme: Depend on npth for uclibc
(From OE-Core rev: 854b4de95fe3a25a877506d762092962652b6770)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:50 +01:00
Khem Raj
de04115d13 npth: Add recipe
npth is modern version of pth
gnugp 2.1 will drop pth in favor of npth

npth works with uclibc too whereas pth does not

(From OE-Core rev: 1b6bebf02be5bb5879c06d6f79b434ee054717a7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:50 +01:00
Khem Raj
f6a4d74d8b libtool: Let -fstack-protector passed to link step
linker should add -lssp to linker cmdline when
-fstack-protector therefore add this knowledge to libtool
otherwise packages will fail to link

(From OE-Core rev: d1756ff379ab310bfa6323d8643b7e9d764f94bf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:50 +01:00
Khem Raj
1988bc0ad4 pth: Mark incompatible with uclibc
pth does not work with uclibc

(From OE-Core rev: b7c12dd4424f0702c21b1b856af4578d9a4abc90)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:50 +01:00
Khem Raj
00330a3ad0 binutils_2.22: Backport to fix bogus textrels
This is reported by prelinker which does not
go well with textrels.

(From OE-Core rev: 7b1caeca8e5c0dd066bb940fe6d2dff4d22bf816)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 13:49:49 +01:00
Tom Zanussi
665f908387 linux-yocto/3.2: fix meta SRCREV typo
Remove a stray character at the end of the meta SRCREV.

(From OE-Core rev: 009f7734e880084a5b01d8377cb006dc82f1d278)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-11 12:09:21 +01:00
Kang Kai
0612cf3fcb hob2: create a standalone deploy image tool
[Yocto 2388]

Create a deploy image tool using the existing dialog including
DeployImageDialog and ImageSelectionDialog.

This tool writes bootable images to USB devices, and it can be run
directly without hob.

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:43 +01:00
Kang Kai
7828e9eee2 hob2: update DeployImageDialog for seperated tool
Part of [Yocto 2388]

Update class DeployImageDialog to get ready for a standalone deploy
image tool. The standalone tool can be run directly without hob, and
add a button to select image file. So adjust the layout of
DeployImageDialog.

(Bitbake rev: 399cfbaf36ccd4b934e25f915e64b87f32a3eb82)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:17 +01:00
Kang Kai
87ce7bdfd5 ui/crumbs/hig.py: check deploy process return value
Update function response_cb of DeployImageDialog to get deploy process
return value. According the return value tell user that deploy image
successfully or not.

(Bitbake rev: f78f6d43a68e0f1dc4d3e4164eed453fcb9c22a8)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:17 +01:00
Kang Kai
0c9927865c ui/crumbs/hig.py: remove extra spaces
Remove extra spaces at the end of line or blank line.

(Bitbake rev: 70b75a05a806fecf8be15b9ba66fec2eb87dcce4)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:16 +01:00
Kang Kai
0b6bb93558 ui/crumbs/hig.py: fix run time error
Commit 094742bed2 re-implement the
function popen_read(). If there is no USB device, it crashes with
"ExecutionError: Execution of 'ls /dev/disk/by-id/usb*' failed with exit
code 2:"

Replace popen_read() way with glob module to get the USB devices.

(Bitbake rev: 0c43fe72e3c6a12ac19173d8cbbad81af21c2d85)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:16 +01:00
Kang Kai
ac7b96420a ui/crumbs/utils.py: import module bb
When I try to call function which_terminal() of utils.py directly,
it complains NameError: global name 'bb' is not defined

So import module bb

(Bitbake rev: 9e370d9b1022112be2ac8f73feb182b1bba179b0)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:16 +01:00
Liming An
574b5ecfa5 Hob: fixed the index issue when set actived item for base image combo
The combo item index dosn't be increased as the insert a dummy item, when
execute the upadate base image combo operation.

[YOCTO #2500]

(Bitbake rev: 59e19634a84fcb4c34b92cdcf7a9ea807c9abb63)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:16 +01:00
Liming An
e91f1e28bc Hob: Change 'run image' work flow and image detail screen as ui design
Added the qemu_image_kernel selection view box to image detail screen GUI, and
changed the 'run image' button clicked work flow.

[YOCTO #2155]

(Bitbake rev: d548eb8a03cfba5c64c018898972bc0a0bdb280c)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:15 +01:00
Shane Wang
c0b92702d3 Hob: Interpret some special characters for label markup
Interpret some special characters for label markup, such as &, <, >, etc.
Otherwise, the message dialog can't show them, and worsely, it makes the
whole message blank.

[Yocto #2492]

(Bitbake rev: fb82f6eb5405274f702bd6d64cbe995fd4b74145)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:15 +01:00
Shane Wang
25785d8ddf Hob: add versions for compatibility check between Hob and templates
If a user uses a very old version of Hob and does some work,
later on he/she upgrade to the latest version of Hob, because
Hob may change the settings (add more config option into the Adv.
Settings dialog or remove some), then the old templates are not
loadable and workable for the new Hob.

Even though the user hasn't save any template before, the Hob could
remember the settings between Hob sessions as a default template,
(Remember we have a bug to ask Hob remember between sessions?),
the new Hob will also load the default template.

By adding versions, we can easily to fix the issue. If the versions
don't match, Hob will remove the old default template first and
initiate a new build, which has very very little impact on the user.
(Just can't remember from the previous session after the user upgrades
to a new and incompatible Hob)

[Yocto #2492]

(Bitbake rev: d5dd9a7af9d35c588528f9937430d1ef5de216c6)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:15 +01:00
Shane Wang
efd977010e Hob: lower the limitation for PyGTK
(Bitbake rev: d44af0185985cc46ba07a82875bbb4cd4a6d3dec)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:15 +01:00
Liming An
9703dcb398 Hob: fixed a definition not match issue when click choose directflb in package page
[YOCTO #2526]

(Bitbake rev: 3c285d386a4ca0a86798feb0c506673a2a312727)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:14 +01:00
Liming An
c8c8d75f23 Hob: fix entry of recipe page can't be edited in case after clicked clear button
cancel some inviable code and fixed this issue

(Bitbake rev: d2e2c917e4a93ec7fd344a2c703d526ce7b690cf)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:14 +01:00
Liming An
6ac1545453 Hob: clear the repeated function get_kernel_file_name
there are a repeated function in builder.py and imagedetailspage.py,
so combine them to one.

(Bitbake rev: 4bada20cd244a2dd6d72acd38f0cadc90453e60b)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 12:13:14 +01:00
Bruce Ashfield
7f806be2b0 meta-yocto: make 3.4 the default kernel for qemu*
The 3.4 kernel is available and has been built and booted on
all the qemu machines, so it now becomes the default for the
qemu machines, and machines that don't explicitly set a preferred
version.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
70d7e13b14 linux-yocto/meta-yocto/3.2: fri2 and chiefriver machine updates
Picking up the oe-core commit:

    Bumping the 3.2 SRCREVs to pickup the following configuration changes for
    the new chiefriver BSP and the existing fri2 machines:

     5b4c9dc fri2: update base config
     cdfbb50 fri2: add usb-mass-storage to standard and preempt-rt
     3c1af06 fri2 update: drop NETDEVICE, e1xxx, usb-mass-storage, add iwlwifi feature
     26a4d79 iwlagn: Correct a comment typo
     ade9c57 iwlwifi: Add a feature for iwlwifi
     571b6cb fri2: Configuration update (usb, wifi, i2c)
     b257485 meta: add tmp/rc6 feature
     24c6494 chiefriver: create initial BSP infrastructure

    All branches are also updated with the following fix:

      1ce6700 efi: Add patch to fix 32bit EFI service mapping (rhbz 726701)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
77d30c7174 linux-yocto/meta-yocto: introduce 3.4 bbappend
Creating the initial meta-yocto bbappend for the 3.4 kernel.
The routerstationpro and beaglboard are not initially marked as
compatible since full testing has not completed. Future updates
will remove this restriction.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
5010afd2e0 linux-yocto/meta-yocto: add machine aliases for yocto BSPs
To avoid mapping machine names to kernel machine names in recipes,
we can define multiple KMACHINE names for a single in tree board.
This allows the tools to match a board description to multiple
different MACHINEs.

As a result, we can remove the explicit KMACHINE mappings from
the linux-yocto recipes and allow the KMACHINE=${MACHINE} default
to handle mappings. Individual recipes an bbappends can override
this as required.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
b6ceefc36e linux-yocto/meta-yocto: remove 2.6.37 bbappend
With the introduction of the 3.4 kernel, the 2.6.37 kernel recipe is
removed, so we'll also remove the meta-yocto 2.6.37 bbappend.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
1c33c54845 linux-yocto/meta-yocto: update to v3.2.18
Updating the 3.2 linux-yocto SRCREVs to pick up the v3.2.18
-stable release.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
c3d7493f97 linux-yocto/meta-yocto: update to v3.0.32
Updating the kernel SRCREVs to pickup the v3.0.32 -stable release.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-06-08 11:57:50 +01:00
Bruce Ashfield
27c051f006 kern-tools: anchor KMACHINE test
Updating the kern-tools SRCREV to pick up the following fix:

    Out of tree feature descriptions (.scc files) take two forms: normal
    features and BSP descriptions.

    A normal feature is detected and added to the end of the current machine
    being processed. During tree processing, it's configuration and patches
    will be applied.

    A BSP description on the other hand must be matched based on three
    critera (which are in the .scc file via "define <foo>"):

      - machine
      - kernel type
      - architecture

    Since features that define machines are only explicitly added, they
    are removed from the list of features that should be automatically
    added.

    The criteria for removing them from the auto-add list is the
    definitions found in the .scc file. The existing check was simply
    for KMACHINE anywhere in the file. This meant that a conditional
    or even a comment containing that phrase would exclude a file.

    Properly anchoring the KMACHINE test to "^define.*KMACHINE" fixes the
    problem of overly agreesive exclusions.

(From OE-Core rev: 75a973328d50ef3c007edb7a471ea77fb97911ea)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:32 +01:00
Bruce Ashfield
7f44713308 linux-yocto/3.0: add cedartrail kernel features
Updating meta to move Kernel Features out of the BSP and add to
the Cedartrail Machine branch.

(From OE-Core rev: e44b616309dd8e442c7cd13c4c0b1a4ee41ac40f)

Signed-off-by: Kishore Bodke <kishore.k.bodke@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:32 +01:00
Bruce Ashfield
3290146593 linux-yocto/3.2: fri2 and chiefriver machine updates
Bumping the 3.2 SRCREVs to pickup the following configuration changes for
the new chiefriver BSP and the existing fri2 machines:

 5b4c9dc fri2: update base config
 cdfbb50 fri2: add usb-mass-storage to standard and preempt-rt
 3c1af06 fri2 update: drop NETDEVICE, e1xxx, usb-mass-storage, add iwlwifi feature
 26a4d79 iwlagn: Correct a comment typo
 ade9c57 iwlwifi: Add a feature for iwlwifi
 571b6cb fri2: Configuration update (usb, wifi, i2c)
 b257485 meta: add tmp/rc6 feature
 24c6494 chiefriver: create initial BSP infrastructure

All branches are also updated with the following fix:

  1ce6700 efi: Add patch to fix 32bit EFI service mapping (rhbz 726701)

(From OE-Core rev: 0bef6360305c7d8cfa48e8132b3eeb2ac1b4236e)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:31 +01:00
Bruce Ashfield
d0402c6f58 linux-yocto: add 3.4 recipe
Introducing the 3.4 kernel recipe. At this point there are three
supported kernel 3.4, 3.2 and 3.0.

Build and boot tested on qemux86, qemux86-64, qemuarm, qemumips and
qemuppc

(From OE-Core rev: f85c3f727fd326fe6dd2f2c2b68c692515867737)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:31 +01:00
Bruce Ashfield
9cf8501444 linux-yocto: add machine aliases for yocto BSPs
To avoid mapping machine names to kernel machine names in recipes,
we can define multiple KMACHINE names for a single in tree board.
This allows the tools to match a board description to multiple
different MACHINEs.

As a result, we can remove the explicit KMACHINE mappings from
the linux-yocto recipes and allow the KMACHINE=${MACHINE} default
to handle mappings. Individual recipes an bbappends can override
this as required.

(From OE-Core rev: d3dc05a4b808136876cb257a568737abfaceeadd)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:31 +01:00
Bruce Ashfield
b0789103af linux-yocto: remove v2.6.37 recipe
With the introduction of the 3.4 kernel recipe, the 2.6.37 kernel
recipe is removed, keeping the supported list at three kernels.

(From OE-Core rev: 96ae45be42dcab338e9f8e3aebd2217146a79f87)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:31 +01:00
Bruce Ashfield
b047060cda linux-yocto/3.0: update to v3.0.32
Updating the 3.0 kernel SRCREVs to integrate the v3.0.32 -stable
release.

(From OE-Core rev: be8b5332ddc8e3e1a1fb8fb119c5ab5c7c290c99)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:30 +01:00
Bruce Ashfield
5af9811ef7 linux-yocto/3.2: update to v3.2.18
Updating the 3.2 kernel SRCREVs to pickup the -stable update
to v3.2.18.

(From OE-Core rev: 11f2e4b0dcfc66cd9982471173ba42c6e31b470a)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:30 +01:00
Bruce Ashfield
2da91914c9 kern-tools: remove unused code, meta branch and directory assumptions
Updating the kern-tools SRCREV to pick up fixes that remove unused
code, transition code (tree format changes) and to remove assumptions
about branch and directory naming.

There are no user visible changes with this update, but the plumbing
changes will be used in future updates for more generalized support.

The commit details are below:

 Author: Bruce Ashfield <bruce.ashfield@windriver.com>
 Date:   Fri May 11 12:13:12 2012 -0400

    kgit-publish: remove --remote option

    The ability to publish and automatically push a repository was
    never used, and is error prone. The complexit isn't needed in
    the script, so removing it is the best option.

    An explicit push after tree publication is suggested, or a
    wrapper script (specific to a particular infrastructure) around
    this script.

    (From OE-Core rev: 5b1a096211ebeb8dac4f1a39d96ae2f9a3d00634)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

 Author: Bruce Ashfield <bruce.ashfield@windriver.com>
 Date:   Fri May 11 12:04:09 2012 -0400

    kern-tools: remove unused code, scripts and transition code

    The period of supporting old trees with a different meta
    branch name and directory structure are gone. So the cleanup
    and removal of the old structure can be completed.

    The meta branch and directory are now controlled via command line,
    or via the KMETA environment variable. No testing and conditional
    processing of the tree are required.

    Additionally, the generate_cfg script is no longer used, or is the
    branch conditing code in createme. So they can be safely removed
    from the tools and repository.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

 Author: Bruce Ashfield <bruce.ashfield@windriver.com>
 Date:   Thu May 10 12:18:19 2012 -0400

    kern-tools: remove meta tag and directory assumptions

    During repository sanity checks (createme) and during the
    checkpoint process, there were several assumptions about the tree
    that either relied on a tag, or a particular directory name.

    With this set of changes, simply passing the meta branch name is
    enough to sanitize and restore the checkpoint. If no meta branch
    name is passed, the default of 'meta' is used for both the branch
    and meta data directory name.

    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:56:30 +01:00
Robert P. J. Day
ca0ce36173 README: Correct documentation URL in top-level README file
even though redirection takes care of this, might as well be
accurate.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
[elizabeth.flanagan@intel.com: Fixed up submitted patch as it was corrupt as sent]
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:46:52 +01:00
Richard Purdie
e4f0176b67 gettext/shared-mime-info: Add missing patch upstream status field
(From OE-Core rev: d87ffe7bf7812c8732e792ee8720fe1626813a1d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:23 +01:00
Robert Yang
ea2a85035a rootfs_rpm.bbclass: save rpmlib rather than remove it
The rpmlib was removed when images that add
"remove_packaging_data_files" to ROOTFS_POSTPROCESS_COMMAND, which would
make the increment rpm image generation doesn't work in the second
build, since list_installed_packages would get incorrect value in the
second build, move the rpmlib to ${T} rather than remove it, and move it
back when INC_RPM_IMAGE_GEN =1.

[YOCTO #2440]

(From OE-Core rev: c30e79510c06701f10f659eedaa0fe785538ac17)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:23 +01:00
Robert Yang
1e71397c23 apt 0.7.14: do_compile failed with gcc 4.7
apt do_compile failed with gcc 4.7:

deb/deblistparser.cc: In member function 'virtual short unsigned int debListParser::VersionHash()':
deb/deblistparser.cc:212:13: error: redeclaration of 'char* I'
deb/deblistparser.cc:202:22: error: 'const char** I' previously declared here

Backport the patch from the upstream would fix the problem, both target and
native apt need it.

[YOCTO #2488]

(From OE-Core rev: fae7fc49052720f037bac128084851c09d420381)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:22 +01:00
Robert Yang
9e7c915114 apt-get 0.7.14: hangs at runtime
This patch had a little problem, it made a infinite loop:

for (K = CmdL.FileList + 1; *K != 0; J++)

But the value of "K" will nerver change, so the apt-get hangs, revert
this patch first, and will fix the problem in another patch.

Note: Increment the PR from 11 to 12

Revert "apt: Fix a latent bug exposed by gcc 4.7"

This reverts commit 9d526462fe.

[YOCTO #2488]

(From OE-Core rev: 1e381c83396a65c6c93b8fc1f4e35564c52bd042)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:22 +01:00
Xiaofeng Yan
9a519998f4 archiver.bbclass: Reduce some duplication for function get_licenses
The content to modify this bbclass is as follow:
- Use the existing functions to get license as a directory instead of
  rewriting it for avoiding code duplication.
- Use SPDXLICENSEMAP to map licenses

[YOCTO #2473]

(From OE-Core rev: 31bee6e7b0a23efc1555ab739ef10041803d5bb1)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:22 +01:00
Ross Burton
5be715a6ac connman: Document the ACL-breaking sed
(From OE-Core rev: 497234875b3a93def8ada2cff99d064f3a11d711)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:22 +01:00
Ross Burton
554afde11f connman: respect the 3g feature and enable/disable ofono support
[YOCTO #2357]

(From OE-Core rev: e510f6947f9e14c408b0e5e4f10cea3353b271c2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:21 +01:00
Mark Hatle
17207058b2 insane.bbclass: Make ldd exec_prefix error reporting easier to read
Remove the long obtuse sysroot path from the ldd output.

Make the error message significantly easier to read and understand.

Old Style:
WARNING: QA Issue: keyutils: /home/mhatle/git/oss/oe-core/build-i386/tmp-eglibc/work/i586-oe-linux/keyutils-1.5.5-r1/packages-split/keyutils/sbin/request-key links to something under exec_prefix
WARNING: QA Issue: ldd reports:         libkeyutils.so.1 => /home/mhatle/git/oss/oe-core/build-i386/tmp-eglibc/sysroots/qemux86/usr/lib/libkeyutils.so.1 (0xdead1000)
        libc.so.6 => /home/mhatle/git/oss/oe-core/build-i386/tmp-eglibc/sysroots/qemux86/lib/libc.so.6 (0xdead2000)
        /lib/ld-linux.so.2 => /home/mhatle/git/oss/oe-core/build-i386/tmp-eglibc/sysroots/qemux86/lib/ld-linux.so.2 (0xdead3000)

New style:
WARNING: QA Issue: keyutils: /sbin/request-key, installed in the base_prefix, requires a shared library under exec_prefix (/usr): libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0xdead1000)

(From OE-Core rev: 1583a8e2db6dd4843ff45acee458d4924f7d6ced)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:21 +01:00
Joe Slater
570c54262a gettext: install libgettextlib.a before removing it
In a multiple job build, Makefile can simultaneously
be installing and removing libgettextlib.a.  We serialize
the operations.

(From OE-Core rev: 2750546b2152eecdbb37e963a2495383f6944184)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:21 +01:00
Joe Slater
5094da3232 shared-mime-info: fix build race condition
The definition of install-data-hook in Makefile.am leads
to multiple, overlapping, executions of the install-binPROGRAMS
target.  We modify the definition to avoid that.

(From OE-Core rev: 6fef8f73143fdeed6da15444c11bce9a8b35668b)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:21 +01:00
Mark Hatle
3792f77128 shadow-native: Disable nscd support
Disabling nscd support prevents error messages when shadow utilities attempt
to trigger nscd to reload.  This does nothing unless the user is root, and even
if they are root, it's the wrong action to perform when creating a target fs.

(From OE-Core rev: eb6fb917b7a6745b296c8ae0a5bf66f498bf3576)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:20 +01:00
Song.Li
d56659e0a3 groff: Fix build on Fedora 17
Generally distros keep perl at /usr/bin/perl
But Fedora 17 also has /bin/perl,
this causes groff_1.20.1 build to put perl
interpreter path as /bin/perl
But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       bin/perl is needed by groff-1.20.1-r1.ppc603e

(From OE-Core rev: 79fc557683d4eeadaebeb00dfba53762956e4910)

Signed-off-by: Song.Li <song.li@windriver.com>

Sync up with the do_install_append_virtclass-native chunk.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:20 +01:00
Jesse Zhang
c9c7fe8c2b beecrypt: disable java
If java is installed on host, beecrypt will attempt to use it.

(From OE-Core rev: aa6e085b6b5114729f0aacd693d028d21858146f)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:20 +01:00
Scott Garman
64791642d4 runqemu-ifup: enable arp proxying
This allows core-image-sato to access the WAN.

Thanks to Dexuan Cui for proposing this fix.

Fixes [YOCTO #2329]

(From OE-Core rev: d294b1bddece429f2639676ddc97d2896fc58916)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:20 +01:00
Tom Zanussi
1a749e1b89 gnupg: disable CCID driver
The CCID driver driver is apparently unnecessary, so disable it.

Also remove the associated libusb dependency, since that won't be
needed either.

According to Scott Garman <scott.a.garman@intel.com>:

I'd just note that the CCID smartcard reader is a specific piece of
hardware that is unlikely to be used in a majority of our use cases.

(From OE-Core rev: 18be6fbde8fc9a6546ee865a4c43bd1eafa81a3c)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:19 +01:00
Tom Zanussi
038874c865 gnupg: add libusb to DEPENDS
gnupg apparently depends on libusb:

| error: Failed dependencies:
| 	 libusb-0.1-4 >= 0.1.3 is needed by gnupg-2.0.18-r1.core2

So add libusb to gnupg DEPENDS.

(From OE-Core rev: fd79e09c90e51a8f454f0fdd837c5141b9eadbde)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:19 +01:00
Cristian Iorga
47e954e821 telepathy-glib: update to 0.19.0
(From OE-Core rev: 55bbd54630d7213bb7a2927fedef9dbcff23f250)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:19 +01:00
Christopher Larson
61e06d3464 task-core-basic: drop portmap
Both rpcbind and portmap are RPC port mappers. Having both is redundant. Chose
rpcbind over portmap as rpcbind supports ipv6, nfs4, and builds without the
glibc rpc headers, which have been obsoleted in glibc 2.14.

(From OE-Core rev: f63add40c6bdfb3a19e59ac28f7d2ae5597f5bfd)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:19 +01:00
Christopher Larson
f822034e4f rpcbind: add and use startup script, move binaries
- Add init script from debian, tweaked for us
- Move binaries from bindir to sbindir, as debian does

(From OE-Core rev: 8576575ce9a1be8f7bec4e7c018d9be5c3b247df)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:18 +01:00
Andreas Müller
fa3b18efec systemtap: Unbreak build for systems with nss headers installed
* discussed on [1]
* patch sent to systemtap [2]

[1] http://lists.linuxtogo.org/pipermail/openembedded-core/2012-June/023377.html
[2] http://sourceware.org/ml/systemtap/2012-q2/msg00202.html

(From OE-Core rev: bd17907884e3a1e1d711125a4b8def5263e97edb)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-08 11:43:18 +01:00
Cristian Iorga
df8f55a919 ltp: Add patch to correct failing build
ltp makefile does not interpret correctly the result of git describe
command and assumes that it is working with a git repo, while in fact
working with a source code archive.
Added a patch to corect makefile system.

(From OE-Core rev: 13e52fafae0fb06b26d179a5cac6898babbadc51)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:05:00 +01:00
Denys Dmytriyenko
a1925696c4 pulseaudio: fix typo in the patch name, pulseaudo -> pulseaudio
No PR bump is needed.

(From OE-Core rev: f7a1fdfd82be60b92f4aa4a53fdae3192d1cec8b)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:05:00 +01:00
Elizabeth Flanagan
ae6d342b8d lsbinitscripts: Missing popt DEPENDS
Missing DEPENDS causes build to fail.

(From OE-Core rev: 44634755289ef6f10da5bdd46d45a2ef18626f20)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:05:00 +01:00
Elizabeth Flanagan
885e1f7e68 license.bbclass: optimize pkg runtime data
This fixes an ugly way I was trying to find pkg runtime
data for package and license manifest creation.

rootfs generation times for core-image-minimal:

Prior to patch
real	0m41.570s
user	1m40.466s
sys	0m6.768s

With patch
real	0m27.527s
user	0m9.833s
sys	0m3.496s

(From OE-Core rev: 664bbf3207c229eef5ef94a08713a652f33a8466)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>

Conflicts:

	meta/classes/license.bbclass
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:04:59 +01:00
Elizabeth Flanagan
f25a6c09da license.bbclass: Adding PV to package.manifest
Per request, adding the package version to the package manifest
file.

(From OE-Core rev: bf216369f3131ad38c0b2b92620e4805ca9eecb9)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:04:59 +01:00
Radu Moisan
7f713b64bf dbus: update to version 1.4.20
Unstable version 1.5.12 also supported

(From OE-Core rev: 1a5ae9b47c6294f1969a6a36f9ffddc39a707849)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:04:59 +01:00
Ross Burton
e618834b30 connman: just give xuser the extra rights it needs 2012-06-05 23:04:34 +01:00
Xiaofeng Yan
34f819e22e archiver.bbclass: Improve the usability for the archiver classes
The usability of the archiver classes can be improved, beyond the
simple addition of default values for the variables. A user could
well inherit just archiver rather than the individual useful classes,
and not realize it will do nothing.

[YOCTO #2472]

(From OE-Core rev: ce91f495e0c4ef3bf53ee8b2ea570061da38e14f)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:32 +01:00
Robert Yang
09a7dc9a46 generate-manifest-2.7.py: replace os.popen with os.unlink
The os.popen function would fail (more or less) silently if the executed
program cannot be found, and here what we need is os.system not os.popen
since it doesn't use the return value, use os.unlink() and ignore
exceptions from it would be better as Chris suggested.

[YOCTO #2454]

(From OE-Core rev: bc9f7d7b7eda1c45ad1aaee469ebe28ee1c0c96b)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:32 +01:00
Christopher Larson
d068a7577c external-sourcery-toolchain: forcibly create usr/lib
If the usr/lib directory doesn't exist, the toolchain can fail to even try to
find crti.o in a completely different directory. This causes a failure for the
case where baselib is lib64.

(From OE-Core rev: 3c368f4c989bee68953b6d0fbf2adc44f97cc100)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:32 +01:00
Christopher Larson
b90cc2ac4a tcmode-external-sourcery: pass -msgxx-glibc for x86
This is needed to work around an issue with the toolchain search paths. It can
pick up the wrong features.h without it, it seems, even with the system32
symlink in the oe sysroot. Investigate this further in the future.

(From OE-Core rev: fb94ed0eb11b2efc1d814b80a2a7c99b29e746b3)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:32 +01:00
Christopher Larson
286a4904d2 external-sourcery: extract src and dest sysroot paths from gcc
Rather than hardcoding the multilib path in a map, and hardcoding dest sysroot
symlink creation in a hook, now we just use -print-sysroot for both, and pass
the appropriate multilib args to the toolchain for particular tunes.

(From OE-Core rev: b9a9c28f7052884b2a6a33cf73cb6d7e2e3d11ff)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:32 +01:00
Xiaofeng Yan
9205cba286 task-core-lsb: Add another initscripts to an lsb image
Initscripts with stronger functions will replace the simple one,
which will avoid error when some packages need functions which could
be absent in the simple initscripts.

[YOCTO #2133]

(From OE-Core rev: b0d45a7bca3e448ceb4802540d42972a625997f8)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:31 +01:00
Xiaofeng Yan
6e416742ff lsbinitscripts: Patch file functions for confirming to an lsb image
Add the condition judgment to functions for avoiding to print error
information when system start up at first.

[YOCTO #2133]

(From OE-Core rev: 4b829c42ffaa878537fa2005e4d80324515a5ba8)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:31 +01:00
Xiaofeng Yan
d32f9004f8 lsbinitscripts: Add initscripts to enhance init functions in an lsb image
The version of initscripts has more functions than the simple.
There could be some errors for current initscripts when running
some programe because of absent some functions provided by initscripts.

[YOCTO #2133]

(From OE-Core rev: ca60a9092e4131d7029c77f2ed7842eea928abe5)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:31 +01:00
Laurentiu Palcu
718779e257 directfb-examples: upgrade to 1.5.3
(From OE-Core rev: b7f4a43e96ccf8982bab0b7df2eff0f170486e2a)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:31 +01:00
Laurentiu Palcu
96c65bdcd3 directfb: upgrade to 1.5.3
Also, backported a couple of patches from upstream that fix some
compilations issues for ARM and PPC.

(From OE-Core rev: 8acb86dfdae782c7627e36e23e1bcb703f8c79db)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:30 +01:00
Xin Ouyang
d0fac332cf cpan.bbclass: Fix config error while patches to Makefile.PL
If there is a patch to Makefile.PL, a Makefile.PL but no Makefile
will be placed in ${B}/.pc/xxx.patch/ after do_patch.
And no Makefile will be generated for *this* Makefile.PL.
While do_configure, the original code tries to sed Makefiles
matching with each Makefile.PL in {B}, so this would fail.

(From OE-Core rev: 7c99105d70a16aa9e42429224abed28743e627b2)

Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 22:56:30 +01:00
Xiaofeng Yan
b1f7bb912f local.conf.sample.extended: Change the usage about arhiver.bbclass
Change the usage about arhiver.bbclass due to the improvement for
usability of archiver.bbclass

[YOCTO #2472]

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
2012-06-05 22:54:46 +01:00
Robert Yang
0efe773c17 kernel.py: replace os.popen with subprocess.Popen
Replace os.popen with subprocess.Popen since the older function would
fail (more or less) silently if the executed program cannot be found

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2454]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-06-05 22:49:19 +01:00
Scott Rifenbark
de4cdfd6bc documentation/kernel-manual/kernel-how-to.xml: Updated to kernel 3.4
According to Bruce Ashfield, we will be using linux-yocto-3.4.  So
I changed the linux-yocto-3.0 strings to linux-yocto-3.4.

(From yocto-docs rev: 23df0251b04ed7c31ad2297a4a7870861554beef)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:55 +01:00
Scott Rifenbark
614308eef0 documentation/dev-manual/dev-manual-kernel-appendix.xml: Comments removed
I removed two larges sections of old comments.

(From yocto-docs rev: df1b08b621f2b449c7575b86ec90c40f1606c43d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:55 +01:00
Scott Rifenbark
69536d42f1 documentation/dev-manual/dev-manual-kernel-appendix.xml: Updated Note
Updated a note to include information about what happens if you do a
kernel build and have your machine compatible with every possible
kernel.  This extra information is useful for rational.

Reported-by: Bruce Ashfield <bruce.ashfield@windriver.com>
(From yocto-docs rev: e631ec44be49d456add6a53ff3db89016d187370)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:55 +01:00
Scott Rifenbark
a23636b6aa documentation/yocto-project-qs/yocto-project-qs.xml: pre-built example fix
The example showing how to use pre-built images, the toolchain, and
filesystem was off a bit.  I changed some wording to indicate using the
.ext3 filetype of the filesystem.  Previously it talked about expanding
the tarball version but the example has been changed to use .ext3.
Also, the environment setup file has been mis-named forever.  It should
have i586 in it and not i686.  And, finally, the image name does not
have a release number as part of the name.

(From yocto-docs rev: c9953c9bb716ae5be183020c5143152226bf1de5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:54 +01:00
Scott Rifenbark
230e325582 documentation/dev-manual/dev-manual-bsp-appendix.xml: .bbappend example
The linux-yocto_3.2.bbappend example was out of date.  There is no
longer a kernel features statement in the last part of the section.
Only COMPATIBLE_MACHINE, KMACHINE, and KBRANCH remain.  I removed
the fourth one from the text description and the example code.

(From yocto-docs rev: 1a6d3cad48f1b52e5b029434ce655940c6024694)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:54 +01:00
Scott Rifenbark
31bfebd8c9 documentation/dev-manual/dev-manual-bsp-appendix.xml: Added note
Added a note telling the user that the commit ID strings in the
example might not match the actual commit ID strings found in
the .bbappend file.

(From yocto-docs rev: 5cb845361c8ce8b60dcafc28d1bc01d54badd67a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:54 +01:00
Scott Rifenbark
ad93aae260 documentation/yocto-project-qs/yocto-project-qs.xml: Minor wording changes
(From yocto-docs rev: f9547a52d97331f3e78b071a4293b9dbbc18480c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:54 +01:00
Scott Rifenbark
fcea677c80 documentation/poky-ref-manual/ref-images.xml: images defined
Fixes [YOCTO #2459]

I provided better definitions to the -dev and -sdk image types.
They now call out host development and target development.

(From yocto-docs rev: bd2c0db27d7eb038931550a96752f961ea6b1d9c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:54 +01:00
Scott Rifenbark
0bf437b2b2 documentation/poky-ref-manual/ref-images.xml: Updated core-image-sato-dev
The description had reference to a toolchain, which is evidently not
true.  I have re-worded the description so that it does not mention
inclusion of the toolchain.

Reported-by: Wolfgang Denk <wd@denx.de>
(From yocto-docs rev: 5a918d7d20133b85badd082c81cfe4af18709316)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:53 +01:00
Scott Rifenbark
a13ad005a3 documentation/adt-manual/adt-eclipse.xml: Added not and updated version
Fixes [YOCTO #2445]

Added a note telling the user not to install Eclipse from the distribution's
package repository but to rather be sure to install from the official
Eclipse download site.

Also, changed the tarball name from having a "3.7.1" in it to the
recent version of "3.7.2".

Reported-by: Lianhao Lu <lianhao.lu@intel.com>
(From yocto-docs rev: f50d0071e39a5e8424633a55ab2c3fdc75e9686d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:53 +01:00
Scott Rifenbark
3a062dde67 documentation/dev-manual/dev-manual-kernel-appendix.xml: Kernel example fixed
Due to a bug (2256) the example that changes the kernel configuration
through menuconfig did not work.  I have re-written the section
to now start with the default behavior of CONFIG_SMP=y and then
have the user change the configuration to where it is not set.

The changes include the reversing of the flow and the work-around
needed due to bug 2256.

(From yocto-docs rev: 6fa9eee12ed83f81470beb9792fb4fc1c5104f69)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:53 +01:00
Scott Rifenbark
0957740660 documentation: Added manual history for 1.3
Added entries for the Manual History table for upcoming 1.3 docs.

(From yocto-docs rev: 430b384035593cd05c4f286e20c01f0fe72da8ec)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:53 +01:00
Scott Rifenbark
b24d15ccf9 documentation/poky.ent: Updated for latest builds
To publish manuals for the "latest" set of docs, some variables
need changed.  DISTRO is 1.3, DSTRO_NAME is 1.2+snapshot, and
POKYVERSION is 8.0.

(From yocto-docs rev: e5a21791b4e588631910f102b660c1709ab7a0f4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:52 +01:00
Paul Eggleton
9286a8764e documentation/yocto-project-qs/yocto-project-qs.xml: Setup changes
Remove mercurial as this is no longer needed.
linuxdoc-tools was mentioned twice in the CentOS list.
We no longer support Fedora versions older than 15 so remove this note.

This commit applies to 1.2, 1.2.1, and 1.3.

(From yocto-docs rev: 4a7e8cc3d69d5c2f9aacedc5f7e2ff9657ef850f)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:16:52 +01:00
Zhai Edwin
348da93e28 webkit-gtk: Use glib as unicode backend to avoid browser crash
webkit-gtk depends on ICU for the unicode, but ICU is not safe when build and
target system owns different endian. ICU's community is not responsive to make
a patch for this, so glib is used as work around here.

[YOCTO #1570] got fixed

(From OE-Core rev: e3113827810e98eb1b012f0b280fb917199704c1)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:38:02 +01:00
Paul Eggleton
3e9f270a47 bitbake.conf: set an exclusion list for varflags in checksums
Set BB_SIGNATURE_EXCLUDE_FLAGS, which is used by the new varflag
checksum code in BitBake. The list is intended to cut out most of the
varflags that are generated internally, don't influence the output or
are already included in the checksum in some way. If need be this list
can be extended in the future. The existing vardepsexclude mechanism
can also be used to exclude undesired varflags, but they must be fully
specified, e.g.:

do_patch[vardepsexclude] += "do_patch[someflag]"

Implements [YOCTO #2517].

(From OE-Core rev: 2bed83c6237669b6fc6fa25b2a554efb73395ca6)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:38:02 +01:00
Richard Purdie
2f0303eefd bash: Update to new update-alternatives syntax
(From OE-Core rev: 6176dbd6ee770c0c2849f53b213866b61ac29ff1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:32 +01:00
Richard Purdie
9bab122135 bzip2: Update to new update-alternatives syntax
(From OE-Core rev: 75cd7692c97b07e05f304893995231e2d3390f8f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:32 +01:00
Richard Purdie
96a013573d kmod: Remove bashism from recipe
Without this, the installed files get mangled when a dash shell is used.

(From OE-Core rev: 59db7976fa870084af19d880e594b0e94678cf19)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:31 +01:00
Richard Purdie
0b8d5dad9c update-alternatives: Fix absolute symlink handling
After the class changes, absolute symlinks are not being handled correctly
by the class file. This adds handling for absolute symlinks to account for the
pkgdest directory, removing dangling symlink messages from recipes like bzip2.

(From OE-Core rev: ecea2fab2063a3c478a63e62ba0e80305674c5e0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:31 +01:00
Richard Purdie
b3e76b33f3 package.bbclass: Add warning about FILES containing '//'
'//' in a FILES variable causes hard to track down issues with
packaging. This adds a warning and attempts to auto-correct the issue to
try and make the problem more user friendly.

[YOCTO #2448]

(From OE-Core rev: 0e33e314b1d2d3779658696f13a274b20d698667)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:31 +01:00
Richard Purdie
8c2e3c9679 layer.conf/bitbake.conf: Tweak PATH
We want the help2man script in scripts/ to be found in preference to any from
the host system and from the native sysroot. It turns out to be tricky to
get the order right from layer.conf so we move the addition of the scripts
directory to bitbake.conf.

Without this, "bitbake libtasn1 -c cleansstate; bitbake help2man-native; bitbake libtasn1"
will fail due to finding the host system help2man before ours.

(From OE-Core rev: 859255dd30958db018d40ede94a76db36a98da7f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:32:31 +01:00
Paul Eggleton
534f31903b bitbake: include varflags in checksums
Add a dependency to each variable on a filtered list of its varflags.
This is intended to catch things such as SRC_URI checksums, varflags
controlling extra functionality from classes (e.g. the recently updated
update-alternatives class in OE-Core), etc. and ensure their values
influence the sstate checksums.

There is an exclusion list which needs to be set via bitbake.conf
(BB_SIGNATURE_EXCLUDE_FLAGS), if this is not set then the functionality
is disabled. The existing vardepsexclude mechanism can also be used to
exclude undesired varflags, but they must be fully specified, e.g.:

do_patch[vardepsexclude] += "do_patch[someflag]"

Implements [YOCTO #2517].

(Bitbake rev: 56c1ab18fcaf4ac245dcb412ed55e8e0af07883b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:32 +01:00
Paul Eggleton
43551f513d lib/bb/fetch2: ignore remote URIs when doing file checksums
Skip evaluating remote URIs when doing local file checksums, because we
don't need to process them and doing so will trigger a parse failure if
SRCREV is not fully specified. Whilst this is just delaying a check
until runtime (when do_fetch runs for the recipe) we're only validating
this here accidentally and if we did wish to check it during parsing it
ought to be done explicitly.

Fixes [YOCTO #2512]

(Bitbake rev: 99feb77c2de707f2d825566cf48371c48f450e3e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:32 +01:00
Paul Eggleton
bb81db6f61 cooker: report recipe being parsed when ExpansionError occurs
When an ExpansionError occurs during parsing it is useful to know which
recipe was being parsed when it occurred.

(Bitbake rev: a2a8e8c9f5a1a30aacab696fd2b434939ee2c4e2)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:31 +01:00
Paul Eggleton
f0809ed788 cooker: fix UnboundLocalError when exception occurs during parsing
Fix a recent regression where we see the following additional error
after an error occurs during parsing:

ERROR: Command execution failed: Traceback (most recent call last):
  File "/home/paul/poky/poky/bitbake/lib/bb/command.py", line 84, in runAsyncCommand
    self.cooker.updateCache()
  File "/home/paul/poky/poky/bitbake/lib/bb/cooker.py", line 1202, in updateCache
    if not self.parser.parse_next():
  File "/home/paul/poky/poky/bitbake/lib/bb/cooker.py", line 1672, in parse_next
    self.virtuals += len(result)
UnboundLocalError: local variable 'result' referenced before assignment

(Bitbake rev: 1ae0181ba49ccfcb2d889de5dd1d8912b9e49157)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:31 +01:00
Paul Eggleton
64f88bf5d9 lib/bb/data_smart.py: don't report variable in ExpansionError if not set
If the variable name is not specified then don't confuse the error message
by starting off with "Failure expanding variable None...".

(Bitbake rev: 9cb16f3c73751e7cf6d495586a6193f06eb97b1f)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:31 +01:00
Paul Eggleton
5a975239ea hob: handle sanity check failures as a separate event
In order to show a friendlier error message that does not bury the
actual sanity error in our typical preamble about disabling sanity
checks, use a separate event to indicate that sanity checks failed.

This change is intended to work together with the related change to
sanity.bbclass in OE-Core.

Fixes [YOCTO #2336].

(Bitbake rev: 24b631acdaa143a4de39c6e1328849660c66f219)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:31 +01:00
Liming An
c8d78b2186 Hob: add the 'build new' be as the primary action for 'Image detail' page
As ui design, we should set at least one primary action for 'My Image' and
'Image detail' screen as the differnt selected image. if no 'run image' or
no 'save as template' or no 'deploy image' we should set 'build new image'

[YOCTO #2326]

(Bitbake rev: d848af637e9a14b627533bee65bf16f680dff854)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:30 +01:00
Liming An
6609a813bb Hob: Fixed a compatible issue for indicator icon view
Because some screen not support the alpha visual channel, so the function
'screen.get_rgba_colormap()' will return None, it's a compatible issue, so
change it by another way.

(Bitbake rev: e58ba1ad944ea1ba95a5ada80d4c88f0165bd1ca)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:30 +01:00
Robert Yang
cc3da1236c HOB: 'str' object has no attribute 'close'
For builddetailspage.py:
  The "f" was a stream in the past, it is a string now, so it doesn't
  need f.close(), and change its name to "branch".

  And we don't need the "2>&1" since bb.process.run() can handle it, it
  will raise exception when error occurs, we should handle the exception
  ourselves if we want to ignore the error.

For hig.py:
  Use bb.process.Popen() since it doesn't need the return value. If we
  use bb.process.run(), the parent process will wait for the child process
  to terminate to get the result.

[YOCTO #2511]

(Bitbake rev: ab10f3da1976581c371c43cdb88f405cf6fbcd95)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:30 +01:00
Kang Kai
9b6d3f48d2 hob2: set beginning folders for FileChooserDialog
Set begining folders FileChooserDialog for the select images and
some local directory configurations. That may make user feel more
convenient.

(Bitbake rev: 047ad35c0c869883509557aeb982e0b784ad2e71)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 17:23:29 +01:00
Richard Purdie
0d9e893711 Revert "meta: replace os.popen with subprocess.Popen"
This reverts commit e83d8e58a6b107eea87df0ec233a1bc932b2c6e as the conversion
is not correct. Its replacing readlines() calls which generate an array with
what are effectively strings. There are split("\n") calls missing in many
cases so this needs to be reverted until it gets fixed.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 14:21:29 +01:00
Paul Eggleton
bc386b8934 classes/sanity: fix a couple of grammatical errors in messages
(From OE-Core rev: 004ba67298e3e6e618df29597e9166c971a1941c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 14:21:29 +01:00
Richard Purdie
0299499770 ccache: Separate out into its own class
Currently, ccache is used if it is present. When building from scratch it gives
no performance improvement and creates a ton of empty directories even when its
not in use.

This change moves ccache support to a bbclass file which the user can choose to
enable. This should make builds more determinstic and make it easier/clearer
to the end user when its being used and when it is not.

(From OE-Core rev: 2acf8da4f13c175ea818b9514677b7059de1e3e2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:49 +01:00
Richard Purdie
a92ff3ad42 scripts/cp-noerror: Add a special copy function to fix autotools issues
Currently we copy the aclocal directory to the build so that autotools
doesn't see .m4 files disappear when its processing them. This can happen
if for example, package X is being rebuilt at the same time as Y and it
gets uninstalled from sstate (assuming there are no dependencies between
X and Y). This code making the copy was added to avoid races but introduces
a race of its own, namely that the files can disappear during the copy.

This patch adds a cp-noerror script which silently ignores such errors
and gives the behaviour we need in this case. It hence fixes issues which
crop up for users and the autobuilder occasionally.

[YOCTO #2485]

(From OE-Core rev: 0f81fbc0df73675aeb79c724858799a3b6a02f85)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:49 +01:00
Valentin Popa
b3e9a99076 xz: updated to version 5.1.1alpha
The licenses are the same, only some white spaces added/removed.

(From OE-Core rev: da98266f3a228cf65f279db9810a5326c8bd5422)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:48 +01:00
Zhai Edwin
d63298e566 qemu: Add an option to remove host sdl/gl checking
Add an PACKAGECONFIG in qemu to disable GL acceleration:
* By default configure try best to enable GL acceleration and fail when missing
  host dependency(libSDL and libGL).
* End user can also choose to turn off GL capability, thus remove the host
  dependence in building.

[YOCTO #2407] got fixed.

(From OE-Core rev: cfa93553e17057a1ea9d81e3a415fc8260c54067)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:48 +01:00
Paul Eggleton
7a619c235f classes/sanity: send sanity check failure as a separate event for Hob
In order to show a friendlier error message within Hob that does not
bury the actual sanity error in our typical preamble about disabling
sanity checks, use a separate event to indicate that sanity checks
failed.

This change is intended to work together with the related change to
BitBake, however it has a check to ensure that it does not fail with
older versions that do not include that change.

Fixes [YOCTO #2336].

(From OE-Core rev: 49d8b7b8c3b18da64583637db207f1f064a5bdb2)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:48 +01:00
Radu Moisan
0fd6a47ddf foomatic-filters: update to version 4.0.15
(From OE-Core rev: 8bfec8bf80b111174e4a6cf01db019b38638b31a)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:48 +01:00
Radu Moisan
42dec00892 mtd-utils: Update to version 1.5.0
(From OE-Core rev: f53a8aed0db26c6464751f340a7e010c45f76ebb)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:47 +01:00
Radu Moisan
e95e077789 man-pages: update to version 3.41
(From OE-Core rev: b48cd36fd40d6784e203b3bac85b63643813a6db)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:47 +01:00
Paul Eggleton
a8010cd5d7 classes/sanity: remove broken TARGET_ARCH check
The variable name has been typo'd as TARGE_ARCH since it was introduced
some time ago, so the check has never worked. Fixing the typo shows that
the test is not quite functional, so let's just remove it:

http://lists.linuxtogo.org/pipermail/openembedded-core/2011-October/010613.html

(From OE-Core rev: 897a9b1dddef385253b16ea7c193483e0ea679b6)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:47 +01:00
Laurentiu Palcu
b68e2d6ae2 libpciaccess: upgrade to 0.13.1
Removed also the fix_deletion_of_last_handle.patch because the new
version includes it.

(From OE-Core rev: b5753796e7f8b52e40aed51f4d5c8d329a31265e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:46 +01:00
Laurentiu Palcu
7ed241c704 fontsproto: upgrade to 2.1.2
(From OE-Core rev: c718f63b263f41e48b2293b2cd67371940b10804)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:46 +01:00
Laurentiu Palcu
7bf02ebc52 fontconfig: upgrade to 2.9.0
Other changes:
	- licence checksums because the licence headers changed slightly:
	  several other authors were added and Keith Packard's name has been
	  replaced with "author(s)". That's it.
	- rebased the fix-pkgconfig.patch to apply on 2.9.0
	- removed all sed instructions in do_configure_append() that were
	  changing fc-arch/Makefile. In the new version the fc-arch/ directory
	  has been removed in order to make the package cross-compiling safe

(From OE-Core rev: 8e219dea0373dc3a37d51f63c41f1a8449029dd5)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:46 +01:00
Paul Eggleton
e8dac5a58a scripts/buildhistory-diff: add GitPython version check
Display an error if the user does not have at least version 0.3.1 of
GitPython installed.

(From OE-Core rev: 2f0f5a895504924b5a21699854678e9bc25b447c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:46 +01:00
Paul Eggleton
1fe254f123 buildhistory_analysis: fix error when version specifier missing
Passing None to split_versions() will raise an exception, so check that
the version is specified before passing it in.

(From OE-Core rev: 90caa605bd24279e4a9204e279492754119a8a55)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:46 +01:00
Robert Yang
5996b2b58e meta: replace os.popen with subprocess.Popen
Replace os.popen with subprocess.Popen since the older function would
fail (more or less) silently if the executed program cannot be found

There are both bb.process.run() and bb.process.Popen() which wraps the
subprocess module, use it for simplifying the code.

Note: We don't need the "2>/dev/null" or "2>&1" since bb.process.run()
can handle it, it will raise exception when error occurs, we should
handle the exception ourselves if we want to ignore the error.

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2454]

(From OE-Core rev: e83d8e58a6b107eea87df0ec233a1bc932b2c6ea)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:45 +01:00
Robert Yang
d760fb97f5 scripts: replace os.system with subprocess.call
Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2454]

(From OE-Core rev: 57f843146ed62c04c23bc380dc8cb38aba264f1c)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:45 +01:00
Robert Yang
e40995e569 meta: replace os.system with subprocess.call
Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2454]

(From OE-Core rev: a07d03cc6f67c88feb9813ae7deb6e4a93552dfe)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:45 +01:00
Mark Hatle
e4c35790d6 shadow-utils-native: remove unnecessary alternatives
(From OE-Core rev: b1ea93143a473f006b31ab22f88baf41661971a7)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:44 +01:00
Mark Hatle
9a686b3481 kmod: use new update-alternatives
(From OE-Core rev: 5879e0d3a2b3a6d000e33cadf4407c38ae1eb1ab)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:44 +01:00
Mark Hatle
c17ae6f07b sysklogd: use new update-alternatives
(From OE-Core rev: c32dca4013d851aeb9d661a25cab81daf213121f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:44 +01:00
Mark Hatle
5cbc48638e psmisc: use new update-alternatives
(From OE-Core rev: 867864451baa875f48d87f4b8dbce80a90038243)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:44 +01:00
Mark Hatle
ddcf94ecd9 iputils: use new update-alternatives
(From OE-Core rev: dbd81c151305faf20f8e9e6f1a588d6ce4cfd49b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:44 +01:00
Mark Hatle
0b5c423475 grep: use new update-alternatives
(From OE-Core rev: ca478f563575ff2262741821ec35d4dfbf9f4487)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:43 +01:00
Mark Hatle
2851d751a8 cpio: use new update-alternatives
(From OE-Core rev: 6dee3050a4a0c4f3cc9fec23a0bc02155d680863)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:43 +01:00
Mark Hatle
8a4a7a2619 opkg: use new update-alternatives
(From OE-Core rev: fc9c2fd512e592806b10d0273ca490c90072ff3f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:43 +01:00
Mark Hatle
6d76d521a1 tar: use new update-alternatives
(From OE-Core rev: ed48d4b382dae08ac47bccdcb98b1e87dc6449cc)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:42 +01:00
Mark Hatle
76c08cc0d2 binutils: use new update-alternatives
(From OE-Core rev: f0ad3c8ce298ca492938e4ded2263c54213786f6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:42 +01:00
Mark Hatle
cb2a93ee32 util-linux: use new update-alternatives
In addition to switching to the new update-alternatives, it was discovered
that the sln, shutdown, halt, reboot and related commands were never generated.
Remove these from the list.  (These appear to have been removed from util-linux
some time ago.)

(From OE-Core rev: 55c01de28a28a4cfe16d36663c190a874ef2e85d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:42 +01:00
Mark Hatle
18b6e5ff59 psplash: use new update-alternatives
(From OE-Core rev: dc68ad07676833a2b8dba9540f35c0b70bf2fdfe)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:42 +01:00
Mark Hatle
4ca029b30f ncurses: use new update-alternatives
(From OE-Core rev: 54a92bdd0555d776efe92f7cf57a75039562556a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:41 +01:00
Mark Hatle
07da870e5a dropbear: use new update-alternatives
(From OE-Core rev: e7164da229d8ccccb043a790b25c995a46a83c88)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:41 +01:00
Mark Hatle
3f810e2462 coreutils: use new update-alternatives
(From OE-Core rev: 4bed7f31535f16dbe1f8bbab58921f12f1696f6f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:41 +01:00
Mark Hatle
92482cb496 busybox: use new update-alternatives
(From OE-Core rev: fbbc96aed5086f853a1179f1478ccd252af24094)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:41 +01:00
Mark Hatle
6b20156b0c openssh: use new update-alternatives
(From OE-Core rev: b417ced0573acde896332827bcc13b0f7c5bd9fe)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:40 +01:00
Mark Hatle
af3fc709c4 lrzsz: use new update-alternatives
(From OE-Core rev: df53826b5ee66bcafd7d091630b2d18477f3a672)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:40 +01:00
Mark Hatle
b607fa7658 sysvinit: use new update-alternatives
Also remove postinst and prerm which were not being used.

(From OE-Core rev: 60fd9974e5c9a0576059ebded6de7b599f9574e5)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:40 +01:00
Mark Hatle
b630ee1258 tinylogin: use BPN for alternatives
(From OE-Core rev: 60884b6bee6be7250caca2f229eda174bcefd959)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:40 +01:00
Mark Hatle
ad0f8b8673 patch: use BPN for alternatives
(From OE-Core rev: aa092530d3fdbfe6671ab6a05ecea2d71c4e11e4)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:39 +01:00
Mark Hatle
4547096a41 less: use BPN for alternatives
(From OE-Core rev: 3361ebfd61dc0d5914a506b1a06b92bd80734114)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:39 +01:00
Mark Hatle
78186993e0 mktemp: use BPN for alternatives
(From OE-Core rev: c1285844b9a46221c8e0b24ef29642bec312035b)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:39 +01:00
Mark Hatle
1a6f679d1b sed: use BPN for alternatives
(From OE-Core rev: cd059cb57efa2aad332ef2fc7f1f411afce82b73)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:39 +01:00
Mark Hatle
079f2fb981 shadow: use BPN for alternatives
(From OE-Core rev: 87d43530b434e5be139b845d6b96bbf2d885867d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:38 +01:00
Mark Hatle
ae68cb6b00 time: use BPN for alternatives
(From OE-Core rev: 0a621679772d7996c6342ad1e99de484082d9987)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:38 +01:00
Mark Hatle
1fa4e0554c wget: use BPN for alternatives
(From OE-Core rev: 7e5c325df40012cf21cbbf9a38f4d476f62d7100)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:38 +01:00
Mark Hatle
4966bc5809 which: use BPN for alternatives
(From OE-Core rev: 3ddf0dbfe5b0dae2baa2719aa96f0bdea1fe7b80)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:38 +01:00
Mark Hatle
e4449c91fb update-alternatives.bbclass: Change from using PN to BPN
In order to better support multilib processing, switch from PN
to BPN.

(From OE-Core rev: 75f70ab534f6dfef961906fb5c252f9e5310d38f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:37 +01:00
Mark Hatle
6ac7e9b598 update-alternatives.bbclass: Refactor the implementation
Refactor in order to:
  * Deprecate the old interfaces, but keep them for compatibility
  * Provide a new, interface -- capable of working with split packages
  * Each update-alternative will now set proper "per-file" provides

Note: this adds a warning message when the older deprecated behavior is
used.  The older behavior has been fully tested using oe-core.

(From OE-Core rev: 309117d26de6a87b16406a44a0cefcbaaf7b5d7a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-30 12:04:37 +01:00
Kang Kai
f28209d9d3 cooker.py: terminate the Parser processes
[Yocto 2142]

Force to exit HOB when hob is parsing recipes, the bitbake doesn't stop.
It hangs on function BitBakeServerConnection::terminate in file
server/process.py:
    else:
        self.procserver.join()
It is waiting for the children process quit.

In stage of parse recipes BBCooker spawns Parser processes as many as
cpu numbers. When quit the Parser processes they make their internal
Queue to call cancel_join_thread() to avoid block but don't work at
this time.
So force to terminate the Parser processes.

(Bitbake rev: bebef58b21bdff7a3ee1fa2449b7df19144f26fd)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:39:33 +01:00
Richard Purdie
fcd8021409 image.bbclass: Ensure ${S} is cleaned at the start of rootfs generation
Some image classes such as bootimg save files into ${S} as part of rootfs
generation. For correctness we should therefore clean this at the start of
image generation to ensure reproducibility.

I found this issue when some files I thought should disappear from my rootfs
would not disappear.

(From OE-Core rev: 363424cdc78cafa278008f973c2b4288297ebf8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:28:49 +01:00
Richard Purdie
0254e8d7d9 glib-2.0: Clean up OECONF flags into one variable
Without this change, libelf was "floating" for linuxstdbase for example,
leading to build failures. This patch moves all the common options
into a common variable.

(From OE-Core rev: 382bd564d0675bded38459943ab1fe5dbc1e9ee7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:28:49 +01:00
Richard Purdie
37cf162998 libxml2/libxslt: Don't depend on ansidecl.h header
We don't DEPEND on binutils for ansidecl.h so ensure we should never
use the header. This makes builds determinstic and means something like:

bitbake binutils
bitbake libxml2 -c configure
bitbake binutils -c clean
bitbake libxml2

doen't fail to build.

(From OE-Core rev: fe6cabfb0c6f382ef6131e07437b90c2afbf5488)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:28:49 +01:00
Saul Wold
54cdbe67ef ltp: Add attr to DEPENDS list
(From OE-Core rev: a6d6432b508451d0847336dc980bc0541396e310)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:04 +01:00
Richard Purdie
fed063880e binutils: Drop old/stale/broken csl recipe
The patches this recipe refers to don't exist so nobody can have
been using this so lets just remove it.

(From OE-Core rev: 29916bfbbea3bb785e8e4d332848b19ebc0a3ea9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:04 +01:00
Martin Jansa
de0d55cd9e wpa-supplicant: don't let postinst fail when dbus-1 reload fails
* e.g. when upgrading in chroot
  Configuring wpa-supplicant.
  Reloading system message bus config: Failed to open connection to system message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: Connection refused
  but that shouldn't be fatal

(From OE-Core rev: 96a1b26c62ef33f6d10fe7ac9dcf5f93c683d6e8)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:04 +01:00
Mark Hatle
d03e29fec2 package.bbclass: Add additional debugging for dependencies
When trying to understand why a QA wanring such as:

ERROR: QA Issue: foo rdepends on bar-dev

it is very difficult to figure out where the bar-dev dependency
comes from, since many of them are added dynamically.

This adds a debug statement that says which dependency adds an
rdepends to the system.

Also, while doing this work, it was noted that the same dependencies
were being scanned for over and over.  Instead we shorten the list
by only added to the dep list if the dependency was not already there.

(From OE-Core rev: 257b9e371143421b78a6991ef5401e564918c164)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:03 +01:00
Bogdan Marinescu
4f3f575a35 Updated distro-tracking-fields.inc
Updated metadata for lttng-tools.

(From OE-Core rev: fad8456ccfbc7b182465fc7f6508c004d106bfdb)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:03 +01:00
Bogdan Marinescu
f887fd6c00 lttng-tools: updated to 2.0.1
Removed patch for ARM compilation, as it seems that the upstream fixed
the ARM compilation problem in a slightly different way (tested by compiling
lttng-tools for MACHINE=qemuarm)

(From OE-Core rev: aa43a37da4f14b5a184f79b2ff43b0cd491e49af)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:03 +01:00
Bogdan Marinescu
02b91dbc79 lttng2-ust: updated to version 2.0.2
Tested with 'lttv' on core-image-lsb.

(From OE-Core rev: 871353ca368ef668750251b1d6a4d9de327f3131)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:03 +01:00
Nitin A Kamble
2f4eb4658e avahi: fix install issue
(From OE-Core rev: eb69c7f1063174e95a42cac7c83384ea9e4bec90)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:02 +01:00
Nitin A Kamble
bc56c0415a make-3.81: fix build with automake 1.12
(From OE-Core rev: 8dbb71a8bf33c6d2494dbbb74d3e944d788eca50)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:02 +01:00
Nitin A Kamble
e9e25428d4 findutils-4.2.31: fix build with automake 1.12
(From OE-Core rev: d91b315f602d60705e79381807810e20dd9bdc8d)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:02 +01:00
Nitin A Kamble
dfbeec647d gawk-3.1.5: fix build with automake 1.12
(From OE-Core rev: 013e837f96ea9d9daf53c497a965a021e686ba37)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:02 +01:00
Nitin A Kamble
58954a155e grep-2.5.1a: fix build with automake 1.12
(From OE-Core rev: addd517f17c4595fe03d9d5f0ad1d7daf86a3f39)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:02 +01:00
Nitin A Kamble
8939db4709 diffutils-2.8.1: fix build with automake 1.12
(From OE-Core rev: 60095f21a401aa2e9cf9841134680e1c427b4df6)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:01 +01:00
Nitin A Kamble
c170188511 grub-0.97: fix build with automake 1.12
(From OE-Core rev: e5a7b3af75fdc2dc2335d859faf5be2eb7f31f2e)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:01 +01:00
Nitin A Kamble
437f92c593 coreutils-native-6.9: fix build with automake 1.12
(From OE-Core rev: bc92089f82cae8ac5fb0ca4cd6b531e1ce5dcf5e)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:01 +01:00
Nitin A Kamble
04bdcbe62f gmp-4.2.1: fix build with automake 1.12
(From OE-Core rev: f48e5acc0dd3a61c80feb22698e3a7bb5986146b)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:01 +01:00
Nitin A Kamble
2c90a0a75b libcroco: fix build with automake 1.12
(From OE-Core rev: dda947447aee5bcf496d7bae2bf0fb6897e2e0f9)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:00 +01:00
Nitin A Kamble
204e2d64de libfm: fix build with automake 1.12
(From OE-Core rev: c4fea2a6cb0aa8ee5245a4bb4a9fe1f35fbe2a32)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:00 +01:00
Nitin A Kamble
55e24a4151 lighttpd: fix build with automake 1.12
(From OE-Core rev: 7d0a1dd058ecf14e11e6d6e58ff156b9c6b43218)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:18:00 +01:00
Nitin A Kamble
244417def8 minicom: fix build with automake 1.12
(From OE-Core rev: 8046c8285152e854e3d4fc47199bb65dbca8002e)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:59 +01:00
Nitin A Kamble
a23a7794f8 lrzsz: fix build with automake 1.12
(From OE-Core rev: 42d77fa2b90998d6a19e7a99d36c429e6faa5934)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:59 +01:00
Nitin A Kamble
133bff2ac2 findutils: fix build with automake 1.12
(From OE-Core rev: 872632691f15656f666d52a568fba443061693c0)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:59 +01:00
Nitin A Kamble
2a952c5687 glew: fix build with automake 1.12
(From OE-Core rev: df868f8c3c2b9c4c441747ee0b7429c0689ed246)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:59 +01:00
Nitin A Kamble
625d9745b9 libidn: fix build with automake 1.12
(From OE-Core rev: 45a57de50e14e42d202aef02030751b013f9eeb3)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:58 +01:00
Nitin A Kamble
8d63ffe927 texinfo: fix build with automake 1.12
(From OE-Core rev: 64789e3d444df7f2fb8206d73427b27bdc7bae25)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:58 +01:00
Nitin A Kamble
12f465d35d libcheck: fix build with automake 1.12
(From OE-Core rev: 5f2e979607d20230c61ee1a519f9b63b0eb620eb)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:58 +01:00
Nitin A Kamble
da1f0ef640 libmpc: fix build with automake 1.12
(From OE-Core rev: 7a667811afb3ce7178ee7050973a5c2c854405eb)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:58 +01:00
Nitin A Kamble
c4dde062bd systemtap: fix build with automake 1.12
(From OE-Core rev: 0ab7b586de076ae96cfa91b4f97815ea0893ef7f)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:57 +01:00
Nitin A Kamble
724f9ad8ce libtasn1: fix build with automake 1.12
(From OE-Core rev: 1bb75581291e72c6a61d2a937bda0696221fb1d3)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:57 +01:00
Nitin A Kamble
0d4d9bd61b shadow shadow-native: fix build with automake 1.12
(From OE-Core rev: dec7696b737e5921fcac0dbb346851e31a81537b)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:57 +01:00
Nitin A Kamble
2e45e31149 libxml2: fix build with automake 1.12
(From OE-Core rev: b126d638b7da9cc9e3c7f164e6dca3a1fce5c4ce)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:56 +01:00
Nitin A Kamble
85db7e794b rpm: fix build with automake 1.12
(From OE-Core rev: 8e78a88b664ffe32f182987eb0f5e5ea6345d416)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:56 +01:00
Nitin A Kamble
8512519bb2 popt: fix build with automake 1.12
(From OE-Core rev: 1bf680a5e8015e6245369aa23b21312c81c507cb)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:56 +01:00
Nitin A Kamble
05fe6c0ab9 mpfr: fix build with automake 1.12
(From OE-Core rev: 000bfb7961ad106a93be8fc98118c533bd6b690d)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:56 +01:00
Nitin A Kamble
fca50f021a gmp: fix build with automake 1.12
(From OE-Core rev: 902a528867292172bfb060a31767f7b5e39f40c1)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:55 +01:00
Jiajun Xu
cd3c0602a2 distro_tracking_fields: update information for ltp
Update information for recipe ltp 20120401

(From OE-Core rev: e1f818e0b534404897767897c167b2f5cd13ad07)

Signed-off-by: Jiajun Xu <jiajun.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:55 +01:00
Jiajun Xu
cfc882e2db ltp: Upgrade LTP to version 20120401
(From OE-Core rev: bbb9f831dbfcedf799021f2b0a1dd7aef3c0f928)

Signed-off-by: Jiajun Xu <jiajun.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:55 +01:00
Richard Purdie
ed14592700 fontconfig-native: Be clear about FILE search path
This avoids warnings from the new file checksum code.

(From OE-Core rev: 75abd412cd4294ec0bcd544630988dd2ed042ff8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:54 +01:00
Martin Jansa
277f18eeb2 wpa-supplicant: add wpa_supplicant.conf to CONFFILES and don't install it twice
* first we install ${WORKDIR}/wpa_supplicant.conf-sane
  install -m 600 ${WORKDIR}/wpa_supplicant.conf-sane ${D}${sysconfdir}/wpa_supplicant.conf
  and a bit later in do_install we were overwritting it with ${WORKDIR}/wpa_supplicant.conf
  install -m 644 ${WORKDIR}/wpa_supplicant.conf ${D}${sysconfdir}
* notice that this patch also changes .conf permissions from 644 back to 600

(From OE-Core rev: 583fdb62c73851b439bdf0c8e50f74073e566d5a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:54 +01:00
Steffen Sledz
45e6085ed9 dropbear: fix include dependent PR generation
(From OE-Core rev: 4f08a113ff0aa2162b7f07dd44c7bcc160b8fc3e)

Signed-off-by: Steffen Sledz <sledz@dresearch-fe.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:54 +01:00
Robert Yang
c071fd9b85 oe/process.py: remove it since it is unused and duplicated
The meta/lib/oe/process.py is only used by oe_run and oe_popen in
meta/classes/utils.bbclass, and they will be removed, we have a better
one: bitbake/lib/bb/process.py, which can replace of it.

[YOCTO #2489]

(From OE-Core rev: d56062cbf92ef206bf06c767befacb66927a9a36)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:54 +01:00
Robert Yang
70caf1e1bc utils.bbclass: remove the unused oe_system
The following functions in meta/classes/utils.bbclass were not
used by anyone, and they didn't work when I tried to use them:

def oe_popen_env(d):
def oe_run(d, cmd, **kwargs):
def oe_popen(d, cmd, **kwargs):
def oe_system(d, cmd, **kwargs):

There error was:
AttributeError: type object 'str' has no attribute 'getVar'

We have bitbake/lib/bb/process.py to instead, so remove them.

[YOCTO #2489]

(From OE-Core rev: 15ad62ab1be060d8a7cdc2d28167ea3af4cfd5d5)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:53 +01:00
Paul Eggleton
bbd07d10e2 opkg-nogpg: add file path
There was no explicit path in FILESPATH for this recipe to allow it to
find files referred to in SRC_URI (files shared with the standard opkg
recipe). This problem may have been masked by the fetcher behaviour of
looking for files last in DL_DIR, thus if opkg has been fetched
beforehand there would have been no error.

(From OE-Core rev: 0ddf7861d36452c0fe40b4ce439a2954de507965)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:53 +01:00
Mihai Lindner
7f3ac86f99 sudo: fixed wrong chmod path
Placed $D between braces ${D} to be correctly expanded to the
workdir path, instead of a path relative to host rootfs.
Currently, bitbake sudo fails on host systems where sudo is not
installed.

(From OE-Core rev: 70562306a051ac93001851213441c9d5d6234517)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:17:53 +01:00
Christopher Larson
6b48551ff7 bitbake.conf: add EXTERNAL_TOOLCHAIN to BB_HASHBASE_WHITELIST
(From OE-Core rev: f13aa28c879ac3e49b94d6fe1238f8b0db2a8666)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:14 +01:00
Richard Purdie
af16b9f59c bitbake.conf: Improve wget timeouts
The wget default is a 900 second timeout and 20 retries. This is way too long
for most of our usecases so this patch changes it to a 30 second timeout and
reduces retries from 5 to 2. We have good mirror infrastructure, this will
let us fall back to it easier.

(From OE-Core rev: 48429569b9f83fde8f9802cfd8674fa24178876c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:14 +01:00
Paul Eggleton
b52dfa23e1 lib/bb/fetch2: fix comments for verify_checksum
This function no longer returns a value, it raises errors instead, so
update the comments to reflect this.

(Bitbake rev: 8b61b9584a8b00378f9fd8f165dbd65dcfd3c14e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:12 +01:00
Richard Purdie
e6d9af19d6 bitbake/exceptions: Handle reports from the field of exception code failures
Despite using python 2.6, there have been reports of issues where
bitbake is printing tracebacks with errors in the exception handling
code. This was masking the real error.

Since we need to do whatever we can to give the user good feedback about
errors, detect the tuple instead of namedtuple case and don't fault
in the exception handler but just give up trying to traceback any further.

In the reported cases, this gives a message the user can then understand.

(Bitbake rev: 9ec0429271e68527a55fc123dea5a1b959c6ec3b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:12 +01:00
Richard Purdie
0b14db4524 bitbake/utils.py: Ensure utils.which() returns full paths
If the path passed to which contains empty elements, it will search
the current working directory for the file which is correct baheviour.

Various pieces of code assume the path returned is a full path though.
This commit ensures we don't return relative paths.

(Bitbake rev: 4de24ccc10e40cc088b8515095df59f69b12715d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:12 +01:00
Richard Purdie
2d3ff5e6e1 bitbake/cooker: Ensure matchFile returns full pathnames
We should always be passing full pathnames around within bitbake. If
a file was referenced as a relative path to the current working
directory, it might not get passed through the abspath call and
hence the cwd would not get added as a prefix.

This change adds a second pass at ensuring we only return absolute paths.

(Bitbake rev: 72fc62ca124a24e2dbe404a3c83a49608a7c7931)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:11 +01:00
Liming An
f3a5ad170d Hob:fixed the issue of primary button is not an 'orange hob button'
In image detail page, the primary button should be an 'orange hob
button', there has a primary button is not, so change it.

[YOCTO #2326]

(Bitbake rev: 884a0b2d927404991b7e23d5bbfab096a5b7e849)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:11 +01:00
Richard Purdie
994ce7b071 BBHandler: Tweak some data store access methods to the preferred syntax
(Bitbake rev: d7ec0f90354e60c415a01429bf26746c1d63b7ad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-25 11:15:11 +01:00
Saul Wold
6558abda67 qemu: disable vnc-jpeg compression
This is disabled by default to ensure a deterministic build, qemu
configure would sometimes detect the libjpeg and then enable this.
Since mostly qemu is used locally disable by default.

(From OE-Core rev: 0f795f81fe5ad3ef78c21a177eca90fbc8810f81)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:53:57 +01:00
Saul Wold
9180d38c47 qemu.inc: Remove mesa-xlib as PREFERRED_PROVIDER
The xserver-xorg uses and depends on mesa-dri, so we should
use the default PREFERRED_PROVIDER of libgl as mesa-dri.

This resolves the following:
ERROR: Multiple .bb files are due to be built which each provide virtual/libgl (/intel/poky/distro/meta/recipes-graphics/mesa/mesa-dri_7.11.bb /intel/poky/distro/meta/recipes-graphics/mesa/mesa-xlib_7.11.bb).
 This usually means one provides something the other doesn't and should.

(From OE-Core rev: cf8b4b95c6d84c097f4fc63662f181a59e0f9cb9)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:53:57 +01:00
Khem Raj
f83cdef08f xserver-xf86-config: Add xorg.conf for arm,mips,ppc,sh qemu machines
(From OE-Core rev: db0defb1d019a0e7c06d37dacc09842174e2f548)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:53:56 +01:00
Khem Raj
71a4bf3861 qemumachines: Enable xserver-xorg as default xserver
For qemux86 and qemux86-64 include qemu.inc after defining XSERVER

XSERVER variable is also weakly defined in task-core-x11.bb
which means we can not use ??= otherwise when building any qemu image
that uses task-core-x11.bb will get the wrong definition

So we define the XSERVER common set for qemu in qemu.inc
and as we know x86 and x86-64 qemu overrides the default
we include qemu.inc after that definition which means that
qemux86 and qemux86-64 get their own definitions and other
qemus get the definitions from qemu.inc. other non-qemu machine
will get their defintion from task which points to kdrive
as of now.

(From OE-Core rev: 62dba36166bc5faa32ba3e0664ae98b168cde6b1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:53:56 +01:00
Laurentiu Palcu
bdb158594f Update to distro_tracking_fields.inc
The fields for the following packages were updated:

libdrm
xf86-video-vmware
xf86-input-mouse
xf86-video-vesa
xf86-video-intel
xf86-input-synaptics
mdadm
xextproto
xcmiscproto
scrnsaverproto
recordproto
xproto
kbproto
fontsproto
libxt
xtrans
libpciaccess
fontconfig
xcb-proto

(From OE-Core rev: 801bfa7edfbff1522964efab0c0ba40bbc52c601)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:47 +01:00
Laurentiu Palcu
8604b4cc98 xf86-input-synaptics: upgrade to 1.6.1
(From OE-Core rev: 0a1e60410234f0315b617593859b9deab89c2cd4)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:47 +01:00
Laurentiu Palcu
088fdc25e0 xf86-video-intel: upgrade to 2.19.0
(From OE-Core rev: e4db6a5f86b0e725c0ddbd114316d488a024b951)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:46 +01:00
Laurentiu Palcu
43eb69b0ad xf86-video-vesa: upgrade to 2.3.1
Also, licence checksum has changed because a new copyright line from
Red Hat has been added. The rest of licence file, however, is unchanged.

(From OE-Core rev: 21dd5de819251a611a8fe206b2d4bc390008c4f5)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:46 +01:00
Laurentiu Palcu
09928dba4a xf86-input-mouse: upgrade to 1.7.2
(From OE-Core rev: 44cb88f9acde3ef264a04311ff6c8c195ac9cd57)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:46 +01:00
Laurentiu Palcu
339891513c xtrans: upgrade to 1.2.7
(From OE-Core rev: c2943924d94c2418736b9e935b4b058e882b4752)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:46 +01:00
Laurentiu Palcu
2312e14fc9 libxt: upgrade to 1.1.3
(From OE-Core rev: 438705407d9af2b54c03648b23bb16411424d870)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:45 +01:00
Laurentiu Palcu
40d230b38b xcb-proto: upgrade to 1.7.1
(From OE-Core rev: 03b42a5981c98cc7c47b376ce91e46098c4b8eed)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:45 +01:00
Laurentiu Palcu
47ade5529e recordproto: upgrade to 1.14.2
(From OE-Core rev: b3d94113bb277b58dad9de021313bafa57c9780b)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:45 +01:00
Laurentiu Palcu
7a1eb3ca85 scrnsaverproto: upgrade to 1.2.2
(From OE-Core rev: 1b134f5240588c53e82effb1cc77ba91edabbcba)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:45 +01:00
Laurentiu Palcu
9dbfc172e6 xcmiscproto: upgrade to 1.2.2
(From OE-Core rev: 481bc016c4b029200c75feb5a91bd82a425810e3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:45 +01:00
Laurentiu Palcu
f02e412738 xextproto: upgrade to 7.2.1
(From OE-Core rev: 02f6d0eede83208b48759319be2b5af99e15af59)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:44 +01:00
Laurentiu Palcu
0541ed4a48 kbproto: upgrade to 1.0.6
Also, shifted up one line the start and end lines for licence checksum
computation.

(From OE-Core rev: b34855ef05fc5373f55ea75efa617316016f9d83)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:44 +01:00
Laurentiu Palcu
87ca28b022 xproto: upgrade to 7.0.23
(From OE-Core rev: b7cd93644aaa50aac39ab23c0a2ca19415ba3989)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:44 +01:00
Laurentiu Palcu
27b6eaad43 libdrm: upgrade to 2.4.34
(From OE-Core rev: af3c8de7b6cbedddaf6bf89108879c89a52ff02e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:44 +01:00
Laurentiu Palcu
37cceb5374 mdadm: upgrade to 3.2.5
(From OE-Core rev: 511b25110a5c0948f2be289daf0bf25f32466487)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:43 +01:00
Samuel Stirtzel
019b9e9916 valgrind: Enable valgrind for armv7
Valgrind supports the armv7 architecture, this patch allows armv7 users to build and use Valgrind

This patch was run-tested on a Gumstix Overo (armv7a cortex-a8)
* The test consisted of running valgrinds memcheck (memory leakage detection),
* and callgrind (profiling) on a Qt 4 application

(From OE-Core rev: 211ac8b39023d4998fb7d5a577b63a4960b08172)

Signed-off-by: Samuel Stirtzel <s.stirtzel@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:43 +01:00
Radu Moisan
52c9511922 gawk: update to 4.0.1
(From OE-Core rev: 345566c448f5cd628866cb0736d567f5a610b3db)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:43 +01:00
Marko Lindqvist
24038ec86e jpeg: update to upstream version 8d
* fix_for_automake_1.11.2.patch removed as issue resolved upstream
* Have README as license file instead of several source files that just
  refer to it

(From OE-Core rev: 330173c75426aa38919091da9ae8a9e90de9e0e2)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:42 +01:00
Martin Jansa
319b6f2708 glib-2.0: upgrade to 2.32.3
(From OE-Core rev: 1f73485a143f0aa6cd87636f3d36a7d1dfc40a3b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:42 +01:00
Joshua Lock
9ab9c52cfc sanity.bbclass: check sanity at BuildStarted rather than ConfigParsed
This enables a user to use bitbake -e even when the sanity checks are
failing.

(From OE-Core rev: be317df78535120137ecaadf797e3f4dfe04119e)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:42 +01:00
Joshua Lock
9509ed472a sanity.bbclass: catch an extra exception in check_create_long_filename
The call to bb.mkdirhier() in check_create_long_filename() can fail with an
OSError, explicitly catch this and report something useful to the user.

(From OE-Core rev: b066906477eb0496a2babb3d8e87682a1b7df0de)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:41 +01:00
Joshua Lock
3898d081ab sanity.bbclass: add extra information when SSTATE_CACHE unusable
If the user does not have write permissions to SSTATE_CACHE, detected by
the check_create_long_filename() test failing with a "Permission denied"
value in strerror, then suggest they might want to use the location as
an entry in SSTATE_MIRRORS.

(From OE-Core rev: 719d44305508c75a9f2decacdff6558ca14277bb)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:41 +01:00
Joshua Lock
13a86cb33d sanity.bbclass: add newline to check_create_long_filename failure message
Each failure in the sanity message should be reported on a new line.

(From OE-Core rev: 9362702aa9dd82fed7e6d6e3cb1289521b802075)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:41 +01:00
Joshua Lock
2e12fcf3a1 sanity.bbclass: data.getVar(VAR, obj, exp) -> obj.getVar(VAR, exp)
Replace calls to data.getVar(VARIABLE, data_object, expand) to
direct calls to the getVar method the the data_object.

(From OE-Core rev: 41ee978b62a9c40f36f8ad0acef147e36edffa17)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:41 +01:00
Joshua Lock
1983045391 sanity.bbclass: copy the data store and finalise before running checks
At the ConfigParsed event the datastore has yet to be finalised and thus
appends and overrides have not been set.
To ensure the sanity check is being run against the configuration values
the user has set call finalize() on a copy of the datastore and pass that
for all sanity checks.

(From OE-Core rev: 71142172efc0f44a50216550c2b6cc3094fdc21d)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:40 +01:00
Joshua Lock
6a4c55df3c Revert "sanity.bbclass: check user can read and write to SSTATE_DIR"
This has caused problems for several users, including the Yocto Project
autobuilder. Since the message was added in order to be more user friendly
revert the change.

This reverts commit 0c0c4efbf92bcf0f8942f17c18525a4b4ed1798c.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:40 +01:00
Andreas Oberritter
e6de510025 python: bump PR of packages after update of distutils.bbclass
* Bump every recipe inheriting distutils or setuptools and
  not overriding do_install without calling distutils_do_install.

(From OE-Core rev: 61487342764684cacef765e221609fe16ffc2740)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:40 +01:00
Andreas Oberritter
dc290d16eb distutils.bbclass: don't delete .pyo files
* Deleting .pyo files causes them to get compiled on the target.
* First boot gets *really* slow for python based projects.
* No space gets saved on the target.
* The package manager doesn't know about the files and
  therefore fails to uninstall them, occupying space and causing
  uninstalled python scripts to remain executable.
* It's inconsistent, because python itself and autotools based
  projects already ship .pyo files.
* Probably .pyo files were deleted because .pyc files were
  available earlier, but this has changed and OE-Core's python
  now only generates optimized .pyo files. Deletion of .pyo was
  introduced in 2008, python/04-default-is-optimized.patch
  was introduced in 2009.

(From OE-Core rev: 25e186ad5b75bd2f93435857580bd16698e18e21)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:40 +01:00
Andreas Oberritter
3db152524f netbase: merge init script updates from upstream
* Read /proc/mounts only once.
* Support many more network filesystem types.
* Remaining differences to netbase 4.47:
  - Uses the mountvirtfs keyword instead of mountkernfs
  - Doesn't use lsb functions
  - Doesn't print a warning if /etc/network/options exists
  - Doesn't use --exclude parameter for ifup, because
    busybox doesn't support it.

(From OE-Core rev: faca42ee5249cf6aae9e53e44bb404de21dd4471)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:39 +01:00
Andreas Oberritter
b099511bd9 wpa-supplicant: fix packaging error since last commit
* wpa-passphrase has its own package, but commit
  4a4c568e25a08e9f222d723f9819582c9f895c58 broke it.

(From OE-Core rev: 7e4fcbb1ceac736c44bffc834f7e8f2b34ac4402)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:39 +01:00
Andreas Oberritter
a3976449ab libnss-mdns: fix postinst scripts
* On upgrade, postinst ocassionally returned 1, so use a
  conditional instead of &&.
* Use sed patterns in order to make it work more generally.

(From OE-Core rev: c678d4c42ed0075572c5fad17ca33773ad3f6447)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:39 +01:00
Andreas Oberritter
dd42988518 ppp: avoid host contamination
* Import patch from OE-Classic commit f7c547ede1bfc94c24f6315a23ff48a4c5b9ffaf.
* Fixes linking with libpcap (ppp filter).

(From OE-Core rev: ba1539f165470d6ee9b7b95b5067792e384e6aea)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:38 +01:00
Enrico Scholz
fce38e581f libtool: fixed parallel build related race
While building libtool, the libtool script itself will be regenerated
because OE modifies a dependency[1]. With -jX, this operation (-->
removal, creation of non-x file, 'chmod a+x') can happen at a time when
the script is going to be executed.  This can cause errors like:

| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| ...
| /bin/sh ./config.status libtool
| ...
| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| /bin/sh: ./arm-linux-gnueabi-libtool: Permission denied
| make[2]: *** [libltdl/libltdl_libltdl_la-lt__alloc.lo] Error 126

I am not sure whether the custom do_compile_prepend() is still needed.
For now only the issue above will be fixed by executing ./config.status
yet again.

[1] see 648290d5bf

(From OE-Core rev: e065c11b6066f8c1d37496b58dd853a684cd9136)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:38 +01:00
Xiaofeng Yan
5022c3ecd7 ncurses: Avoid occasional builling failure when having parallel processable task
ncurses failure non-gplv3 build (race issue) like the following \
error information:

| tic: error while loading shared libraries: /srv/home/pokybuild \
/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/\
work/x86_64-linux/ncurses-native-5.9-r8.1/ncurses-5.9/narrowc/lib\
/libtinfo.so.5: file too short
| ? tic could not build /srv/home/pokybuild/yocto-autobuilder/\
yocto-slave/nightly-non-gpl3/build/build/tmp/work/x86_64-linux/\
ncurses-native-5.9-r8.1/image/srv/home/pokybuild/yocto-autobuilder\
/yocto-slave/nightly-non-gpl3/build/build/tmp/sysroots/x86_64-linux\
/usr/share/terminfo
| make[1]: *** [install.data] Error 1

This is a race issue which is caused by
install.libs and install.data:

1) install.data needs run tic
2) tic needs libtinfo.so
3) install.libs would regenerate libtinfo.so
4) but install.data doesn't depend on install.libs, and they can run
   parallelly

So there would be errors in a very critical condition: tic is begining
to run at the same time when install.libs is generating libtinfo.so, and
this libtinfo.so is not integrity, then there would be the  above error.

Let task install.libs run before install.data for fixing this bug.

[YOCTO #2298]

(From OE-Core rev: 80e4833782edc5fbda2a7f5d003a854f127137ec)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:38 +01:00
Nitin A Kamble
76e1d4a7ac eglibc: package mtrace separately
add libc-mtrace as dependency for task-core-tools-debug

now eglibc-mtrace gets included in an sdk image and not in a non-sdk image.

This does not affect builds with uclibc.

This fixes bug: [YOCTO# 2374]

(From OE-Core rev: a2ad2870a54108027ed33e977470f5f72e0bce1b)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:37 +01:00
Robert Yang
bb4f829965 rpm 5.4.0: respect to the arch when choose the alternatives
There is a bug if we:
1) bitbake diffutils with MACHINE=crownbay
2) bitbake diffutils with MACHINE=qemux86
3) bitbake core-image-sato with MACHINE=crownbay

Then the diffutils.i586 would be installed to the crownbay's image, this
is because diffutils.i586 is newer than diffutils.core2, and rpm doesn't
respect to the arch priorities:

We have put the archs in order in _solve_dbpath:

crownbay/solvedb:core2/solvedb:i586/solvedb:all/solvedb

Fix rpm to respect to the order, for example, if it finds a pkg in both
core2/ and i586/, and the core2/ comes first, it should not use the one
in i586/ even if it's build time is newer.

Note: Don't worry about the _free(*ptr), it can check whether ptr is
NULL or not.

This is for the denzil branch, and the master branch also needs it.

[YOCTO #2360]

(From OE-Core rev: d76067ae100623dd6dd4858568b98522d1daf474)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:37 +01:00
Robert Yang
73538f548c package_rpm.bbclass: Fix incremental rpm image generation
Fix the incremental rpm image generation, it didn't work since the code
has been changed.

The btmanifest should have a ".manifest" suffix, so that it can be moved
to ${T} by rootfs_rpm.bbclass:
mv ${IMAGE_ROOTFS}/install/*.manifest ${T}/

Note: The locale pkgs would always be re-installed.

[YOCTO #2440]

(From OE-Core rev: 5149630746626c6d416f26ab9dd1c7213fcd8c50)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:37 +01:00
Paul Eggleton
66b0eceeca classes/base: add checksum file list at parse time
Connect the new fetcher file checksum code so that we get a list of the
files to be checksummed at parse time.

The file-checksums flag will not be read unless we are using a version
of BitBake that supports the function we call within it, so it is safe
to include this change even when the metadata will still be used with
older versions of BitBake.

Implements [YOCTO #2044].

(From OE-Core rev: f26065629b6397d129db930268b72164f8e5d3e4)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:37 +01:00
Christopher Larson
86d05a4299 external-sourcery-toolchain: ignore GNU_HASH issues with its packages
(From OE-Core rev: d29852ba60e7c7657ed3a4d8ac9dacfb0de416ad)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:36 +01:00
Christopher Larson
f60b4cb2f4 Rename 'external-csl' to 'external-sourcery'
This is a rename per the purchase of CodeSourcery by Mentor Graphics
Corporation, and associated naming change.

(From OE-Core rev: dead1540d769fc91a5bd171070a5c96a9f00a2c7)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:36 +01:00
Christopher Larson
844df77bcf tcmode-external-csl: preferred external-csl-toolchain's gdbserver
(From OE-Core rev: 98df23d4673f155cc807fa7c52537b299dfd5e7a)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:36 +01:00
Khem Raj
23fd086b6e gcc: Grok for callconvention-hard to enable hard float
If callconvention-hard is set then we build gcc defaulting
to hard-float ABI

(From OE-Core rev: 88dee5cf5265d3ea26fc9d471fc6155e48935dc7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:35 +01:00
Khem Raj
0fdd04febe eglibc: Add ARM hf dynamic linker support
The work is done in glibc upstream we backport
the relevant patches

(From OE-Core rev: 8df03a0b8bd92cf7b73b816dacf3e362cfce557a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:35 +01:00
Khem Raj
e108db7acc gcc-4.7: Add knowledge about arm hf dynamic loader
(From OE-Core rev: a0d9e602a778feab2201a0643fb7d555b71017b9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-24 08:51:35 +01:00
Shane Wang
49694d650c Hob: Adjust the progress bar and set 100% only when all is done.
After parsing recipes, Hob will populate recipes and packages, which is probably
time exhaused. So, this patch is to adjust the progress bar and ensure 100% is
set if and only if all populations are done.

The patch also fixes "weird 18 second delay when parsing recipes" on build appliance.
Because Hob is doing something, but the progress bar shows 100% and wait there.

[Yocto #2341]

(Bitbake rev: 2c4a21dc8a588c8cf05549ddd9734731a46bea10)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 18:17:02 +01:00
Mark Hatle
799e076938 build.py: Add support for log and run filename changes
The format of the log file and run file are now selectable
using BB_LOGFMT and BB_RUNFMT, respectively.

The following values may be used:

{task} - task name
{taskfunc} - task.func or func, if task==func
{func} - function name, only available in BB_RUNFMT
{pid} - pid

The log/run files may be placed into a subdirectory that
is relative to T.

Default BB_LOGFMT is: log.{task}.{pid}
Default BB_RUNFMT is: run.{func}.{pid}

(Bitbake rev: 588da606eb81c52cb92d29041e1c67897427bfdf)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 18:15:24 +01:00
Mark Hatle
63aaecb057 build.py: Add additional debug messages
We now add a debug message when entering and exiting a python or
shell function.  This makes it easier to inspect a log and figure
out the run order from the logs.

(Bitbake rev: a0f554d0e722b6705844c6031fdcafa5d1a1c8a7)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 18:15:23 +01:00
Mark Hatle
d0de551d44 build.py: Cleanup exec_func_shell
exec_func_python and exec_func_shell are similar, but variable
usage has diverged sync the two up.  Since exec_func_python is first
use that as the guide for the later exec_func_shell variable naming.

(Bitbake rev: ccfe1a3a2419172799957676107f240badf3f062)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 18:15:23 +01:00
Mark Hatle
c9e38aed29 build.py: Add a log to capture task execution order
The new log.task_order contains an ordered list of the tasks as they
were executed in any given recipe.  The format of the lines is
<task> <pid>: <log file>

(Bitbake rev: 8662b43dcbd6e38a5b2ab9d6529af1fb08c146bf)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 18:15:23 +01:00
Robert Yang
094742bed2 replace os.popen with subprocess.Popen
Replace os.popen with subprocess.Popen since the older function would
fail (more or less) silently if the executed program cannot be found

There is a bb.process.run() which will invoke the Popen to run command,
use it for simplify the code.

For the:
p4file = os.popen("%s%s files %s" % (p4cmd, p4opt, depot))
...
for file in p4file:
    list = file.split()

in bitbake/lib/bb/fetch2/perforce.py, it should be an error in the past,
since it didn't use readline() to read the pipe, but directly used the
split() for the pipe. Use the bb.process.run would fix the problem since
bb.process.run will return strings.

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2075]

(Bitbake rev: 8d6700255a6d4dda403c89b171a6d4a1883e5aae)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:35:11 +01:00
Robert Yang
10a0f9ed92 replace os.system with subprocess.call
Replace os.system with subprocess.call since the older function would
fail (more or less) silently if the executed program cannot be found

More info:
http://docs.python.org/library/subprocess.html#subprocess-replacements

[YOCTO #2075]

(Bitbake rev: f5b3bf115dc1ffbfb241a49cec0fc3654cb71021)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:35:11 +01:00
Enrico Scholz
358016f463 bitbake: support $BITBAKE_UI environment
Patch adds support for a $BITBAKE_UI environment variable which allows
to configure the preferred user interface. Although an '-u' option
(which will override the environment variable) exists already, it was
required to specify this option on every invocation of bitbake.

Because user interface is instanciated very early in the program it is
not possible to use bitbake.conf for setting up a default.  An
environment variable (which acts in a similar category like $PAGER or
$EDITOR) is a simple way for configuring the default.

(Bitbake rev: e3c213015953d1a0afb5ef4be59e1264990e5cee)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:35:11 +01:00
Paul Eggleton
8b8be74ed2 bitbake: implement checksums for local files in SRC_URI
Gathers a list of paths to have checksums calculated at parse time, and
processes these when calculating task hashes. Checksums are cached with
the file's current mtime. Thus, changing any local file in SRC_URI will
now cause the do_fetch taskhash to change, thus forcing a rebuild.

This change adds very roughly about an 8% increase in parse time (a few
seconds) and maybe a few seconds during runqueue generation, so a fairly
moderate performance hit.

Note that since paths are resolved at parse time, this will not force
a rebuild when files are introduced which would cause that resolved path
to be different - for example, where a machine-specific version of a file
was added without otherwise changing the recipe. This will need to be
handled in a future update.

Code to hook this into the signature generator was courtesy of
Richard Purdie <richard.purdie@linuxfoundation.org>.

Implements [YOCTO #2044].

(Bitbake rev: c993b7c457f8b7776e8a5dff253bfa0724bc2cae)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:35:04 +01:00
Paul Eggleton
d7b818b51f bitbake: refactor out codeparser cache into a separate class
We want to be able to reuse most this functionality for the file
checksum cache.

(Bitbake rev: 0fe3cb1438d297f90dd0fc6b26362ecbff75c76d)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:33:18 +01:00
Liming An
644b30adfb Hob: fixed the issue about the 'run image' page should have the primary bug
issues: when build a image for atom-pc, the output does not include live
image, and 'Save as template' should become the primary action on the screen

[YOCTO 2326]

(Bitbake rev: e9516c7e14d782b943cc6e6a2e5e2111edf03d8c)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:33:18 +01:00
Liming An
3ee1cfab7d Hob: fixed the line width of base image description view
As ui design, adjusted the line width for each base image description

[YOCTO 2310]

(Bitbake rev: 8bce98b23bc9cbc4da4464bfbaeb4e1a1aaca5c5)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:33:18 +01:00
Liming An
0d210ff8e8 Hob: fixed the issue about bug 'running image' workflow and related view
[YOCTO #2155]

(Bitbake rev: 5e14cb41e8ba26a3114ea2c8b8f83b271bc44b54)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:33:18 +01:00
Liming An
374ad22550 Hob: change the build failure scenario as ui design
change the top bar display in build 'issue' page

[YOCTO #2183]

(Bitbake rev: 0705d3db1ce6d0f29301e2428c990ab0d9b2860e)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-23 11:33:17 +01:00
Liming An
39a9267dee Hob: add '--select a machine--' and '--select a base image--' to GUI
[YOCTO #2175]

(Bitbake rev: 2729729012f035043fedc5098be2ec12b761166d)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 14:56:17 +01:00
Christopher Larson
532f96ddcc fetch2: quote/unquote url paths
This ensures we can handle things like %-encoded characters in the path
portion of urls.

(Bitbake rev: b1dbc24ebcc4e5100c32568c2c41fd982fb4bcce)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 14:56:16 +01:00
Dongxiao Xu
5c880fb301 Hob: Get image name internally when updating the image description
The image name shouldn't be passed from outside caller, since the image
name may not in the combobox list. Getting the name from
update_image_desc() internally.

(Bitbake rev: 6635cd7bc2a448d1324e9344100f97613f4272b5)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 14:56:16 +01:00
Dongxiao Xu
7690c45c71 Hob: Add filter for images listed in image combo
Define BBUI_IMAGE_WHITE_PATTERN variable to indicate which image is
allowed to be displayed in image combobox.

Define BBUI_IMAGE_BLACK_PATTERN variable to indicate which image is NOT
allowed to be displayed in image combobox.

This fixes [YOCTO #1581]

(Bitbake rev: 960461bc12945675af3081eb469f932f4a6eb1cd)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 14:56:16 +01:00
Shane Wang
e069e53536 Hob: reimplement the proxy page
This patch is to reimplement the proxy page in the "Advanced Settings" dialog
per the new design in https://bugzilla.yoctoproject.org/attachment.cgi?id=442
and https://bugzilla.yoctoproject.org/attachment.cgi?id=443.

[Yocto #2247]

(Bitbake rev: 911a60c09c1539a3f10c2bcdb26d40e458c31303)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 14:56:15 +01:00
Richard Purdie
33c4bf2096 fetch2: Also exclude urls containing wildcards from checksumming for now
Without this change, bitbake will try and checksum a wildcard which
will lead to fetch failures.

(Bitbake rev: ac53b88be58b0bed21730c0b61a8fc8e801a2f1b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-22 12:18:53 +01:00
Khem Raj
2219caa312 tune-mips64.inc: Add new tune file for mips64 big-endian
(From OE-Core rev: e6333825c3482a559a0c0499e17f8f48d3042ddf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:04 +01:00
Khem Raj
0d2b369053 xserver-xorg: Fix build for mips64
mips64 N64 ABI has different size for int and pointer
which means the compiler will complain about conversions
which works fine for 32 bit since sizes are same.

amd64 is taken care of already so we take care of mips64
with this patch by understanding the difference in sizes
in compiler.h

(From OE-Core rev: de21917ba83f104a2d53941f40a9b2b8d35dce49)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:04 +01:00
Khem Raj
21d5cf88e5 site/sh-common: Add missing caches variables to build glib-2.32
This is on the same tone as done for other architectures

(From OE-Core rev: 7bdc3a07d3212d7fc820c77ba509e476cc7aa672)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:03 +01:00
Khem Raj
c141f9682c netbase: Add interface files for qemumips64 and qemush4
These files are alike other qemu machines they
help in creating a working network interface when
using qemumips64 or qemush4

(From OE-Core rev: 1e7406e4f2f93b6b4fa75716c4e901a96206be69)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:03 +01:00
Khem Raj
f13ef77b5d runqemu: Add qemush4 and qemumips64 knowledge
New machines need to be added and they also
have different kernel commandlines

(From OE-Core rev: 3a5432aec0faea49d2c04984cd169ceb35bba89f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:03 +01:00
Khem Raj
4cbc27c3e3 libc-package: Add sh4 and mips64 to arch options
needed for new architecture support

(From OE-Core rev: 75167eb890d8e4683f1e3852e3b77c67d160bea7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:03 +01:00
Khem Raj
9ecb454c81 eglibc-2.15: Support mips64
Add mips64 to binary locale arches
Enabling ports in addons causes wrong
machtype to be chosen for mips64 and
it always chose mips32 which is wrong
for mips64 so enable all the addons
we have and we were enabling them anyway

(From OE-Core rev: da7f9093ad7aa4188cc3d420668b0bda7d950a0f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:02 +01:00
Khem Raj
8bc899a1b8 kernel-arch.bbclass: Map mips64{el} to mips KARCH
(From OE-Core rev: 22ce249a814f750bc47ead9ce281fcbd63c775c8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:02 +01:00
Khem Raj
efcd382596 binutils: Default to n64 when configured for mips64
Default ABI for mips64 is n64 so make it default in binutils

(From OE-Core rev: 99f859612e16d636702f9bb11825259d90e468f2)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:02 +01:00
Khem Raj
6174900a0e gcc-4.6, gcc-4.7: Add support for building mips64 cross compiler
Defaults to n64 ABI

(From OE-Core rev: 253f1f3aebd1a90c55efcc6d1f585204e7f3c371)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:02 +01:00
Khem Raj
fbfa7b75de site: Add mips64 eglibc and uclibc site files
(From OE-Core rev: 2e315d2d0de215811e8caa80b1f13fd0e9fa53e8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:01 +01:00
Khem Raj
8262a6717f insane.bbclass: Add mips64{el} to known machines
(From OE-Core rev: 77dc886107e1b9cdaf6803141dc97c3ebfc22910)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:01 +01:00
Andrei Gherzan
f99ac52202 bb/fetch2/__init__.py: Don't try to compute checksums for directories
In this way we avoid failing the build while trying to fetch local
directories.

[YOCTO #2475]

(Bitbake rev: 39adb5741d9eee0879d3181be505400dffc60804)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-21 09:59:00 +01:00
Joshua Lock
b4c8c74a45 hob: update required pygtk to 2.22.0 and gtk+ to 2.20.0
(Bitbake rev: e67ccbbeaecd2d9f3267995c590052c6a3c5b9ce)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:26 +01:00
Joshua Lock
f9bffcab85 lib/bb/ui/crumbs/[package|recipe]selectionpage: include button
The indication of the included packages/recipes in the top right of the
GUI, per design, is a button which switches the Notebook to the included
tab.

(Bitbake rev: 494534cae6211d9055098562df1f35b56858f3ec)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:26 +01:00
Joshua Lock
f9aa3dadb1 lib/bb/ui/crumbs/imageconfiguration: fix combo boxes drop-down width
The width of the combo boxes drop down should match the combo box
itself.

(Bitbake rev: 93e66f494730d0840dd1d4f3ed924d91e6489995)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:25 +01:00
Joshua Lock
9e59dea411 lib/bb/ui/crumbs/hobwidget: use light text in HobIndicator
Dark text on a dark background is difficult to read. Further the design
document uses white text.

(Bitbake rev: a84304ccf06a012817a5e6495d53147efcbed960)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:25 +01:00
Joshua Lock
44a40f7a56 lib/bb/ui/crumbs/: replace custom HobNotebook
The custom HobNotebook widget was implemented to address perceived
deficiencies in the gtk.Notebook API.

Recent inspection reveals that the API is capable of all that Hob
requires of it and therefore maintaining a custom class to provide
similar functionality does not make sense.

Addresses [YOCTO #2276]

(Bitbake rev: e683caa9863bbb52480346669806f22173629a5e)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:25 +01:00
Liming An
881b81f266 Hob:add function about clicked a row to load image file for 'my images' page
[YOCTO #2238]

(Bitbake rev: b72ee3cf29a5badca3f8c1342356164270615aad)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:24 +01:00
Liming An
e80c1a3708 Hob: Apply a line length to consistantly display image descriptions
[YOCTO #2310]

(Bitbake rev: e9d65e06aaf20bd9f5ca02544c1bf976c6bff9be)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:24 +01:00
Enrico Scholz
05330d0665 knotty2: return exit code
'bitbake -u knotty2' never failed which was caused by main() not
propagating the exit code.

(Bitbake rev: 243e4ba405b88fd466bec7b4aa042d20aa6121ff)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:24 +01:00
Richard Purdie
b0b9ee29a2 bitbake/fetch: Spell out which fetcher backends support and recommend checksums
There were some hardcoded behaviours in the system for which backends
support checksums verses which backends recommend them verses which
don't recommend them.

This moves the functionality into specific fetchers and then makes the
general code generic. This cleans up the codebase and fixes some corner
cases such as trying to checksum directories returned by the git fetcher.

(Bitbake rev: ef6d268f7b8527541a7fb044cf95a973be4097f4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:23 +01:00
Richard Purdie
311c68bd06 bitbake/fetch: If checksums are available, check them for any file, local or remote
Currently, checksums are only checked for remote files. This changes
the check to apply to any file we have checksum data for. A mismatch
against a file is fatal but in the local case, no warnings are shown
about missing checksums.

(Bitbake rev: 80411b3acf2173a4a7d415102d16676eb98363e3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:23 +01:00
Richard Purdie
2f009e5b1e bitbake/fetch2: Improve visibility of checksum warnings when fetching from mirrors
When fetching from mirrors, checksum errors would get buried in the
logs. This raises their profile so a warning is logged on the console
when fetcher checksum issues are encountered, even if other attempts
are made to get the file (which may or may not have the same issue).

(Bitbake rev: d43fafd7f01b5534499b45213197d8ccececdbc4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:23 +01:00
Richard Purdie
d993f172e8 bitbake/fetch2: Improve stamp creation in mirror code
Under certain contitions such as local file:// mirrors of all files,
bitbake might not check checksums. This is not desirable and we should
always check the checksum where possible.

This only exception to this is the git mirror tarball case where the
checksum is unknown but we need to create the .done stamp for other
reasons. This patch preserves thta functionality but in a more specific
section of code where this doesn't interfere in normal checksums.

(Bitbake rev: 2592a43e422c06a6f6174ada562e9c8ba25e1ec1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:22 +01:00
Richard Purdie
2a167cb1fe bitbake/fetch2: Remove hardcoded file removal and use clean method
Under certain circumstances, bitbake could remove files which were
outside its control since it unconditionally removes ud.localpath.
In the file:// case this can point at external paths.

This patch converts it to use the clean() method which will remove
files when its safe to do so but not in the file:// case since the
file:// handler has an empty clean method. This means bitbake no
longer removes files outside its control and is generally much safer.

(Bitbake rev: 9ad1cebe2220b41da2141cdb3f0a403abb46d77c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-20 09:24:22 +01:00
Mark Hatle
f24d8df3af sstate.bbclass: Make sure we don't have an empty fixmepath file
Jason Wessel noticed that a package without any fixmepath entries would
generate a sed warning about no input files.  This patch resolves that
by ensuring that an empty fixmepath file never gets written into the
sstate archive.  Also we avoid a second message by only doing xargs if
we got input.

(From OE-Core rev: 326563d5a897ae2dba7cfd8d73579d3d979d72c8)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:13 +01:00
Gary Thomas
6d40b658f4 xserver-kdrive: Fix X server on PowerPC when built with GCC 4.7.x
Newer versions of GCC uncovered illegal code practice which can cause
runtime failures in the Xext/xace.c code.  This problem has been fixed upstream:
  http://cgit.freedesktop.org/xorg/xserver/patch/Xext/xace.c?id=6dae7f3792611aace1df0cca63bf50c50d93de43
  Subject: xace: Invalid reference to out-of-scope data.

Incorporate this patch into the recipe, with a PR bump.

(From OE-Core rev: 7d1bb144404de650c6e83dfd095d16a796cbcf46)

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:12 +01:00
Bruce Ashfield
0312f864f7 linux-yocto: policy cleanups
Updating the meta SRCREVs to pickup configuration policy cleanups:

  49f931b meta/fishriver: remove redundant features and options
  51a6d3f meta/emenlow: remove redundant features and options
  101dd7f meta/crownbay: remove redundant features and options
  4110ecd meta/sugarbay: remove redundant features and options
  0f1304a meta/jasperforest: remove redundant features and options
  0a56a3b meta/common-pc-64: factor out SCSI CDROM option
  b71938a meta/common-pc-64: use usb-mass-storage feature
  0724f40 meta: add scsi cdrom feature
  438bca8 meta/common-pc: use usb-mass-storage feature
  c970881 meta: factor out SCSI options from the usb-mass-storage feature
  4c8135e meta: add scsi disk feature
  6872a81 meta: add scsi feature
  e706ec5 meta/sugarbay: factor out policy-related options
  8b7fbc2 meta/jasperforest: factor out policy-related options
  fea1b0e meta/fishriver: factor out policy-related options
  13bf9ab meta/emenlow: factor out policy-related options
  4748d50 meta/crownbay: factor out policy-related options
  44f592f meta/common-pc-64: factor out policy-related options
  5a3f5c7 meta/common-pc: factor out policy-related options
  1f5a10b meta/common-pc-64: use usb features
  4b87723 meta/common-pc: use usb features
  594ba05 meta: add ROOT_HUB_TT config option to the usb/ehci-hcd feature

(From OE-Core rev: b8ce5b4a8f6ea5021e284dfd486593dbcfbe0502)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:12 +01:00
Bruce Ashfield
08a917a25a kern-tools: update LICENSE field to GPLv2
The LICENSE field for kern-tools was generic and leads to QA warnings
from the license classs:

  "No generic license file exists for: GPL in any provider"

Updating to a specific GPL version that matches the source fixes the
warning.

(From OE-Core rev: 72101b324062642474d67ee90356489993a973d0)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:12 +01:00
Bruce Ashfield
62c5e6a161 linux-yocto: intel BSP config changes
Updating the meta SRCREV for the following fixes:

   1dfd60f meta/fishriver: move smp options from recipe-space
   012780a meta/emenlow: move smp options from recipe-space
   b59b1a5 meta/crownbay: move smp options from recipe-space
   74dc6ac meta/sugarbay: remove boot-live options
   a4bedcb meta/jasperforest: remove boot-live options
   4ae7b81 meta/sugarbay: use usb features
   30e7e8c meta/jasperforest: use usb features
   22d0c5d meta/fishriver: use usb features
   e262965 meta/emenlow: use usb features

(From OE-Core rev: 5bf86f42e25489ebe92d2c891ee7ee340d668e29)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:11 +01:00
Jiajun Xu
3e57b1d749 test-reexec: Add script to address issues when task re-execution
The script is used to address build issues when tasks of different
recipes are re-executed. The script goes through all available recipes
and their tasks. The test results are saved in ./reexeclogs. Force build
logs are saved with prefix "force". Build failure logs are saved with
prefix "failed".

[YOCTO #2123]

(From OE-Core rev: 6258a11f22103d68d02e329c2e7fb198202cc6ef)

Signed-off-by: Jiajun Xu <jiajun.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:11 +01:00
Lianhao Lu
f3c07ace4b multilib.bbclass: Added multilib specific package QA.
Added a new PACKAGEFUNCS function to check the multilib packages'
dependency.

(From OE-Core rev: f193729cdf0f3eccf96a8ce7bf5f599eca89a0d0)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:11 +01:00
Lianhao Lu
0b2bbdaab1 multilib.conf: Added multilib support for kmod.
(From OE-Core rev: 41ec6c1eb6998de6c1fd332510c1d71ba58f1b2c)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:11 +01:00
Lianhao Lu
8de572f95a (libc-)package.bbclass: Added MLPREFIX to locale packages.
Added multilib prefix to the locale related package names/dependencies.

(From OE-Core rev: a52f7cf2cc90d918e3250c410995dcc1f3bfd5ee)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-18 15:25:10 +01:00
Koen Kooi
b7c1ac8690 Revert "kmod: Use base_libdir for installing libkmod"
The commit breaks pkgconfig and after discussing it with the kmod and udev maintainers the conclusion was reached that putting the libraries in /lib instead of /usr/lib is not supported.

This reverts commit 6b74f2461735272bd950a4f060dab6e778a36f92.

(From OE-Core rev: 7163ebd92a799b8f000b2b6f303b20de468b5f90)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:11 +01:00
Martin Jansa
64a595286d xserver-xorg-lite: disable xmlto like full xserver-xorg does
* xmlto-native is unusable (see YOCTO #2416
  xmlto/xsltproc stylesheets cannot be found even when they are installed in sysroot)

* fails like this:
| make[2]: Entering directory `/OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc'
| /OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/xmlto   xhtml-nochunks Xserver-spec.xml
| /OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/bin/xmlto   xhtml-nochunks Xinput.xml
| xmlto: /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml does not validate (status 3)
| xmlto: Fix document syntax or use --skip-validation option
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml:3: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
|                    "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
|                                                                             ^
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml:40: parser error : Entity 'ldquo' not defined
| btaining a copy of this software and associated documentation files (the &ldquo;
|                                                                                ^
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml:40: parser error : Entity 'rdquo' not defined
|  of this software and associated documentation files (the &ldquo;Software&rdquo;
|                                                                                ^
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml:42: parser error : Entity 'ldquo' not defined
| btaining a copy of this software and associated documentation files (the &ldquo;
|                                                                                ^
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml:42: parser error : Entity 'rdquo' not defined
|  of this software and associated documentation files (the &ldquo;Software&rdquo;
|                                                                                ^
| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
| Document /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xinput.xml does not validate
| xmlto: /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xserver-spec.xml does not validate (status 3)
| xmlto: Fix document syntax or use --skip-validation option
| make[2]: *** [Xinput.html] Error 13
| make[2]: *** Waiting for unfinished jobs....
| /OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/xserver-xorg-lite/xserver-xorg-lite-2_1.11.2-r2/xorg-server-1.11.2/doc/Xserver-spec.xml:4: warning: failed to load external entity "/xserver/doc/xml/xserver.ent"
|  <!ENTITY % defs SYSTEM "/xserver/doc/xml/xserver.ent"> %defs;
|                                                               ^
| Entity: line 1:
|  %defs;
|        ^

(From OE-Core rev: e8c61491cdd28caa51b567c6ce40155504f9eadb)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:10 +01:00
Joshua Lock
c2df43b5db sanity.bbclass: check user can read and write to SSTATE_DIR
The user needs read and write permissions to SSTATE_DIR, check
whether they have sufficient permissions and if not recommend
use of SSTATE_MIRRORS.

(From OE-Core rev: 0c0c4efbf92bcf0f8942f17c18525a4b4ed1798c)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:10 +01:00
Alexandru DAMIAN
cedfe1d50d xf86-video-vmware: update package to 12.0.2
This patch updates the package version for the vmware xorg driver
to 12.0.2, following upstream. No other changes made beside updating
the checksums.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:10 +01:00
Laurentiu Palcu
a97b9cba5a gnupg: Update to upstream version 2.0.19
(From OE-Core rev: ab3d5b40aadfe23282d35ebe3b777e3cc28583f7)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:09 +01:00
Bogdan Marinescu
3b481ccb59 gnutls: update to 2.12.19
Tested with curl in qemux86/core-image-lsb.

(From OE-Core rev: 041e4ef362921db606840c6de936a89975c818be)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:09 +01:00
Xiaofeng Yan
9477419d52 archiver.bbclass: Add two default set for avoiding error when missing assignment
Add two default set(SOURCE_ARCHIVE_LOG_WITH_SCRIPTS, \
SOURCE_ARCHIVE_PACKAGE_TYPE) to archiver.bbclass for avoiding \
building error when forgetting to assign to them.

(From OE-Core rev: 5bda8f33b6763fb519543d0f9e35c970a31d39b8)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:09 +01:00
Joshua Lock
441c1f8faa meta/classes/sstate.bbclass: ensure sstate files have group R/W
In order to make sharing sstate files easier chmod them with 0664 permissions	so that they are readable and writable by the user and any other members of 	their group.

(From OE-Core rev: dae9ad8a0ba0343e3083694cdcb20f0d02927ad0)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:08 +01:00
Christopher Larson
6c0c7bb0dc kernel.bbclass: add deploy link to KERNEL_IMAGETYPE
It's common to provide a non-machine-suffixed link in DEPLOY_DIR_IMAGE, so
let's be consistent and do so here as well.

(From OE-Core rev: c1c8d2f3cffc540380c0a5fcdda48d64cbec333a)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:08 +01:00
Christopher Larson
0c7720027b oe.types: give the regex type more sane semantics
Currently, if a variable is unset or has an empty value, the regex type
will return a match object which always matches. Not all variable types
will necessarily have the same behavior for handling defaults. I believe
that returning a match object which matches nothing when a variable is
unset is superior to returning one which matches anything, and the user
can always explicitly request anything via '.*', if that's what they
want.

This constructs a null pattern object which will never match, and uses
it when encountering an unset or empty variable (currently, these two
things are one and the same, as maketype is handling the default. we may
well want to shift that logic into the individual types, giving them
more control over default behavior, but currently the behavior is at
least relatively consistent -- no difference between unset and empty
variables).

(From OE-Core rev: dc7e4a79d9a1884b4c5705ef3173613958204b50)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:08 +01:00
Christopher Larson
caee06405f csl-versions: fix bb.process.CmdError reference
(From OE-Core rev: 3c18344e8a6a4a0b7aad1d1322d02ab8accc9db1)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:08 +01:00
Saul Wold
8da5fa8ed6 xinetd: Update to 2.3.15
(From OE-Core rev: 17d7f2a9ee4c56bc697f05a8e703ddb02c262d99)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-17 21:13:07 +01:00
Saul Wold
d4e2656615 poky.conf: Change WARNS -> ERRORS
A major effort was completed as part of 1.2 to fix many WARNING
messages, change the level of those fixed areas to ERROR so we
do not backslide on our quality level

Signed-off-by: Saul Wold <sgw@linux.intel.com>
2012-05-16 07:35:20 +01:00
Andrei Gherzan
4910f28255 fotowall: Add #include ui_wizard.h to ExportWizard.cpp
App/ExportWizard.cpp depends on wizard.h which depends on ui_wizard. The last one
should be already generated before compiling ExportWizard.cpp.

[YOCTO #2297]

(From OE-Core rev: 2cf6e7cf81c0b864b5d51be60094a6eb3e584383)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-16 07:34:28 +01:00
Marko Lindqvist
120e29504c expat: update to upstream version 2.1.0
(From OE-Core rev: 445f2721f92bae4a9ae86e13f14775e924dc7f84)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-16 07:34:28 +01:00
Khem Raj
961db45af2 classes/mirrors.bbclass: Point snapshot.debian.org mirror to working location
If you point to snapshot.debian.net/archive/pool then it will fetch
you a html page which will end up in corrupt download. The locations
have changed for archives and here we point the mirror to right
location.

(From OE-Core rev: 15e8aa4cd773022b36a66f70e4f6436289f3d1bc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-16 07:34:27 +01:00
Richard Purdie
f3ba3cb6af gdk-pixbuf: Fix lsb builds where dependency may be missing
We turn on the xlib depdendency for linuxstdbase builds but
were missing the dependency on libx11. This adds the missing
dependency.

(From OE-Core rev: 89c3eb5247d9d15f0beaf397d2aa5332007f229a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:44:37 +01:00
Peter Seebach
9f930c5852 tcmode-external-csl.inc: specify the path you couldn't find
While misconfiguring toolchains, I noticed that one of the
diagnostic messages gave me a little less information than I'd
like about what I'd done wrong.  Displaying the glob pattern
that couldn't be matched turns out to make it a lot easier to
figure out what you did wrong.  (Answer: Not enough coffee.)

(From OE-Core rev: 84d8b8846556cee191afb93016a2c38df8aaa7ba)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:44:37 +01:00
Peter Seebach
fd4516c2bf tcmode-external-csl.inc: Allow for overrides
Wind River uses binary toolchains provided by Code Sourcery, but which
have different values for a couple of the preset variables than the
generic toolchains the external-csl toolchain feature supports.  If
these values were ?= assignments, we could just assign values to them
and share the code, rather than keeping modified copies.

(From OE-Core rev: f3c50743917974f0eeab6d9eefc2e7b572a8a787)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:44:36 +01:00
Mark Hatle
75fcc7c806 sstate.bbclass: Optimize the generation and install path fixups
The fixmepath file that is generated contains a list of all of the files
that need their paths fixed.  In the previous version the fixmepath was
generated to include all of the files that sed may have changed.  In the
new version, we first grep the files to see if they contain a path that
needs to be changed, only then do we perform the sed operation on those files.

This results in a modest performance increate in the creation of the sstate
file.  The following numbers include the do_package and do_populate_sysroot
tasks on the perl recipe.

Before the change:
real    4m23.018s
user    1m57.067s
sys     1m33.327s

After the change:
real    4m13.083s
user    1m54.062s
sys     1m26.064s

However, a more significnt performance gain is felt during the
extraction/install of sstate cache files, as the fixmepaths file now has a
significantly smaller list of files to modify.

Before the change:
real    0m39.798s
user    0m11.158s
sys     0m12.642s

After the change:
real    0m25.511s
user    0m8.408s
sys     0m5.077s

(All numbers above were recorded with a cold filesystem cache on a machine
with 12 GB of ram.)

(From OE-Core rev: 46067264bedeff8248a2b2441733420fe6651f84)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:06:06 +01:00
Jason Wessel
d09e4df16b bitbake.conf: Add CCACHE_DIR to BB_HASHBASE_WHITELIST
The location of the ccache should not affect the sum in the sstate
files.

The end user should be free to use an external ccache via defining
CCACHE_DIR to a new value in local.conf or using the default per
package local ccache in the temp directory.

(From OE-Core rev: 8d49d92fc2e581820e410c6a4dceb30911d949e0)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:06:06 +01:00
Christopher Larson
e50ecfbb8c tcmode-external-csl: handle TUNE_PKGARCH=core2
(From OE-Core rev: 01dea384924293d0f99723073277bf6b1f4c7976)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:06:06 +01:00
Christopher Larson
7cf5fcefd3 tcmode-external-csl: avoid hardcoding a list of ia32 archs
(From OE-Core rev: 166a3f79d2538f40fb150c90b0f8e28987db8daa)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:06:05 +01:00
Christopher Larson
ee245bd77f tcmode-external-csl: drop unnecessary cppflags/ldflags
(From OE-Core rev: fdbc2290cb4b786cb0135daa500be5072e270cd0)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 19:06:05 +01:00
Richard Purdie
cf0db01c55 gdk-pixbuf: Allow empty -xlib package
There are things that depend on the -xlib package. There are two
possible ways to fix this, either recommend them instead of depending
on them, or allow the package to be empty. I'm doing the latter
since its a bit cleaner and less invasive.

This library is a bit pointless which is why there is little point
in adding the x dependency in the non-lsb case. If it becomes widly
used we can rethink this.

(From OE-Core rev: 7d49da7389b5bb0e74d9000b002ebf0bc554e85b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 18:51:13 +01:00
Peter Seebach
441623224b runqemu: replace bashism with working shell idiom
The =~ operator is not one of my favorites, not just due to portability
issues, but because it's not well known, and a lot of people might
not expect a regex operator.

The canonical shell idiom for this is to use case with alternation
and wildcards.  As a side note, if you are matching anything containing
core-image-sato, you don't need to also check for core-image-sato-sdk.

(From OE-Core rev: 716ae8dbd1fb29292c9fca0f59d3807a54508e87)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 18:51:13 +01:00
Darren Hart
389de8a24f ofono: Add python-pygobject to ofono-tests package DEPENDS
Some of the ofono-tests python scripts, such as test-modem and
receive-sms (22 in total) import gobject. Make the ofono-tests package
depend on python-pygobject.

Tested on the meta-intel fri2 BSP in a core-image-sato image. Assorted
ofono tests run correctly.

(From OE-Core rev: 30708f1b5bc3844e080ef863fdd22446700ba0b1)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-15 18:51:12 +01:00
Paul Eggleton
12b4543ac9 classes/rootfs_*: fix splitting package dependency strings
If a + character appears in a version specification within the list of
package dependencies, the version will not be removed from the list in
list_package_depends/recommends leading to garbage appearing in the
dependency graphs generated by buildhistory. To avoid any future
problems due to unusual characters appearing in versions, change the
regex to match almost any character.

Fixes [YOCTO #2451].

(From OE-Core rev: 36d1717e2ad4ca1620ee9f01b524b5ff2f499b26)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:56 +01:00
Joshua Lock
63ccc3f266 lib/bb/siggen.py: ensure dumped signatures have group R/W
We anticipate signatures being shared amongst peers in a group so ensure
they have rw-rw-r-- permissions to facilitate this.

(Bitbake rev: e4716f316152cafabebcefec7b387edeb02ad3eb)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:54 +01:00
Joshua Lock
fb7fa0159e lib/bb/siggen: use open() rather than the file constructor
The Python documentation states:
 "When opening a file, it’s preferable to use open() instead of invoking
the file constructor directly." [1]

Further in Python 3 direct use of the file constructor is no longer
possible.

1. http://docs.python.org/library/functions.html#open

(Bitbake rev: 759f953e29a7131614e5b1f0312edf2b17523675)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:53 +01:00
Richard Purdie
09b231deb1 bitbake/tests: Add test of the git fetcher
(Bitbake rev: 4dd2655caef1003b51c0600397a91f1c9526a67f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:53 +01:00
Richard Purdie
36462d5927 bitbake/fetch2/git: Set a default for the GITDIR variable
(Bitbake rev: 1a0cdc65812f1f12bf4bbea6540a3aaf0f81b4f7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:53 +01:00
Richard Purdie
279d0afd6e bitbake/fetch2/git: Don't set the branch name to None, that makes no sense
With floating revisions and no specified branch, the fetcher could fail
with some obtuse errors. This was due to the branch name being set to None
which makes no sense. This patch reworks some conditions to avoid this.

(Bitbake rev: 740c58d43cfb1445dd126e4827bb70ce988ca107)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-13 20:09:52 +01:00
Richard Purdie
d93e43a126 gdk-pixbuf: Drop unneeded RPROVIDES
(From OE-Core rev: cab85fd0b481cdbf36477348de75352be3f38ca2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-12 11:23:35 +01:00
Richard Purdie
c73779d150 package.bbclass: Drop dubious use of packages[0] from do_split_packages and do_split_locales
As the comment says, using packages[0] is rather broken and can be incorrect,
as demonstrated by the recent gdk-pixbuf change. Replacing it with PN is
a bit more correct and more likely to do what was originally intended
by this function.

(From OE-Core rev: 5d0144fe6bd1febc2d1e651bbcff891c80f20b88)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-12 11:23:35 +01:00
Richard Purdie
8da9bbfc43 oe-buildenv-internal: Fix BITBAKEDIR changes to work with existing autobuilder scritpts
The BITBAKEDIR change does not work well when the script is sourced from another script
since $2 may be unrelated. This change adds the logic onto the BDIR conditional and
which more external scripts would set, hence avoiding the problem.

(From OE-Core rev: ec8fbe0d1870285a4a972ddcfe83aa63d720cb80)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-12 08:43:15 +01:00
Khem Raj
e63b1791cd xserver-xorg: Fix build on powerpc
(From OE-Core rev: 8a11f42d3ed526fae0c0bb050d7d0519904591b4)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 23:25:10 +01:00
Philip Balister
350a459dc3 Add option to oe-buildenv-internal script to change bitbake location.
Having bitbake inside the oe-core is annoying to some people. This commit
adds a second option to the oe-init-build-env script.

Run like this:

. ./oe-init-build-env ../build ../bitbake

for example. Without the second option, the old behavior is preserved.

(From OE-Core rev: 45510a0dd7a9321c29c5b21ac4053192f7ab9ad5)

Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 23:24:03 +01:00
Bruce Ashfield
c08ee52519 kernel-yocto: export GUILT_BASE to devshell
One of the patch backends to linux-yocto is guilt, which normally
tracks patches under .git. But .git isn't something that can be
checked into a SCM and repeated. So it has been moved under meta/patches
and committed to the meta branch.

If devshell is used, GUILT_BASE isn't set, so patch manipulations will
fail. We export GUILT_BASE and point it at the meta directory when
devshell is invoked for linux-yocto.

(From OE-Core rev: 10546e42a0db6a9585488536e29759239ef6e73b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 23:23:31 +01:00
Richard Purdie
a246af9bf7 package.bbclass: Drop EXPORT_FUNCTIONS use against mapping_rename_hook
The usage of this function renaming and it being called using
bb.build.exec_func() causes needless indirection loops, confusing log
files and seems generally pointless.

This simplification makes the process much simpler and faster. I can't
come up with a good reason why the export_functions functionality is
needed for this function.

(From OE-Core rev: 74daad03ca29a03b0005f7d2b90a0347d5b583a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:03:31 +01:00
Jason Wessel
a50af4d540 .gitignore: add /bitbake to the ignore list for external distributions
External distributions based on the oe-core will typically include
bitbake in the top level directory.  The idea is to make it easy
for external distributions to easily assemble a distribution
with a pristine version of oe-core, add avoid the git untracked messages:

 # Untracked files:
 #   (use "git add <file>..." to include in what will be committed)
 #
 #       bitbake/

[RP: remove leading slash]
(From OE-Core rev: 9cd30beba77497288eeb2545920bc23f2a77cf16)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:00:28 +01:00
Andreas Oberritter
78165633b3 e2fsprogs: fix packaging error for libext2fs
* libext2fs is located in base_libdir, not libdir

(From OE-Core rev: 683bc278d8695ecf4c8658ab39266279c6bf26d4)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:00:27 +01:00
Mark Hatle
b85bbc52d3 sstate.bbclass: Improve sstate_installpkg performance
In a pathological case, lots of files to process, the sstate_installpkg
performance was very poor.  It interated over each file and ran 3
individual sed commands per file.  Changing this to keep iterating
but running only a single command took about 1/3 time time.

However, when looking at the corresponding sstate_hardcode_path
function, it was clear we could optimize this further.

Using the same encoding logic to specify only the minimumal sed
operation necessary, and using xargs to avoid the os.system call the
install step was able to be performed in 13% of the original time.

Example timing numbers for perl:

3m7s original code
1m20s single sed, but interating
0m26s using xargs and limited sed

(From OE-Core rev: d9f655753fbdc8cbd8e705577430fed4f23732b3)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:00:27 +01:00
Xiaofeng Yan
31122b03bf gdk-pixbuf: Add --with-x11 when building lsb image
LSB Test Suite complains "No library libgdk_pixbuf_xlib-2.0.so.0" \
because of having "--without-x11" for gdk-pixbuf_2.24.1.bb.
Use the linuxstdbase override and also make it conditional on x11 \
being in DISTRO_FEATURES for passing lsb test.
Split libgdk_pixbuf_xlib to a single package.

(From OE-Core rev: 4cb21630cf87e6cc9a062f1c2be9fea25d3e218a)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:00:27 +01:00
Xiaofeng Yan
f755582792 task-core-lsb: Add libgdk-pixbuf-xlib to core-image-lsb
LSB Test Suite complains "No library libgdk_pixbuf_xlib-2.0.so.0" \
which are created by gdk-pixbuf_2.24.1.bb.
So add this library to core-image-lsb for passing lsb test.

[RP: Fix whitespace]
(From OE-Core rev: e79f19ef4fb59d6dc14ea139d4e4b132add80842)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 18:00:27 +01:00
Nitin A Kamble
95be1d650f eglibc: fix build with poky-tiny distro
This fixes bug [YOCTO #2443]

The prototype of findidx() has changed, but the code in xregex.c is
still using the old prototype. This issue stayed hidden because this
code only gets excercised when OPTION_POSIX_REGEXP_GLIBC is disabled
in the eglibc configuration.
  See the patch for further information.

(From OE-Core rev: 8691038efb0aca4a2cd61fce0c53d10092e48b75)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:50 +01:00
Christopher Larson
49afb622c9 typecheck.bbclass: update per current variable typing code
(From OE-Core rev: 13fcda4b158ce944d64b22bd5b63ce0f51faad67)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:50 +01:00
Khem Raj
539849c3da uclibc.inc: uclibc rtld does support GNU_HASH
(From OE-Core rev: a4b74a8244e8b55075082e6d5a59f35f8e437e9d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:50 +01:00
Saul Wold
2e1974d774 eglibc: Add patch to fix /var installation location
This address the packaging issues since it's installed in the wrong place
ERROR: For recipe eglibc-nativesdk, the following files/directories were installed but not shipped in any package:
ERROR:   /var
ERROR:   /var/db
ERROR:   /var/db/Makefile

(From OE-Core rev: 22a2297c712d3b3ca0335197943483218c92ef3e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:50 +01:00
Peter Seebach
b88a0e5876 sanity.bbclass: Detect empty $PATH components too
Empty components in $PATH have the same effect as a . in $PATH,
and are a common side-effect of inserting a misspelled or unset
shell variable in $PATH.

(From OE-Core rev: ac4201b714c83c614113bfa735d0a2fc6f64db99)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:49 +01:00
Mark Hatle
4ba6a86632 blacklist.bbclass: Refactor, use PNBLACKLIST[pn]
Revise the handling from ANGSTROM_BLACKLIST to PNBLACKLIST[pn].

Refactor the code to eliminate references to the distribution and recipe
name in the message.

Change the skipPackage message message from:

ERROR: <recipe> was skipped: <distro> DOES NOT support <recipe> because <reason>

to:

ERROR: <recipe> was skipped: Recipe is blacklisted: <reason>

(From OE-Core rev: 0893457465e184550906844fbab2dec397201835)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:49 +01:00
Mark Hatle
866424804e blacklist: fix typo in name
(From OE-Core rev: 02a5fe21cad2ec29268de7f3a556bb827f726998)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>

Import directly from meta-openembedded commit: 	a63c374cdc785ade69d2998978d08280e671dc1f

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:49 +01:00
Saul Wold
710f12e1cd h264_qpel_mmx.patch: fix Upstream-Status tag
(From OE-Core rev: 1410f735bca5d1ad2ad1c75fa17288d223d078a0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 17:50:49 +01:00
Richard Purdie
59ca57cd23 bitbake/runqueue: Drop check_stamp_fn, it's obsolete and should not be used
This function was used by old code such as packaged staging but is thankfully
obsolete now and replaced with better mechanisms. Its time to remove it and
the horrible internal only variables associated with it.

(Bitbake rev: 2995b8d551e0532eca20f8862730acd062c608ad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 11:54:27 +01:00
Richard Purdie
be4f8e368c bitbake/runqueue: Drop check_stamps function, it is obsolete and unused
This was originally used to check the consistency of the stamps in one function
call. This turns out to be inefficient, unnecessary and if it were necessary,
check_stamp_task() could be called in a loop. The function has been unmodified
for a while and likely contains bugs. Its best simply removed.

(Bitbake rev: 728ffde1bd69b880d48fe8523b1616956d13616e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 11:54:26 +01:00
Richard Purdie
d48d8aa1e7 bitbake/runqueue: Fix 'full' stamp checking to be more efficient and cache results
This should fix issues where bitbake would seemingly lock up when checking
certain configurations of stampfiles.

The cache is kept within the runqueue since that feels like the right
place to associate this cache data.

(Bitbake rev: e95755c4931b26d9f8102ed3652dff969145cfc9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 11:54:26 +01:00
Christopher Larson
4a2147f54f runqueue: drop unnecessary keys() in runqueue_process_waitpid
(Bitbake rev: d03dc07dea2f4e594fdbe4abe618670fe628a7c9)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 11:54:26 +01:00
Christopher Larson
e2c58b40d1 runqueue: handle task exit due to signal/stop
- for a normal exit, use WEXITSTATUS, rather than manually shifting
- for exit via signal, set the exit code to 128+N, per shell convention
- if a process was stopped, return and don't handle it, as the process can yet
  be continued

This should fix the case where bitbake says a task failed with an exit code of
0 (we assumed failure based on the overall status, but didn't pass all the
information along to task_fail).

(Bitbake rev: 84ea614bc56d35a414eb5bf5658891b340bfc569)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-11 11:54:26 +01:00
Liming An
6841abd172 Hob: change the workflow about click 'Run Image' to run directly after builded a qemu image
[YOCTO #2155]

(Bitbake rev: d8a1fc4613ce1d6c1d0e3dad53d7af15b2011fd5)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:56:47 +01:00
Liming An
71b277acb1 Hob: add group number show and 'bold' visible effect for Package view
as ui design, add number of packages for each group, and make the
text font to 'bold' when row be selected

[YOCTO #2195]

(Bitbake rev: 5812176a679a39a4d096134c871c3d24a7e505ea)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:56:46 +01:00
Liming An
a75562aa8b Hob: add original url show function with the tooltip hyperlink for user
When case about No browser, such as running in 'Build Appliance', user can't open
the hyper link, so add this work around for user. (Checking the browser is avaiable
or not is hard by different system and browser type)

[YOCTO #2340]

(Bitbake rev: 02cc701869bceb2d0e11fe3cf51fb0582cda01b0)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:56:46 +01:00
Liming An
cb9be92350 Hob: change the refresh icon speed to make it view clear
Because the arrow icon refresh so fast as the go backward by illusion, so adjust it slow.

[YOCTO #2335]

(Bitbake rev: ac4a8885fafdc0d1e79831334ead9a8ddb6e2472)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:56:46 +01:00
Saul Wold
54a1cf230b eglibc: Add patch to fix /var installation location
This address the packaging issues since it's installed in the wrong place
ERROR: For recipe eglibc-nativesdk, the following files/directories were installed but not shipped in any package:
ERROR:   /var
ERROR:   /var/db
ERROR:   /var/db/Makefile

(From OE-Core rev: 910452727fc277c1caec7612b36c37b58d845350)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:52 +01:00
Dongxiao Xu
9e2638240d libc-package.bbclass: Add MLPREFIX while dynamically set RDEPENDS
We need to add MLPREFIX when set RDEPENDS by setVar() function.

(From OE-Core rev: 9407895c88e46490d0ef9bb185f73466e7204c15)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:52 +01:00
Ting Liu
c77298120c image_types.bbclass: redefine EXTRA_IMAGECMD_jffs2 to leverage siteinfo
(From OE-Core rev: 7c803cea58737ea0abc62cd21c3813d955f07224)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:52 +01:00
Eric Bénard
3c97806c29 zlib: upgrade to 1.2.7
1.2.6 is no more fetchable and 1.2.7 fix some bugs, full changelog is
available here : http://zlib.net/ChangeLog.txt

(From OE-Core rev: 2f071e32128d8c022277c8af72dae47f60cf212b)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:52 +01:00
Nitin A Kamble
3eff636ee8 guile: upgrade from 2.0.3 to 2.0.5
(From OE-Core rev: 29afcb7ad976db62f9a46abf305a47a24a99dbda)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:51 +01:00
Khem Raj
1e6c1169fe openssl: Fix build for mips64(el)
(From OE-Core rev: b2f89bd7bf3ae86b7db8cbef4b103d61cb68a218)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:51 +01:00
Peter Seebach
36784da878 sanity.bbclass: Implement initial toolchain sanity checks
This introduces a sanity check for the toolchain, which verifies
each tuning (including any multilibs), producing meaningful diagnostics
for problems, and also provides some higher-level tuning features.

The TUNEVALID and TUNECONFLICT/TUNECONFLICTS settings were not
implemented.  Listed one or two missing features in TUNEVALID,
also (in a previous patch) fixed the references to
features which didn't exist.

This patch also provides a whitelisting mechanism (which is completely
unused) to allow vendors providing prebuilt toolchain components to
restrict tunings to those based on or compatible with a particular ABI.

(From OE-Core rev: 2a91ff0ba0d587c516a5a972553280364853faa4)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:51 +01:00
Otavio Salvador
87b6197d1d qt4-graphics-system: set graphic system in profile instead of X11 session
To allow the use of Qt applications started manually to use the
configured graphics system the setting needs to be available in user
environment. This moves the setting to /etc/profile.d ensuring it is
set and available. This allow the removal of x11-common as dependency.

(From OE-Core rev: 3804784b6200f82f5d8d6f533ce5e1a36ee2aeac)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:50 +01:00
Khem Raj
f92f71c471 libatomics-ops: Make it build for SH4
(From OE-Core rev: 0023aa21687287754c972c5e8edd527822e4e7c0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:42:50 +01:00
Martin Jansa
bc84461b32 kmod: fix upgrade path from module-init-tools
* PROVIDES does not need _${PN}
* CONFLICTS should be RCONFLICTS
* opkg needs RREPLACES to automatically remove older module-init-tools
  instead of just reporting it conflicts with kmod

SHR root@gjama ~ $ opkg install kmod
Installing kmod (7+git02629fa02e96763db7460a930239cc93649a52f8-r0.0) to root...
Downloading http://jama.dyndns-home.com/org.openembedded.shr-core//armv4t/kmod_7+git02629fa02e96763db7460a930239cc93649a52f8-r0.0_armv4t.ipk.
Removing package module-init-tools-depmod from root...
update-alternatives: removing //sbin/depmod as no more alternatives exist for it
Removing package module-init-tools from root...
update-alternatives: Linking //sbin/insmod to ../bin/busybox
update-alternatives: Linking //sbin/modprobe to ../bin/busybox
update-alternatives: Linking //sbin/rmmod to ../bin/busybox
update-alternatives: removing //sbin/modinfo as no more alternatives exist for it
update-alternatives: removing //bin/lsmod as no more alternatives exist for it
update-alternatives: Linking //sbin/lsmod to ../bin/busybox
Configuring kmod.
update-alternatives: Linking //sbin/insmod to /sbin/insmod.kmod
update-alternatives: Linking //sbin/modprobe to /sbin/modprobe.kmod
update-alternatives: Linking //sbin/rmmod to /sbin/rmmod.kmod
update-alternatives: Linking //sbin/modinfo to /sbin/modinfo.kmod
update-alternatives: Linking //bin/lsmod to /bin/lsmod.kmod
update-alternatives: Linking //sbin/lsmod to /bin/lsmod.kmod
update-alternatives: Linking //sbin/depmod to /sbin/depmod.kmod

(From OE-Core rev: 8de7f8045f28aecfe796afcdb013c557ce9d1372)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:01:52 +01:00
Khem Raj
6b5dbc8e33 kmod: Use base_libdir for installing libkmod
This also helps avoid QA errors about binaries
accessing contents from /usr/lib

Also fixes emptry libkmod problem since now
the files are installed in expected place

(From OE-Core rev: 6b74f2461735272bd950a4f060dab6e778a36f92)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:01:52 +01:00
Khem Raj
7f5e732208 kmod: Update to .8+ release
(From OE-Core rev: 8dd0e28809dba8ce6d42c127041c591664c81c59)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:01:51 +01:00
Bruce Ashfield
8880407c5e kern-tools: fix do_patch errors
The linux-yocto repository and scripts can support a mode of
meta data management that merges a base meta branch to every
BSP branch. In this case, the scripts don't have to restore
a checkpoint for the meta data to be globally accessible.

The decision to restore or not is made based on whether or
not the meta branch is part of all branches or not.

The linux-yocto recipes have a sanity check to determine if
the requested SRCREV for meta data matches the head of the
meta branch (via do_validate_branches). If the wrong commit
is at the head, the meta branch is moved aside and the branch
reset to the right commit. This creates two meta branches that
contain the base meta data.

The test for integrated meta data mistakes this for a globally
merged set of meta data and doesn't restore the checkpoint, which
leads to build failures.

The immediate fix is to allow two branches to have the meta
data. The long term fix is to make the detection only consider
if the build branch contains the meta data.

(From OE-Core rev: bd794b92d12ceda2728520701e980b7a3cabd23d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:01:51 +01:00
Martin Jansa
d36a73f7c4 kmod: include libkmod also from libdir
* until it's decided it should be installed in base_libdir or libdir
* fixes libkmod packaging

(From OE-Core rev: 87249372b4a9951f9e4dc6acece950718382a164)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-09 21:01:51 +01:00
Bruce Ashfield
b186795083 meta-yocto/linux-yocto-3.0: update branch mappings for new tools
Updates to the kern-tools to be more flexible and support multiple
upstream repository formats means that KMACHINE should really only
map to a machine and that KBRANCH should specify branch information.

To adapt to this change, we split the hardware reference boards into
KMACHINE and KBRANCH mappings.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:17:49 +01:00
Bruce Ashfield
bdc258eb99 linux-yocto/3.0: mm/msync: tweak tmpfs patch for syscall msync
Bumping the routerstationpro SRCREV for the following fix:

    mm/msync: tweak tmpfs patch for syscall msync

    Commit 1c3ae5441 "mm: msync: fix issues of sys_msync on tmpfs"
    fixes the problem that sys_msync fails with tmpfs on MIPS CPU which
    has feature "cache alias".

    But it makes POSIX test cases mlockall/3-6 3-7 fail on MIPS.
    Case mlockall/3-6 creates a share memory, and maps it to memory.
      fd = shm_open(SHM_NAME, O_RDWR|O_CREAT, S_IRUSR|S_IWUSR);
      foo = mmap(NULL, BUF_SIZE, PROT_WRITE, MAP_SHARED, fd, 0);
    Then calls mlockall to lock all of the virtual address space:
      if (mlockall(MCL_CURRENT) == -1) {
    At last tests whether the virtual address spaces are locked:
      page_ptr = (void*) ((long)foo - ((long)foo % page_size));
      result = msync(page_ptr, page_size, MS_SYNC|MS_INVALIDATE);
    It espects msync returns -1 with EBUSY but returns 0.
    Case mlockall/3-7 creates a normal file to mmap, and it fails too.

    Tweak the patch to:
    1 Moved the CONFIG_TMPFS block down in the loop so that the normal
      vma flag checking will perform.
    2 There may be other VMAs in the list after this VMA which belongs
      to tmpfs file, and we should sync them after the tmpfs one. So
      remove the break loop clauses.

    Signed-off-by: Kang Kai <kai.kang@windriver.com>

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-05-08 16:09:35 +01:00
Bruce Ashfield
987c55877d kern-tools: integrate minor fixes
Updating the SRCREV to pick up two minor fixes:

1/2:
    kgit-init: correct spelling of createme

    kgit-init copies the kern-tools scripts and intends to copy createme.

    The typo is in the usage() of updateme as well.

    (From OE-Core rev: 043871d7e5d2d19c2ff43e54d2ff180c09e8903e)

Signed-off-by: Michel Thebeau <michel.thebeau@windriver.com>

2/2:
    kconf_check: fix bad quoting around missing_required.cfg

    missing_required.cfg won't have it's path truncated (if applicable), since
    the quoting it wrong.

    Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
    Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:06:42 +01:00
Bruce Ashfield
921e67bc82 linux-yocto: streamline support for multiple upstream repo types
In order to support repositories of various types (with or without
meta data, branched, pristine, custom, etc) information about the
type of processing that is required was passed to the processing
phases via variables.

The combination of variables involved in coordinating the processing
creates a learning curve and overly complicates recipe extensions.

With minor tweaks to the kern-tools, adding flexibility and keying
off the existence of the meta branch it is possible to remove all
of the variables that were added to support different repository
types.

(From OE-Core rev: 06e5f45c8f38925cd5902a3a3f436f5e9451dd16)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:06:42 +01:00
Bruce Ashfield
6636f840d4 linux-yocto/3.2: configuration and pch merge
Updating the 3.2 SRCREVs to import the following meta/config
changes:

   6b3d4e0 meta: add mei feature
   519abac meta: add usb/uhci-hcd feature
   a67c5a3 meta/crownbay: use usb features
   0855066 meta: add usb/ohci-hcd feature
   15f1a99 meta: add usb/ehci-hcd feature
   8fa6408 meta: add usb/xhci-hcd feature
   c724a55 meta: add usb/base feature
   b55b3a1 sys940x: Cleanup sys940x.scc
   93f2e97 sys940x: Use PHYSICAL_START of 0x200000 to boot
   aaa034b sys940x: Add common standard and preempt-rt features
   e2b1286 sys940x: Add efi-ext to standard and preempt-rt configs
   d188c21 sys940x: Move emgd-1.10 data to the standard scc file
   72d9369 fri2: Cleanup fri2-$KTYPE.scc files re efi-ext.scc
   dbcb120 fri2: Use emgd-1.10 feature and branch

And the following driver fix:

   f39a0a9 pch_gbe: Do not abort probe on bad MAC

(From OE-Core rev: 612047a20ca400b932ccc634ddb759460d69fdce)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:06:42 +01:00
Zhai Edwin
38467c458f pango: Fix modules load failure in multilib environment
Multi-libs of Pango need different modules, thus different config files and
utils. This patch separate config file and utils with different MLPREFIX to
avoid conflict.

[YOCTO #2356] got fixed.

(From OE-Core rev: 80c431989eef64d2c34a9cddb7fb95b7b9768706)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:06:42 +01:00
Scott Garman
c4a7a24cb5 openssl: fix incorrect INC_PR
Restore INC_PR to r15 to prevent breakage with out of tree openssl
recipes (e.g, meta-oe).

(From OE-Core rev: 370b186b7c39897b868a5e3798a11a285277f145)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 16:06:41 +01:00
Richard Purdie
87741fd6ea xcb-util-image: Add missing dependency on xcb-util
(From OE-Core rev: 616552506708d6dbb35a716be5bdff345edf2be0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:17 +01:00
Richard Purdie
b0adc50a72 sed: Explicitly disable acl for deterministic builds
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:17 +01:00
Martin Jansa
dd289637bf libgdbus: delete from oe-core
* as suggested here:
  http://lists.linuxtogo.org/pipermail/openembedded-core/2012-May/022071.html

(From OE-Core rev: 7da4a24fc5a781602aff20d25f4b9162e60810fc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:16 +01:00
Martin Jansa
110511c2c1 libsoup: delete from oe-core
* as suggested here:
  http://lists.linuxtogo.org/pipermail/openembedded-core/2012-May/022060.html

(From OE-Core rev: 95849df48d1f3802a593d57d7917bc420cbf811a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:16 +01:00
Richard Purdie
4a158688e6 xeyes/pong-clock: Update recipes
(From OE-Core rev: a1bdb86c6fcb925cef10e613dd553c766e359188)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:16 +01:00
Richard Purdie
67f6baa72a meta-demoapps: Remove except for xeyes and pong-clock
http://lists.linuxtogo.org/pipermail/openembedded-core/2012-May/022059.html

As proposed by Martin Jansa with a couple of changes from me.

(From OE-Core rev: 204ee7391c19f9b2fa7f8b2ef46d04c7ccf5bd42)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:16 +01:00
Martin Jansa
71e56f8d89 evolution-data-server: delete old 2.20.0 version
* evolution-data-server_git.bb provides 2.30.2 from 2010-06-20 and is default for a while

(From OE-Core rev: 3138acfe6bcd86e41900a2d5e90851e30ea44bec)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:15 +01:00
Martin Jansa
fb129e0467 evolution-data-server: delete unused patch parallelmake.patch
(From OE-Core rev: 557d81e4c323fb0f919b5ea466555b13d95b7584)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:15 +01:00
Martin Jansa
cf4f26078a dbus-glib: bump PR to rebuild after glib upgrade
* some apps had issues in runtime when dbus-glib wasn't rebuilt and
  reinstalled after glib upgrade, see:
  http://www.shr-project.org/trac/ticket/1980

(From OE-Core rev: af04af955b1443861a9f7e5fbf87a93546f9acd9)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:15 +01:00
Scott Garman
4b88d37116 distro_tracking: updates for upgraded recipes
libpng, openssl, openssh, and opensp

(From OE-Core rev: d9e67aade8dbfd6ebd6836c703f65a043510043b)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:15 +01:00
Scott Garman
cc9b58e7a7 opensp: upgrade to 1.5.2
Removed all patches, they've been integrated upstream. :)

Added --disable-doc-build to prevent creation of docs, which
otherwise fails with the following configure error:

could not find xmlto; set XMLTO or consider --disable-doc-build

Removed configure_prepend step that was deleting the m4/ directory,
since some macros needed for the build are defined there, and I've
not encountered any problems with keeping them there in my testing.

(From OE-Core rev: cbd055917b04bf8fc640eee289e443230de139a2)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:15 +01:00
Scott Garman
e11c495886 openssh: upgrade to 6.0p1
LICENSE checksum changed due to a trivial difference in the credits
list.

(From OE-Core rev: ce1fc60b0044bccf6cf8432700d6c0b6f042dae2)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:14 +01:00
Dongxiao Xu
649782175a qt4: move functions from python to shell style
In qt4's do_configure operation, it will refer to some variables that
are derived from 'd', however these variable values may be not correct
in multilib case since the extraction of these variables happens before
the multilib handler.

The fix is to move these python style functions back to shell style.

This fixes [YOCTO #2355]

[RP: Fix whitepace]
(From OE-Core rev: 977ba301a1063a84b865ddf7367c35827fbffc86)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-08 14:49:14 +01:00
Richard Purdie
38da655788 glib-2.0: Fix issues with libelf dependency creeping in
(From OE-Core rev: 2929e7d590862d9649458c90804e79a1dce40423)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:48 +01:00
Richard Purdie
18261968c2 connman: Disable tist plugin on powerpc
This plugin doesn't build on powerpc due to powerpc's terminal ioctl defintions
being incompatible with assumptions being made by this module. Until someone has
need and can test this on powerpc, disabling is the safest option.

(From OE-Core rev: 672846b0262add037daa2c9e434fe09388b58da8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:48 +01:00
Khem Raj
f22cf1bedf image.bbclass,kernel.bbclass: Use kmod-native instead of module-init-tools-cross
(From OE-Core rev: 74fcf61224dc3e12e753c5de793591677275dffd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:47 +01:00
Khem Raj
884c7c6eee module-init-tools: Delete
Since its provided by kmod

(From OE-Core rev: 27bc204010b9dccb30847d7b3216f8b1e106f64e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:47 +01:00
Martin Jansa
bc2c2fe1f6 kmod: disable man pages generation because we don't have working xsltproc
(From OE-Core rev: 7d782a6ef77072d7f0fe50d8208c24c9e9ea9507)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:47 +01:00
Khem Raj
b4bc0a7f1b kmod: Add recipes
kmod is replacement for module-init-tools

(From OE-Core rev: 716606f5446534e48b45fcc017e8bbdfe7f15e26)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:47 +01:00
Saul Wold
7903a285ee libsoup: Fix for glib-2.0 2.32.2
(From OE-Core rev: d3efcf15cee6734b4bf2277346ceba9a991fbd0f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:46 +01:00
Saul Wold
22f682b857 libgdbus: Fix for glib-2.0 2.32.2
(From OE-Core rev: 0e33eade3fec1d9df052332d37d266405467a354)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:46 +01:00
Martin Jansa
9355a8e5c1 evolution-data-server: enable deprecated glib API
* we have very old version and deprecated g_atexit is used even in current master
  http://git.gnome.org/browse/evolution-data-server/log/libedataserver/e-categories.c

(From OE-Core rev: 155ea975f5e0287f9ed49413785d1948c56601a5)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:46 +01:00
Martin Jansa
3ea2db0b9d libsoup-2.4: upgrade to 2.38.1
* newer webkit-efl needs 2.37.4 or newer

(From OE-Core rev: 271c3afd8b72e321981b193be6deb968027e6149)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:46 +01:00
Martin Jansa
b072f0c124 gobject-introspection: upgrade to 1.32.1
* simplify SRC_URI
* add COPYING to LIC_FILES_CHKSUM

(From OE-Core rev: 117cb418dedd35afce35598fd68a18721db6e9c9)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:46 +01:00
Martin Jansa
825e42f880 glib-2.0: upgrade to 2.32.2
(From OE-Core rev: 82551379ddd5440f3cdbbe2f7028e2af050e5788)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:45 +01:00
Martin Jansa
2dc824643a glib-2.0: upgrade to 2.32.1
* g_once_init_enter.patch shouldn't be needed after upstream commit
  794c1a30bc27b4c8d77537813acb1213d5ac80f2

* LIC_FILES_CHKSUM change is only because PCRE was upgraded and now
  pcre.h says "Copyright (c) 1997-2012 University of Cambridge" instead
  of 2010 and COPYING file
  "Please see the file LICENCE in the PCRE distribution for licensing
  details."  but LICENSE file is not part of glib distribution (but still
  BSD in standalone PCRE)

(From OE-Core rev: 231a3e046900f8fae2e0aa4fe5f2bee4c290b0b0)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:45 +01:00
Tomas Frydrych
feee16b828 site/arm-common: alignment values for guin32, guin64 and unsigned long
These are required to build recent versions of glib-2.0

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:45 +01:00
Saul Wold
3cd886a60b site/powerpc-common: alignment values for guin32, guin64 and unsigned long
These are required to build recent versions of glib-2.0

(From OE-Core rev: e9fd8e3d01091aebbc4b3584d9febc695836e4c3)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:45 +01:00
Saul Wold
7fecfa96bc site/mips-common: alignment values for guin32, guin64 and unsigned long
These are required to build recent versions of glib-2.0

(From OE-Core rev: 8fa607c1430674bee1f1f80d33f8939d7f0b1100)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 16:42:44 +01:00
Dongxiao Xu
7a49d88d22 Hob: Clear the building status if command failed
We may meet certain command failure during build time, for example,
out of memory. In this case, we need to clear the "building" status.

This fixes [YOCTO #2371]

(Bitbake rev: 283dbbbf5d34adb4c9e3aa87e3925fdebe21ff42)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:01 +01:00
Richard Purdie
b478649e49 bitbake/tests/fetch: Add simple http fetcher tests
(Bitbake rev: 27b89561781f19fd95308433bec06fa8b7b354e8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Richard Purdie
d4d4aab8dc bitbake/fetch2/wget: Add fallback/default wget commands
(Bitbake rev: 9586808572d06de4127f6a524e87e9ad75232423)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Richard Purdie
c77bcfbfe3 bitbake/fetch2/wget: Remove unneeded function indirection and reindent
(Bitbake rev: 769b92b14a1dfbbf697b8f4bf9a5a828807fd885)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Richard Purdie
3d74d5eed9 bitbake/fetch2/wget: Remove unnecessary use of OVERRIDES
This allows some simplifications of the function and is slightly faster.

(Bitbake rev: 5999dc9985ad087c036611bfaa59b090a08781a6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Richard Purdie
c9da0e31f8 bitbake/fetch2: When unpacking, only use PATH variable if its set
(Bitbake rev: ffec38675c0d78ee9fcd1d8f5a746d162145554e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Richard Purdie
2605ca19c5 bitbake/fetch2: Remove WORKDIR reference, should use passed parameter
(Bitbake rev: 9384dfaf644365c731be26572443287ce8f190b2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-07 11:03:00 +01:00
Tom Zanussi
3b78ad8041 yocto-bsp: clarify help with reference to meta-intel
The current yocto-bsp help assumes knowledge that the meta-intel layer
needs to be cloned before it's put into the BBLAYERS.  Avoid the
guesswork and state the details explicitly in the help.

Also, the shorter 'usage' string doesn't mention it at all; it would
help to at minimum mention it and refer the user to the detailed help.

Fixes [YOCTO #2330].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 10:00:39 +01:00
Tom Zanussi
c0d92e51a1 yocto-kernel: use BUILDDIR to find bblayers.conf
The current code assumes that builddir == srcdir/build, which it
obviously isn't sometimes.  Use BUILDDIR to get the actual builddir
being used.

Fixes [YOCTO #2219].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 10:00:31 +01:00
Paul Eggleton
db89f1826b poky.conf: use correct version string for Ubuntu 12.04
Since it is an LTS release, the final version string was not
"Ubuntu 12.04" but "Ubuntu 12.04 LTS", so use this when doing the tested
host distribution check.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:57:14 +01:00
Darren Hart
203231f1f8 initrdscripts: Update install.sh to work with mmc devices
Fixes [YOCTO #2385]

The installer only searches for hd[ab] sd[ab]. Some newer BSPs have mmcblk
devices that should be used as the install target. These devices also have a
partition prefix (mmcblk0p1 instead of mmcblk01). As they are detected
asynchronously, it is necessary to add the rootwait kernel parameter to avoid
a race condition trying to mount the root device.

As BSPs like the FRI2 and the sys940x have mmc devices and will have a 1.2
release, we should push this to 1.2.1. The changes are perfectly contained and
easily verified.

Test for an mmcblk device and add the p partition prefix if necessary. Add the
rootwait kernel parameter when an mmcblk device is detected.  Replace the series
of explicit umount commands with a single umount using a wildcard. This will
find all the partitions and will not try to unmount non-existant devices. Avoid
copy and paste errors by replacing /dev/${device}${pX} references with the
previously assigned rootfs, bootfs, and swap variables.

These changes have been tested on the FRI2 Sato image which installed to
/dev/mmcblk0 as well as the N450 Sato image which installed to /dev/sda. Both
were successful.

(From OE-Core rev: bf403680d72e360c7382f540ea25cfdcbe77b4e5)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:48 +01:00
Bernhard Reutner-Fischer
c048ff9f9d runqemu: be sh neutral
Now runs with dash and busybox' ash as well as with bash

(From OE-Core rev: 2b93ed90736ed08c25561e24343a5ef2b8f7dbef)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:48 +01:00
Bernhard Reutner-Fischer
56f243e4ce runqemu: minor tweaks
(From OE-Core rev: cda565317eefbac1b7fb268d3d8720ebae8057fa)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:47 +01:00
Bernhard Reutner-Fischer
215a1ea026 runqemu: add and use error()
(From OE-Core rev: d77186606efdbb03fd92e7ee9e9ee2f9be601ba5)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:47 +01:00
Bernhard Reutner-Fischer
987bc36d13 runqemu: simplify process_filename()
(From OE-Core rev: 042efbe653b699bd33175117e1363d87e4602e4f)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:47 +01:00
Bernhard Reutner-Fischer
e99f652ede runqemu: use modern, single-char name of test(1)
I do not have "[[", just "[". Be gentle to users of legacy-free setups,
also by using '=' instead of the double notation.

(From OE-Core rev: e96ba42a977f4c07aa196ce379ecd73e4ddc23c5)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:47 +01:00
Bernhard Reutner-Fischer
97482d61cf runqemu: Use OE_TMPDIR
The error message erroneously talked about TMPDIR.
Just use OE_TMPDIR everywhere to make the name of the variable obvious.

(From OE-Core rev: 7b633d0a4cf9aa05e6243974bab2b780c246f8ba)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Andreas Oberritter
0ff3fa7cd9 gcc-4.6: disable cloog, change syntax to disable ppl
* Backported from 523df15bcc21e1749771cca757613f3520243b8e
  as suggested by Khem.

* Original commit message:

  If build system has those libraries installed
  gcc configure will pick them up. We want
  consistent builds so we disable them since we
  do not (yet) support them

(From OE-Core rev: 9de1de7c2c4e9f5accb4dd082fe819a711defbfb)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Khem Raj
722d74ebb5 uclibc: Return correct endianness for mips64
Regular expression did not check for mips64

(From OE-Core rev: 945b817d381bdb68202982536daaaaff78ad5761)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Jason Wessel
23d149856d terminal.bbclass, oe-buildenv-internal: pass SCREENDIR environment variable
Some versions of the screen utility provided from the host OS vendor
write the socket directory to $HOME/.screen.  When using a shared home
directory across many servers, one sets the SCREENDIR environment
variable to avoid collisions in the shared home directory.  This
results in problems launching a devshell where it is not entirely
obvious what happened because the SCREENDIR environment variable
got stripped from the environment prior to setting up the screen
in detached mode.

Example:
   % bitbake -c devshell busybox
   # ...Please connect in another terminal with "screen -r devshell"

   % screen -r devshell
   There is no screen to be resumed matching devshell.

The temporary work around was to do something like:
   sh -c "unset SCREENDIR; screen -r devshell"

This patch adds SCREENDIR to the white list to ensure screen
works properly on systems where a developer needs to use
the SCREENDIR with shared home directories.

(From OE-Core rev: 5568a8f5a1c65bae021b2e36d735d3153acc6d72)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Peter Seebach
7b078123b7 conf/machine: Clean up configuration values.
This cleans up and/or corrects a few values from machine includes
for consistency with future toolchain sanity checks, and also adds
the TUNEVALID and TUNECONFLICTS to documentation.conf.

(From OE-Core rev: 6ffe53c721a80cf156b44f59b564f2e899c6af50)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-06 09:55:46 +01:00
Richard Purdie
7f11bbb9bb bitbake: Fixup bitbake-selftest
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 17:41:47 +01:00
Richard Purdie
12ebec4c94 bitbake: Add start of bitbake regression/self testing
This adds some basic unit testing for the codeparser and data store code. Many of
the actual test cases were taken from work by Chris Larson's OE-Signatures work but with
changes to adapt to the current bitbake APIs we need to test.

I also imported CoW tests written by Holger Freyther from the original bitbake-test
codebase: http://svn.berlios.de/wsvn/bitbake/trunk/bitbake-tests/tests/ and
some tests from the doctests that were removed in commit:
http://git.openembedded.org/bitbake/commit?id=3a11c2807972bbbddffde2fa67fc380d159da467

(Bitbake rev: ae4a95780e3e08cf73c854efa8cd93379e00c4e5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:58:35 +01:00
Koen Kooi
2ee0d3f054 connman: enable TI shared transport plugin when wifi or bluetooth are requested
This plugin manages the firmware loading for the TI wl12xx series of bluetooth/wifi/fm chips.

The double --enable-tist when both bluetooth and wireless are enabled is ugly, but harmless

The background on the plugin: https://bugs.meego.com/show_bug.cgi?id=8418

(From OE-Core rev: 22254a32f05e9212411216bf1a4e48fd86b9c3ef)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:45:00 +01:00
Andreas Oberritter
f60cdd4d56 busybox: port improvements to simple.script from Debian (udhcpc)
* Support resolvconf
* Avoid bashism $((metric++))
* Use 'domain' instead of 'search' for domain parameter

(From OE-Core rev: 3d4ccf98b83fe662f375cd5b029fdd602824c0e8)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:59 +01:00
Andreas Oberritter
84eb62d8b2 busybox: remove unused patches for simple.script (udhcpc)
* OE-Core provides its own copy of simple.script.

(From OE-Core rev: 3a36efc17c8504b00a7a277a67a7b10caa4d1cdc)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:59 +01:00
Andreas Oberritter
97911d3931 gcc-4.6: explicitly disable ppl
* Fixes the following error after a system library upgrade
| .../mipsel-oe-linux/4.6.4/cc1: error while loading shared libraries: libppl.so.10: cannot open shared object file: No such file or directory

(From OE-Core rev: 2c0fb8265d4876db537850f4b20c898dde3a0f4c)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:59 +01:00
Paul Eggleton
3fd5d4db3b buildhistory: fix multiple commit of images and packages at the same time
The echo line here was merging multiple lines into one, and the result
was that if both image and package changes had to be comitted then only
the image changes were being committed and the package changes could
potentially be merged into the next package change. Quoting the variable
reference fixes this.

Fixes [YOCTO #2411]

(From OE-Core rev: 2086bb86885951d0a74342e30ff205c24cb93f0d)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:58 +01:00
Richard Purdie
dfd0116a52 bitbake/utils: Convert vercmp_string() to use vercmp internally
Having two different version comparision algorithms in bitbake has never seemed
like a sensible idea. Worryingly, they also return different results to each other.

The vercmp_string API is relatively unused with no users in OE-Core or BitBake
itself for example. This patch converts it to use vercmp internalls, bringing
consitency to the comparisions which is easy now we have other recently added
functions. Yes, this changes behaviour but in this case I'd prefer we were
consistent than having two different comparisions.

(Bitbake rev: a569c816e016447d60624c59a750709d59a0f455)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:57 +01:00
Jeff Polk
1c34d5822d bitbake/fetch2: Fix spelling error in network access error message
(Bitbake rev: b766630ed7e099fffe817928a2811272677a1b26)

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:57 +01:00
Jeff Polk
ca8e06e8a0 fetch2/git: Allow file:// URLs without checking for network access
Don't check for network access before grabbing the the current head,
cloning, or updating a clone when the protocol is 'file'.

(Bitbake rev: d5847bc5254b9d2f28a6b574f6157d1286add27c)

Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-04 16:44:57 +01:00
Saul Wold
2e9bb9d103 gcc-package-target: add libexec for plugin
Fixes:

ERROR: For recipe gcc, the following files/directories were installed but not shipped in any package:
ERROR:   /usr/libexec/gcc/i586-poky-linux/4.7.1/plugin/gengtype
(From OE-Core rev: 0be64cda0a20ca3aab75ee0cc360236d2dc40c95)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:10 +01:00
Christopher Larson
0de1832166 kernel.bbclass: move kernel-vmlinux up in PACKAGES
If KERNEL_IMAGETYPE is vmlinux, the expectation is most likely that there will
be no kernel image package, but we still want a vmlinux package for debugging,
so move kernel-vmlinux in front of kernel-image in PACKAGES.

(From OE-Core rev: b62a44a9bf7b268296aeed64469390aa7efc2e73)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:10 +01:00
Jason Wessel
76551e02ed runqemu: Fix TAP='TUNSETGROUP: Invalid argument' by falling back to tunctl -u
By default the runqemu script tries to set the group permissions on any
tap device it creates.  The TUNSETGROUP ioctl is not implemented on some
popular host enterprise linux distributions.

Internally the script will exit as follows:

++ /opt/qemux86/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tunctl -b -g 100
+ TAP='TUNSETGROUP: Invalid argument'
+ STATUS=1
+ '[' 1 -ne 0 ']'
+ echo 'tunctl failed:'
tunctl failed:
+ echo TUNSETGROUP: Invalid argument

This patch implements a fallback to using the userid as the owner of
the tap device which is supported by all 2.6 kernels, the default remains
to try and use the groupid first.

(From OE-Core rev: 3af2bc59776fb738bd795160512a2f3f49ce6d32)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:09 +01:00
Martin Jansa
e8005eb936 qt-4.8.1: fix creating /include directory in build host root
(From OE-Core rev: 7d3fd68480d54a8ef0d91a772df3506cd45ef2c2)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:09 +01:00
Nitin A Kamble
1cd72bd132 qt4: fix compilation issue
gcc 4.7 uncovers a type mismatch in the code. And this commit fixes the issue:

| /srv/home/nitin/builds/build-gcc47/tmp/sysroots/qemux86/usr/include/glib-2.0/glib/gthread.h:58:7: error: 'union' tag used in naming 'struct _GMutex' [-Werror=permissive]
| In file included from ./wtf/Platform.h:1217:0,
|                  from ./config.h:30,
|                  from wtf/gobject/GOwnPtr.cpp:19:
| wtf/gobject/GTypedefs.h:55:16: note: 'struct _GMutex' was previously declared here
NOTE: package qt4-x11-free-4.8.1-r41.1: task do_compile: Failed

(From OE-Core rev: 1923455340fca5e4b68a2c3ac3566a99baa93cd9)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:09 +01:00
Martin Jansa
c9e9d8baf4 site/ix86-common, site/x86_64-linux: alignment values for guin32, guin64 and unsigned long
These are required to build recent versions of glib-2.0

(From OE-Core rev: bb996003547f9b93b734ddac11407b4eb42ecfac)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:09 +01:00
Martin Jansa
74f42238ef gtk-engines: fix build with glib-2.32
(From OE-Core rev: 93a4f4a8e7c298c5a19e757ae797328369da104e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:08 +01:00
Andreas Oberritter
d3e0f1fcda nfs-utils: don't try to unload nfsd module
* When nfsserver get's stopped, "modprobe -r nfsd" may
  hang indefinitely. As there's no need to unload the
  module, just remove the call to modprobe.

(From OE-Core rev: aba81b64679ec0b1809946cb480e261af47f7625)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:08 +01:00
Saul Wold
faf1a72ce3 pulseaudio: disable tcpwrap by default
This ensures that tcpwrapper usage is always disabled, this was
inconsistent because it would test for libwrap and sometimes enable
and sometimes not.

This ensures consistent build reproducibility.

(From OE-Core rev: afa0efc3473fb5ba88d95594e382da2e03145c3b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:08 +01:00
Saul Wold
5e77a844d5 builder: Add Please Wait Dialog Box
Add dialog box while bitbake starts hob to inform user
to please wait for the hob screen to become visible.

(From OE-Core rev: d4d8dd9e272ee651b98bb336e96be601af366d41)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:08 +01:00
Saul Wold
188dff3daf gnutls: Update to 2.12.18
Change the SRC_URI to use the GNU_MIRROR

(From OE-Core rev: 753b22012f10c393c191d3116b9d38ee4be6d112)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:07 +01:00
Saul Wold
68eadb4847 xauth: Update to 1.0.7
(From OE-Core rev: 7f020c1e8429ab510f4c41ac7b7abfdd4db308fb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:07 +01:00
Saul Wold
a46a711934 bigreqsproto: Update to 1.1.2
(From OE-Core rev: cb96670f21707f8ae7ad58a6cb67cfaa6d7871a3)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:07 +01:00
Saul Wold
02a0202511 xkbcomp: Update to 1.2.4
(From OE-Core rev: 7bab740e59bc25c9887d1e38e8106073b0c8c5af)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:07 +01:00
Saul Wold
15c1c20d91 mc: Update to 4.8.3
(From OE-Core rev: b947c322efbe6984467717004105e2f8ed7588d8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:06 +01:00
Saul Wold
034cebebb2 util-linux: Update to 2.21.1
(From OE-Core rev: 2114d734b9c4ace980ef9fa30dd5b5f76f49b934)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:06 +01:00
Saul Wold
6362e9c01e cairo: Update to 1.12.2
Clean up some packaging issues, cairo-sphinx was installed
and is a testing tool that does not need to be packaged

(From OE-Core rev: 6a0dac89932b41502bb55a2dae07d835ca3c6245)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:06 +01:00
Saul Wold
db62a4f4ed xhost: Update to 1.0.5
(From OE-Core rev: eb087d8dacab9e4a7ea1fce35cd86b0c71f0a630)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:06 +01:00
Saul Wold
667ef5b25a xmodmap: Update to 1.0.7
(From OE-Core rev: 6615decca17874dcd212d7a17bb3078808a705fb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:05 +01:00
Saul Wold
fa7cd14e02 libtasn1: Update to 2.12
Use the GUN_MIRROR correctly

(From OE-Core rev: 7ab772c7de029734ccffd239ddc2a4e2953a1bb0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:05 +01:00
Saul Wold
0d47891213 resolvconf: Update to 1.65
(From OE-Core rev: 066e9a8aa13d33f0f96f036dfcbf48e0e0dab80f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:05 +01:00
Nitin A Kamble
0432cc1d1f distro-tracking: update as per recent recipe upgrades
(From OE-Core rev: 59522839dcfa6a9e95b0a8d0e1e2f210fc02e75d)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:05 +01:00
Nitin A Kamble
7b08f6a9a1 python: upgrade from 2.7.2 to 2.7.3
bin/python2 link is provided by the python install process,
so no need to create it.

rebase these patches to the newer code:
 fix_for_using_different_libdir.patch
 04-default-is-optimized.patch
remove this patch as it is upstream now:
 sys_platform_is_now_always_linux2.patch

Change default python version to 2.7.3 in the distro config

(From OE-Core rev: 5d92a95ea9b480235b7c9ca5949a681376eba725)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:04 +01:00
Nitin A Kamble
4f4ab8bfe3 gdb: upgrade from 7.4 to 7.4.1
(From OE-Core rev: a93e087d98f6b537d26932be85c80402337d15cb)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>

[Fixed sha256 - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:04 +01:00
Nitin A Kamble
d911601b4d quilt: upgrade from 0.51 to 0.60
(From OE-Core rev: 0e6843e7a3ed3b12e5f2bc6273047c2be5e47489)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:04 +01:00
Nitin A Kamble
754667c8ce makedepend: upgrade from 1.0.3 to 1.0.4
(From OE-Core rev: 4b3ab58c4319607aaa9ce6075d221a48b359feae)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:04 +01:00
Christopher Larson
8dbb57754b tcmode-external-csl: use the existing precompiled locale files
(From OE-Core rev: 3679de3e7085504a3f717e54d8adc9a0d53c5840)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:03 +01:00
Christopher Larson
9c62f635ab libc-package: rework ''precompiled' locale handling
There were a couple problems with the handling of precompiled locales.

- it gathered the list of locales from the directories - this breaks due to
  the naming mismatch, e.g. en_US.UTF-8 vs en_US.utf8.
- it retained its hardcoded assumption that the non-suffixed locale (en_US, as
  opposed to en_US.*) is UTF-8, while the others are otherwise. Hardcoding
  this is both inflexible and just plain wrong for some toolchains. It's most
  common in desktop distros for 'en_US' to be non-utf8, and ''en_US.UTF-8' is
  utf8, and this is the case in some external toolchains as well.

The code now uses the SUPPORTED file to hold the knowledge it needs. This file
not only holds the list of locales to generate, but also maps the locale names
to the charsets they correspond to. The code now uses this to assemble its
charset map, falling back to the '.' suffix as charset when the locale is not
in the map. For precompiled, it now uses the locale->charset knowledge it has,
thereby allowing non-utf8 non-suffixed locale names, whereas for
non-precompiled, it reverts to the previous assumption, renaming the utf8
locale and forcibly suffixing the others.

So, a person maintaining an external toolchain recipe is responsible for
ensuring that the SUPPORTED file they provide matches up with the compiled
locales in the toolchain, if they want to utilize precompiled locales.

I believe in the long term the compiled case should do the same thing
precompiled does, and use SUPPORTED or a similar mechanism to encode the
knowledge, and if people want all the non-suffixed names to be utf8, they can
change that file to do so. This would avoid the hardcoded assumption in the
code, as well as consolidating the behavior between the compiled and
precompiled cases.

(From OE-Core rev: 3f36058923ccda25a3dd85046542e65b6034c09e)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:03 +01:00
Christopher Larson
b9918a31ce tclibc-eglibc: drop hardcoded locale-base-en-us/en-gb
This is handled by IMAGE_LINGUAS, so hardcoding it here is at best unnecessary
duplication.

(From OE-Core rev: 7808c7ee9277170fbfb22bcf0575285174c2718a)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:03 +01:00
Christopher Larson
1fbde9091f external-csl-toolchain: update SUPPORTED to match toolchain
(From OE-Core rev: 65f3868c25df053ddf6ad2201ea0d68dc5c68fb1)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:03 +01:00
Christopher Larson
fa514172ed external-csl-toolchain: cleanup, simplify, use base_libdir
(From OE-Core rev: be158f5cb6650b761ac2f3649d071c051329a799)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:03 +01:00
Christopher Larson
6b20562501 external-csl-toolchain: silence .a/.debug QA warnings
(From OE-Core rev: a5f204130ff1232deb5f4b449961296d397630b4)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:02 +01:00
Christopher Larson
6826ffe03d external-csl-toolchain: split out a libstdc++-staticdev package
This silences one of the QA warnings.

(From OE-Core rev: 3412a1d69201951dd097e4d9a4abcec124d34d68)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:02 +01:00
Christopher Larson
c44aca85db csl-versions.inc: capture version in signatures
We want to ensure that changing external toolchain version will change the
metadata checksums of target recipes. This will do so via ensuring that any
variable which references TOOLCHAIN_OPTIONS also pulls in the toolchain
version variables.

(From OE-Core rev: 041a61368350dfbca825d2b2781543ea22678161)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:02 +01:00
Christopher Larson
df914695b5 base.bbclass: use isinstance for base_eventhandler
(From OE-Core rev: 86556a2bfa23ba69fea2ade14599054b186150cd)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:02 +01:00
Christopher Larson
5d540ca314 bitbake.conf: shift build config summary control to here
(From OE-Core rev: 164df0708d9add81be7d1fd56d487253062756d8)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:01 +01:00
Christopher Larson
b877b1a8bf libsndfile1: use PACKAGECONFIG for alsa distro feature
(From OE-Core rev: af593b5a3a8e1e552b34ca2785894ac468763024)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:01 +01:00
Christopher Larson
a8bd795aa3 libpcap: use PACKAGECONFIG for bluetooth distro feature
(From OE-Core rev: 78821b3a893c8934d0f0f54df46cdbbc37f082d8)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:01 +01:00
Christopher Larson
f855c3e632 distcc: use PACKAGECONFIG for x11 distro feature
(From OE-Core rev: c2bebf05752ec01144e32dbf2bbe4cfa86ae67df)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:01 +01:00
Christopher Larson
67228abee6 mesa: add missing flex-native/bison-native deps
A quick glance at configure.ac shows that both are required to build mesa, but
we were relying on their being built implicitly via other recipes in the
dependency chain. Make it explicit.

(From OE-Core rev: 4fb71999fad9e844850831caf2431ee8731787db)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:00 +01:00
Kang Kai
98f21d6e3d create-recipe: base on autospectacle.pl to create recipe file
[Yocto 1656]
create-recipe is based on original autospectacle.pl from project Meego.
Add feature to create a recipe .bb file. It requires a parameter to be
told where to download source package, then download and parse.
Create recipe file according to parse results.

(From OE-Core rev: e1f3a0bcce7b24d6c48e6c92c54bcb03858a5748)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:00 +01:00
Kang Kai
a5e76f3a7b autospectacle.pl: pull it from meego as a base
This autospectacle.pl is from meego project
http://meego.gitorious.org/meego-developer-tools/autospectacle

And take its latest
commit f462b759c6f569f35283d0885c97ae53b010bb03
as base of Yocto 1656: Recipe creation/import script.

(From OE-Core rev: 74b1d119cf3712a64d627a2adc1adcf7b8cd4123)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:00 +01:00
Saul Wold
845bcf0b1b libgcc: Add MLPREFIX to sanity check skip
Fixes:
ERROR: QA Issue: non -staticdev package contains static .a library: lib32-libgcov-dev path '/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/packages-split/lib32-libgcov-dev/usr/lib/i586-pokymllib32-linux/4.7.1/libgcov.a'
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/build/tmp/work/x86-pokymllib32-linux/lib32-libgcc-4.7.0+svnr186651-r0/temp/log.do_package.9691
NOTE: package lib32-libgcc-4.7.0+svnr186651-r0: task do_package: Failed
ERROR: Task 1077 (virtual:multilib:lib32:/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-multilib/build/meta/recipes-devtools/gcc/libgcc_4.7.bb, do_package) failed with exit code '1'
(From OE-Core rev: dd303065890e44f6f2c986988938c3599ea94e4f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-03 15:48:00 +01:00
Scott Rifenbark
d89f7b9cab documentation/Makefile: Fixed figures publishing bug
I discovered a bug when publishing documents.  There are two scp
commands that copy a document's files and figures to the appropriate
directory in the srifenbark@yocto-www:~/www.yoctoproject.or-docs
server where the manuals are published.  The second scp command
had a "/figures" at the end.  This was causing a new "figures"
directory to be created within the "figures" directory.  This
redundancy shows up as missing figures in the manuals if a new figure
or changed figure is ever added to the book after initial
publishing.  I removed the extra "/figures" at the end of the scp
command.

(From yocto-docs rev: cef3634e695f61bfb8465f1fb7a88e4e8a9a00f1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:56 +01:00
Scott Rifenbark
004a1f3846 documentation/yocto-project-qs/yocto-project-qs.xml: added quotes
Need quotes around the INHERIT statement.

Reported-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
(From yocto-docs rev: 96f03be0d2595b4b788d8bb2110fe8801279f3f9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:55 +01:00
Scott Rifenbark
44be9bfbb0 documentation/dev-manual/dev-manual-kernel-appendix.xml: grammar fix
(From yocto-docs rev: d2baa57b68f67900854ee89985e3c53b8cfa1bf0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:55 +01:00
Scott Rifenbark
96645d1df4 documentation/dev-manual/dev-manual-kernel-appendix.xml: Removed KMACHINE
The example that compliles the altered code will not run now when the
KMACHINE statement is in the linux-yocto_3.2.bbappend file.  I have
commented it out of the book.

(From yocto-docs rev: 3f67b34daf1ad598b4d07f5e2a60d8c63da754b2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:55 +01:00
Scott Rifenbark
257fd0da64 documentation/dev-manual/dev-manual-kernel-appendix.xml: updated KSRC
The KSRC example needs "_3_2" at the end of the variable.

(From yocto-docs rev: e6bcbe8504f72777a03e9b08de95d5e2741700a3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:55 +01:00
Scott Rifenbark
a22b2a8609 documentation/dev-manual/dev-manual-kernel-appendix.xml: added quotes
Turns out the KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.2.git
statement in the linux-yocto_3.2.bbappend file in poky-extras needs
quote characters around the pathname.  I updated the example
statement.

(From yocto-docs rev: eac1b53c04398152b41ac280fdc030615c165112)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:54 +01:00
Scott Rifenbark
71f80259f1 documentation/dev-manual/dev-manual-kernel-appendix.xml: kernel machine update
Found two instances of "yocto/standard/common-pc/base".  this should
now be "standard/default/common-pc/base".

(From yocto-docs rev: a2f4ac3885de1157e6d718cfea9b29a67c76aeb0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:54 +01:00
Scott Rifenbark
c6a0cc926f documentation/dev-manual/dev-manual-kernel-appendix.xml: 3.0 to 3.2
The kernel used for example is no linux-yocto_3.2.  I changed
all occurences of yocto_3.0 over to yocto_3.2

(From yocto-docs rev: 7ee8f86fd0f44197901c851a16c58aa5f6851b1f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:54 +01:00
Scott Rifenbark
ec4cb41714 documentation/dev-manual/dev-manual-kernel-appendix.xml: formatting fix
(From yocto-docs rev: 20c12b6ef59132f2eef62d45574b9af837971731)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:54 +01:00
Scott Rifenbark
6a415d218a documentation/dev-manual/dev-manual-kernel-appendix.xml: altered example
The example code with the printk statements needed to be altered.
And the wording supporting the example was modifyied to be more
generic.

(From yocto-docs rev: f76465e920c3959230196814f17890065c613730)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:53 +01:00
Scott Rifenbark
505e125ac2 documentation/dev-manual/dev-manual-kernel-appendix.xml: updated cpuinit
Looks like calibrate_delay(void) changed in the example.  Updated
to the most recent code.

(From yocto-docs rev: f1abcbf730c4b50ceb925e41181429c04eb2d55e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:53 +01:00
Scott Rifenbark
5a4dc0f442 documentation/dev-manual/dev-manual-kernel-appendix.xml: output updated
Updated the example sets up the bare clone.  The shell output changed
because the upstream repo changed to
"origin/standard/default/common-pc/base".

(From yocto-docs rev: cc3a8dde7b7f70174225ec95303d0280697d674b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:53 +01:00
Scott Rifenbark
9c6e16d7b0 documentation/Makefile: Added denzil specific .PNG file logic
A new figure was needed in the Kernel appendix.  I added that
figure to the block of code that creates the tarball for the
denzil branch.

(From yocto-docs rev: 352093f3eabf64052d78a41fd997993d09aa10ef)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:53 +01:00
Scott Rifenbark
db3de06a01 documentation/dev-manual: New figure just for denzil
New image needed for Denzil.  I created a new file named
"kernel-example-repos-denzil.png" and copied it to the
Figures folder.  I also deleted the
"kernel-example-repos.png" image.

(From yocto-docs rev: 97105187735c15e452580a0174897517c1860f2c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
7fd4991534 documentation/dev-manual/dev-manual-bsp-appendix.xml: updated hddimg example
In the "Building and Booting the Image" section there is an example
.hddimg file.  I updated the file to be the actual file used during
the BSP example build.

(From yocto-docs rev: 165feb4d501a2ed984b742ea9f10e6c2037972da)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
9770d73779 documentation/dev-manual/dev-manual-bsp-appendix.xml: BBLAYER update
For 1.2 you evidently need to add $HOME/poky/meta-intel to your
bblayers.conf file.

(From yocto-docs rev: d5565d9aa14590622373996a037cc16d34e9107f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
8596fb0084 documentation/dev-manual/dev-manual-bsp-appendix.xml: wording updated
Wording for linux-yocto_3.2.bbappend file updated to support the
addition o fhte KBRANCH variable.

(From yocto-docs rev: 267d7dffc05dc495dbd27b6435bea7ba48cd4cfa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
fbbe63c6fc documentation/dev-manual/dev-manual-bsp-appendix.xml: mymachine.conf
edited it to now include the PREFERRED_VERSION variable.

(From yocto-docs rev: 72d8f7bfcad0fff191c998f90369499a78d62696)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
d5198e605a documentation/dev-manual/dev-manual-bsp-appendix.xml: recipes-kernel update
The section on changing recipes-kernel was way out of date.
I updated all relavent changes.

(From yocto-docs rev: 91538864e6da8c4d0a495e52feafe01ce7afea9d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:52 +01:00
Scott Rifenbark
3f9f899002 documentation/dev-manual/dev-manual-bsp-appendix.xml: 3.2 for 3.0
Kernel used in now 3.2 and not 3.0.

(From yocto-docs rev: 974cb0c3665a2767a04ab6261692e93cc2f9200b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:51 +01:00
Scott Rifenbark
e96c33bad7 documentation/dev-manual/dev-manual-bsp-appendix.xml: added layerdepends
The layer.conf file now uses a LAYERDEPENDS variable.  I added that
to the example.

(From yocto-docs rev: 237eb7ba897479935ac4c3165ce2cb350143a1e3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:51 +01:00
Scott Rifenbark
c7f56de150 documentation/dev-manual/dev-manual-bsp-appendix.xml: changed kernel
The kernel in mymachine.conf had to be changed from 3.0 to 3.2

(From yocto-docs rev: cd94a4d45a062e9282de15dfda25983c500c0548)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:51 +01:00
Scott Rifenbark
5b1738e53d documentation/dev-manual/dev-manual-bsp-appendix.xml: Output updated
The output for creating and switching to the denzil branch
for meta-intel needed updated.

(From yocto-docs rev: ad29c8f73ab3cec930f21939744cff322b43dfdc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:51 +01:00
Scott Rifenbark
726c2796aa documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable
The variable substitution had to be changed from
"&DISTRO_NAME;-6.0.0.tar.bz2" to "&DISTRO_NAME;-&POKYVERSION;.tar.bz2".

(From yocto-docs rev: 258b4c7fb46d2e6fb2da7bf2f59cd4f5c035b15b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:50 +01:00
Scott Rifenbark
1abb969b2e documentation/dev-manual/dev-manual-bsp-appendix.xml: Added link
Created a link to the Yocto Project Files term.

(From yocto-docs rev: 9d92248cb5dd862095e815c008e1f47e7518856a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:50 +01:00
Scott Rifenbark
6f74c604aa documentation/dev-manual/dev-manual-bsp-appendix.xml: typo corrected.
(From yocto-docs rev: bf3ff12492ba34cd287269a5352f6a3846d2d0bc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:50 +01:00
Scott Rifenbark
4d623561eb documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable
Had to remove "poky-" from the front of this variable that resolves
to a YP Files top-level name from the tarball.

(From yocto-docs rev: a9ccf2bec4f2f916e854d10aa992f0c45eb0ed3f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:49 +01:00
Scott Rifenbark
23eff79b1d documentation/dev-manual/dev-manual-model.xml: Fixed a bad link title.
(From yocto-docs rev: facfa3fc60c26f55d5e2cc598b494435d63af827)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:49 +01:00
Scott Rifenbark
52e4e82e5a documentation/dev-manual/dev-manual-model.xml: Better wording.
(From yocto-docs rev: be77083d5820cf195aea0e17bb9cf25ec706b4dc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:49 +01:00
Scott Rifenbark
b85c4e5227 documentation/dev-manual/dev-manual-model.xml: Added BitBake
Throughout the documentation set I have refered to the YP build
system generically in order to avoid use of the "Poky" term.  Richard
has suggested that we refer to the actual thing that does the building.
So I have added BitBake to this particular sentence to refer to the
tool.

(From yocto-docs rev: eaed76bbf97bd34205eace952a1efbc600890815)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:49 +01:00
Scott Rifenbark
b3749265c9 documentation/dev-manual/dev-manual-model.xml: Fixed poor references.
(From yocto-docs rev: f56a9e4e3bc98deade6384a992d0118fb8c098ff)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:48 +01:00
Scott Rifenbark
065d5e3ee9 documentation/dev-manual/figures/kernel-overview-3.png: Removed file
This file was replaced by a release-specific file named
"kernel-overview-3-denzil.

(From yocto-docs rev: 85220f16ce10086372f9d81c61cb4e3eb40d52e4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:48 +01:00
Scott Rifenbark
ab62371795 documentation: release-specific figure needed for denzil in dev-manual
dev-manual/dev-manual-model.xml:  The Bare Clone and Copy of the Bare
Clone figures are out of date for denzil.  These needed to be
re-done so they use "linux-yocto-3.2.git" and "my-linux-yocto-3.0-work"
as the root names.  This presents a Makefile issue when making the
denzil and pre-denzil versions of the manuals.  Whenever you use a
different figure for a different release, you need to involve the
BRANCH variable in the Makefile.  This is necessary because you are
using different figures in the generated tarballs.  The set of figures
could be unique to the release.  The outdated figure is
"kernel-overview-3.png" and will eventually be removed (later commit).
I created a new figure named "kernel-overview-3-denzil.png" and used
that in the dev-manual-model.xml file.

documentation/Makefile:  I updated the Makefile to test for a
"denzil" release build and if so include the new file in the
generated tarball.  This commit adds the new .PNG file as well.
Fixed the Makefile so that if you don't supply a BRANCH value, it
uses the latest figures (denzil).

(From yocto-docs rev: b3550d7640343cd5459efb04c591b81a1e41bc1b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:48 +01:00
Scott Rifenbark
8cd58dee92 documentation/dev-manual/dev-manual-model.xml: Wording change
Changed the Note wording to work with the list and not be specific
to a number of supported kernels.

(From yocto-docs rev: 04b941264c001fc2f8e105637436b8d95a770357)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:48 +01:00
Scott Rifenbark
7166e7dda3 documentation/dev-manual/dev-manual-model.xml: Updated wording for list
The list specifically named four kernels supported.  I changed it so
it would say "several kernels".

(From yocto-docs rev: 8134eae4bce85e18a4402606e2cac6cb422cf0cf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:48 +01:00
Scott Rifenbark
2ffb797a71 documentation/dev-manual/dev-manual-model.xml: BSP Layer step updated
Several things out-of-date for step five of the BSP Creation overview.

(From yocto-docs rev: 6bf1c93315c2fe604dbe468a29d9e2159bf7aceb)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:47 +01:00
Scott Rifenbark
2329826dce documentation/dev-manual/dev-manual-model.xml: Fixed link
The link and wording to the YP Downloads page on the website was
wrong.  Fixed it up.

(From yocto-docs rev: 191856e4441bcea078868d22d019f4f1cdd62512)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:47 +01:00
Scott Rifenbark
8273cc0d09 documentation/dev-manual/dev-manual-common-tasks.xml: Font corrected.
(From yocto-docs rev: 18f790affe7697193765e034888d369490188313)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:47 +01:00
Scott Rifenbark
6830a21b4d documentation/dev-manual/dev-manual-common-tasks.xml: Section name fixed.
(From yocto-docs rev: d3f7909958b2eac8cd313c0aeb8232a7920016aa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:47 +01:00
Scott Rifenbark
6fe0548ec8 documentation/dev-manual/dev-manual-common-tasks.xml: fixed path
Added more detail to the pathname for the example
formfactor_0.0.bbappend file.

(From yocto-docs rev: 4bd9ac9f189689ddb8806c750545223e1e55cd4b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:47 +01:00
Scott Rifenbark
6adda78462 documentation/dev-manual/dev-manual-common-tasks.xml: link and output fixed
Fixed a reference to Yocto Project Files and provided a link.

Put in an updated version of the meta/recipes-bsp/formfactor/
formfactor_0.0.bb file in the example.

(From yocto-docs rev: 031113db6d67beaee2e4f8225c7d4d2bc9380b05)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:46 +01:00
Scott Rifenbark
6f588de2d0 documentation/dev-manual/dev-manual-start.xml: shell output examples updated
Updated various shell output examples created from cloning various
Git repositories, etc.

(From yocto-docs rev: 76024b2648c383bf19e6fee81d54c6a992e8d593)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:46 +01:00
Scott Rifenbark
d48518562f documentation/dev-manual/dev-manual-start.xml: updated output for bare clone
Updated the shell output example when user creates a bare clone
of kernel.  We use linux-yocto-3.2 here.

(From yocto-docs rev: 69e3aa7a42d03cff23379432f5d1b496157d5c0d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:46 +01:00
Scott Rifenbark
661acaec76 documentation/dev-manual/dev-manual-newbie.xml: Tag example fixed
The example that creates a local branch based on a release tag
in the "Repositories, Tags, and Branches" section was not optimal.
Darren Hart informed me that naming a local branch the same name
as a tag confuses Git.  Plus, the "-b" option was mis-placed.
Renamed the local branch to have "my-" in front of it and moved
the "-b" option earlier in the command.

(From yocto-docs rev: 29f4ea267ef687431e09eca4634fcb6cc48a6f81)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:46 +01:00
Scott Rifenbark
88b3ff0951 documentation/dev-manual/dev-manual-newbie.xml: Fixed branch example
The example in the "Repositories, Tags, and Branches" section that
creates a local branch that tracks the upstream branch is incorrect.
The syntax should be "git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;

Fixed it.

(From yocto-docs rev: ec80d43ad97370771c9cd7f7e6a4637db5f80e9b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:45 +01:00
Scott Rifenbark
0bb47e87a9 documentation/dev-manual/dev-manual-newbie.xml: Link added for TOPDIR
(From yocto-docs rev: 56d07f8251b78ae8cef3a78836b16eccb2849b89)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:45 +01:00
Scott Rifenbark
c8953cc337 documentation/dev-manual/dev-manual-intro.xml: Hob and BA added
Added Hob and Build Appliance to the list of other stuff the user
might want to reference.

(From yocto-docs rev: 4c94654e53e422e5e0a54476e3ca88e682f177af)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:45 +01:00
Scott Rifenbark
491b29151a documentation/dev-manual/dev-manual-start.xml: Misc fixes
Better wording for the role of BitBake.  Updated shell output for
the clone of poky.

(From yocto-docs rev: eab184de2bd2b22def9dbe0c93b153ec9334402b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:45 +01:00
Paul Eggleton
5bcbfdb3cf documentation/yocto-project-qs/yocto-project-qs.xml: Package requirements
The following packages no longer need to be installed on the host
system:

* python-psyco
* help2man
* cvs
* hg

Additionally, linuxdoc-tools was mentioned twice in the Fedora list.

(From yocto-docs rev: 89fc20a1a54f92165323cb2dbcfc5063c0205369)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:44 +01:00
Scott Rifenbark
0cd29aaf67 documentation/dev-manual/dev-manual-common-tasks.xml: Fix cusomizing example
As suggested by Paul Eggleton and Richard Purdie, the example that
describes another method for creating a cusomt image was modified
so that it is based on an existing recipe instead of requiring a
new image.

Reported-by: Paul Eggleton <paul.eggleton@linux.intel.com>
(From yocto-docs rev: 65287ca135422a588d799143d93ccd4d058684ff)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:44 +01:00
Richard Purdie
0c243d399a Update version to 1.15.2 (correspdoning to Yocto 1.2 release)
(Bitbake rev: 270a05b0b4ba0959fe0624d2a4885d7b70426da5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:50:41 +01:00
Saul Wold
ba27fd8735 eglibc-package: remove /var
This is a newly installed directory and Makefile that is not needed
in an embedded setup

It fixes:
ERROR: For recipe eglibc, the following files/directories were installed but not shipped in any package:
ERROR:   /var
ERROR:   /var/db
ERROR:   /var/db/Makefile

(From OE-Core rev: 35b5fb2dd2131d4c7dc6635c14c6e08ea6926457)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:10 +01:00
Saul Wold
5ef8c0b69b Fix a couple of missing Upstream-Status
(From OE-Core rev: 7555519e4878380c106f120e48aaa971bb6ac00f)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:10 +01:00
Dongxiao Xu
84fe5c0093 distro_tracking_fields: Change for ofono, iptables, etc
(From OE-Core rev: 046f55ea8e9286560660cee4d2d50f7b539c3e3b)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:10 +01:00
Kang Kai
2227c5f800 alsa-tools: update to 1.0.25
Update to version 1.0.25.
Add option "--prefix" to GITCOMPILE_ARGS and FILES_${PN} to package
the installed but not shipped files.

(From OE-Core rev: f5da0cdc2ac2e14704319a83bd39e1e0e85ffaed)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:09 +01:00
Andreas Oberritter
e3a5089dbb opkg-collateral: import fixes from OE-Classic
* Set lists_dir to /var/lib/opkg

  commit 16808bc4817492beba512f4e73bce8c232d1eafa
  Author: Marcin Juszkiewicz <hrw@openembedded.org>
  Date:   Mon Mar 17 23:40:48 2008 +0000

* Update new options sample and move the opkg.conf to correct place

  commit cc9825d97962287df75e164aec456901292e1b7f
  Author: Tick Chen <ticktock35@gmail.com>
  Date:   Mon Dec 29 19:41:47 2008 +0800

(From OE-Core rev: ffe93e2a099e4cadb1829dc12a58a6d7bef9a5a7)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:09 +01:00
Martin Jansa
275c2f8c60 opkg-utils: bump SRCREV for Packages cache fix and other fixes
(From OE-Core rev: 5863e2ae81b7840d6cb9b80641a7fd69ce4d6f1f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:09 +01:00
Martin Jansa
76546d1d3e xorg: add more native BBCLASSEXTENDs from meta-oe
* We have now .bbappends in meta-oe, but adding native BBCLASSEXTEND
  doesn't add any maintenance cost to oe-core and makes recipe upgrades
  easier (no need to wait for .bbappend renames ready for meta-oe).

(From OE-Core rev: 320816f96b81b8eac02b5bbdbd3d8c79d0095a00)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:09 +01:00
Khem Raj
60e2345f1b busybox: Pass HOST_CC_ARCH through CONFIG_EXTRA_CFLAGS
The -mabi option is part of HOST_CC_ARCH which does not
appear in CFLAGS. This is for completeness since compiler
already defaults to n64 it wont matter that much

(From OE-Core rev: 2aa0540515efc15957101e24224b425ee00446d9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
cde6bce4b7 gdb: Add support for building gdb target for SH4
(From OE-Core rev: d478424fbe01942577ab541174df191528556554)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
cc18e7c0b9 pcmanfm: Add sh3/sh4 to supported hosts
(From OE-Core rev: f64dfe61234eee27b61f994ec9598bf9e820d271)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
b11dc75d19 gcc-cross.inc: Fix cross testing script
shift the cmdline argument after determining
there is atleast 1 argument to shift otherwise
it ends up in error when no argument is specified

(From OE-Core rev: 4cd306ab0c9404a31f38c7e5fb67fe32fdca3d4b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
339154100f gdb: Dont need lttng-ust for SH4
(From OE-Core rev: ad9e844e5349a5bbea1ce60b75e5b1e55db9039e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
551f5d19cd musicbrainz: Specify libpthread on cmdline for uclibc
uclibc librt needs some functionality from libpthread

(From OE-Core rev: 302e212ae00e06078da6085dcb2b541ab02f6f6e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:08 +01:00
Khem Raj
1797037e76 gettext,m4: Add -lrt to LDFLAGS for uclibc
uclibc has recently got posix_spawn implementation
and the implementation resided in librt so we link
-lrt to get the configure tests using uclibc provided
definitions and not the gnu-lib wrappers

Let libintl.a live in -staticdev package

(From OE-Core rev: 68e07a5ff114b5f413a5eeedeb551d82bc77774c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Khem Raj
d1dfd24324 glib-2.0: Dont disable iconv for uclibc
Currently we stub out iconv in glib when building
for uclibc which is not needed and infact results
in building systems with false hope of having
iconv and they misbehave during runtime

(From OE-Core rev: d13b1dc1897af733cc2ec22df50ae9d1fd0b48af)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Khem Raj
2baaea2691 uclibc-0.9.33: Update to tip of 0.9.33 branch
(From OE-Core rev: ce0007e7561e67f57f6e6ba3a63f327a21a6cf96)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Khem Raj
2fc2dba386 uclibc-git: Update to latest git tip
(From OE-Core rev: 0ba05b985b59f7200005e8fd28be6ebca019c46c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Peter Seebach
df13d0708b tune-sh4.inc: Fix spelling of big-endian feature set
In tune-sh3, tune-xscale, and tune-sh4, several FEATURES lines referred
to nonexistent features like "sh3eb" when they should have referred to "sh3
bigendian" or the like.  Caught by the TUNEVALID sanity check.

(From OE-Core rev: e63fb1e9918bff6f91bbab09b29248ab8b649e84)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Martin Jansa
88bb7ce9e9 ofono: upgrade to 1.6
* 1.5 is not compatible with glib-2.32 and newer
  | In file included from gisi/client.h:30:0,
  |                  from gisi/client.c:33:
  |/OE/shr-core/tmp-eglibc/sysroots/spitz/usr/include/glib-2.0/glib/gtypes.h:28:2: error: #error "Only <glib.h> can be included directly."

(From OE-Core rev: 72684aac1d97469ee5cf9ef0d017a8b933e2a6d6)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Dongxiao Xu
813bbb8485 iptables: upgrade to version 1.4.13
Remove a patch since it is already in upstream.

(From OE-Core rev: 90f32e0fffaef55415088f523e282ca3c08fa7ee)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:07 +01:00
Dongxiao Xu
2e14c61e56 bluez-hcidump: upgrade to version 2.4
(From OE-Core rev: dbab058af2ef513c1ff358fc620f3e7937a30ab9)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:06 +01:00
Dongxiao Xu
39ead67edc telepathy-glib: upgrade to version 0.18.1
(From OE-Core rev: d4ae664263df2ebe8bbed913b4c6b56b02bc0a45)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:06 +01:00
Dongxiao Xu
0597a49d2d telepathy-mission-control: upgrade to version 5.12.0
(From OE-Core rev: e3297c55b3f6a1e2fe032b0b0a980955c8ba9106)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:06 +01:00
Dongxiao Xu
3d3726a7dc gst-fluendo-mpegdemux: upgrade to version 0.10.70
(From OE-Core rev: f0b3234ef2f6e2b0ea47fba382ccc1e963aeb67c)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 12:38:06 +01:00
Richard Purdie
f39ba520d6 qt-4.8.1: Fix compile failures on qemux86
(From OE-Core rev: b8dc9182ed8959ce5a6aa285c3c7f78df2432ac3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:30 +01:00
Nitin A Kamble
c2e4b5d066 tcl: fix target recipe build issue on older distros
the builddir is put in front of the LD_LIBRARY_PATH, causing dynamically
linking of target library with native tclsh.

Fix this behavior to cross build tcl correctly.

This issue got exposed when eglibc-2.15 was configured for the target.

(From OE-Core rev: 76e8df78bdb641b045e34dcf01d7b9eb626401dc)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:30 +01:00
Richard Purdie
9da5a7bedf tcmode-default.inc: Update to eglibc 2.15 everywhere
(From OE-Core rev: 08a251a8dcbac85e0627a886bfff0907d950da7f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:30 +01:00
Richard Purdie
4a0c704c80 package_rpm: Only rebuild the indexes if the packages have changed
This change farms the solvedb creation out to a separate script which
handles creation of the index, only if mtime of any of the packages
has changed.

For a core-image-minimal set of rpm's this saves ~20s of a 45s rootfs
build. For core-image-sato it saves 1 minute of a 5 minute rootfs build.
The more packages in the system, the bigger the saving will be.

(From OE-Core rev: 3021136e7b42ab64ca16f30c88467c4b00d51ee0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:30 +01:00
Lianhao Lu
53cf1a8977 xorg-app: Use ${libdir} and ${datadir} for packaging.
Used ${libdir} and ${datadir} instead of hard coded direcotries for
packaging.

Also included INC_PR in PR.

(From OE-Core rev: ff533176a875663be797058bc35fa8ff3f9f8147)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:29 +01:00
Lianhao Lu
e38bc26da7 avahi: not using hard coded libdir.
Used ${libdir} instead of the hard docoded libdir.

(From OE-Core rev: 5f2263a89ab6d6aad47f5a524c84a42713d358de)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:29 +01:00
Lianhao Lu
3ed11d6178 popt: Fixing pkgconfig file installation issue.
Install the pkgconfig files into $(libdir) instead of $(prefix)/lib/.

(From OE-Core rev: 2addeb2639b798934d12d2f959dcac5a4ac697c2)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:29 +01:00
Richard Purdie
7670afc0ca qt4: Make 4.8.1 the default version
(From OE-Core rev: 35aea9a7e7709217a051a72252a2893b68b6d178)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:29 +01:00
Richard Purdie
6723f6be76 qt4: Add missing patch headers
(From OE-Core rev: ec2f6e1fb655289f5ef51f2b1fa86d5fedccfc61)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:29 +01:00
Ken Werner
69dc3c384f Qt 4.8 GCC 4.7 fixes
This change introduces two new patches to Qt 4.8. One prevents the build
system from using the -fuse-ld=gold GCC flag as this isn't upstream and
therefore not supported by many toolchains out there. The second patch
fixes a compile time error when using toolchains based on GCC 4.7.

(From OE-Core rev: c98d60923b84bcd285644cecaed1fa0455747a2f)

Signed-off-by: Ken Werner <ken.werner@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:28 +01:00
Richard Purdie
e3bafe8ae1 xf86-video-vesa: Add recommendation for xserver libint10 module which this driver needs
Without this module, the driver doesn't work correctly.

(From OE-Core rev: 04e5102e6d9f2332dd39467c3261d610338358fc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:28 +01:00
Richard Purdie
b67fccc81e package_rpm.bbclass: Replace shell provides/requires script with python version
The existing shell script is a fork bomb and forks off hundreds of
grep/cur/wc calls as it reads from its input stream and iterates over
the file data table for each line of input. This patch replaces the
shell code with python code which doesn't exec anything and hence runs
much faster without the exec() overhead. This speeds up rpm packaging
considerably, as can be measured simply by timing it, or watching the
processor utilisation.

(From OE-Core rev: 2fb5f72b47840ed7f540df181595878e3f5ba4c6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:28 +01:00
Richard Purdie
c1c9144f67 mesa: Fix mklibs patch to simply remove troublesome uname usage
Without this we started seeing the -mx32 flag being passed to the compiler
for things like arm builds which makes no sense.

(From OE-Core rev: 288b7a9d0e6093f85e4a1d3e34d4332b9c43b47b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:28 +01:00
Richard Purdie
36361c0165 tcmode-default.inc: Default to gcc 4.7
(From OE-Core rev: f5fb611f79ddb256252335e2549ddd2a0e45a772)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
0611c3c1a2 gcc-package-sdk: Package plugin files generated by gcc-4.7
(From OE-Core rev: e2ce49ca28fe7f6054406bc276a3402cfc04f545)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
8250ca8b32 gcc-4.7: Do not use --with-header option for cross-gcc
(From OE-Core rev: 11cbd871e0969931d5c81ec53684446f4293faf1)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
9f32853544 gcc-4.7: Let cpp specs honor include searches in relocated install tree
Fix from Yocto Bug 2074

(From OE-Core rev: fe32e09ccbef3a9896955e8d4c3113c53f95de48)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:27 +01:00
Khem Raj
8e6a742220 gcc-4.7: Use full relative path in require directive
This will help in meta-linaro where it will be able
to utilize maximum recipes from OE-Core and thereby
keep close compatibility with OE-Core gcc recipes

(From OE-Core rev: 3c9f7eb2e2d70869a71a584eb1ba670b50a88379)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
38e961ace3 libgcc-4.7: Package libgcov nativesdk correctly
(From OE-Core rev: 2bcc03b6787d4bb0731c047bf25c945228136e5f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
79a5da9eda gcc-4.7: Lower the internal consistency check level to release
This should help in speeding up compilation at the expense
of a bit less info when gcc ICEs but we dont get many gcc
ICEs and therefore using --enable-checking=release is
right balance

(From OE-Core rev: a84c097cc7c52a856601e546880440d9375b0e30)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
529173ab4a gcc-4.7: Disable cloog and ppl
If build system has those libraries installed
gcc configure will pick them up. We want
consistent builds so we disable them since we
do not (yet) support them

(From OE-Core rev: 523df15bcc21e1749771cca757613f3520243b8e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:26 +01:00
Khem Raj
4155ed41d8 gcc-package-target: Add the dangling files to specific packages
create a new package to have lto dev packages bundled

(From OE-Core rev: b98fb95c594117d165a31795b6fa7b6cb583d598)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
e6716c54ec gcc-crosssdk-intermediate: Use --with-native-system-header-dir for 4.7
--with-native-system-header-dir is relative to sysroot which
is what we want --with-headers is deprecated anyway

(From OE-Core rev: 2f7ac32b57e047cdaf01e0b6f77509117dbbd14c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
0e70f544ac gcc-cross-canadian_4.7.bb: Override ARCH_FLAGS_FOR_TARGET
We need -isystem=${target_includedir} in there

(From OE-Core rev: 573949096d51bde4961b2301c20c966c324a66bd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
e06d1f2d85 gcc-4.7: Define own do_configure_prepend
gcc-4.7 does not define STANDARD_INCLUDE_DIR

(From OE-Core rev: 149a9911a00c79475d00382dcc384f355fbcdd02)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:25 +01:00
Khem Raj
aafa59064b gcc-4.7: Add recipes
Add new recipes for gcc-4_7-branch right now gcc 4.7.0
is latest release from this branch

(From OE-Core rev: 3f8fee75e598ad0994acc5da0a612e6eca4f35f6)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
173f424808 gcc-configure-common.inc: Use libc-uclibc override
Its better than duplicating the overrides

(From OE-Core rev: 7159dad19f8cfd3e7e95523da63e91370744da7f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
1dd054518f gcc-4.6: Specify complete paths in require directive
This is needed for adjusting meta-linaro where linaro
gcc recipes leverage the core recipe infrastructure and
modifies minimal to keep compatibility with OE-Core
so that any changes in OE-Core gcc recipes does not
trigger changes in meta-linaro.

(From OE-Core rev: cb01b2a4fc82e62eacc4441fddc3fdfb04a3acf3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
85f8b5c106 gcc-4.6: Remove redundant overrides
Use libc-uclibc override instead of TARGET_OS
override

(From OE-Core rev: 57392b5c3c9d14ba6568a98fc4fb0dadbdb9d9cb)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:24 +01:00
Khem Raj
271e4e02f9 libgcc_4.6: Package libgcov nativesdk correctly
(From OE-Core rev: b32e26310d5b635b7ef1a6408dc14d400d799477)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
9ce94ea4a4 gcc-configure: Render --with-local-prefix harmless
this option by default points to /usr/local no matter
what so we cant let it sit on sidelines otherwise it
will access host machine's /usr/local which may not
be desired. So disable this option. This also helps in making
gcc's shared state more consistent

(From OE-Core rev: eee3658366e1ae9d3e429b3d3c968938d8d0f00e)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
f7337ee8c4 gcc: Stash the gcc-cross builddir to reuse in libgcc and gcc-runtime
Currently we stash the libgcc install tree and then reuse that
to populate libgcc recipe later. This mechanism does not work
for gcc 4.7/trunk since now libstdc++ needs access to build tree
of libgcc. This patch stashes the gcc-cross build tree
and then reuses this in libgcc as well as in gcc-runtime
recipe builds.

Now we build libgcc in the libgcc recipe instead of just
using the prebuilt install tree

core-image-minimal build/run tested on all qemu machines

(From OE-Core rev: 7cf9f0597648c0bdaa080976d74acfbfc4c8443d)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
f66cc57e72 gcc-configure: Pass distinct target flags
When building gcc-cross-canadian libgcc is built using
headers from gcc-crosssdk and not the target sysroot
because we do not pass proper CFLAGS for target bits
so it ends up using CFLAGS that were meant for compiling
canadian gcc itself. It does not show up as a problem
when building SDK with eglibc because eglibc-nativesdk
and eglibc have identical headers. The problem shows
up clearly when you try to build uclibc based meta-toolchain
since then nativesdk libc and target libc are different

(From OE-Core rev: 0e904103e9bd7fdb31bfcc129067511f9f45701b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:23 +01:00
Khem Raj
49aeaa3f67 tcmode-default: Use SDKGCCVERSION ?= "${GCCVERSION}"
Usually they should be same if not defined to be different
by user. In this case if I override GCCVERSION in local.conf
then SDKGCCVERSION will also follow the suite.

(From OE-Core rev: 1f9c07d8a086a3dc3bb68eaabd56a1b1730306ff)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:22 +01:00
Richard Purdie
71b78f0483 classes: Add recipe class to overrides
We have currently no override to detect a recipe being build cross, crosssdk
or for target at times we can use virtclass-native and virtclass-nativesdk to
override stuff in recipes but we dont have way to modify a variables
based on recipe type always.

This patch adds in such an override and in particular makes a target override
class available.

With this change now we can say:

EXTRA_OECONF_class-target = "...."
EXTRA_OECONF_class-native = "..."
EXTRA_OECONF_class-nativesdk = "..."
EXTRA_OECONF_class-crosssdk= "..."

Based of an original patch by Khem Raj

(From OE-Core rev: cf332fd9bf685f6d42b11c1f0c37b934c7f5bcbe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-30 11:37:22 +01:00
Richard Purdie
c47a869308 netbase: Correctly set FILESEXTRAPATHS to include the version
[YOCTO #2366]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 12:41:17 +01:00
Richard Purdie
a3d15ff6f6 poky-floating-revisions.inc: Catch up with eds-dbus rename
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 11:01:27 +01:00
Martin Jansa
844149d392 bitbake.conf: use TUNE_PKGARCH instead of TARGET_ARCH in SDK_NAME
* also use weak assignment for SDK_NAME_PREFIX as suggested by khem
* TUNE_PKGARCH is not 100% right too, because such SDK image usually has few
  machine specific packages included (e.g. base-files, securetty, opkg configs)
  but those are not important for SDK users so it's better to have one SDK for
  whole e.g. armv7a-vfp-neon then 6 SDK for each machine which would work the
  same.
  You can see diff between crespo and om-gta04 SDK here:
  http://build.shr-project.org/shr-core/sdk/oecore-i686-armv7a-vfp-neon-toolchain-efl-crespo-om-gta04.diff

(From OE-Core rev: 5a1f172d35be610688842a8a9a84f24edb9aeb51)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:59:54 +01:00
Denis 'GNUtoo' Carikli
8809f2be92 xev: move from meta-demoapps
* The location where xev was located didn't contain xorg-app-common.inc,
  but still xev requires it. So moving it fixes that issue.
* File checksums and License checksums were also added.

(From OE-Core rev: 764bc41950513bede2ff763d0db55961f00318da)

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@no-log.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:59:54 +01:00
Nitin A Kamble
e3a6524579 quilt: fix perl path in target perl scripts
While building on distros like fedora17, which has /bin/perl,
the target perl scripts get perl path also as /bin/perl.
And that is not correction path of perl on the target.

This commit avoids this error.

| error: Failed dependencies:
|       /bin/perl is needed by quilt-0.51-r2.i586
NOTE: package core-image-sato-sdk-1.0-r0: task do_rootfs: Failed
ERROR: Task 8
(/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato-sdk.bb,
do_rootfs) failed with exit code '1'

(From OE-Core rev: f091895d7dacd601f52edb0f0a08bdfa7e6d2461)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:20 +01:00
Saul Wold
c2b663f5f8 boost: Ensure we use our user-config.jam file
This change ensures we use the user-config.jam Configuration
that we created and will not use anything from the user's home
directory.

[YOCTO #2302]

(From OE-Core rev: 555f2fc374728b3b379f2ad59c8c5fc34aeb194a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:19 +01:00
Mark Norman
391ffb088d uclibc SDK not including libpthread_nonshared.a
Modified the uclibc PACKAGES list order to ensure the uclibc-dev package is
processed before uclibc-staticdev to allow *_nonshared.a libraries to be
packaged in the uclibc-dev package.  The *_nonshared.a libraries are required
by the SDK.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:19 +01:00
Saul Wold
41296357a9 evolation-data-server: Rename from eds-dbus
[YOCTO #2316]

(From OE-Core rev: 6189a8a05620974c098d548c26502453f371fe26)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:19 +01:00
Otavio Salvador
cc34134e71 u-boot: update 2012.04 to 2012.04.01 release
(From OE-Core rev: 90b7227f48c8250851d4c1a298364062a79403e6)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:18 +01:00
Otavio Salvador
1b6cba6969 u-boot-mkimage: update 2012.04 to 2012.04.01 release
(From OE-Core rev: bf8819a1aafeeaa3ce4c8eeda09f882bd9e18600)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:18 +01:00
Otavio Salvador
967bd67c37 u-boot-fw-utils: update 2012.04 to 2012.04.01 release
(From OE-Core rev: e6a6f2fb4bae146fc3077f782090e91904e00a08)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:18 +01:00
Shane Wang
baf99e60d6 distro_tracking_fields: manual checks for some recipes
(From OE-Core rev: d3db94fe50c0da90d751112a083a39c872030897)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:18 +01:00
Scott Garman
0f95925b4c runqemu-ifup: enable ip masquerading for QEMU NAT addresses
Fix the IP masquerading settings so that networked QEMU sessions can
reach external networks.

This is a partial fix for [YOCTO #2329].

(From OE-Core rev: 14c4ce77b5c3738a8a9ea7d724de7ce9efff18c4)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:17 +01:00
Scott Garman
2874efa132 openssl: upgrade to 1.0.0i
Addresses CVE-2012-2110

Fixes bug [YOCTO #2368]

(From OE-Core rev: 88d17caf6d0eb241f54b1af1704405d5f47eadc5)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:17 +01:00
Scott Garman
34e6d297e3 libpng: upgrade to 1.2.49
License hasn't changed, just updated the md5 checksums due to trivial
date changes within the text (and the position of the license text
within png.h).

Addresses CVE-2011-3045

Fixes [YOCTO #2352]

(From OE-Core rev: a2009fd8548d818c4e647dae554b98074bd3eecd)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:17 +01:00
Andrei Gherzan
949f0acf22 python: Add patch to avoid warning about sunaudiodev module
sunaudiodev module is sunos specific so we avoid a warning by not.
adding this module to missing variable.

[YOCTO #1937]

(From OE-Core rev: a92847ed7671386225c0738d62780a9f1b043789)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:17 +01:00
Andrei Gherzan
27cd16fa12 python: Add patch to avoid warning about _tkinter
_tkinter module needs tk module along with tcl. tk is not yet integrated
in yocto so we skip the check for this module.
Avoid a warning by not adding this module to missing variable.

[YOCTO #1937]

(From OE-Core rev: 3f1be431054b3947bee9a2503eea1a3cefb38f4c)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:16 +01:00
Andrei Gherzan
3d8284487d python: Add patch to avoid warning about bsddb module
_bsddb module can be built only with db version between 4.1 and 4.7.
Avoid a warning by not adding this module to missing variable.

[YOCTO #1937]

(From OE-Core rev: d974ad03c58d7a221ebe3d59c57607928fbbd435)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:16 +01:00
Andrei Gherzan
1174fa7f0c python: Add patch to search for db.h in inc_dirs and remove warning
python should search for db.h in inc_dirs and not in a hardcoded path.
If db.h is found but HASHVERSION is not 2 we avoid a warning by not.
adding this module to missing variable.

[YOCTO #1937]

(From OE-Core rev: 79d0332f21769338a9f904308d8a808486e10fea)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:16 +01:00
Andrei Gherzan
fcb368f767 python: Add patch for 64bit platform
This patch was added for 64bit host machines. In the compile process python
is checking if platform is a 64bit platform using sys.maxint which is the host's
value. The patch fixes this issue so that python would check if TARGET machine
is 64bit not the HOST machine. In this way will have "dl" and "imageop" modules
built if HOST machine is 64bit but the target machine is 32bit.

[YOCTO #1937]

(From OE-Core rev: 4993f50744882ee384cb8fb106ad209f0d887b3f)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:16 +01:00
Tasslehoff Kjappfot
77a3de5ff0 boost: set python-root correctly
[RP: Fix whitespace]
(From OE-Core rev: 7bd803c9535afe5933d41f92da5208ae773e2abb)

Signed-off-by: Tasslehoff Kjappfot <tasskjapp@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:15 +01:00
Andreas Oberritter
931910c51c {kernel, module}.bbclass: don't run depmod for module packages during do_rootfs
* depmod already gets executed by pkg_postinst_kernel-image.

* If you build a module using module.bbclass, pkg_postinst returns 1 in
  do_rootfs, causing pkg_postinst to run again on first boot. To improve
  this situation, I copied pkg_postinst from kernel.bbclass to module.bbclass.
  This was rejected by Koen, because he doesn't like the code from
  kernel.bblcass, which uses ${STAGING_DIR_KERNEL}. Richard then suggested
  that calling depmod during do_rootfs wasn't necessary at all, because
  it already gets done by kernel-image.

(From OE-Core rev: c7809c03080925b5e9171df5c9175c7c6420b376)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:15 +01:00
Martin Jansa
d7a6e09dc4 kernel.bbclass: unify white spaces
* indentation was with spaces and tabs, unify to use tabs instead of
  spaces, for shell code and populate_packages_preppend,
  because "python populate_packages" expects tabs (or 8 spaces)
* and use 4 spaces for anonymous python

(From OE-Core rev: 24472a794e1787ebcd700dde66018a31069aa50b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:15 +01:00
Martin Jansa
03d978b1ac kernel.bbclass: merge uboot_mkimage improvements from meta-oe
* allows to detect ENTRYPOINT from kernel binary marked with UBOOT_ENTRYSYMBOL
  used e.g. by ben-nanonote

(From OE-Core rev: 9ce6bd1d58b4418d3a53be417c18a0e57314462a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:15 +01:00
Richard Purdie
7ad49364fd utils.bbclass: Testing via env in create_wrapper is a nice idea but breaks things
For example, pseudo-native wants to set LD_LIBRBARY_PATH but setting this
into the environment here causes the existing pseudo (running during do_install)
to poke into paths in /opt and this breaks builds.

The simplest fix is simply not to do this. Comments tweaks to match the code.

(From OE-Core rev: 1efa999ed02186c9c58cb48418e0c62ecdc82ac7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:14 +01:00
Nitin A Kamble
0816a3f355 libproxy: fix compilation with gcc 4.7
(From OE-Core rev: 7298e0c48198587d41319d0068aa3511afa6d1c5)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:14 +01:00
Scott Garman
e79ecb1d32 distro_tracking: manual check updates
Manual check updates for the following recipes:

libpng
libgdbus
expat
chrpath
e2fsprogs
opensp
nfs-utils

(From OE-Core rev: a6d331ffb25ce81f7e42b18e12068413aab1358c)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:14 +01:00
Otavio Salvador
fb65e5b73d u-boot: add 2012.04 release
(From OE-Core rev: 146439ca1ef1da55769363cde012ed8b279e79dd)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:14 +01:00
Otavio Salvador
8545bea9a0 u-boot-mkimage: add 2012.04 release
(From OE-Core rev: e1b1b6313b57d069ef77bc6e1e1ebbb8f6fdda4e)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:13 +01:00
Otavio Salvador
79591eb7d2 u-boot-fw-utils: add 2012.04 release
(From OE-Core rev: 0f4552cde971a0de247b865b25136b03be91dc39)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:13 +01:00
Otavio Salvador
01d57e6548 u-boot.inc: fix compilation when using 'gold' as linker
(From OE-Core rev: 2e79fcd673dadeab6358fe22d47c8534c14de03e)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:13 +01:00
Paul Eggleton
8f0517a6b3 dpkg-native: fix deb-based rootfs construction failure on Fedora 16
Backport a fix from 1.16.x upstream to use fd instead of stream-based
I/O in dpkg-deb, which avoids the use of fflush() on an input stream
(the behaviour of which is undefined by POSIX, and appears to have
changed in the version of glibc introduced in Fedora 16 and presumably
other systems).

Fixes [YOCTO #1858].

(From OE-Core rev: 2aefac2a2c508da11a73e29d82947ac627d31118)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:13 +01:00
Damien Lespiau
2b05d35455 bootimg.bbclass: Tweak iso images to become hybrid images
This allows iso images to be written to usb keys and booted on systems which
have a BIOS which support this. There is no real down side to tweaking the iso
images in this way.

[YOCTO #1763 partial]

(From OE-Core rev: 9a946554e4843841c2ec3cbb2575e80d0ccdc29f)

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:12 +01:00
Saul Wold
c65dc38417 kernel: Fix packaging issue
Remove /etc since it is empty, when creating a machine that does not
deliver any module config files, the /etc is empty and is then warned
about not being shipped, so we remove it.

This occurs in the routerstationpro with the following warning:
WARNING: For recipe linux-yocto, the following files/directories were installed but not shipped in any package:
WARNING:   /etc

(From OE-Core rev: 963742f5a9bce2dfedd58350af754d256e2211cb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:12 +01:00
Saul Wold
8b6f915ebb distro_tracking: Update Manual Check
Update the manual check dates for:
sqlite3
libcap
libcheck
console-tools
psmisc
boost
sysfsutils
less
unzip
zip
usbutils
sysstat
cracklib
libexif
qemugl
glew
squashfs-tools
lame
libmad
lsb

(From OE-Core rev: e2e297d8a3b5a89b5730432e998669341c50c172)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:12 +01:00
Saul Wold
74b77be820 sqlite3: Upgrade to 3.7.11
(From OE-Core rev: 2529511030e8708134c465c7ae3bfd24b8025263)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:12 +01:00
Saul Wold
6acd250977 lame: Upgrade to 3.99.5
(From OE-Core rev: 1a5b92bf19baa77ae3b360659f7eefdd04e52937)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
db6a6e744f sysstat: Upgrade to 10.0.3
(From OE-Core rev: 204a0fda526d245382286287a0c361c7f7bbeb80)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
b4d6cedcc3 quilt: move empty quiltrc to native sysconfdir
patch.bbclass orignally pointed at /usr/bin/quiltrc for an empty
version to ensure that no user setting were picked up, change this
to /etc/quiltrc in the Native sysroot since we now have a native
sysconfdir.

Make sure that the quiltrc is actually installed in the Native
sysconfdir, not the target, so fix this after the recipe split.

(From OE-Core rev: 1af73900cea82e63fb0f94e6f057144f723146ec)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
67fbab3dd5 gcc: Add plugins package for ARM, fix /usr/incude packaging
WARNING: For recipe gcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/include
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm/bpabi-lib.h
(From OE-Core rev: aff48c514174ba5fa3bb1e5df5293376b567da09)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
08920d7380 xserver-kdrive: Add xkb to existing docs list
WARNING: For recipe xserver-kdrive, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/share/man
WARNING:   /usr/share/man/man5
WARNING:   /usr/share/man/man1
WARNING:   /usr/share/man/man1/Xephyr.1
WARNING:   /usr/share/man/man1/Xserver.1
(From OE-Core rev: 93bd303d4af91769ae943841036a1b956ac2e940)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:11 +01:00
Saul Wold
af7caf9250 libgcc: Package additional *crt*.o files for PPC
WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrtn.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrtn.o
(From OE-Core rev: b17c02d223455680324227f8de17feb8ab3e7b68)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:10 +01:00
Saul Wold
96268a459c binutils: add embedspu for ppc builds
WARNING: For recipe binutils, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/bin/embedspu
(From OE-Core rev: 447d77b9e33a68f748c96a152eae19148e43ed7c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:10 +01:00
Jonas Danielsson
898e1bfbe8 bluez4: make alsa support conditional upon DISTRO_FEATURES
Do not enable alsa in bluez4 unless it's included in DISTRO_FEATURES.

(From OE-Core rev: 36e434ecd05754d8c99d416f706da4a1b11b729e)

Signed-off-by: Jonas Danielsson <jonas.danielsson@lundinova.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:10 +01:00
Ken Werner
b8909556e3 bdwgc: Set ARM_INSTRUCTION_SET to "arm"
The bdwgc recipe uses a version of libatomic that fails when building in Thumb
mode. This has been fixed upstream already. The
pulseaudio/libatomics-ops_1.2.bb has the same issue and sets the
ARM_INSTRUCTION_SET to "arm" (probably until a new version gets pulled in).
This patch applies the same workaround to the bdwgc/bdwgc_20110107.bb recipe.

(From OE-Core rev: a648afcdd045a38d3c6729499a48ab7212a0b3c3)

Signed-off-by: Ken Werner <ken.werner@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:10 +01:00
Robert Yang
c312cf768f qt4-x11-free: enable -accessibility and -sm
Is it possible to enable the "-sm -accessibility" in oe-core, please?
There is a meta-kde layer which requires the "-sm -accessibility", but
they are disabled in meta/recipes-qt/qt4/qt4.inc:

QT_DISTRO_FLAGS ?= "-no-accessibility -no-sm"

I checked the log of the qt4, can't find the related log for
"-no-accessibility -no-sm".

Another way is use the bbappend, but it would be great if it can be
enabled in oe-core.

This only enables for qt4-x11, doesn't enable for qt4-embedded, and
have done testing on: qemux86, qemuarm, qemumips, qemuppc.

(From OE-Core rev: 678973a9ad258b466295a666cbcd56df15a57c7c)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:09 +01:00
Darren Hart
688b1ca792 gthumb: Disable parallel make for gthumb install
With PARALLEL_MAKE set to 14, I frequently see the gthumb do_install
task hang. Make is spinning at 100% CPU and the build makes no
more progress.

The following work-around proposed by Richard Purdie allows progress
to be made.

(From OE-Core rev: 01e14ae25c133e46603d01a72d0372c111e12f11)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Joshua Lock <josh@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:09 +01:00
Mark Hatle
6a390763b1 console-tools: Use update-alternatives
Use update-alternatives and sync to the way the replace kbd package
does things.  Using update-alternatives ensures that the proper provides
are setup in the packages.

(From OE-Core rev: 9c2aa2da7cb9ceec02c5d42d18a623a51f922cea)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:09 +01:00
Mark Hatle
a253b0e85e kbd: Use update-alternatives
Change to use ALTERNATIVE_LINKS from update-alternatives.  This ensures
the links are created consistently and the package provides are
correct.

(From OE-Core rev: 728569a3db005a935e6b08d6aac3e23e88d486df)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:09 +01:00
Mark Hatle
469a4b9d8a gzip: Use update-alternatives class
Switch to using the update-alternatives class.  Need this for
consistency and to ensure the necessary package provides get set.

(From OE-Core rev: e0626a0270fb0f4ff128e761c13d44162723434c)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:08 +01:00
Mark Hatle
46ffeed918 findutils: Use update-alternatives
Change to using update-alternatives to ensure that we're consistently
using the class, and the package provides are being setup properly.

(From OE-Core rev: be2dbd1abfb4e0e6989d1c34c09047e439d8194e)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:08 +01:00
Mark Hatle
f264a10d4f shadow: Use update-alternatives
Switch to using ALTERNATIVE_LINKS to ensure the update-alternatives are setup
properly, along with the package provides.

[RP: Fix links so as not to need the bbclass changes]
(From OE-Core rev: cb27e78bfc059d6878dcda8b7a27a078f7a871e4)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:08 +01:00
Mark Hatle
f517fb89c5 net-tools: Use update-alternatives
Switch to using ALTERNATIVE_LINKS to ensure the update-alternatives are setup
properly, along with the package provides.

(From OE-Core rev: 9f44708774cdcf623700b336d5a3a7bc40f91f0a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:08 +01:00
Mark Hatle
f8d6a50bd8 hdparm: Use update-alternatives
Switch to using update-alternatives, this ensures that the
call to update-alternatives and package provides are correct.

(From OE-Core rev: a9b046297c10ca2b2368012803cd719ff59292d7)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:08 +01:00
Andreas Oberritter
967442e36e wpa-supplicant: move wpa_passphrase to bindir
* wpa_passphrase doesn't require special privileges.

(From OE-Core rev: 4a4c568e25a08e9f222d723f9819582c9f895c58)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:07 +01:00
Andreas Oberritter
81c02e0ed7 wpa-supplicant: remove unused files
* defconfig, init.sh, wpa_supplicant-0.5.7-always-scan.patch,
  wpa_supplicant-fix-deprecated-dbus-function.patch and
  wpa_supplicant_default.conf are not used by the recipe.
* default-sane gets installed but is unused.

(From OE-Core rev: 740b5baa511b40ee7bc3050770b6d5102e00f8f5)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:07 +01:00
Andreas Oberritter
84fce2ac62 python: use PKGSUFFIX for libpython2
* python-nativesdk shouldn't provide libpython2, but
  libpython2-nativesdk.

(From OE-Core rev: 6691d036fff6ba6d7e50a6add8e30cb47e1e60ed)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>

[PR Bump - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:07 +01:00
Otavio Salvador
4b3edb984b connman: backport test script fixes
Those fixes are required to get the test scripts to work with current
0.79 DBus API.

(From OE-Core rev: 0d6abd0ff634604cdde2b80f625d6ca2a015948a)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:07 +01:00
Khem Raj
c85de4be15 connman: Fix linking with gold linker
Fixes errors like below

/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__start___debug' is not defined locally
/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__stop___debug' is not defined locally
collect2: ld returned 1 exit status
make[1]: *** [plugins/loopback.la] Error 1

(From OE-Core rev: 0bc79de634841c57868be3d7d8b0fd8bf47ccc18)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:06 +01:00
Martin Donnelly
3fd422eda8 augeas: Add libxml2 dependency
This patch fixes the following Augeas configure error.

| checking for LIBXML... no
| configure: error: Package requirements (libxml-2.0) were not met:
|
| No package 'libxml-2.0' found
|
| Consider adjusting the PKG_CONFIG_PATH environment variable if you
| installed software in a non-standard prefix.
|
| Alternatively, you may set the environment variables LIBXML_CFLAGS
| and LIBXML_LIBS to avoid the need to call pkg-config.
| See the pkg-config man page for more details.
| ERROR: oe_runconf failed

(From OE-Core rev: 72edbba1ad212986be74aaa15eb9c785c6456d30)

Signed-off-by: Martin Donnelly <martin.donnelly@ge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:06 +01:00
Nitin A Kamble
9f17530dcc automake: upgrade from 1.11.2 to 1.11.3
Removed already upstream patch:
  automake/automake_1.11.2_fix_for_pkglibexec_SCRIPTS.patch

Rebased these patches to the newer code:
  automake/prefer-cpio-over-pax-for-ustar-archives.patch
  automake/python-libdir.patch

Changed the tarball name from bz2 to gz, as the bz2 tar ball
is not published for the 1.11.3 version.

[RP: Fix python.m4 to preserve the tweaks that allow us to build python modules]
(From OE-Core rev: 94bf72aeae035ffade75bd9343937888bbb09c82)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:06 +01:00
Andreas Oberritter
54a6f8498e qt4: move from 4.8.0 to 4.8.1
* No changes other than source checksums and PR at recipe level.
* DEFAULT_PREFERENCE still set to -1

(From OE-Core rev: 6a21cf0068234152b3f13866dc7c05adc6d0d9c9)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:05 +01:00
Martin Jansa
343c85f77d libusb*: import native support from meta-oe
(From OE-Core rev: 971361a4fac5622858f71a87c478e16ef02c4d76)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:05 +01:00
Martin Jansa
e910451889 pango: import native support and --disable-introspection from meta-oe
* see http://git.openembedded.org/meta-openembedded/commit/?id=3f4c8edc60b3426dd96f76504169d742a04c1ce1
  for details about --disable-introspection

(From OE-Core rev: f3ff6f0d0ae3cef6f30a80fc64c251aec9dd1a01)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:05 +01:00
Martin Jansa
e1d82bf900 tiff: import native support from meta-oe
(From OE-Core rev: fef8ef18e4aa441739137769d753dc882281e8fc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:05 +01:00
Martin Jansa
009fa28404 cairo: import native support from meta-oe
(From OE-Core rev: d8f4551d96c952cb62e8d96f9d5d491be9151279)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:04 +01:00
Martin Jansa
6ae4d4f30a pixman: add native support and perl-native to DEPENDS from meta-oe
(From OE-Core rev: 94cb365fdc54e119de958657f7ccf25f9f769017)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:04 +01:00
Martin Jansa
1408f19404 librsvg: import native support from meta-oe
(From OE-Core rev: 5a8bcd72d9e49e727c02a0ff66c5bdc83637335a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:04 +01:00
Marko Katic
755256c33a xcb-util-render: Add recipe that provides libxcb-render-util
Xcb-util was split into separate packages in the 0.3.6 -> 0.3.8 transition.
This library was previously provided by xcb-util and is now a separate package.

(From OE-Core rev: 7703a00515b3cc8f7d3855cf3654ee243ef7b146)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:04 +01:00
Marko Katic
43ed8bb50d xcb-util-image: Add recipe that provides libxcb-image.
Xcb-util was split into separate packages in the 0.3.6 -> 0.3.8 transition.
This library was previously provided by xcb-util and is now a separate package.

(From OE-Core rev: b554e29f356e3af27beaffb5b538265d010cd08e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:03 +01:00
Marko Katic
fdc948f816 xcb-util-keysyms: Add recipe that provides libxcb-keysyms.
Xcb-util was split into separate packages in the 0.3.6 -> 0.3.8 transition.
This library was previously provided by xcb-util and is now a separate package.

(From OE-Core rev: e93c121b66f689df98b953b164abc4bd61351e37)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:03 +01:00
Marko Katic
3bf4f5b1d6 xcb-util-wm: Add recipe that provides libxcb-icccm and libxcb-ewmh
Xcb-util was split into separate packages in the 0.3.6 -> 0.3.8 transition.
These libraries were previously provided by xcb-util and are now a separate package.

(From OE-Core rev: ee488dd2c33bb3f2818f28bd5db670f09d53ce1f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:03 +01:00
Marko Katic
99f4b6f6f7 xcb_util.inc: Remove packaging and modify SRC_URI for multiple ${BPN} names
Xcb-util was split into separate packages during the 0.3.6 -> 0.3.8 transition.
Update xcb_util.inc to reflect that by removing the older packaging.
Libxcbatom, libxcbaux and libxcbevent are merged into libxcbutil.
Libxcbicccm, libxcbimage, libxcbkeysyms and libxcbwm are now separate packages.
Libxcbproperty and libxcbreply were made obsolete with this commit:

http://cgit.freedesktop.org/xcb/util/commit/?id=81c62e7a04213abefa1ea82819887aaaa3c31a74

(From OE-Core rev: da4a2d49cd1674eddef80c58e5f2effc0035e477)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:03 +01:00
Saul Wold
2a4ccf560e xf86-input-evdev: Upgrade to 2.7.0
(From OE-Core rev: 18c0547fb870ccbdd6b08b4ad449591dfc8bba5c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:02 +01:00
Saul Wold
8e1d23ddec xf86-input-vmmouse: Upgrade to 12.8.0
(From OE-Core rev: d5440f4d8b2df46916669a21ff916812df00efdb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:02 +01:00
Saul Wold
c45085ef30 xf86-video-vmware: Upgrade to 12.0.1
(From OE-Core rev: 647078a9213f5a1c80c8fa25a5e06c271f5f6e8c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-26 10:05:02 +01:00
Richard Purdie
492a58cabd self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: fd989e1bceef6df36619ba8944c8141abefd282e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:21:11 +01:00
Richard Purdie
cd591cc2c0 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 117ca04008415ed0e6e10dcd373ab5f685b3225a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:17:52 +01:00
Dongxiao Xu
f6864c1eed sanity.bbclass: Add a new case to issue sanity_check()
Judge if "SanityCheck" event is received, it will issue the
sanity_check() and send "SanityCheckPassed" back if succeeded.

(From OE-Core rev: 19704f9e69ecf09531687385b478b47f49fe372d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:14:49 +01:00
Dongxiao Xu
2a6e1b0a0c Hob: Issue sanity check after parse is completed
In original scheme, sanity check is part of the parsing process. If a
sanity check fails, it means the parsing is failed and values in Hob
GUI may not correct.

With this commit, Hob will actively issue sanity_check() after the
parsing is completed.

This fixes [YOCTO #2361]

(Bitbake rev: 36968815dcc91759eeacb308bf4b294af416eee5)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:14:48 +01:00
Dongxiao Xu
544553b12b Hob: Add proxy setting into setting's md5
If user changed the proxy setting, we will reparse configuration because
it may need sanity check.

(Bitbake rev: 0be54917cd88ea8f110027a7840ac69a411fd589)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:14:48 +01:00
Dongxiao Xu
86abb3699a event.py: Add SanityCheck and SanityCheckPassed events
(Bitbake rev: 4d7bf9d813229b78b1cd87d06f7042e7923b7db4)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:14:47 +01:00
Richard Purdie
f52d2dc851 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 85bebd85c4f6603ac8fc1290121c34b92cc434f9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:13:23 +01:00
Lianhao Lu
bd4b249015 pseudo: PR bump.
Bump PR value due to the commit
c6c701f424aeb502d20ff02d02712e56f4e259a5.

(From OE-Core rev: b6ee2880fccf04923ede31256ea418451cbf2e46)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:10:18 +01:00
Scott Rifenbark
f79aa01630 documentation: Updated Manual Revision Tables again.
After some discussion from Song and Richard, the dates in the
manual revision table has been updated to "April 2012" for the
1.2 release.

(From yocto-docs rev: b3fc2ec7c5aedb8ea0a2d502bdcd7e8f4092ed96)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:47 +01:00
Scott Rifenbark
fd7c1df7b6 documentation: Replacements for "1.1" and "edison", etc.
I did a quick and dirty scrub over the manuals for the strings
"1.1" and "edison".  I found some instances that were not properly
variablized.  Also, discovered some references to the
linux-yocto-3.0-1.1.x.  All but one instance of this needed changed
to linux-yocto-3.2.

(From yocto-docs rev: 620fb4b7626defcefc8a039de09ae4599ee7f454)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:46 +01:00
Scott Rifenbark
564e311a8d documentation: Manual Revision Tables updated
Five tables updated for the five manuals that have the tables.
Used "May 2012" as the date.

(From yocto-docs rev: 0d4d46ba300c07ff9c73186506be5b409bef9d1b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:46 +01:00
Scott Rifenbark
73a2db9144 documentation/yocto-project-qs/yocto-project-qs.xml: Added Build Appliance
Added a blurb about the Build Appliance to the start of the QS.

(From yocto-docs rev: b2766121c05740300fd5a6cea2f3b8a2f62db6e5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:46 +01:00
Tom Zanussi
1450c9ee72 documentation/dev-manual/dev-manual-common-tasks.xml: removed kernel26
kernel26 is now obsolete so remove mention of it from the docs.
Removed from docs.

(From yocto-docs rev: 7b9da106d746192f802095584b04e3ee8347eabd)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:45 +01:00
Scott Rifenbark
6b64283afe documentation/poky-ref-manual/ref-images.xml: added link
added the link for the Build Appliance page to the description of the
self-hosted image.

(From yocto-docs rev: 719ba4308489b29eefa7f08ddffb65bd5e41fc2c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:45 +01:00
Joshua Lock
402972682d scripts/hob: disable sanity checks when launching
This enables us to use the GUI to change any settings which might cause
sanity checks to fail, such as the proxy configuration.

(From OE-Core rev: fe98d1c7159636f123b27292bbd4cc224b532bf0)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:43 +01:00
Joshua Lock
4a224311ac sanity.bbclass: add variable to disable the sanity checks
It's useful for Hob to be able to disable the sanity checks completely
without marking them as passed so that the user can get into the GUI to
configure their settings, etc.

Add a variable, DISABLE_SANITY_CHECKS, to do so.

(From OE-Core rev: b022641f939bcfcdaddddc4db3af4d2dc70de832)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:43 +01:00
Richard Purdie
3639c6a19b python: Fix various contamination issues leading to broken/missing c modules
The move of libcrypto to /lib instead of /usr/lib has broken the _hashlib module
compilation. There were also a number of other failing modules which should
have been building correctly. This turned out partly to be the /lib issue
but also due to a number of native paths creeping into compiler commandlines.

These changes add in /lib as part of the searh directory and remove
a number of host contamination issues within setup.py. Post release we
should really further go through this file and just delete large sections
of it as its hard to be sure what strange paths python is injecting as
search paths.

This patch also fixes issues where re-execution of the compile task
would corrupt the Makefile in various ways, again leading to puzzling
paths within the configuration.

(From OE-Core rev: 20e2761e1da1cb5dcd267e161f2a6b6a429e9f39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:43 +01:00
Richard Purdie
1ee9588a9e bitbake.conf: Add a STAGING_BASELIBDIR variable that recipes can use to find base_libdir
(From OE-Core rev: 4697911991caa2f2a21dd43f54e0c4404d722873)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:43 +01:00
Joshua Lock
7ddb8c8b68 hob: enable sanity checks after launch
To ensure the users configuration is sanity tested enable the sanity
checks after the GUI has started but before any parsing is done.

(Bitbake rev: 244ce2b900ae6cecbeeccfe2056e61c132476261)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:04:22 +01:00
Richard Purdie
fb0d7fc34f self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: b19af63)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:08:27 +01:00
Richard Purdie
9018cc1664 poky-tiny: Drop now unneeded DISTRO_FEATURES_LIBC_TOOLCHAIN (after gettext fix)
After the recent gettext dependency fix (commit 6e5cb40dfa
"gettext.bbclass: Ensure we don't overwrite other DEPENDS_GETTEXT values",
its no longer necessary to have to have these options to build meta-toolchain.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:04:25 +01:00
Richard Purdie
939e6947ae initramfs-live-boot: Disable unionfs until its issue with the system rootdir are resolved
There are issues with the current unionfs when making a union mount over "/".
Until these are resolved we can't use unionfs for live booting so disable this
temporarily as a workaround.

unionfs is usable in other circumstances.

[YOCTO #2331 workaround]

(From OE-Core rev: 60ee26ae23132b916019d58e20b8c2e1ddd2b471)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:26 +01:00
Richard Purdie
604fc2adce pseudo: Drop nativesdk wrapper and link against old memcpy symbol
The -nativesdk pseudo wrapper setting LD_LIBRARY_PATH turned out to be a
bad idea since it can mix up different libc and lib-dl verisons which
may or may not work depending on the phase of the moon.

As an alternative to solving the original problem, this patch drops the
symbol version requirement on memcpy which allows pseudo to work with
libc's back to 2.7 which should be sufficient for our supported targets
using nativesdk.

[YOCTO #2299]
[YOCTO #2351]

(From OE-Core rev: c6c701f424aeb502d20ff02d02712e56f4e259a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:19 +01:00
Richard Purdie
ea3db01838 pseudo: Fix bashisms
(From OE-Core rev: 90e22bbb316088fa951d51e75de4e5424bd51ed6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:11 +01:00
Richard Purdie
6123ee024b package.bbclass: Ensure kernel modules get stripped
Kernel modules are not marked as executable but we do expect to strip them.
This patch adds in missing code to ensure we do this. Without this images
are getting sigificantly bloated in size.

(From OE-Core rev: 00b0a5f2f51bb3f88bbb9ae558c2859e3c1c406c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:00:03 +01:00
Richard Purdie
6e5cb40dfa gettext.bbclass: Ensure we don't overwrite other DEPENDS_GETTEXT values
In particular, this overwrites the value from cross-canadian.bbclass in
some cases which isn't the desired behaviour and unnecessarily
complicates/breaks the dependency chain.

(From OE-Core rev: 751ead4fa7d4120de906a1d9cb1d5a29357bebad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:59:56 +01:00
Richard Purdie
a4d913d925 qemu: Backport a patch to solve SSE2 instruction emulation issues
This fix addresses various issues seen in qemux86-64 images:
 * scroll bars in matchbox-terminal not working
 * files not appearing in pcmanfm
 * warnings on the console from glib/gobject about invalid gdouble values

Its due to an emulation issue in qemu which the backported patch fixes.

I managed to debug it to a specific function, Khem found the qemu patch
to backport, thanks Khem!

[YOCTO #1906]

(From OE-Core rev: 69d083f8b8d8f7d095ed5682d305870c4d93fe62)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:59:47 +01:00
Scott Rifenbark
1a03b7dfba documentation/bsp-guide/bsp.xml: spelling corrected.
Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: c0ee8ce391114f7a5b4f1c59fdf997ba4f3bcf75)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 16:41:15 +01:00
Scott Rifenbark
16645ccf1c documentation/poky-ref-manual/ref-images.xml: Added self-hosted image
I added the self-hosted-image to the list of images.

(From yocto-docs rev: a8265cb523705a374d23bf60aab5b7969ad937fc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 16:41:15 +01:00
Richard Purdie
8da833f316 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 00256125873ff6f1630743a712e882e5f473a9d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 16:00:41 +01:00
Richard Purdie
647238f609 poky.conf: Update post release branching
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 15:57:06 +01:00
Dongxiao Xu
d233c90823 packageinfo.bbclass: A workaround for RPM architecture renaming
For beagleboard platform, the PACKAGE_ARCH for certain recipes is
"armv7a-vfp-neon", however, the architecture label in RPM file name is
"armv7a" due to a potential bug in RPM backend.

This commit is a workaround to make Hob work in this case.

(From OE-Core rev: 00bd4589b21fe3a716ff2732ea55651c4abd77e4)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 15:55:04 +01:00
Richard Purdie
b76513948b lsb: Fix PR bump, fix bashisms, correct dependency issue, tweak package description
(From OE-Core rev: 48ef8dbb0d1bdbc7e0e62665b5112282637f3266)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 12:07:25 +01:00
Paul Eggleton
d220e071ab classes/sanity: import regular expression module in SuSE distro check
We call re.sub here, so we need to "import re" or an error occurs
(tested on OpenSuSE 12.1).

(From OE-Core rev: cb1f7cffc171e6b182f33a69ff688d76b7f1baed)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:30 +01:00
Paul Eggleton
f4eed2b8b8 classes/sanity: trim trailing newline when reading /etc/redhat-release
Any trailing whitespace needs to be stripped before comparing it to the
SANITY_TESTED_DISTROS list.

(From OE-Core rev: bea0311a6478febe8ab4884fb1c479f610856534)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:30 +01:00
Paul Eggleton
d73e41f437 conf/distro/poky.conf: set SANITY_TESTED_DISTROS
Specify a list of tested host distributions, based on those tested prior
to the Yocto Project 1.2 release. This will enable a warning to be
printed upon starting bitbake if the host distribution is not one on the
list.

Note: this warning is intended to help new users; if you are receiving
this warning and wish to disable it, just add SANITY_TESTED_DISTROS = ""
to your local.conf.

Fixes [YOCTO #1096].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:25 +01:00
Paul Eggleton
5b78c7d559 libproxy: remove dependency on gconf when x11 not in DISTRO_FEATURES
This allows libzypp to successfully build when x11 is not in
DISTRO_FEATURES (avoiding the libzypp -> libproxy -> gconf -> gtk+
dependency chain which without X results in gtk+ failing at
do_configure).

Fixes [YOCTO #2320].

(From OE-Core rev: 973351cf2e338f07c11395d494193e9c62857f2d)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 00:31:29 +01:00
Scott Garman
abddce33ac qemugl: make postinst run at first boot
The previous postinst script was not working for images which use
RPM because do_rootfs could allow qemugl to be installed after
libgl1, and the postinst needs to run after libgl1 is installed.

Hence, it's being changed to run at first boot instead of during
do_rootfs.

(From OE-Core rev: dc0fe3fbf9ca862c1d0d90468e6da326f58e3b41)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 00:22:56 +01:00
Saul Wold
a8c668c43a self-hosted-image: remove BB_NO_NETWORK and update Poky SRCREV
Remove BB_NO_NETWORK because we can not guarentee that all
downloads will be available in the self-hosted image for
the possible targets being built.  If this image is run with
out networking, failures may be seen and BB_NO_NETWORK
should be set via the Hob

Update the Poky SRCREV so it has the latest set of fixes and
patches.

(From OE-Core rev: 70541d5e82ee05289eb0095bed4b121d12a00729)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Saul Wold
9656762e80 task-self-hosted: Add LSB for distro info
The lsb package is needed to enable the distro checking
in the self hosted image. Currently there is no standard
identification in the self-hosted image so use the existing
lsb package which provides lsb_release that parses the
/etc/release file

(From OE-Core rev: 1373865ce7f205a8e63f42caf436e9e2f7a565f5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Saul Wold
8e53c8c937 lsb: Add DISTRO Info to /etc/lsb-release file also add util-linux to DEPENDS
Add the DISTRO* fields to the /etc/lsb-release file so the distro
parsing code can find standard information about the Poky Distro
when using the Self-Hosted Image.

The lsb_release command uses getopt which is provided by util-linux

(From OE-Core rev: eddb1d6f458bcf8b0473a360fad3f4a259a57d28)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Bruce Ashfield
375e9502d1 linux-yocto/meta: remove kernel config audit warnings
Updating the meta SRCREVs to pickup the following meta change for the
3.0 and 3.2 kernels:

[
    meta: Clean up BSPs kernel config

    Clean up some QEMU and non-x86 BSPs kernel config, including

    qemuarm
    qemuppc
    qemux86
    beagleboard
    mpc8315e_rdb

    Only obsolete/invalid kernel configs are removed.

    (From OE-Core rev: 1f68d624c109c3f31a6f2f6106b5ef56e3d9a166)

Signed-off-by: Yang Shi <yang.shi@windriver.com>
]

With this commit, the configuration audit for the qemu and hardware
reference boards is (largely) warning free.

Signed-off-by: Yang Shi <yang.shi@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Bruce Ashfield
a23041090e linux-yocto/meta: beagleboard: disable CONFIG_PREEMPT
Updating the meta SRCREV for both the 3.0 and 3.2 kernel trees to
pickup the beagleboard xM boot fix:

[
    meta/beagleboard: disable CONFIG_PREEMPT

    The boot hangs with the message:
    mmc0: error -110 whilst initialising SD card

    The MMC driver has issues initializing when PREEMPT is enabled (either forced
    or voluntary). Unplugging and then plugging the card back will reset the
    driver and continue booting. Alternatively, disable preemption.
]

[YOCTO: #1892]

(From OE-Core rev: 36e9e6a88bc4436efefd4a25c0a58be75f887142)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Bruce Ashfield
0f8c8c844b linux-yocto: .diff is a valid patch extension
In fixing an existing patch migration bug, the list of valid extensions
got out of sync from the core patch class. As a result, valid patches
were not being applied to the tree.

Updating the tools to migrate .diff files fixes the issue.

Also in this fix is the removal of .patch in the find_sccs() routine, since
it will never be returned by patch.bbclass when all non-patches are
requested, it is simply confusing.

(From OE-Core rev: 0ade3f26f40b67d7296725b1e956c46be9a86089)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Mark Hatle
bb2929692a matchbox-wm-2: Fix incorrect update-alternatives
Update-alternatives was pointing to matchbox-session, and should have
been pointing to matchbox-window-manager.

(From OE-Core rev: 9c08dcf468fd41897627d9efc650c74f8f5d8ed0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Mark Hatle
fcd707ed4b lrzsz: sz, sx and sb were linked incorrectly
The sz, sx and sb links were created incorrectly to lrz, they should
point to lsz.

(From OE-Core rev: 663b608357b86aba5cdf7f07291893725e579b75)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Joshua Lock
20ff9db921 lib/bb/ui/crumbs/recipeselectionpage: fix type availabel->available
(Bitbake rev: 1a39698ab8498410d159c665c015f9297f153797)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 16:41:48 +01:00
Tom Zanussi
720fe9e371 meta-yocto: remove kernel26 machine feature usage
kernel26 is now obsolete so remove it from the machine configs that
use it.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-17 14:15:45 +01:00
Tom Zanussi
8e0751a97a yocto-bsp: remove kernel26 machine feature from templates
kernel26 is now obsolete so remove it from the templates that use it.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-17 14:15:45 +01:00
Richard Purdie
b9553be4d1 libproxy: Allow to build in non-gplv3 configuration
(From OE-Core rev: 89788fbd10fdfbbe54927339d7ec516d0e4d7ef5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:41 +01:00
Richard Purdie
80e7bb85a0 gst-plugins-bad: Add missing PR bump after curl change
(From OE-Core rev: 2865d01773e405212aa6f531139898d90a6819a8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:41 +01:00
Richard Purdie
ad229f81f4 qemu: Disable curl explicitly, its not in DEPENDS
There is an error when build meta-toolchain-sdk on Ubuntu 10.10:

| Installing NATIVESDK packages
| Processing task-sdk-host-nativesdk...
| Processing task-cross-canadian-mips...
| error: Failed dependencies:
|       libcurl.so.4 is needed by qemu-nativesdk-0.15.1-r5.i686
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed
ERROR: Task 21 (/buildarea2/lyang1/poky/meta/recipes-core/meta/meta-toolchain-gmae.bb, do_populate_sdk) failed with exit code '1'

This is because qemu would depend on curl if it happened to be
available at build time and could confuse the -native and -nativesdk
librbaries.

[YOCTO #2305]

(From OE-Core rev: 566ad643efd03db34b59a427f48ca55ce613cf89)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:40 +01:00
Richard Purdie
1e190eef71 sanity.bbclass: If the sanity tests fail, don't mark them as complete
If the sanity tests fail, we still were writing out the stamp which means
they'd get skipped the next time we run bitbake. This is clearly wrong
and we should only write out the stamp file if the sanity tests complete
successfully.

(From OE-Core rev: b99acaa8aa06dcbca46c3f7048124d6f8d643a8b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Venkata ramana gollamudi
8cc3b24242 perl: fix re-execution of compile task
After building perl package, re-execution of compile task recursively
 substitutes the path, making it an invalid path.

Fixed to prevent recursive substitution.

Similar case as [Yocto #2194]

(From OE-Core rev: 16542d982d86d42d3189d47a8180f0f71646a9ca)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Andreas Oberritter
6004dc8906 avahi-daemon: fix missing init script links
* update-rc.d wasn't executed when the rootfs was built, because
  pkg_postinst_avahi-daemon exited early. It wasn't run either
  on first boot, because the exit code was 0.

(From OE-Core rev: c084759d7f69b751e1ed3ef79d686389d867f248)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Paul Eggleton
04d6aa1069 bitbake-layers: hide deprecation warnings
There are a number of DeprecationWarnings within BitBake code which
bitbake itself filters out; bitbake-layers was not doing this, resulting
in a stream of warnings printed out when used with Python < 2.7 (these
warnings default to disabled on version 2.7 and above.)

(Bitbake rev: 0a2378237f07eb1c812e2308e64b7d70781e2b39)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Beth Flanagan
993c467510 hoblistmodel.py: description for selfcreated image
The current description is empty. This adds a default
description for hob's dummy_image.

(Bitbake rev: 68a65e5eeeb01d78444f1e5b5d1bb7b21c9d0b2c)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
139a91d742 Hob: Set the "stop" button insensitive before hide it
If user stops a build, we need to firstly set the button insensitive and
then hide it. This ensures the button's init status is "insensitive" in
next build.

(Bitbake rev: ea37272ccc28d6e24b48286e5c4c3edbad1d57cd)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
c50d8b753d Hob: Enlarge the upper value of image size
Originally the upper value for image size and extra size is 1024M, which
is relatively small. Enlarge it to 64GB.

Besides, fix tooltip for toolchain build.

(Bitbake rev: 99f01305b4c2253567a1a13a33339b1755a86e6d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
c27655793b data_smart: Improve the calculation of config hash
For config hash, we put the keys in structure of "set()", which is not
order sensitive. Therefore when calculating the md5 value for config
hash, we need to identify the order of the keys.

(Bitbake rev: 0f1b142a3f6b8125bf023c2e5ec269618869abf7)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Robert Cochran
a6820f43f5 documentation/dev-manual/dev-manual-common-tasks.xml: Fixed example
A reference to meta/recipes-sato/tasks/task-poky.bb is made as a good
example of a task; however, this file / recipe doesn't exist.  I
replaced it with meta/recipes-core/tasks/task-core-boot.bb, which I
think is a both useful and basic example to consider.

(From yocto-docs rev: 977877efa7781dd00c53cfa914dd710de7d934a1)

Signed-off-by: Robert Cochran <yocto@mindchasers.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 09:05:07 +01:00
Darren Hart
cf05f09f9f poky-tiny: Separate the libc features required for meta-toolchain
This fixes bug [YOCTO #2295]

eglibc needs libc-posix-regexp-glibc & libc-libm-big enabled in its
configuration to avoid following eglibc build issue. Thanks to
Nitin for identifying the required features.

    ...
    | In file included from xregex.c:634:0:
    | xregex.c: In function 'byte_regex_compile':
    | xregex.c:3395:8: error: too few arguments to function 'findidx'
    | ../locale/weight.h:23:1: note: declared here
    ...

The libc features added to support building meta-toolchain add 461KB to the C
libraries. 320KB directly to libc (a 32% increase in size). If not building
meta-toolchain, the user should be able to easily configure these out.

Create a new variable to capture these dependencies,
DISTRO_FEATURES_LIBC_TOOLCHAIN, keeping them separate from the core tiny
requirements. Make it clear how to disable these if meta-toolchain is not
needed.

This patch has been tested by running the following for the qemux86 machine with
DISTRO=poky-tiny:

    $ bitbake -c cleansstate eglibc
    $ bitbake meta-toolchain
    $ bitbake core-image-minimal

The libc comparisons were made from core-image-minimal ext2 filesystems build
before and after the applicaiton of this patch and Nitin's previous poky-tiny
libc features patch in support of meta-toolchain:

    commit 8c48ab6183
    Author: Nitin A Kamble <nitin.a.kamble@intel.com>
    Date:   Mon Apr 9 15:15:01 2012 -0700

        poky-tiny.conf: adjust eglibc options for poky-tiny

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Nitin A. Kamble <nitin.a.kamble@intel.com>
CC: Saul Wold <sgw@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 09:04:53 +01:00
Richard Purdie
c936fca6e1 bitbake.conf: Add PARALLEL_MAKE to BB_HASHBASE_WHITELIST
The value of PARALLEL_MAKE shouldn't affect sstate checksums. In general it
doesn't as the value is injected as a task override and the sstate checksum
doesn't track these. That isn't the case for linux-yocto in particular so
adding it the list of variables to ignore is useful.

(From OE-Core rev: a0fbbd7ba979b8aaee701e0997115f89b361b920)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 23:37:45 +01:00
Saul Wold
a2280512b8 libzypp: add libproxy to DEPENDS
libzypp uses proxy.h to handle proxies

[YOCTO #2306]

(From OE-Core rev: 03cfc6ea6df9d1fbf5520c9707a725e38d2e377b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 23:30:49 +01:00
Otavio Salvador
51f9cb0840 distrodata.bbclass: fix comment typo
Fixes:

  - xf86-intput-synaptics-12.6.9.tar.gz
  + xf86-input-synaptics-12.6.9.tar.gz

(From OE-Core rev: 96800c4801fc7a89d3510763d007fd7854f1a9e3)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:59:08 +01:00
Otavio Salvador
5612bf3339 flex: backport Debian patches to fix generated code warnings
The generated parser had warnings regarding signess and return check
which makes Linux Kernel's perf tool from 3.4 release to fail without
those patches.

(From OE-Core rev: f3d7197252d1ede627a561fbd5b3b7fb759bf75b)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:59:08 +01:00
Paul Eggleton
a5afc58319 connman-gnome: fix segfault on connect
Fixes a segfault in the properties application when connecting to a WiFi
service succeeds.

(From OE-Core rev: 767ec69e6ca633e5bde604241a598147075b1ac0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
b6cbf1e48c automake-nativesdk: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes automake-nativesdk build on such distros to put perl
interpreter path in the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by automake-nativesdk-1.11.2-r2.x86_64
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

The second sed command is for such a case:

eval 'case $# in 0) exec /bin/perl -S "$0";; *) exec /bin/perl -S "$0" "$@";; esac'

This line has two "/bin/perl" and we can't use a line number to tell
sed which line it is since the line numbers in different files are
defferent.

[YOCTO #2304]

(From OE-Core rev: ee7a86c06c2289f01aa5f1da958ce51523495572)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
59348455a7 autoconf-nativesdk: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes autoconf-nativesdk build on such distros to put perl
interpreter path in the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by autoconf-nativesdk-2.68-r6.x86_64.rpm
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

The second sed command is for such a case:

eval 'case $# in 0) exec /bin/perl -S "$0";; *) exec /bin/perl -S "$0" "$@";; esac'

This line has two "/bin/perl" and we can't use a line number to tell
sed which line it is since the line numbers in different files are
defferent.

[YOCTO #2304]

(From OE-Core rev: 393908e53b243b16ab984da7f073be371e062946)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
ca14115a12 glib-2.0: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes glib-2.0 build on such distros to put perl interpreter path in
the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by libglib-2.0-utils-2.30.3-r0.ppc603e
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

[YOCTO #2304]

(From OE-Core rev: 13e6e316d751d0ea3107d5547f6bdd2b74919cad)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Paul Eggleton
b99e2f2f33 perl: fix re-execution of patch/configure
The perl recipe's do_configure() does some manual sed replacements over
the entire WORKDIR. Fix the following issues with this:

* Skip patches, which fixes re-execution of do_patch after do_configure
  has run once
* Ensure that the replacement operation does nothing if do_configure is
  re-executed
* Avoid unnecessarily modifying /usr/include paths within documentation
  that will end up being packaged
* Fix a quoting issue in the expression used in the grep command that
  ended up causing files that did not contain .*\.h after /usr/include
  to be matched and modified.

The files modified during do_configure have been compared before and
after this patch to ensure there are no unexpected changes. Some
/usr/include paths that are not within documentation are no longer
being substituted however these are all within comments or scripts for
other Unix operating systems that are not applicable.

[YOCTO #2194]

(From OE-Core rev: 19255032e7744fce5cbe466e4869ded378d3b4f5)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Beth Flanagan
8046fd416f core-image-sato-sdk: typo in DESCRIPTION
Fix for a minor type in DESCRIPTION

(From OE-Core rev: 25a997ca9b24d9265b62717fd01ebb26e7d21bba)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Beth Flanagan
d2fca3db85 core-image-rt-*.bb: require munges DESCRIPTION
The require of core-image-minimal overrides the description.
The best fix for this would be conditional setting of DESCRIPTION
in the required images for all image descriptions, but that opens
a potential can of worms. Moving the require fixes this.

(From OE-Core rev: 0bd5f0a86370881b4eb2455df21b0575f6ffd008)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Richard Purdie
15b16060c7 autogen-native: Fix sstate relocation issue when reusing libguile
This was found to cause issues on the Yocto autobuilders and fixes do_compile
failures when guile-native has been relocated.

(From OE-Core rev: d928e91a57e6e9dfa6a7d4e888e1e1064d7fc668)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:14:23 +01:00
Liming An
5326847ef8 Hob: fixed a little view issue about package selection page
In package selection page, treeview cell data callback function not cover the 'else' case, so parent item will render the pervious value.

(Bitbake rev: 98694c1dbc276cc151f393db67bfd43442da28ba)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Liming An
e966ae128a Hob: add the parent window to 'binb' popup window for managing it
The 'binb' popup window should be "set transient for" the main application
window which they were spawned from.

(Bitbake rev: a6f45b23851e22c7793d9a534fd197316bb5b9b8)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Liming An
6d7aae9e97 Hob: fixed the issue that the notebook overlay-scrollbar is overlapped
In those systems which had use gtk overlay-scrollbar feature,such as
Ubuntu 11.10, we have the issue with the multiple overlaped scrollbar in
'Recipe View' notebook or 'Package View' notebook, this patch is going to
fix it.

(Bitbake rev: f6be78d8a45dc501c2bbe1e1a399a342dabe11d5)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Dongxiao Xu
d5a9ff4b27 Hob: Fix contents in imagedetailsscreen
This commit fixes the contents in imagedetailsscreen, which lacks some
kind of image types, e.x., iso and hddimg.

(Bitbake rev: 4505097f4f7834857a6086d5dabeedb24b49cf4c)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Dongxiao Xu
e8ab6ab64b meta-yocto: Move OELAYOUT_ABI definition to poky.conf
The ABI version definition should go along with the DISTRO variable
since it impact the TMPDIR definition.

Otherwise, if a user used to work with pure OE-Core, and then he/she
added meta-yocto layer, it will report ABI version incompatibility
issue. This is because ABI is changed to "8" by adding meta-yocto layer,
however the DISTRO variable is not defined and TMPDIR is still
"tmp-eglibc".

Defining the OELAYOUT_ABI variable in poky.conf could fix this issue.

This fixes [YOCTO #2303]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:26 +01:00
Dongxiao Xu
e737d01095 bitbake.conf: Include abi_version.conf in a early stage
We may define new OELAYOUT_ABI variable in ${DISTRO}.conf, therefore we
need to move the abi_version.conf before that.

(From OE-Core rev: 4e1a8ed1ab7e7bd950e511c79ddfe072cb280a6e)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:11 +01:00
Zhai Edwin
d1eba59ffd Multilib: Fix RDEPENDS in libc-package.bbclass, useradd.bbclass...
MLPREFIX is needed in RDEPENDS for multilib build

(From OE-Core rev: 380efadd5640e5b57e710549b1ae761d0d3b3792)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
f139832667 opkg-config-base/poky-feed-config-opkg: Always use ALL_MULTILIB_PACKAGE_ARCHS to build arch list
We need consistent configuration files for opkg so we might as well always use
the full list. This is equal to PACKAGE_ARCHS in the non-multilib case.

This fixes various multilib failures with ipk multilibs.

(From OE-Core rev: bc85abc5013d0c831cc3c3823df45536c293aaba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
d431ef2a30 dropbear: Allow tasks to be safely re-executed
Re-running the debug_patch task would cause the build to fail. This patch
moves the extra patch handling directly into SRC_URI and removes the need
for the separate task, allowing safe re-execution of each task.

[YOCTO #2194]

(From OE-Core rev: 1d6156e37ef0f36cf5ce8eeaaf23560215c86833)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
388bae1ac8 docbook-utils-native: Fix re-execution of the unpack task
If the do_unpack task is re-executed, the sed_done stamp was not removed, the
sed commands wouldn't re-run and the build would fail in do_compile. This
patch ensures the stamp is in ${S} and that we clean that directory
when unpack runs so it is a build from sctatch at that point.

[YOCTO #2194]

(From OE-Core rev: 2b190155d74d4369c61d26b1f4f0c3cce389ddbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
23f4288082 sgml-common: Fix re-execution of the compile task
The sed command run during do_compile isn't idempotent. This change fixes it
so that it is and the compile task can be re-executed.

[YOCTO #2194]

(From OE-Core rev: c9dcfbd87d749baa0a4948738055193982aad26d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
469d73a733 wget: Fix re-execution issue
The patch in this recipe patches both configure and configure.in which leads
to build failures once configure has executed and regenerated configure.

The fix to make patch re-executable is not to patch configure and
only patch configure.in.

[YOCTO #2194]

(From OE-Core rev: b3df34ba57284fa2c85f34be86d5d8e357becf7c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
ccc2b23191 python: Fix re-execution problem due to patching configure and configure.in
There was a patch patching both configure and configure.in. Since the recipes
all autoreconf, this is pointless and means subsequent patch tasks fail.

The fix is to only patch configure.in.

[YOCTO #2194]

(From OE-Core rev: 1d8c40d5f2119b4c4ae8a9b2645ae572ea9a54ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
2ddf7d3e83 gcc-configure-common.inc: Stop gcc looking at build system paths
There were puzzling failures when you make a force recompile of any gcc
component. The error was in do_configure with cross-compilation badness
being detected in config.log files.

gcc is different in that many of the config.log files are generated during
the do_compile phase. This means this host contamination issue has always
been present but only shows up on a rebuild.

The fix is to force the appropriate configuration variable to "none required"
then gcc won't look in the bad locations.

[YOCTO #2279]

(From OE-Core rev: e7135f14f3ef37f93f5c28b319464f3d6dd9b8da)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 18:09:57 +01:00
Dongxiao Xu
f580ac6b30 gst-plugins-bad: add curl as build dependency
gst-plugins-bad needs curl.h to finish its build, so add curl as its
dependency.

(From OE-Core rev: daa4d625524dc330786858ade570918cff0bc5d3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:34:47 +01:00
Richard Purdie
239e8b9853 net-tools: Fix do_patch to be re-executable
This recipe's do_patch was not able to be re-executed due to its custom
patching functions. This fixes things so that it can be re-executed.

It also fixes the unpack task re-execution by ensuring ${S} is clean
before the unpack starts.

[YOCTO #2194]

(From OE-Core rev: 1cfddb17e0c2576e55f62c10612e7cbd73e5ac5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
dcaea1447c man-pages: Fix to allow re-execution of tasks
The all target in the makefile triggers "screen" and "remove" targets,
neither of which do anything useful/sane for our usecases. The simplest
way to get the makefile to behave is to only use the install target.

Clean up the recipe a bit whilst making these changes and simplify things.

[YOCTO #2194]

(From OE-Core rev: 06f6ca50c0cffdaf828688e01fcc70265eafa093)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
f562e2a393 pseudo: Ensure the correct libraries are used at runtime
There can be a conflict between the nativesdk libc and the host system's
libc. It is assumed the nativesdk version is of an equal or higher version.
This is a particular issue for pseudo if its loading a system binary
since the system's libc might be used of an older verison which would
then confuse libpseudo.so when loaded as a preload.

To avoid this, set LD_LIBRARY_PATH so the nativesdk libc is always
used.

Since we now use --without-rpath, we can remove the MAKEOPTS RPATH workaround.

[YOCTO #2299]

(From OE-Core rev: a481fe3b9883aa744be3253e2b4b27e6e46eb059)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
5c006a460f unfs-server: Fix do_configure so it can be re-executed safely
[YOCTO #2194]

(From OE-Core rev: 43e6fec78e36beb770fd47b0c4631d7382025d6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:58 +01:00
Shane Wang
2e01a44f3b Hob: add exception handling
Create a wrapper with exception handling to call self.server.runCommand() safely.
Again, add exception handling to load_template() and save_template()

(Bitbake rev: cb07a027d3366ed30b0f7e5e85d08c6fda4eb5b9)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Dongxiao Xu
e3e6d2a744 Hob: Simplify the init process
This commit merges some functionalities together and avoid unnecessary
signal handling. This can help to speed up the Hob startup.

(Bitbake rev: e5a6eb4f007bf270f2fddc814eb856da46e20eee)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Dongxiao Xu
74211e0372 Hob: Handle NoProvider event in runningbuild module
If NoProvider event is received, we will handle it in runningbuild
module and send notification to Hob instance, avoiding stepping into the
final page with no image built out.

This fixes [YOCTO #2249]

(Bitbake rev: 067bc46a0fbc542fef1fcaa406ad3737a4c5a55a)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Richard Purdie
a5210e47b0 guile: Fix binary relocation issue for precompiled guile objects
When guile-native was relocated, there were messages like:

;;; note: source file /srv/home/pokybuild/yocto-autobuilder/yocto-slave/emenlow/build/build/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/ice-9/eval.scm
;;;       newer than compiled /srv/home/pokybuild/yocto-autobuilder/yocto-slave/fri2/build/build/tmp/sysroots/x86_64-linux/usr/lib/guile/2.0/ccache/ice-9/eval.go

and this confuses things like the autogen-native "guile --version"
check. This patch ensures the wrapper script sets the necessary
variables correctly.

(From OE-Core rev: 7a254d8294cfbe4b717d083c3d7fcc5515a5ab4f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 12:06:41 +01:00
Paul Eggleton
d979ee01b5 connman-gnome: connman 0.79 API fixes
Fix connman-gnome to work with connman 0.79, which made a number of
fairly serious DBus API changes. Also switch over to the newly
repopulated git repo on kernel.org in which the two previous patches
have been merged.

Fixes [YOCTO #2202].

(From OE-Core rev: 82744f56f8bfbdcc303034dee3d6e188cf8180b1)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 10:28:38 +01:00
Shane Wang
9ff001cba1 Hob: reset user recipe selection and package selection after settings are changed
Reset user recipe list and package list after the user changes the settings and
triggers recipe reparsing.

This is to continue to fix the bug [Yocto #2255]

[Yocto #2255]

(Bitbake rev: 95f4e9dc351f67442844ff52f90fc154fa95ba95)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:48:48 +01:00
Shane Wang
62c908c88b Hob: remember layers and settings between Hob sessions
This patch is to remember layers and settings between Hob sessions, which
includes:
 - Put some variables for the build details screen from Configuration to
   Parameters because they are not actually for build but for show
 - We create a dummy Configuration instance and a dummy Parameters instance
   in __init__ of builder
 - The two instances will be assigned the real values by
   update_configuration_parameters() after parsing (in the event callback)
 - When it is the first time to launch Hob in a build directory, nothing is
   remembered since everything is fresh.
 - The feature is implemented with templates, and based on the hook for Hob.
 - When the user changes the layers or the settings, a default template file
   is saved into ".hob/".
 - Later on, the layers and the settings are remembered by loading the default
   template automatically.

(Bitbake rev: f7c874ab930b9e7f95e79d0e84e62eb9b967f566)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:48:48 +01:00
Richard Purdie
58544debd5 grub: Add missing dependency on autogen-native to avoid build failures
(From OE-Core rev: 4396db54dba4afdb9f1099f4e386dc25c76f49fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:42:31 +01:00
Scott Garman
4831503957 distro_tracking: add entries for several new recipes
Added distro tracking fileds for the following recipes:

qt-mobility-x11
gst-plugin-bluetooth
alsa-state
ocf-linux
avahi-ui
libjson
systemtap-uprobes
xf86-video-fbdev
u-boot-fw-utils
qt4-graphics-system
qt-mobility-embedded
lttng-tools
shadow-securetty

Also fixed a few minor typos in others (spelling of bluetooth and months)

(From OE-Core rev: c8fe4d6cde6fca736f8c00eac7a9cc217fa8a128)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:30:31 +01:00
Saul Wold
c393309707 distro_tracking: add some additional DISTRO_ALIASES
ltp
rgb
libksba
stat
directfb-example
libfakekey
builder
core-gtk-directfb
task-core-tools-*
task-self-hosted
sato-screenshot
libxxf86misc
qmmp
portmap

(From OE-Core rev: 740c34ce27ec5f992cd97f1d933c007ba55d651d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:30:29 +01:00
Tom Zanussi
d91b3f7639 yocto-bsp: fix x86_64 tuning for qemu arch
While testing the fix for [YOCTO #2222] I noticed that the tuning for
the qemu x86_64 target was using the wrong tuning file - it should be
x86_64 instead of i586.  Change the template to match.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
0258ba5e14 yocto-bsp: fix multi-provider error in qemu arch template
While testing the fix for [YOCTO #2222] I noticed a new build error
that wasn't there in previous testing:

ERROR: Multiple .bb files are due to be built which each provide virtual/libgl

The build still completed and produced a good image, but an error
message was displayed, which this patch removes.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
774afe86e8 yocto-bsp: fix qemuarch test for xserver-xf86-config.bbappend
While testing the fix for [YOCTO #2222] I noticed that the qemuarch
test was wrong - there is no 'x86' qemuarch, just 'i386'.  Change the
test to match.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
6f527e23e0 yocto-bsp: enable property value display of nested properties
Previous versions of yocto-bsp mapped every input element to a unique
variable name, which is what the current property value display code
expects.  When that was changed to a nested form, the display code
wasn't updated to match - this updated does that.

Fixes [YOCTO #2222]

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Richard Purdie
0a4a7578b8 mulitlib.bbclass: Ensure correct value of ALL_MULTILIB_PACKAGE_ARCHS is preserved
The value of ALL_MULTILIB_PACKAGE_ARCHS needs to be consistent both
in multilib extended recipes and in normal context. If this isn't the
case it can lead to inconsistent configuration files at a minimum.

This patch ensures the value is preserved during the class extension code
since computing it after that point is hard.

[YOCTO #2290]

(From OE-Core rev: 529bc145152bb36d9696226b93729377a3b6a240)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
6ea6facd66 update-alternatives: Fix for compatibility with multilib recipes
The PN == BPN test was designed to exclude native/nativesdk but also unfortunately
excludes multilib unintentionally. This change fixes this and allows multilib images
with alternatives to funciton correctly.

[YOCTO #2214]

(From OE-Core rev: 2878d19c4e19d76cb8be15825c40ff03f25f35f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
dc2192cabc external-poky-toolchain: This is broken and confusing now, remove it
This avoids a number of bogus preferred providers warnings too.

(From OE-Core rev: 823a2f96df84547216a26697838977a162f838c5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
e024d40cd5 Remove stray unwanted file
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 17:55:51 +01:00
Dongxiao Xu
276b86509b Hob: Use BB_DEFAULT_TASK as build task instead of hardcoded "build"
Originally we use hardcoded "build" as the default task. This commit
fixes it by using BB_DEFAULT_TASK.

This fixes [YOCTO #2283]

(Bitbake rev: 7540f8d446345559ea9b47f4ff71d203ffdfaf8d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Dongxiao Xu
fdb2027e6d Hob: Build selected image if not customized
If user selected a base image and didn't customize it, Hob will still
build the selected image instead of hob-image.

This fixes [YOCTO #2253]

(Bitbake rev: a74a6a033e66a0ae7b47c84d842bdd54066c69a1)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Dongxiao Xu
83cc0a118f Hob: Save the original image name into template
Previously we use the template file name as the image name. This commit
changes to use the original selected image into template file.

(Bitbake rev: 14a9da66fe08d181f45853c52e0c9f14773070a8)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Richard Purdie
ac998632f7 Hob: A minor fix on tooltip
(Bitbake rev: b1449ce6ccf4e33eb2fd34829d2c435a464ae88b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:23 +01:00
Richard Purdie
45da109439 systemtap: Ensure FILESPATH is set so systemtap-uprobes can find patches
This allows systemtap-uprobes to build again after the recently
added patch broke the builds.

(From OE-Core rev: 4bbe926f3ca68297d70849bab67177da624316d1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:31:26 +01:00
Nitin A Kamble
71b8383a6b eglibc: fix builds on fedora 17 alpha
Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has /bin/perl

this causes eglibc build on such distros to put perl interpreter path in
the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
ERROR: Task 8
(/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,
do_rootfs) failed with exit code '1'

This Fixes bug : [YOCTO #2286]

RP: Updated to better account for -nativesdk
(From OE-Core rev: 381bf0d364da5970682502f8f124264907587b87)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:02 +01:00
Nitin A Kamble
fae4509e07 grub-1.99: fix configure error
This commit deals with this configure error.

configure:20306: checking whether `ccache i586-poky-linux-gcc  -m32
-march=core2 -msse3 -mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow' generates calls
to `__enable_execute_stack()'
configure:20320: ccache i586-poky-linux-gcc  -m32    -march=core2 -msse3
-mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow -O2 -pipe -g
-feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith
-Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1
-falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2
-mno-3dnow -mfpmath=387 -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines -falign-loops=1 -S
conftest.c
conftest.c:308:6: error: no previous prototype for 'g'
[-Werror=missing-prototypes]
cc1: all warnings being treated as errors
configure:20323: $? = 1
configure:20327: error: ccache i586-poky-linux-gcc  -m32    -march=core2
-msse3 -mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow failed to produce
assembly code

(From OE-Core rev: edbfba73e3cea86d08d67b8623ab385ded44ed55)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Nitin A Kamble
3d23afdc7a grub-efi-native, grub: fix build with gcc 4.7
This fixes bug [YOCTO #2293]

These build failure caused by gcc4.7 is fixed with a backport of a
grub-1.99 patch from fedora 17 alpha plus two more new patches

| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"commands/efi/acpi.c\" -I. -I. -I.. -I.. -I../include
-I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -c -o commands/efi/acpi_module-acpi.o `test -f
'commands/efi/acpi.c' || echo './'`commands/efi/acpi.c
| gcc: error: unrecognized command line option '-melf_i386'
| make[3]: *** [trig.module] Error 1

| make[3]: Entering directory
`/home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/grub-1.99/grub-core'
| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/btrfs.c\" -I.
-I. -I.. -I.. -I../include -I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith
-Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1
-falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2
-mno-3dnow
-fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe
-Werror
-Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -c -o fs/btrfs_module-btrfs.o `test -f 'fs/btrfs.c' || echo
'./'`fs/btrfs.c
| fs/btrfs.c: In function 'grub_btrfs_read_logical':
| fs/btrfs.c:791:5: error: 'err' may be used uninitialized in this
function
[-Werror=maybe-uninitialized]
| fs/btrfs.c:592:18: note: 'err' was declared here
| cc1: all warnings being treated as errors
| make[3]: *** [fs/btrfs_module-btrfs.o] Error 1

| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/zfs/zfs.c\" -I. -I. -I.. -I.. -I../include -I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -c -o fs/zfs/zfs_module-zfs.o `test -f 'fs/zfs/zfs.c' || echo
'./'`fs/zfs/zfs.c
| fs/zfs/zfs.c: In function 'get_filesystem_dnode':
| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'make_mdn':
| fs/zfs/zfs.c:1478:3: error: dereferencing type-punned pointer will
break strict-alERROR: Function failed: do_compile (see
/home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/temp/log.do_compile.9293
for further information)
| iasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'dnode_get_fullpath':
| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_open':
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'fill_fs_info':
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'iterate_zap':
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_dir':
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| cc1: all warnings being treated as errors
| make[3]: *** [fs/zfs/zfs_module-zfs.o] Error 1

(From OE-Core rev: b0f6dc60c926c2a653485e0016fbdc2ac5eb0cb4)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Nitin A Kamble
53d629496f grub-1.99: use gcc-cross for building the target binaries
It was using distro gcc to build binaries for target. This got detected
on fedora 17 alpha, on which it hit an gcc-4.7 issue.

This Fixes Bug: [Yocto #2291]

More information in the patch header

Thanks to Saul Wold for suggesting to remove the --target parameter from
EXTRA_OECONF var.

(From OE-Core rev: 26ae0e53411c1ea3afbb2e0c6d9dc2f1b0690751)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Dexuan Cui
7503db6713 nspr: fix package spliting
Here /usr/lib/lib*.so files are binaries rather than symbol links.
We should package them into ${PN} rather than ${PN}-dev, or else,
when a package, that rdepends on nspr, is packaged, we get a
"non-dev package rdepends on nspr-dev" ERROR.

(From OE-Core rev: be298b6f0168bbd6baf90602da35904c441deade)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:34:06 +01:00
Tom Zanussi
ffc9073db1 systemtap: disable document generation by default
Building the systemtap documentation adds significantly to the build
time, so disable it by default.

(From OE-Core rev: e37391a949fb0a6edf87eb910e93a17caf309119)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:33:47 +01:00
Tom Zanussi
3e3f774b8d systemtap: fix docproc build error
When building docs in systemtap, docproc is used to generate the
tapset documentation, but it gets built for the target, while it needs
to be build for the host instead.  This change causes that to happen.

Fixes [YOCTO #2193].

(From OE-Core rev: 6ef7112e339bb5c03dee862bc56c10fdf677be78)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:33:47 +01:00
Bruce Ashfield
ee71422b98 linux-yocto: allow .cfg, .scc, .patch and defconfigs to be processed in order
During testing/extension of the linux-yocto-tiny kernel it was found that
defconfigs were not always properly applied. This was due to two issues:

  - not being able to fully control the order of objects applied to the
    git tree on the SRC_URI
  - defconfigs triggering --allnoconfig before being applied

To fix this, the recipe space code that previously detected and generated
automatic features moves back to the kernel tools (where it was before) and
is updated to also process .cfg and defconfigs. Moving this back to the
tools allow other recipes to automatically benefit from the additional
support.

The second issue is addressed by allowing configme to take --alldefconfig
when a recipe wishes to pass a defconfig and override the default
behaviour.

Fixes [YOCTO: 2250]

(From OE-Core rev: 08c368b9980716e459d846dd7183940a5bf8bea4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:46 +01:00
Bruce Ashfield
25b48c68df linux-yocto/3.2: add igb support to romley
Updating the 3.2 recipe SRCREVs to pickup the following meta change:

[
    meta: Add igb.scc to Romley

    Romley machine has 82580 Giga bit Ethernet Controller.
    Add the relavent Nic driver to it.

    (From OE-Core rev: d7c567816bf828da34fb9e315d4d76c4181337e9)

Signed-off-by: Kishore Bodke <kishore.k.bodke@intel.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:46 +01:00
Richard Purdie
bc5d68e30b Revert "eglibc: fix perl path in target scripts on fedora 17 alpha"
This reverts commit 7c95d554c431451f975e1e5d0336d1fb7d0ce7ae.

eglibc uses the PERL to execute things as well as encoding the path
in target scripts. We will therefore have to resort to sed on the scripts
at do_install time to fix the problems originally reported. This patch
causes various weird build failures and needs to be removed.

(From OE-Core rev: 160ee52b9563dac64941b5f6e2e072171ad396b8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:45 +01:00
Bruce Ashfield
60a7403f6c linux-yocto/meta-yocto: update hardware reference SRCREVs
commit 8cd31f9b0 linux-yocto/meta-yocto: update hardware reference boards to v3.0.24

Missed a merge commit on the hardware reference BSP branches.

As a result, validate_branches is adjusting the tree to build the
proper SRCREV. For machines with board specific commits this means
that some of their commits are missing, which leads to boot failure.

Bumping the SRCREVs fixes the problem

Fixes [YOCTO: #2292]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:43:59 +01:00
Andrei Gherzan
04b16f1038 rpm-native: Compile python rpm module (with-python)
This module is needed by python scripts from createrepo native package.

[YOCTO #2134]

RP: Add missing DEPENDS on python-native
(From OE-Core rev: 17f3cc1be0e8648cb4579793a9eb5a701deac85f)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:12 +01:00
Andrei Gherzan
5d41ccd2ca package-index: Force NATIVE python to use modules from STAGING_DIR_NATIVE
Export PYTHONHOME to ${STAGING_DIR_NATIVE}/usr. In this way python will search
for modules in native sysroot.

[YOCTO #2134]

(From OE-Core rev: 230b235329bcaca1a95afd89801d28768aff483b)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:12 +01:00
Andrei Gherzan
132b12b26e createrepo: Python scripts should use the python interpreter from env
Added path to modify the hardcoded path of python interpreter from python
scripts.
The python interpreter should be the one from native sysroot and not the
one from host machine.

[YOCTO #2134]

(From OE-Core rev: 164475b9669dc99c14461e1d749ec0626c62cb71)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Nitin A Kamble
0d7b909817 eglibc: fix perl path in target scripts on fedora 17 alpha
fedora 17 has /usr/bin/perl as well as /bin/perl, which results in
 the perl path set in thetarget  perl scripts as /bin/perl
While we install perl on target at ${bindir}/perl i.e. /usr/bin/perl
Hence the target perl scripts are broken when build is done on fedora 17.
Work around the issue by providing cached value of perl path to eglibc

This fixes bug [YOCTO #2286]

(From OE-Core rev: 7c95d554c431451f975e1e5d0336d1fb7d0ce7ae)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Venkata ramana gollamudi
cc69136bf3 eglibc: fix re-execution of task
Task do_patch_append calling do_fix_ia_headers is removing files using "rm" not "rm -f".
So first time execution of patch task is success, while re-execution of patch task
fails as it tries to remove the files already removed.

So changed "rm" to "rm -f".

[Yocto #2194]

(From OE-Core rev: f960da1b48bafb3ccdd58222fe9fc12c1bb6ed9b)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Venkata ramana gollamudi
396da97103 boost: fix re-execution of task
After building boost package, re-execution of boostconfig task followed by
re-execution of compile task is giving following error
"error: duplicate initialization of gcc with the following parameters" during compilation
It is because multiple entries of gcc are being added during boostconfig re-execution
there by failing the compilation.

The patch fixes adding multiple "Using gcc" entries into /tools/build/v2/user-config.jam

[Yocto #2194]

(From OE-Core rev: 291e20a51544c640d07767d1dc32d762f4370f41)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Andrei Gherzan
60cf19a36d PR bump packages with gdbm in DEPENDS
This is done because of this change in gdbm:
"gdbm: Package compat libs in gdbm-compat"

(From OE-Core rev: b91d8a07f736b7698650d25609245c89e0ed73d5)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:10 +01:00
Andrei Gherzan
996308a4ea gdbm: Package compat libs in gdbm-compat
In order to avoid breaking packages which depend on old package name libgdbm4 (>= 1.10),
compat libs are packaged into a separate package named gdbm-compat.

(From OE-Core rev: 703d7efdf7679040f19430458cd575cded5c600e)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:10 +01:00
Richard Purdie
54c6e07ffe Revert "default-distrovars: remove NO32LIBS setting"
We still need this value to keep the sanity testing working. The other
part of the change is still valid.

This reverts commit cb940f46efacddc7200581edba034e4201abb94a.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 15:50:38 +01:00
Richard Purdie
f09a5e176f opkg-utils: Update to include a fix for version comparision issues
This brings the version comparision within opkg-utils into sync with that
in opkg itself.

[YOCTO #2233]

(From OE-Core rev: 1964be5432c1c378e80d7f1dec0999a2be71853b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 14:57:50 +01:00
Richard Purdie
22aac28f28 gcc-4.6: Add fix for relocation problem and ccache
If the toolchain is reused from sstate and ccache is installed, build failures
were occuring due to gcc trying to access the original sysroot rather than the
new one, particularly if the old sysroot existed but was not readable by the
current user.

This turns out of the an issue inside gcc to do with preservation of the sysroot
option. See the gcc patch for more details. It only triggers when preprocessed
sources are used which happens when ccache is used.

The same issue occurs with c++ and c++-cpp-output so the same fix is applied there.

[YOCTO #2074]

(From OE-Core rev: d3a3e81869631ba69874f6fc172240e3aac388f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 14:26:52 +01:00
Paul Eggleton
7b22df2e4b default-distrovars: remove NO32LIBS setting
The ??= assignment in pseudo.inc effectively nullifies this ??=
assignment here, so remove it.

(From OE-Core rev: cb940f46efacddc7200581edba034e4201abb94a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Paul Eggleton
7cf26b2d3d pseudo: default NO32LIBS to 1
If this value is not set to 1, then systems with some 32-bit libraries
but no 32-bit version of libgcc installed will have pseudo-native fail
at do_compile. It should only really be set to 0 by those who know what
they are doing.

(From OE-Core rev: 489a36d3d6b67d706f5918638e1fbc05ccd59e21)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Richard Purdie
b4acabea99 base.bbclass: Fix PACKAGECONFIG issues with native and nativesdk BBCLASSEXTEND recipes (and multilib)
This patch fixes up the issues that were being seen where BBCLASSEXTEND and
PACKAGECONFIG were interacting badly. It also ensures PACKAGECONFIG interacts
properly with multilib builds.

Ideally some of this code will be abstracted into lib/oe/classextend.py but
at this point in release more invasive changes like this are inappropriate.

This patch also removed empty strings from expressions rather than
passing them around as this was complicating the additional code
unnecessarily.

The patch was verified against the OE-Core metadata where the return values of
expandFilter() were sanity checked by hand for native/nativesdk and
multilib combinations.

[YOCTO #2225]

(From OE-Core rev: 46db11c4a789034b7040faf127ab865148bedad8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Robert Yang
898bee7a4e mklibs-native 0.1.33: include unistd.h to fix build for gcc 4.7
Many of the standard C++ library include files have been edited to no
longer include <unistd.h> to remove namespace pollution in gcc 4.7, so
we need include <unistd.h> manually sometimes.

More information:
http://gcc.gnu.org/gcc-4.7/porting_to.html

[YOCTO #2278]

(From OE-Core rev: 5e3c12313edc4b51ddd432ecbbd3b1f5295b3c14)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>

[Updated patch header - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:53 +01:00
Mark Hatle
100e3c9b75 rpm: Ensure that we check both providename and filepaths
In lib/rpmts.c we need to make sure to look for missing dependencies,
such as /bin/sh, in both the providename and filepaths DB.  Previously
the system would key off an initial '/' and only look in the filepaths DB.

This causes problems when a package such as "bash", has a Provides: /bin/sh.

(From OE-Core rev: 08fb526c42e85c89135960344745e878c5fb633a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:53 +01:00
Mark Hatle
554cac7d13 pseudo: Tell pseudo to avoid specifying an RPATH
[Yocto #2251]

Add --without-rpath to avoid embedding rpaths into the pseudo
components.

(From OE-Core rev: ae978e9671fdbcb31e306308bfb816b4bd2b2496)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:52 +01:00
Lianhao Lu
fb918fb4db Hob: Added required packages for toolchain.
Added the requried packages task-core-standalone-sdk-target(-dbg) for
building toolchain.

Fixed bug [YOCTO #2274]

(Bitbake rev: 434fdb3913cc78e2e9cdeede4c4fa7f1c8ef8892)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Lianhao Lu
811f7d8ebf bb.utils: Modifed vercmp() to meet Debian rules.
The version compare function vercmp() was not exatcly conforming to
Debian rules, e.g. it reported 'r1' > 'r1.1' but the Debian rules says
'r1' < 'r1.1'; it didn't support the "~" either.

Modified the vercmp() to meet Debian rules, so that it's compatible to
the rules used in opkg.

This part of the buf fixing of [YOCTO #2233].

(Bitbake rev: 97b610c54c60b5a40fa7f6a09fa23ce17b38f93a)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Shane Wang
4997801bad Hob: forbid users to exit Hob directly when Hob is busy
When Hob is busy with generating data, exiting Hob is not allowed.
That should be reasonable because at that time the mouse cursor is not a pointer.
If users want to exit, they can click "Stop" first and then do exit.

That is also a walkaround for [Yocto #2142]

(Bitbake rev: ad7f6bf3c7c4c15d546781aaefdaf03f00193f7c)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Dongxiao Xu
9c1dcdceb2 Hob: Implement Hob config parse hook
To make Hob's specific variable settings take effect, we add a Hob
config hook at the end of parsing for each configuration file, and in
the hook function, Hob will set its own variables to the data store.

This fixes:
[YOCTO #2210]
[YOCTO #2254]

(Bitbake rev: 0ec7d1bbfd2e09ae60f99e6134b20ffd1d9145b1)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Richard Purdie
302f2cc8ce ConfHandler.py: Add a hook for config parsing
To make the UI settings take effect, we need to hook at the end of each
config file parsing and set UI specific values.

(Bitbake rev: f54e733c7863110896f43900d9e4e791602f9d65)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:18 +01:00
1372 changed files with 31482 additions and 36398 deletions

8
.gitignore vendored
View File

@@ -1,10 +1,8 @@
bitbake
*.pyc
*.pyo
build*/conf/local.conf
build*/conf/bblayers.conf
build*/downloads
build*/tmp/
build*/sstate-cache
/*.patch
build*/
pyshtables.py
pstage/
scripts/oe-git-proxy-socks

2
README
View File

@@ -18,7 +18,7 @@ e.g. for the hardware support. Poky is in turn a component of the Yocto Project.
The Yocto Project has extensive documentation about the system including a
reference manual which can be found at:
http://yoctoproject.org/community/documentation
http://yoctoproject.org/documentation
OpenEmbedded-Core is a layer containing the core metadata for current versions
of OpenEmbedded. It is distro-less (can build a functional image with

View File

@@ -40,7 +40,7 @@ from bb import cooker
from bb import ui
from bb import server
__version__ = "1.15.1"
__version__ = "1.15.2"
logger = logging.getLogger("BitBake")
@@ -56,10 +56,11 @@ class BBConfiguration(object):
def get_ui(config):
if config.ui:
interface = config.ui
else:
interface = 'knotty'
if not config.ui:
# modify 'ui' attribute because it is also read by cooker
config.ui = os.environ.get('BITBAKE_UI', 'knotty')
interface = config.ui
try:
# Dynamically load the UI based on the ui name. Although we
@@ -117,6 +118,9 @@ Default BBFILES are the .bb files in the current directory.""")
parser.add_option("-c", "--cmd", help = "Specify task to execute. Note that this only executes the specified task for the providee and the packages it depends on, i.e. 'compile' does not implicitly call stage for the dependencies (IOW: use only if you know what you are doing). Depending on the base.bbclass a listtasks tasks is defined and will show available tasks",
action = "store", dest = "cmd")
parser.add_option("-C", "--clear-stamp", help = "Invalidate the stamp for the specified cmd such as 'compile' and run the default task for the specified target(s)",
action = "store", dest = "invalidate_stamp")
parser.add_option("-r", "--read", help = "read the specified file before bitbake.conf",
action = "append", dest = "prefile", default = [])
@@ -144,7 +148,7 @@ Default BBFILES are the .bb files in the current directory.""")
parser.add_option("-e", "--environment", help = "show the global or per-package environment (this is what used to be bbread)",
action = "store_true", dest = "show_environment", default = False)
parser.add_option("-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax",
parser.add_option("-g", "--graphviz", help = "emit the dependency trees of the specified packages in the dot syntax, and the pn-buildlist to show the build list",
action = "store_true", dest = "dot_graph", default = False)
parser.add_option("-I", "--ignore-deps", help = """Assume these dependencies don't exist and are already provided (equivalent to ASSUME_PROVIDED). Useful to make dependency graphs more appealing""",

View File

@@ -9,6 +9,7 @@
import cmd
import logging
import warnings
import os
import sys
import fnmatch
@@ -28,6 +29,7 @@ import bb.fetch2
logger = logging.getLogger('BitBake')
warnings.filterwarnings("ignore", category=DeprecationWarning)
def main(args):
# Set up logging

38
bitbake/bin/bitbake-selftest Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env python
#
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import sys, logging
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)), 'lib'))
import unittest
try:
import bb
except RuntimeError as exc:
sys.exit(str(exc))
tests = ["bb.tests.codeparser",
"bb.tests.cow",
"bb.tests.data",
"bb.tests.fetch",
"bb.tests.utils"]
for t in tests:
__import__(t)
unittest.main(argv=["bitbake-selftest"] + tests)

120
bitbake/bin/image-writer Executable file
View File

@@ -0,0 +1,120 @@
#!/usr/bin/env python
# Copyright (c) 2012 Wind River Systems, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname( \
os.path.abspath(__file__))), 'lib'))
try:
import bb
except RuntimeError as exc:
sys.exit(str(exc))
import gtk
import optparse
import pygtk
from bb.ui.crumbs.hig import DeployImageDialog, ImageSelectionDialog, CrumbsMessageDialog
from bb.ui.crumbs.hobwidget import HobAltButton, HobButton
# I put all the fs bitbake supported here. Need more test.
DEPLOYABLE_IMAGE_TYPES = ["jffs2", "cramfs", "ext2", "ext3", "btrfs", "squashfs", "ubi", "vmdk"]
Title = "USB Image Writer"
class DeployWindow(gtk.Window):
def __init__(self, image_path=''):
super(DeployWindow, self).__init__()
if len(image_path) > 0:
valid = True
if not os.path.exists(image_path):
valid = False
lbl = "<b>Invalid image file path: %s.</b>\nPress <b>Select Image</b> to select an image." % image_path
else:
image_path = os.path.abspath(image_path)
extend_name = os.path.splitext(image_path)[1][1:]
if extend_name not in DEPLOYABLE_IMAGE_TYPES:
valid = False
lbl = "<b>Undeployable imge type: %s</b>\nPress <b>Select Image</b> to select an image." % extend_name
if not valid:
image_path = ''
crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
crumbs_dialog.run()
crumbs_dialog.destroy()
self.deploy_dialog = DeployImageDialog(Title, image_path, self,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT
| gtk.DIALOG_NO_SEPARATOR, None, standalone=True)
close_button = self.deploy_dialog.add_button("Close", gtk.RESPONSE_NO)
HobAltButton.style_button(close_button)
close_button.connect('clicked', gtk.main_quit)
write_button = self.deploy_dialog.add_button("Write USB image", gtk.RESPONSE_YES)
HobAltButton.style_button(write_button)
self.deploy_dialog.connect('select_image_clicked', self.select_image_clicked_cb)
self.deploy_dialog.connect('destroy', gtk.main_quit)
response = self.deploy_dialog.show()
def select_image_clicked_cb(self, dialog):
cwd = os.getcwd()
dialog = ImageSelectionDialog(cwd, DEPLOYABLE_IMAGE_TYPES, Title, self, gtk.FILE_CHOOSER_ACTION_SAVE )
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("Open", gtk.RESPONSE_YES)
HobAltButton.style_button(button)
response = dialog.run()
if response == gtk.RESPONSE_YES:
if not dialog.image_names:
lbl = "<b>No selections made</b>\nClicked the radio button to select a image."
crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
crumbs_dialog.run()
crumbs_dialog.destroy()
dialog.destroy()
return
# get the full path of image
image_path = os.path.join(dialog.image_folder, dialog.image_names[0])
self.deploy_dialog.set_image_text_buffer(image_path)
self.deploy_dialog.set_image_path(image_path)
dialog.destroy()
def main():
parser = optparse.OptionParser(
usage = """%prog [-h] [image_file]
%prog writes bootable images to USB devices. You can
provide the image file on the command line or select it using the GUI.""")
options, args = parser.parse_args(sys.argv)
image_file = args[1] if len(args) > 1 else ''
dw = DeployWindow(image_file)
if __name__ == '__main__':
try:
main()
gtk.main()
except Exception:
import traceback
traceback.print_exc(3)

View File

@@ -103,7 +103,13 @@ Show debug logging for the specified logging domains
.TP
.B \-P, \-\-profile
profile the command and print a report
.SH ENVIRONMENT VARIABLES
bitbake uses the following environment variables to control its
operation:
.TP
.B BITBAKE_UI
The bitbake user interface; overridden by the \fB-u\fP commandline option.
.SH AUTHORS
BitBake was written by

View File

@@ -228,7 +228,7 @@ addtask printdate before do_build</screen></para>
<para>'nostamp' - don't generate a stamp file for a task. This means the task is always rexecuted.</para>
<para>'fakeroot' - this task needs to be run in a fakeroot environment, obtained by adding the variables in FAKEROOTENV to the environment.</para>
<para>'umask' - the umask to run the task under.</para>
<para> For the 'deptask', 'rdeptask', 'recdeptask' and 'recrdeptask' flags please see the dependencies section.</para>
<para> For the 'deptask', 'rdeptask', 'depends', 'rdepends' and 'recrdeptask' flags please see the dependencies section.</para>
</section>
<section>
@@ -308,37 +308,35 @@ SRC_URI_append_1.0.7+ = "file://some_patch_which_the_new_versions_need.patch;pat
</section>
<section>
<title>Dependency handling</title>
<para>BitBake 1.7.x onwards works with the metadata at the task level since this is optimal when dealing with multiple threads of execution. A robust method of specifing task dependencies is therefore needed. </para>
<para>BitBake handles dependencies at the task level since to allow for efficient operation with multiple processed executing in parallel. A robust method of specifying task dependencies is therefore needed. </para>
<section>
<title>Dependencies internal to the .bb file</title>
<para>Where the dependencies are internal to a given .bb file, the dependencies are handled by the previously detailed addtask directive.</para>
</section>
<section>
<title>DEPENDS</title>
<title>Build Dependencies</title>
<para>DEPENDS lists build time dependencies. The 'deptask' flag for tasks is used to signify the task of each item listed in DEPENDS which must have completed before that task can be executed.</para>
<para><screen>do_configure[deptask] = "do_populate_staging"</screen></para>
<para>means the do_populate_staging task of each item in DEPENDS must have completed before do_configure can execute.</para>
</section>
<section>
<title>RDEPENDS</title>
<para>RDEPENDS lists runtime dependencies. The 'rdeptask' flag for tasks is used to signify the task of each item listed in RDEPENDS which must have completed before that task can be executed.</para>
<title>Runtime Dependencies</title>
<para>The PACKAGES variable lists runtime packages and each of these can have RDEPENDS and RRECOMMENDS runtime dependencies. The 'rdeptask' flag for tasks is used to signify the task of each item runtime dependency which must have completed before that task can be executed.</para>
<para><screen>do_package_write[rdeptask] = "do_package"</screen></para>
<para>means the do_package task of each item in RDEPENDS must have completed before do_package_write can execute.</para>
</section>
<section>
<title>Recursive DEPENDS</title>
<para>These are specified with the 'recdeptask' flag and is used signify the task(s) of each DEPENDS which must have completed before that task can be executed. It applies recursively so the DEPENDS of each item in the original DEPENDS must be met and so on.</para>
</section>
<section>
<title>Recursive RDEPENDS</title>
<para>These are specified with the 'recrdeptask' flag and is used signify the task(s) of each RDEPENDS which must have completed before that task can be executed. It applies recursively so the RDEPENDS of each item in the original RDEPENDS must be met and so on. It also runs all DEPENDS first.</para>
<title>Recursive Dependencies</title>
<para>These are specified with the 'recrdeptask' flag which is used signify the task(s) of dependencies which must have completed before that task can be executed. It works by looking though the build and runtime dependencies of the current recipe as well as any inter-task dependencies the task has, then adding a dependency on the listed task. It will then recurse through the dependencies of those tasks and so on.</para>
<para>It may be desireable to recurse not just through the dependencies of those tasks but through the build and runtime dependencies of dependent tasks too. If that is the case, the taskname itself should be referenced in the task list, e.g. do_a[recrdeptask] = "do_a do_b".</para>
</section>
<section>
<title>Inter task</title>
<para>The 'depends' flag for tasks is a more generic form of which allows an interdependency on specific tasks rather than specifying the data in DEPENDS or RDEPENDS.</para>
<para>The 'depends' flag for tasks is a more generic form of which allows an interdependency on specific tasks rather than specifying the data in DEPENDS.</para>
<para><screen>do_patch[depends] = "quilt-native:do_populate_staging"</screen></para>
<para>means the do_populate_staging task of the target quilt-native must have completed before the do_patch can execute.</para>
<para>The 'rdepends' flag works in a similar way but takes targets in the runtime namespace instead of the build time dependency namespace.</para>
</section>
</section>

View File

@@ -21,7 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "1.15.1"
__version__ = "1.15.2"
import sys
if sys.version_info < (2, 6, 0):

View File

@@ -135,7 +135,8 @@ class LogTee(object):
def __repr__(self):
return '<LogTee {0}>'.format(self.name)
def flush(self):
self.outfile.flush()
def exec_func(func, d, dirs = None):
"""Execute an BB 'function'"""
@@ -174,8 +175,19 @@ def exec_func(func, d, dirs = None):
lockfiles = None
tempdir = data.getVar('T', d, 1)
bb.utils.mkdirhier(tempdir)
runfile = os.path.join(tempdir, 'run.{0}.{1}'.format(func, os.getpid()))
# or func allows items to be executed outside of the normal
# task set, such as buildhistory
task = data.getVar('BB_RUNTASK', d, 1) or func
if task == func:
taskfunc = task
else:
taskfunc = "%s.%s" % (task, func)
runfmt = data.getVar('BB_RUNFMT', d, 1) or "run.{func}.{pid}"
runfn = runfmt.format(taskfunc=taskfunc, task=task, func=func, pid=os.getpid())
runfile = os.path.join(tempdir, runfn)
bb.utils.mkdirhier(os.path.dirname(runfile))
with bb.utils.fileslocked(lockfiles):
if ispython:
@@ -206,6 +218,8 @@ def exec_func_python(func, d, runfile, cwd=None):
olddir = None
os.chdir(cwd)
bb.debug(2, "Executing python function %s" % func)
try:
comp = utils.better_compile(code, func, bbfile)
utils.better_exec(comp, {"d": d}, code, bbfile)
@@ -215,13 +229,15 @@ def exec_func_python(func, d, runfile, cwd=None):
raise FuncFailed(func, None)
finally:
bb.debug(2, "Python function %s finished" % func)
if cwd and olddir:
try:
os.chdir(olddir)
except OSError:
pass
def exec_func_shell(function, d, runfile, cwd=None):
def exec_func_shell(func, d, runfile, cwd=None):
"""Execute a shell function from the metadata
Note on directory behavior. The 'dirs' varflag should contain a list
@@ -234,18 +250,18 @@ def exec_func_shell(function, d, runfile, cwd=None):
with open(runfile, 'w') as script:
script.write('#!/bin/sh -e\n')
data.emit_func(function, script, d)
data.emit_func(func, script, d)
if bb.msg.loggerVerboseLogs:
script.write("set -x\n")
if cwd:
script.write("cd %s\n" % cwd)
script.write("%s\n" % function)
script.write("%s\n" % func)
os.chmod(runfile, 0775)
cmd = runfile
if d.getVarFlag(function, 'fakeroot'):
if d.getVarFlag(func, 'fakeroot'):
fakerootcmd = d.getVar('FAKEROOT', True)
if fakerootcmd:
cmd = [fakerootcmd, runfile]
@@ -255,11 +271,15 @@ def exec_func_shell(function, d, runfile, cwd=None):
else:
logfile = sys.stdout
bb.debug(2, "Executing shell function %s" % func)
try:
bb.process.run(cmd, shell=False, stdin=NULL, log=logfile)
except bb.process.CmdError:
logfn = d.getVar('BB_LOGFILE', True)
raise FuncFailed(function, logfn)
raise FuncFailed(func, logfn)
bb.debug(2, "Shell function %s finished" % func)
def _task_data(fn, task, d):
localdata = data.createCopy(d)
@@ -290,8 +310,23 @@ def _exec_task(fn, task, d, quieterr):
bb.fatal("T variable not set, unable to build")
bb.utils.mkdirhier(tempdir)
# Determine the logfile to generate
logfmt = localdata.getVar('BB_LOGFMT', True) or 'log.{task}.{pid}'
logbase = logfmt.format(task=task, pid=os.getpid())
# Document the order of the tasks...
logorder = os.path.join(tempdir, 'log.task_order')
try:
logorderfile = file(logorder, 'a')
except OSError:
logger.exception("Opening log file '%s'", logorder)
pass
logorderfile.write('{0} ({1}): {2}\n'.format(task, os.getpid(), logbase))
logorderfile.close()
# Setup the courtesy link to the logfn
loglink = os.path.join(tempdir, 'log.{0}'.format(task))
logbase = 'log.{0}.{1}'.format(task, os.getpid())
logfn = os.path.join(tempdir, logbase)
if loglink:
bb.utils.remove(loglink)
@@ -314,6 +349,7 @@ def _exec_task(fn, task, d, quieterr):
# Handle logfiles
si = file('/dev/null', 'r')
try:
bb.utils.mkdirhier(os.path.dirname(logfn))
logfile = file(logfn, 'w')
except OSError:
logger.exception("Opening log file '%s'", logfn)
@@ -340,6 +376,7 @@ def _exec_task(fn, task, d, quieterr):
bblogger.addHandler(errchk)
localdata.setVar('BB_LOGFILE', logfn)
localdata.setVar('BB_RUNTASK', task)
event.fire(TaskStarted(task, localdata), localdata)
try:
@@ -458,6 +495,24 @@ def del_stamp(task, d, file_name = None):
stamp = stamp_internal(task, d, file_name)
bb.utils.remove(stamp)
def write_taint(task, d, file_name = None):
"""
Creates a "taint" file which will force the specified task and its
dependents to be re-run the next time by influencing the value of its
taskhash.
(d can be a data dict or dataCache)
"""
import uuid
if file_name:
taintfn = d.stamp[file_name] + '.' + task + '.taint'
else:
taintfn = d.getVar('STAMP', True) + '.' + task + '.taint'
bb.utils.mkdirhier(os.path.dirname(taintfn))
# The specific content of the taint file is not really important,
# we just need it to be random, so a random UUID is used
with open(taintfn, 'w') as taintf:
taintf.write(str(uuid.uuid4()))
def stampfile(taskname, d, file_name = None):
"""
Return the stamp for a given task
@@ -489,6 +544,7 @@ def add_tasks(tasklist, d):
deptask = data.expand(flags[name], d)
task_deps[name][task] = deptask
getTask('depends')
getTask('rdepends')
getTask('deptask')
getTask('rdeptask')
getTask('recrdeptask')

View File

@@ -1,11 +1,12 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake 'Event' implementation
# BitBake Cache implementation
#
# Caching of bitbake variables before task execution
# Copyright (C) 2006 Richard Purdie
# Copyright (C) 2012 Intel Corporation
# but small sections based on code from bin/bitbake:
# Copyright (C) 2003, 2004 Chris Larson
@@ -42,7 +43,7 @@ except ImportError:
logger.info("Importing cPickle failed. "
"Falling back to a very slow implementation.")
__cache_version__ = "143"
__cache_version__ = "144"
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)
@@ -75,9 +76,13 @@ class RecipeInfoCommon(object):
for task in tasks)
@classmethod
def flaglist(cls, flag, varlist, metadata):
return dict((var, metadata.getVarFlag(var, flag, True))
def flaglist(cls, flag, varlist, metadata, squash=False):
out_dict = dict((var, metadata.getVarFlag(var, flag, True))
for var in varlist)
if squash:
return dict((k,v) for (k,v) in out_dict.iteritems() if v)
else:
return out_dict
@classmethod
def getvar(cls, var, metadata):
@@ -127,6 +132,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.stamp = self.getvar('STAMP', metadata)
self.stamp_base = self.flaglist('stamp-base', self.tasks, metadata)
self.stamp_extrainfo = self.flaglist('stamp-extra-info', self.tasks, metadata)
self.file_checksums = self.flaglist('file-checksums', self.tasks, metadata, True)
self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
self.depends = self.depvar('DEPENDS', metadata)
self.provides = self.depvar('PROVIDES', metadata)
@@ -153,6 +159,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.stamp = {}
cachedata.stamp_base = {}
cachedata.stamp_extrainfo = {}
cachedata.file_checksums = {}
cachedata.fn_provides = {}
cachedata.pn_provides = defaultdict(list)
cachedata.all_depends = []
@@ -184,6 +191,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
cachedata.stamp[fn] = self.stamp
cachedata.stamp_base[fn] = self.stamp_base
cachedata.stamp_extrainfo[fn] = self.stamp_extrainfo
cachedata.file_checksums[fn] = self.file_checksums
provides = [self.pn]
for provide in self.provides:
@@ -703,4 +711,115 @@ class CacheData(object):
for info in info_array:
info.add_cacheData(self, fn)
class MultiProcessCache(object):
"""
BitBake multi-process cache implementation
Used by the codeparser & file checksum caches
"""
def __init__(self):
self.cachefile = None
self.cachedata = self.create_cachedata()
self.cachedata_extras = self.create_cachedata()
def init_cache(self, d):
cachedir = (d.getVar("PERSISTENT_DIR", True) or
d.getVar("CACHE", True))
if cachedir in [None, '']:
return
bb.utils.mkdirhier(cachedir)
self.cachefile = os.path.join(cachedir, self.__class__.cache_file_name)
logger.debug(1, "Using cache in '%s'", self.cachefile)
try:
p = pickle.Unpickler(file(self.cachefile, "rb"))
data, version = p.load()
except:
return
if version != self.__class__.CACHE_VERSION:
return
self.cachedata = data
def internSet(self, items):
new = set()
for i in items:
new.add(intern(i))
return new
def compress_keys(self, data):
# Override in subclasses if desired
return
def create_cachedata(self):
data = [{}]
return data
def save_extras(self, d):
if not self.cachefile:
return
glf = bb.utils.lockfile(self.cachefile + ".lock", shared=True)
i = os.getpid()
lf = None
while not lf:
lf = bb.utils.lockfile(self.cachefile + ".lock." + str(i), retry=False)
if not lf or os.path.exists(self.cachefile + "-" + str(i)):
if lf:
bb.utils.unlockfile(lf)
lf = None
i = i + 1
continue
p = pickle.Pickler(file(self.cachefile + "-" + str(i), "wb"), -1)
p.dump([self.cachedata_extras, self.__class__.CACHE_VERSION])
bb.utils.unlockfile(lf)
bb.utils.unlockfile(glf)
def merge_data(self, source, dest):
for j in range(0,len(dest)):
for h in source[j]:
if h not in dest[j]:
dest[j][h] = source[j][h]
def save_merge(self, d):
if not self.cachefile:
return
glf = bb.utils.lockfile(self.cachefile + ".lock")
try:
p = pickle.Unpickler(file(self.cachefile, "rb"))
data, version = p.load()
except (IOError, EOFError):
data, version = None, None
if version != self.__class__.CACHE_VERSION:
data = self.create_cachedata()
for f in [y for y in os.listdir(os.path.dirname(self.cachefile)) if y.startswith(os.path.basename(self.cachefile) + '-')]:
f = os.path.join(os.path.dirname(self.cachefile), f)
try:
p = pickle.Unpickler(file(f, "rb"))
extradata, version = p.load()
except (IOError, EOFError):
extradata, version = self.create_cachedata(), None
if version != self.__class__.CACHE_VERSION:
continue
self.merge_data(extradata, data)
os.unlink(f)
self.compress_keys(data)
p = pickle.Pickler(file(self.cachefile, "wb"), -1)
p.dump([data, self.__class__.CACHE_VERSION])
bb.utils.unlockfile(glf)

View File

@@ -0,0 +1,90 @@
# Local file checksum cache implementation
#
# Copyright (C) 2012 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import os
import stat
import bb.utils
import logging
from bb.cache import MultiProcessCache
logger = logging.getLogger("BitBake.Cache")
try:
import cPickle as pickle
except ImportError:
import pickle
logger.info("Importing cPickle failed. "
"Falling back to a very slow implementation.")
# mtime cache (non-persistent)
# based upon the assumption that files do not change during bitbake run
class FileMtimeCache(object):
cache = {}
def cached_mtime(self, f):
if f not in self.cache:
self.cache[f] = os.stat(f)[stat.ST_MTIME]
return self.cache[f]
def cached_mtime_noerror(self, f):
if f not in self.cache:
try:
self.cache[f] = os.stat(f)[stat.ST_MTIME]
except OSError:
return 0
return self.cache[f]
def update_mtime(self, f):
self.cache[f] = os.stat(f)[stat.ST_MTIME]
return self.cache[f]
def clear(self):
self.cache.clear()
# Checksum + mtime cache (persistent)
class FileChecksumCache(MultiProcessCache):
cache_file_name = "local_file_checksum_cache.dat"
CACHE_VERSION = 1
def __init__(self):
self.mtime_cache = FileMtimeCache()
MultiProcessCache.__init__(self)
def get_checksum(self, f):
entry = self.cachedata[0].get(f)
cmtime = self.mtime_cache.cached_mtime(f)
if entry:
(mtime, hashval) = entry
if cmtime == mtime:
return hashval
else:
bb.debug(2, "file %s changed mtime, recompute checksum" % f)
hashval = bb.utils.md5_file(f)
self.cachedata_extras[0][f] = (cmtime, hashval)
return hashval
def merge_data(self, source, dest):
for h in source[0]:
if h in dest:
(smtime, _) = source[0][h]
(dmtime, _) = dest[0][h]
if smtime > dmtime:
dest[0][h] = source[0][h]
else:
dest[0][h] = source[0][h]

View File

@@ -5,10 +5,10 @@ import os.path
import bb.utils, bb.data
from itertools import chain
from pysh import pyshyacc, pyshlex, sherrors
from bb.cache import MultiProcessCache
logger = logging.getLogger('BitBake.CodeParser')
PARSERCACHE_VERSION = 2
try:
import cPickle as pickle
@@ -32,133 +32,56 @@ def check_indent(codestr):
return codestr
pythonparsecache = {}
shellparsecache = {}
pythonparsecacheextras = {}
shellparsecacheextras = {}
class CodeParserCache(MultiProcessCache):
cache_file_name = "bb_codeparser.dat"
CACHE_VERSION = 2
def parser_cachefile(d):
cachedir = (d.getVar("PERSISTENT_DIR", True) or
d.getVar("CACHE", True))
if cachedir in [None, '']:
return None
bb.utils.mkdirhier(cachedir)
cachefile = os.path.join(cachedir, "bb_codeparser.dat")
logger.debug(1, "Using cache in '%s' for codeparser cache", cachefile)
return cachefile
def __init__(self):
MultiProcessCache.__init__(self)
self.pythoncache = self.cachedata[0]
self.shellcache = self.cachedata[1]
self.pythoncacheextras = self.cachedata_extras[0]
self.shellcacheextras = self.cachedata_extras[1]
def init_cache(self, d):
MultiProcessCache.init_cache(self, d)
# cachedata gets re-assigned in the parent
self.pythoncache = self.cachedata[0]
self.shellcache = self.cachedata[1]
def compress_keys(self, data):
# When the dicts are originally created, python calls intern() on the set keys
# which significantly improves memory usage. Sadly the pickle/unpickle process
# doesn't call intern() on the keys and results in the same strings being duplicated
# in memory. This also means pickle will save the same string multiple times in
# the cache file. By interning the data here, the cache file shrinks dramatically
# meaning faster load times and the reloaded cache files also consume much less
# memory. This is worth any performance hit from this loops and the use of the
# intern() data storage.
# Python 3.x may behave better in this area
for h in data[0]:
data[0][h]["refs"] = self.internSet(data[0][h]["refs"])
data[0][h]["execs"] = self.internSet(data[0][h]["execs"])
for h in data[1]:
data[1][h]["execs"] = self.internSet(data[1][h]["execs"])
return
def create_cachedata(self):
data = [{}, {}]
return data
codeparsercache = CodeParserCache()
def parser_cache_init(d):
global pythonparsecache
global shellparsecache
cachefile = parser_cachefile(d)
if not cachefile:
return
try:
p = pickle.Unpickler(file(cachefile, "rb"))
data, version = p.load()
except:
return
if version != PARSERCACHE_VERSION:
return
pythonparsecache = data[0]
shellparsecache = data[1]
codeparsercache.init_cache(d)
def parser_cache_save(d):
cachefile = parser_cachefile(d)
if not cachefile:
return
glf = bb.utils.lockfile(cachefile + ".lock", shared=True)
i = os.getpid()
lf = None
while not lf:
shellcache = {}
pythoncache = {}
lf = bb.utils.lockfile(cachefile + ".lock." + str(i), retry=False)
if not lf or os.path.exists(cachefile + "-" + str(i)):
if lf:
bb.utils.unlockfile(lf)
lf = None
i = i + 1
continue
shellcache = shellparsecacheextras
pythoncache = pythonparsecacheextras
p = pickle.Pickler(file(cachefile + "-" + str(i), "wb"), -1)
p.dump([[pythoncache, shellcache], PARSERCACHE_VERSION])
bb.utils.unlockfile(lf)
bb.utils.unlockfile(glf)
def internSet(items):
new = set()
for i in items:
new.add(intern(i))
return new
codeparsercache.save_extras(d)
def parser_cache_savemerge(d):
cachefile = parser_cachefile(d)
if not cachefile:
return
glf = bb.utils.lockfile(cachefile + ".lock")
try:
p = pickle.Unpickler(file(cachefile, "rb"))
data, version = p.load()
except (IOError, EOFError):
data, version = None, None
if version != PARSERCACHE_VERSION:
data = [{}, {}]
for f in [y for y in os.listdir(os.path.dirname(cachefile)) if y.startswith(os.path.basename(cachefile) + '-')]:
f = os.path.join(os.path.dirname(cachefile), f)
try:
p = pickle.Unpickler(file(f, "rb"))
extradata, version = p.load()
except (IOError, EOFError):
extradata, version = [{}, {}], None
if version != PARSERCACHE_VERSION:
continue
for h in extradata[0]:
if h not in data[0]:
data[0][h] = extradata[0][h]
for h in extradata[1]:
if h not in data[1]:
data[1][h] = extradata[1][h]
os.unlink(f)
# When the dicts are originally created, python calls intern() on the set keys
# which significantly improves memory usage. Sadly the pickle/unpickle process
# doesn't call intern() on the keys and results in the same strings being duplicated
# in memory. This also means pickle will save the same string multiple times in
# the cache file. By interning the data here, the cache file shrinks dramatically
# meaning faster load times and the reloaded cache files also consume much less
# memory. This is worth any performance hit from this loops and the use of the
# intern() data storage.
# Python 3.x may behave better in this area
for h in data[0]:
data[0][h]["refs"] = internSet(data[0][h]["refs"])
data[0][h]["execs"] = internSet(data[0][h]["execs"])
for h in data[1]:
data[1][h]["execs"] = internSet(data[1][h]["execs"])
p = pickle.Pickler(file(cachefile, "wb"), -1)
p.dump([data, PARSERCACHE_VERSION])
bb.utils.unlockfile(glf)
codeparsercache.save_merge(d)
Logger = logging.getLoggerClass()
class BufferedLogger(Logger):
@@ -235,14 +158,14 @@ class PythonParser():
def parse_python(self, node):
h = hash(str(node))
if h in pythonparsecache:
self.references = pythonparsecache[h]["refs"]
self.execs = pythonparsecache[h]["execs"]
if h in codeparsercache.pythoncache:
self.references = codeparsercache.pythoncache[h]["refs"]
self.execs = codeparsercache.pythoncache[h]["execs"]
return
if h in pythonparsecacheextras:
self.references = pythonparsecacheextras[h]["refs"]
self.execs = pythonparsecacheextras[h]["execs"]
if h in codeparsercache.pythoncacheextras:
self.references = codeparsercache.pythoncacheextras[h]["refs"]
self.execs = codeparsercache.pythoncacheextras[h]["execs"]
return
@@ -256,9 +179,9 @@ class PythonParser():
self.references.update(self.var_references)
self.references.update(self.var_execs)
pythonparsecacheextras[h] = {}
pythonparsecacheextras[h]["refs"] = self.references
pythonparsecacheextras[h]["execs"] = self.execs
codeparsercache.pythoncacheextras[h] = {}
codeparsercache.pythoncacheextras[h]["refs"] = self.references
codeparsercache.pythoncacheextras[h]["execs"] = self.execs
class ShellParser():
def __init__(self, name, log):
@@ -276,12 +199,12 @@ class ShellParser():
h = hash(str(value))
if h in shellparsecache:
self.execs = shellparsecache[h]["execs"]
if h in codeparsercache.shellcache:
self.execs = codeparsercache.shellcache[h]["execs"]
return self.execs
if h in shellparsecacheextras:
self.execs = shellparsecacheextras[h]["execs"]
if h in codeparsercache.shellcacheextras:
self.execs = codeparsercache.shellcacheextras[h]["execs"]
return self.execs
try:
@@ -293,8 +216,8 @@ class ShellParser():
self.process_tokens(token)
self.execs = set(cmd for cmd in self.allexecs if cmd not in self.funcdefs)
shellparsecacheextras[h] = {}
shellparsecacheextras[h]["execs"] = self.execs
codeparsercache.shellcacheextras[h] = {}
codeparsercache.shellcacheextras[h]["execs"] = self.execs
return self.execs

View File

@@ -179,6 +179,13 @@ class CommandsSync:
"""
return bb.utils.cpu_count()
def setConfFilter(self, command, params):
"""
Set the configuration file parsing filter
"""
filterfunc = params[0]
bb.parse.parse_py.ConfHandler.confFilters.append(filterfunc)
class CommandsAsync:
"""
A class of asynchronous commands

View File

@@ -534,11 +534,15 @@ class BBCooker:
# Prints a flattened form of package-depends below where subpackages of a package are merged into the main pn
depends_file = file('pn-depends.dot', 'w' )
buildlist_file = file('pn-buildlist', 'w' )
print("digraph depends {", file=depends_file)
for pn in depgraph["pn"]:
fn = depgraph["pn"][pn]["filename"]
version = depgraph["pn"][pn]["version"]
print('"%s" [label="%s %s\\n%s"]' % (pn, pn, version, fn), file=depends_file)
print("%s" % pn, file=buildlist_file)
buildlist_file.close()
logger.info("PN build list saved to 'pn-buildlist'")
for pn in depgraph["depends"]:
for depend in depgraph["depends"][pn]:
print('"%s" -> "%s"' % (pn, depend), file=depends_file)
@@ -985,12 +989,12 @@ class BBCooker:
"""
Find the .bb files which match the expression in 'buildfile'.
"""
if bf.startswith("/") or bf.startswith("../"):
bf = os.path.abspath(bf)
filelist, masked = self.collect_bbfiles()
try:
os.stat(bf)
bf = os.path.abspath(bf)
return [bf]
except OSError:
regexp = re.compile(bf)
@@ -1066,10 +1070,10 @@ class BBCooker:
self.status.rundeps[fn] = []
self.status.runrecs[fn] = []
# Remove stamp for target if force mode active
# Invalidate task for target if force mode active
if self.configuration.force:
logger.verbose("Remove stamp %s, %s", task, fn)
bb.build.del_stamp('do_%s' % task, self.status, fn)
logger.verbose("Invalidate task %s, %s", task, fn)
bb.parse.siggen.invalidate_task('do_%s' % task, self.status, fn)
# Setup taskdata structure
taskdata = bb.taskdata.TaskData(self.configuration.abort)
@@ -1175,7 +1179,7 @@ class BBCooker:
return
if self.state in (state.shutdown, state.stop):
self.parser.shutdown(clean=False)
self.parser.shutdown(clean=False, force = True)
sys.exit(1)
if self.state != state.parsing:
@@ -1570,6 +1574,7 @@ class CookerParser(object):
def init():
Parser.cfg = self.cfgdata
multiprocessing.util.Finalize(None, bb.codeparser.parser_cache_save, args=(self.cfgdata,), exitpriority=1)
multiprocessing.util.Finalize(None, bb.fetch.fetcher_parse_save, args=(self.cfgdata,), exitpriority=1)
self.feeder_quit = multiprocessing.Queue(maxsize=1)
self.parser_quit = multiprocessing.Queue(maxsize=self.num_processes)
@@ -1608,16 +1613,20 @@ class CookerParser(object):
self.parser_quit.put(None)
self.jobs.cancel_join_thread()
sys.exit(1)
for process in self.processes:
process.join()
if force:
process.join(.1)
process.terminate()
else:
process.join()
self.feeder.join()
sync = threading.Thread(target=self.bb_cache.sync)
sync.start()
multiprocessing.util.Finalize(None, sync.join, exitpriority=-100)
bb.codeparser.parser_cache_savemerge(self.cooker.configuration.data)
bb.fetch.fetcher_parse_done(self.cooker.configuration.data)
def load_cached(self):
for filename, appends in self.fromcache:
@@ -1641,6 +1650,8 @@ class CookerParser(object):
yield result
def parse_next(self):
result = []
parsed = None
try:
parsed, result = self.results.next()
except StopIteration:
@@ -1650,9 +1661,13 @@ class CookerParser(object):
logger.error('Unable to parse %s: %s' %
(exc.recipe, bb.exceptions.to_string(exc.realexception)))
self.shutdown(clean=False)
except (bb.parse.ParseError, bb.data_smart.ExpansionError) as exc:
except bb.parse.ParseError as exc:
logger.error(str(exc))
self.shutdown(clean=False)
except bb.data_smart.ExpansionError as exc:
_, value, _ = sys.exc_info()
logger.error('ExpansionError during parsing %s: %s', value.recipe, str(exc))
self.shutdown(clean=False)
except SyntaxError as exc:
logger.error('Unable to parse %s', exc.recipe)
self.shutdown(clean=False)

View File

@@ -279,7 +279,12 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
deps = set()
vardeps = d.getVarFlag(key, "vardeps", True)
try:
value = d.getVar(key, False)
if key[-1] == ']':
vf = key[:-1].split('[')
value = d.getVarFlag(vf[0], vf[1], False)
else:
value = d.getVar(key, False)
if key in vardepvals:
value = d.getVarFlag(key, "vardepvalue", True)
elif d.getVarFlag(key, "func"):
@@ -301,6 +306,19 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
parser = d.expandWithRefs(value, key)
deps |= parser.references
deps = deps | (keys & parser.execs)
# Add varflags, assuming an exclusion list is set
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
if varflagsexcl:
varfdeps = []
varflags = d.getVarFlags(key)
if varflags:
for f in varflags:
if f not in varflagsexcl:
varfdeps.append('%s[%s]' % (key, f))
if varfdeps:
deps |= set(varfdeps)
deps |= set((vardeps or "").split())
deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split())
except:

View File

@@ -102,7 +102,10 @@ class ExpansionError(Exception):
self.expression = expression
self.variablename = varname
self.exception = exception
self.msg = "Failure expanding variable %s, expression was %s which triggered exception %s: %s" % (varname, expression, type(exception).__name__, exception)
if varname:
self.msg = "Failure expanding variable %s, expression was %s which triggered exception %s: %s" % (varname, expression, type(exception).__name__, exception)
else:
self.msg = "Failure expanding expression %s which triggered exception %s: %s" % (expression, type(exception).__name__, exception)
Exception.__init__(self, self.msg)
self.args = (varname, expression, exception)
def __str__(self):
@@ -195,7 +198,12 @@ class DataSmart(MutableMapping):
for append in appends:
keep = []
for (a, o) in self.getVarFlag(append, op) or []:
if o and not o in overrides:
match = True
if o:
for o2 in o.split("_"):
if not o2 in overrides:
match = False
if not match:
keep.append((a ,o))
continue
@@ -462,13 +470,14 @@ class DataSmart(MutableMapping):
self.delVar(var)
def get_hash(self):
data = ""
data = {}
config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split())
keys = set(key for key in iter(self) if not key.startswith("__"))
for key in keys:
if key in config_whitelist:
continue
value = self.getVar(key, False) or ""
data = data + key + ': ' + str(value) + '\n'
data.update({key:value})
return hashlib.md5(data).hexdigest()
data_str = str([(k, data[k]) for k in sorted(data.keys())])
return hashlib.md5(data_str).hexdigest()

View File

@@ -517,3 +517,21 @@ class PackageInfo(Event):
def __init__(self, pkginfolist):
Event.__init__(self)
self._pkginfolist = pkginfolist
class SanityCheck(Event):
"""
Event to issue sanity check
"""
class SanityCheckPassed(Event):
"""
Event to indicate sanity check is passed
"""
class SanityCheckFailed(Event):
"""
Event to indicate sanity check has failed
"""
def __init__(self, msg):
Event.__init__(self)
self._msg = msg

View File

@@ -32,7 +32,14 @@ class TracebackEntry(namedtuple.abc):
def _get_frame_args(frame):
"""Get the formatted arguments and class (if available) for a frame"""
arginfo = inspect.getargvalues(frame)
if not arginfo.args:
try:
if not arginfo.args:
return '', None
# There have been reports from the field of python 2.6 which doesn't
# return a namedtuple here but simply a tuple so fallback gracefully if
# args isn't present.
except AttributeError:
return '', None
firstarg = arginfo.args[0]

View File

@@ -8,6 +8,7 @@ BitBake build tools.
"""
# Copyright (C) 2003, 2004 Chris Larson
# Copyright (C) 2012 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -28,10 +29,13 @@ from __future__ import absolute_import
from __future__ import print_function
import os, re
import logging
import urllib
import bb.persist_data, bb.utils
import bb.checksum
from bb import data
__version__ = "2"
_checksum_cache = bb.checksum.FileChecksumCache()
logger = logging.getLogger("BitBake.Fetcher")
@@ -63,6 +67,9 @@ class FetchError(BBFetchException):
BBFetchException.__init__(self, msg)
self.args = (message, url)
class ChecksumError(FetchError):
"""Exception when mismatched checksum encountered"""
class UnpackError(BBFetchException):
"""General fetcher exception when something happens incorrectly when unpacking"""
def __init__(self, message, url):
@@ -99,12 +106,15 @@ class ParameterError(BBFetchException):
class NetworkAccess(BBFetchException):
"""Exception raised when network access is disabled but it is required."""
def __init__(self, url, cmd):
msg = "Network access disabled through BB_NO_NETWORK but access rquested with command %s (for url %s)" % (cmd, url)
msg = "Network access disabled through BB_NO_NETWORK but access requested with command %s (for url %s)" % (cmd, url)
self.url = url
self.cmd = cmd
BBFetchException.__init__(self, msg)
self.args = (url, cmd)
class NonLocalMethod(Exception):
def __init__(self):
Exception.__init__(self)
def decodeurl(url):
"""Decodes an URL into the tokens (scheme, network location, path,
@@ -144,14 +154,14 @@ def decodeurl(url):
s1, s2 = s.split('=')
p[s1] = s2
return (type, host, path, user, pswd, p)
return type, host, urllib.unquote(path), user, pswd, p
def encodeurl(decoded):
"""Encodes a URL from tokens (scheme, network location, path,
user, password, parameters).
"""
(type, host, path, user, pswd, p) = decoded
type, host, path, user, pswd, p = decoded
if not path:
raise MissingParameterError('path', "encoded from the data %s" % str(decoded))
@@ -165,43 +175,64 @@ def encodeurl(decoded):
url += "@"
if host and type != "file":
url += "%s" % host
url += "%s" % path
url += "%s" % urllib.quote(path)
if p:
for parm in p:
url += ";%s=%s" % (parm, p[parm])
return url
def uri_replace(ud, uri_find, uri_replace, d):
def uri_replace(ud, uri_find, uri_replace, replacements, d):
if not ud.url or not uri_find or not uri_replace:
logger.debug(1, "uri_replace: passed an undefined value, not replacing")
logger.error("uri_replace: passed an undefined value, not replacing")
return None
uri_decoded = list(decodeurl(ud.url))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
logger.debug(2, "For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
result_decoded = ['', '', '', '', '', {}]
for i in uri_find_decoded:
loc = uri_find_decoded.index(i)
for loc, i in enumerate(uri_find_decoded):
result_decoded[loc] = uri_decoded[loc]
if isinstance(i, basestring):
if (re.match(i, uri_decoded[loc])):
if not uri_replace_decoded[loc]:
result_decoded[loc] = ""
else:
result_decoded[loc] = re.sub(i, uri_replace_decoded[loc], uri_decoded[loc])
if uri_find_decoded.index(i) == 2:
basename = None
if ud.mirrortarball:
basename = os.path.basename(ud.mirrortarball)
elif ud.localpath:
basename = os.path.basename(ud.localpath)
if basename and result_decoded[loc].endswith("/"):
result_decoded[loc] = os.path.dirname(result_decoded[loc])
if basename and not result_decoded[loc].endswith(basename):
result_decoded[loc] = os.path.join(result_decoded[loc], basename)
regexp = i
if loc == 0 and regexp and not regexp.endswith("$"):
# Leaving the type unanchored can mean "https" matching "file" can become "files"
# which is clearly undesirable.
regexp += "$"
if loc == 5:
# Handle URL parameters
if i:
# Any specified URL parameters must match
for k in uri_replace_decoded[loc]:
if uri_decoded[loc][k] != uri_replace_decoded[loc][k]:
return None
# Overwrite any specified replacement parameters
for k in uri_replace_decoded[loc]:
result_decoded[loc][k] = uri_replace_decoded[loc][k]
elif (re.match(regexp, uri_decoded[loc])):
if not uri_replace_decoded[loc]:
result_decoded[loc] = ""
else:
return ud.url
for k in replacements:
uri_replace_decoded[loc] = uri_replace_decoded[loc].replace(k, replacements[k])
#bb.note("%s %s %s" % (regexp, uri_replace_decoded[loc], uri_decoded[loc]))
result_decoded[loc] = re.sub(regexp, uri_replace_decoded[loc], uri_decoded[loc])
if loc == 2:
# Handle path manipulations
basename = None
if uri_decoded[0] != uri_replace_decoded[0] and ud.mirrortarball:
# If the source and destination url types differ, must be a mirrortarball mapping
basename = os.path.basename(ud.mirrortarball)
# Kill parameters, they make no sense for mirror tarballs
uri_decoded[5] = {}
elif ud.localpath and ud.method.supports_checksum(ud):
basename = os.path.basename(ud.localpath)
if basename and not result_decoded[loc].endswith(basename):
result_decoded[loc] = os.path.join(result_decoded[loc], basename)
else:
return None
result = encodeurl(result_decoded)
if result == ud.url:
return None
logger.debug(2, "For url %s returning %s" % (ud.url, result))
return result
@@ -229,10 +260,18 @@ def fetcher_init(d):
else:
raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy)
_checksum_cache.init_cache(d)
for m in methods:
if hasattr(m, "init"):
m.init(d)
def fetcher_parse_save(d):
_checksum_cache.save_extras(d)
def fetcher_parse_done(d):
_checksum_cache.save_merge(d)
def fetcher_compare_revisions(d):
"""
Compare the revisions in the persistant cache with current values and
@@ -259,39 +298,37 @@ def verify_checksum(u, ud, d):
"""
verify the MD5 and SHA256 checksum for downloaded src
return value:
- True: a checksum matched
- False: neither checksum matched
Raises a FetchError if one or both of the SRC_URI checksums do not match
the downloaded file, or if BB_STRICT_CHECKSUM is set and there are no
checksums specified.
if checksum is missing in recipes file, "BB_STRICT_CHECKSUM" decide the return value.
if BB_STRICT_CHECKSUM = "1" then return false as unmatched, otherwise return true as
matched
"""
if not ud.type in ["http", "https", "ftp", "ftps"]:
if not ud.method.supports_checksum(ud):
return
md5data = bb.utils.md5_file(ud.localpath)
sha256data = bb.utils.sha256_file(ud.localpath)
# If strict checking enabled and neither sum defined, raise error
strict = d.getVar("BB_STRICT_CHECKSUM", True) or None
if (strict and ud.md5_expected == None and ud.sha256_expected == None):
raise FetchError('No checksum specified for %s, please add at least one to the recipe:\n'
'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
(ud.localpath, ud.md5_name, md5data,
ud.sha256_name, sha256data), u)
if ud.method.recommends_checksum(ud):
# If strict checking enabled and neither sum defined, raise error
strict = d.getVar("BB_STRICT_CHECKSUM", True) or None
if (strict and ud.md5_expected == None and ud.sha256_expected == None):
raise FetchError('No checksum specified for %s, please add at least one to the recipe:\n'
'SRC_URI[%s] = "%s"\nSRC_URI[%s] = "%s"' %
(ud.localpath, ud.md5_name, md5data,
ud.sha256_name, sha256data), u)
# Log missing sums so user can more easily add them
if ud.md5_expected == None:
logger.warn('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.md5_name, md5data)
# Log missing sums so user can more easily add them
if ud.md5_expected == None:
logger.warn('Missing md5 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.md5_name, md5data)
if ud.sha256_expected == None:
logger.warn('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.sha256_name, sha256data)
if ud.sha256_expected == None:
logger.warn('Missing sha256 SRC_URI checksum for %s, consider adding to the recipe:\n'
'SRC_URI[%s] = "%s"',
ud.localpath, ud.sha256_name, sha256data)
md5mismatch = False
sha256mismatch = False
@@ -312,7 +349,7 @@ def verify_checksum(u, ud, d):
msg = msg + "\nFile: '%s' has %s checksum %s when %s was expected" % (ud.localpath, 'sha256', sha256data, ud.sha256_expected)
if len(msg):
raise FetchError('Checksum mismatch!%s' % msg, u)
raise ChecksumError('Checksum mismatch!%s' % msg, u)
def update_stamp(u, ud, d):
@@ -421,11 +458,10 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):
success = True
except bb.process.NotFoundError as e:
error_message = "Fetch command %s" % (e.command)
except bb.process.ExecutionError as e:
error_message = "Fetch command %s failed with exit code %s, output:\nSTDOUT: %s\nSTDERR: %s" % (e.command, e.exitcode, e.stdout, e.stderr)
except bb.process.CmdError as e:
error_message = "Fetch command %s could not be run:\n%s" % (e.command, e.msg)
except bb.process.ExecutionError as e:
error_message = "Fetch command %s failed with exit code %s, output:\n%s" % (e.command, e.exitcode, e.stderr)
if not success:
for f in cleanup:
try:
@@ -446,6 +482,101 @@ def check_network_access(d, info = "", url = None):
else:
logger.debug(1, "Fetcher accessed the network with the command %s" % info)
def build_mirroruris(origud, mirrors, ld):
uris = []
uds = []
replacements = {}
replacements["TYPE"] = origud.type
replacements["HOST"] = origud.host
replacements["PATH"] = origud.path
replacements["BASENAME"] = origud.path.split("/")[-1]
replacements["MIRRORNAME"] = origud.host.replace(':','.') + origud.path.replace('/', '.').replace('*', '.')
def adduri(uri, ud, uris, uds):
for line in mirrors:
try:
(find, replace) = line
except ValueError:
continue
newuri = uri_replace(ud, find, replace, replacements, ld)
if not newuri or newuri in uris or newuri == origud.url:
continue
try:
newud = FetchData(newuri, ld)
newud.setup_localpath(ld)
except bb.fetch2.BBFetchException as e:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
pass
continue
uris.append(newuri)
uds.append(newud)
adduri(newuri, newud, uris, uds)
adduri(None, origud, uris, uds)
return uris, uds
def try_mirror_url(newuri, origud, ud, ld, check = False):
# Return of None or a value means we're finished
# False means try another url
try:
if check:
found = ud.method.checkstatus(newuri, ud, ld)
if found:
return found
return False
os.chdir(ld.getVar("DL_DIR", True))
if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
ud.method.download(newuri, ud, ld)
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(newuri, ud, ld)
if not ud.localpath or not os.path.exists(ud.localpath):
return False
if ud.localpath == origud.localpath:
return ud.localpath
# We may be obtaining a mirror tarball which needs further processing by the real fetcher
# If that tarball is a local file:// we need to provide a symlink to it
dldir = ld.getVar("DL_DIR", True)
if origud.mirrortarball and os.path.basename(ud.localpath) == os.path.basename(origud.mirrortarball) \
and os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
open(ud.donestamp, 'w').close()
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
return None
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
os.symlink(ud.localpath, origud.localpath)
update_stamp(newuri, origud, ld)
return ud.localpath
except bb.fetch2.NetworkAccess:
raise
except bb.fetch2.BBFetchException as e:
if isinstance(e, ChecksumError):
logger.warn("Mirror checksum failure for url %s (original url: %s)\nCleaning and trying again." % (newuri, origud.url))
logger.warn(str(e))
else:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
pass
return False
def try_mirrors(d, origud, mirrors, check = False):
"""
Try to use a mirrored version of the sources.
@@ -456,62 +587,13 @@ def try_mirrors(d, origud, mirrors, check = False):
mirrors is the list of mirrors we're going to try
"""
ld = d.createCopy()
for line in mirrors:
try:
(find, replace) = line
except ValueError:
continue
newuri = uri_replace(origud, find, replace, ld)
if newuri == origud.url:
continue
try:
ud = FetchData(newuri, ld)
ud.setup_localpath(ld)
if check:
found = ud.method.checkstatus(newuri, ud, ld)
if found:
return found
continue
uris, uds = build_mirroruris(origud, mirrors, ld)
if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
ud.method.download(newuri, ud, ld)
if os.path.exists(ud.localpath):
open(ud.donestamp, 'w').close()
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(newuri, ud, ld)
if not ud.localpath or not os.path.exists(ud.localpath):
continue
if ud.localpath == origud.localpath:
return ud.localpath
# We may be obtaining a mirror tarball which needs further processing by the real fetcher
# If that tarball is a local file:// we need to provide a symlink to it
dldir = ld.getVar("DL_DIR", True)
if os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
return None
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
os.symlink(ud.localpath, origud.localpath)
return ud.localpath
except bb.fetch2.NetworkAccess:
raise
except bb.fetch2.BBFetchException as e:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
if os.path.isfile(ud.localpath):
bb.utils.remove(ud.localpath)
except UnboundLocalError:
pass
continue
for index, uri in enumerate(uris):
ret = try_mirror_url(uri, origud, uds[index], ld, check)
if ret != False:
return ret
return None
def srcrev_internal_helper(ud, d, name):
@@ -545,11 +627,85 @@ def srcrev_internal_helper(ud, d, name):
return rev
def get_checksum_file_list(d):
""" Get a list of files checksum in SRC_URI
Returns the resolved local paths of all local file entries in
SRC_URI as a space-separated string
"""
fetch = Fetch([], d, cache = False, localonly = True)
dl_dir = d.getVar('DL_DIR', True)
filelist = []
for u in fetch.urls:
ud = fetch.ud[u]
if ud and isinstance(ud.method, local.Local):
ud.setup_localpath(d)
f = ud.localpath
if f.startswith(dl_dir):
# The local fetcher's behaviour is to return a path under DL_DIR if it couldn't find the file anywhere else
if os.path.exists(f):
bb.warn("Getting checksum for %s SRC_URI entry %s: file not found except in DL_DIR" % (d.getVar('PN', True), os.path.basename(f)))
else:
bb.warn("Unable to get checksum for %s SRC_URI entry %s: file could not be found" % (d.getVar('PN', True), os.path.basename(f)))
continue
filelist.append(f)
return " ".join(filelist)
def get_file_checksums(filelist, pn):
"""Get a list of the checksums for a list of local files
Returns the checksums for a list of local files, caching the results as
it proceeds
"""
def checksum_file(f):
try:
checksum = _checksum_cache.get_checksum(f)
except OSError as e:
import traceback
bb.warn("Unable to get checksum for %s SRC_URI entry %s: %s" % (pn, os.path.basename(f), e))
return None
return checksum
checksums = []
for pth in filelist.split():
checksum = None
if '*' in pth:
# Handle globs
import glob
for f in glob.glob(pth):
checksum = checksum_file(f)
if checksum:
checksums.append((f, checksum))
elif os.path.isdir(pth):
# Handle directories
for root, dirs, files in os.walk(pth):
for name in files:
fullpth = os.path.join(root, name)
checksum = checksum_file(fullpth)
if checksum:
checksums.append((fullpth, checksum))
else:
checksum = checksum_file(pth)
if checksum:
checksums.append((pth, checksum))
checksums.sort()
return checksums
class FetchData(object):
"""
A class which represents the fetcher state for a given URI.
"""
def __init__(self, url, d):
def __init__(self, url, d, localonly = False):
# localpath is the location of a downloaded result. If not set, the file is local.
self.donestamp = None
self.localfile = ""
@@ -574,10 +730,14 @@ class FetchData(object):
self.sha256_name = "sha256sum"
if self.md5_name in self.parm:
self.md5_expected = self.parm[self.md5_name]
elif self.type not in ["http", "https", "ftp", "ftps"]:
self.md5_expected = None
else:
self.md5_expected = d.getVarFlag("SRC_URI", self.md5_name)
if self.sha256_name in self.parm:
self.sha256_expected = self.parm[self.sha256_name]
elif self.type not in ["http", "https", "ftp", "ftps"]:
self.sha256_expected = None
else:
self.sha256_expected = d.getVarFlag("SRC_URI", self.sha256_name)
@@ -592,6 +752,13 @@ class FetchData(object):
if not self.method:
raise NoMethodError(url)
if localonly and not isinstance(self.method, local.Local):
raise NonLocalMethod()
if self.parm.get("proto", None) and "protocol" not in self.parm:
logger.warn('Consider updating %s recipe to use "protocol" not "proto" in SRC_URI.', d.getVar('PN', True))
self.parm["protocol"] = self.parm.get("proto", None)
if hasattr(self.method, "urldata_init"):
self.method.urldata_init(self, d)
@@ -656,6 +823,26 @@ class FetchMethod(object):
"""
return os.path.join(data.getVar("DL_DIR", d, True), urldata.localfile)
def supports_checksum(self, urldata):
"""
Is localpath something that can be represented by a checksum?
"""
# We cannot compute checksums for directories
if os.path.isdir(urldata.localpath) == True:
return False
if urldata.localpath.find("*") != -1:
return False
return True
def recommends_checksum(self, urldata):
"""
Is the backend on where checksumming is recommended (should warnings
by displayed if there is no checksum)?
"""
return False
def _strip_leading_slashes(self, relpath):
"""
Remove leading slash as os.path.join can't cope
@@ -706,7 +893,7 @@ class FetchMethod(object):
dots = file.split(".")
if dots[-1] in ['gz', 'bz2', 'Z']:
efile = os.path.join(data.getVar('WORKDIR', True),os.path.basename('.'.join(dots[0:-1])))
efile = os.path.join(rootdir, os.path.basename('.'.join(dots[0:-1])))
else:
efile = file
cmd = None
@@ -782,7 +969,9 @@ class FetchMethod(object):
bb.utils.mkdirhier(newdir)
os.chdir(newdir)
cmd = "PATH=\"%s\" %s" % (data.getVar('PATH', True), cmd)
path = data.getVar('PATH', True)
if path:
cmd = "PATH=\"%s\" %s" % (path, cmd)
bb.note("Unpacking %s to %s/" % (file, os.getcwd()))
ret = subprocess.call(cmd, preexec_fn=subprocess_setup, shell=True)
@@ -893,7 +1082,10 @@ class FetchMethod(object):
return "%s-%s" % (key, d.getVar("PN", True) or "")
class Fetch(object):
def __init__(self, urls, d, cache = True):
def __init__(self, urls, d, cache = True, localonly = False):
if localonly and cache:
raise Exception("bb.fetch2.Fetch.__init__: cannot set cache and localonly at same time")
if len(urls) == 0:
urls = d.getVar("SRC_URI", True).split()
self.urls = urls
@@ -901,14 +1093,19 @@ class Fetch(object):
self.ud = {}
fn = d.getVar('FILE', True)
if cache and fn in urldata_cache:
if cache and fn and fn in urldata_cache:
self.ud = urldata_cache[fn]
for url in urls:
if url not in self.ud:
self.ud[url] = FetchData(url, d)
try:
self.ud[url] = FetchData(url, d, localonly)
except NonLocalMethod:
if localonly:
self.ud[url] = None
pass
if cache:
if fn and cache:
urldata_cache[fn] = self.ud
def localpath(self, url):
@@ -962,6 +1159,8 @@ class Fetch(object):
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
os.chdir(self.d.getVar("DL_DIR", True))
firsterr = None
if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)):
try:
@@ -978,12 +1177,14 @@ class Fetch(object):
raise
except BBFetchException as e:
logger.warn('Failed to fetch URL %s' % u)
logger.debug(1, str(e))
if isinstance(e, ChecksumError):
logger.warn("Checksum error encountered with download (will attempt other sources): %s" % str(e))
else:
logger.warn('Failed to fetch URL %s, attempting MIRRORS if available' % u)
logger.debug(1, str(e))
firsterr = e
# Remove any incomplete fetch
if os.path.isfile(ud.localpath):
bb.utils.remove(ud.localpath)
m.clean(ud, self.d)
logger.debug(1, "Trying MIRRORS")
mirrors = mirror_from_string(self.d.getVar('MIRRORS', True))
localpath = try_mirrors (self.d, ud, mirrors)
@@ -1021,7 +1222,7 @@ class Fetch(object):
except:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS', True))
ret = try_mirrors (self.d, ud, mirrors, True)
ret = try_mirrors(self.d, ud, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u, u)

View File

@@ -60,7 +60,7 @@ class Bzr(FetchMethod):
basecmd = data.expand('${FETCHCMD_bzr}', d)
proto = ud.parm.get('proto', 'http')
proto = ud.parm.get('protocol', 'http')
bzrroot = ud.host + ud.path

View File

@@ -111,15 +111,9 @@ class Cvs(FetchMethod):
if ud.tag:
options.append("-r %s" % ud.tag)
localdata = data.createCopy(d)
data.setVar('OVERRIDES', "cvs:%s" % data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
data.setVar('CVSROOT', cvsroot, localdata)
data.setVar('CVSCOOPTS', " ".join(options), localdata)
data.setVar('CVSMODULE', ud.module, localdata)
cvscmd = data.getVar('FETCHCOMMAND', localdata, True)
cvsupdatecmd = data.getVar('UPDATECOMMAND', localdata, True)
cvsbasecmd = d.getVar("FETCHCMD_cvs", True)
cvscmd = cvsbasecmd + "'-d" + cvsroot + "' co " + " ".join(options) + " " + ud.module
cvsupdatecmd = cvsbasecmd + "'-d" + cvsroot + "' update -d -P " + " ".join(options)
if cvs_rsh:
cvscmd = "CVS_RSH=\"%s\" %s" % (cvs_rsh, cvscmd)

View File

@@ -82,6 +82,9 @@ class Git(FetchMethod):
"""
return ud.type in ['git']
def supports_checksum(self, urldata):
return False
def urldata_init(self, ud, d):
"""
init git specific variable within url data
@@ -123,10 +126,11 @@ class Git(FetchMethod):
for name in ud.names:
# Ensure anything that doesn't look like a sha256 checksum/revision is translated into one
if not ud.revisions[name] or len(ud.revisions[name]) != 40 or (False in [c in "abcdef0123456789" for c in ud.revisions[name]]):
ud.branches[name] = ud.revisions[name]
if ud.revisions[name]:
ud.branches[name] = ud.revisions[name]
ud.revisions[name] = self.latest_revision(ud.url, ud, d, name)
gitsrcname = '%s%s' % (ud.host.replace(':','.'), ud.path.replace('/', '.'))
gitsrcname = '%s%s' % (ud.host.replace(':','.'), ud.path.replace('/', '.').replace('*', '.'))
# for rebaseable git repo, it is necessary to keep mirror tar ball
# per revision, so that even the revision disappears from the
# upstream repo in the future, the mirror will remain intact and still
@@ -135,8 +139,9 @@ class Git(FetchMethod):
for name in ud.names:
gitsrcname = gitsrcname + '_' + ud.revisions[name]
ud.mirrortarball = 'git2_%s.tar.gz' % (gitsrcname)
ud.fullmirror = os.path.join(data.getVar("DL_DIR", d, True), ud.mirrortarball)
ud.clonedir = os.path.join(data.expand('${GITDIR}', d), gitsrcname)
ud.fullmirror = os.path.join(d.getVar("DL_DIR", True), ud.mirrortarball)
gitdir = d.getVar("GITDIR", True) or (d.getVar("DL_DIR", True) + "/git2/")
ud.clonedir = os.path.join(gitdir, gitsrcname)
ud.localfile = ud.clonedir
@@ -183,8 +188,12 @@ class Git(FetchMethod):
# If the repo still doesn't exist, fallback to cloning it
if not os.path.exists(ud.clonedir):
# We do this since git will use a "-l" option automatically for local urls where possible
if repourl.startswith("file://"):
repourl = repourl[7:]
clone_cmd = "%s clone --bare --mirror %s %s" % (ud.basecmd, repourl, ud.clonedir)
bb.fetch2.check_network_access(d, clone_cmd)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, clone_cmd)
runfetchcmd(clone_cmd, d)
os.chdir(ud.clonedir)
@@ -195,14 +204,14 @@ class Git(FetchMethod):
needupdate = True
if needupdate:
try:
runfetchcmd("%s remote prune origin" % ud.basecmd, d)
runfetchcmd("%s remote rm origin" % ud.basecmd, d)
except bb.fetch2.FetchError:
logger.debug(1, "No Origin")
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d)
fetch_cmd = "%s fetch -f --prune %s refs/*:refs/*" % (ud.basecmd, repourl)
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
runfetchcmd(fetch_cmd, d)
runfetchcmd("%s prune-packed" % ud.basecmd, d)
runfetchcmd("%s pack-redundant --all | xargs -r rm" % ud.basecmd, d)
@@ -281,7 +290,8 @@ class Git(FetchMethod):
basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
cmd = "%s ls-remote %s://%s%s%s %s" % \
(basecmd, ud.proto, username, ud.host, ud.path, ud.branches[name])
bb.fetch2.check_network_access(d, cmd)
if ud.proto.lower() != 'file':
bb.fetch2.check_network_access(d, cmd)
output = runfetchcmd(cmd, d, True)
if not output:
raise bb.fetch2.FetchError("The command %s gave empty output unexpectedly" % cmd, url)

View File

@@ -82,7 +82,7 @@ class Hg(FetchMethod):
basecmd = data.expand('${FETCHCMD_hg}', d)
proto = ud.parm.get('proto', 'http')
proto = ud.parm.get('protocol', 'http')
host = ud.host
if proto == "file":

View File

@@ -26,6 +26,7 @@ BitBake build tools.
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import urllib
import bb
import bb.utils
from bb import data
@@ -40,7 +41,7 @@ class Local(FetchMethod):
def urldata_init(self, ud, d):
# We don't set localfile as for this fetcher the file is already local!
ud.basename = os.path.basename(ud.url.split("://")[1].split(";")[0])
ud.basename = os.path.basename(urllib.unquote(ud.url.split("://")[1].split(";")[0]))
return
def localpath(self, url, urldata, d):
@@ -49,6 +50,7 @@ class Local(FetchMethod):
"""
path = url.split("://")[1]
path = path.split(";")[0]
path = urllib.unquote(path)
newpath = path
if path[0] != "/":
filespath = data.getVar('FILESPATH', d, True)

View File

@@ -57,7 +57,7 @@ class Osc(FetchMethod):
basecmd = data.expand('${FETCHCMD_osc}', d)
proto = ud.parm.get('proto', 'ocs')
proto = ud.parm.get('protocol', 'ocs')
options = []

View File

@@ -27,6 +27,7 @@ BitBake build tools.
from future_builtins import zip
import os
import subprocess
import logging
import bb
from bb import data
@@ -90,8 +91,8 @@ class Perforce(FetchMethod):
p4cmd = data.getVar('FETCHCOMMAND_p4', d, True)
logger.debug(1, "Running %s%s changes -m 1 %s", p4cmd, p4opt, depot)
p4file = os.popen("%s%s changes -m 1 %s" % (p4cmd, p4opt, depot))
cset = p4file.readline().strip()
p4file, errors = bb.process.run("%s%s changes -m 1 %s" % (p4cmd, p4opt, depot))
cset = p4file.strip()
logger.debug(1, "READ %s", cset)
if not cset:
return -1
@@ -154,8 +155,8 @@ class Perforce(FetchMethod):
logger.debug(2, "Fetch: creating temporary directory")
bb.utils.mkdirhier(data.expand('${WORKDIR}', localdata))
data.setVar('TMPBASE', data.expand('${WORKDIR}/oep4.XXXXXX', localdata), localdata)
tmppipe = os.popen(data.getVar('MKTEMPDIRCMD', localdata, True) or "false")
tmpfile = tmppipe.readline().strip()
tmpfile, errors = bb.process.run(data.getVar('MKTEMPDIRCMD', localdata, True) or "false")
tmpfile = tmpfile.strip()
if not tmpfile:
raise FetchError("Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.", loc)
@@ -168,7 +169,8 @@ class Perforce(FetchMethod):
os.chdir(tmpfile)
logger.info("Fetch " + loc)
logger.info("%s%s files %s", p4cmd, p4opt, depot)
p4file = os.popen("%s%s files %s" % (p4cmd, p4opt, depot))
p4file, errors = bb.process.run("%s%s files %s" % (p4cmd, p4opt, depot))
p4file = p4file.strip()
if not p4file:
raise FetchError("Fetch: unable to get the P4 files from %s" % depot, loc)
@@ -184,7 +186,7 @@ class Perforce(FetchMethod):
dest = list[0][len(path)+1:]
where = dest.find("#")
os.system("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module, dest[:where], list[0]))
subprocess.call("%s%s print -o %s/%s %s" % (p4cmd, p4opt, module, dest[:where], list[0]), shell=True)
count = count + 1
if count == 0:

View File

@@ -69,6 +69,9 @@ class SSH(FetchMethod):
def supports(self, url, urldata, d):
return __pattern__.match(url) != None
def supports_checksum(self, urldata):
return False
def localpath(self, url, urldata, d):
m = __pattern__.match(urldata.url)
path = m.group('path')

View File

@@ -77,8 +77,8 @@ class Svk(FetchMethod):
logger.debug(2, "Fetch: creating temporary directory")
bb.utils.mkdirhier(data.expand('${WORKDIR}', localdata))
data.setVar('TMPBASE', data.expand('${WORKDIR}/oesvk.XXXXXX', localdata), localdata)
tmppipe = os.popen(data.getVar('MKTEMPDIRCMD', localdata, True) or "false")
tmpfile = tmppipe.readline().strip()
tmpfile, errors = bb.process.run(data.getVar('MKTEMPDIRCMD', localdata, True) or "false")
tmpfile = tmpfile.strip()
if not tmpfile:
logger.error()
raise FetchError("Fetch: unable to create temporary directory.. make sure 'mktemp' is in the PATH.", loc)

View File

@@ -49,6 +49,8 @@ class Svn(FetchMethod):
if not "module" in ud.parm:
raise MissingParameterError('module', ud.url)
ud.basecmd = d.getVar('FETCHCMD_svn', True)
ud.module = ud.parm["module"]
# Create paths to svn checkouts
@@ -69,8 +71,6 @@ class Svn(FetchMethod):
command is "fetch", "update", "info"
"""
basecmd = data.expand('${FETCHCMD_svn}', d)
proto = ud.parm.get('proto', 'svn')
svn_rsh = None
@@ -88,7 +88,7 @@ class Svn(FetchMethod):
options.append("--password %s" % ud.pswd)
if command == "info":
svncmd = "%s info %s %s://%s/%s/" % (basecmd, " ".join(options), proto, svnroot, ud.module)
svncmd = "%s info %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
else:
suffix = ""
if ud.revision:
@@ -96,9 +96,9 @@ class Svn(FetchMethod):
suffix = "@%s" % (ud.revision)
if command == "fetch":
svncmd = "%s co %s %s://%s/%s%s %s" % (basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
elif command == "update":
svncmd = "%s update %s" % (basecmd, " ".join(options))
svncmd = "%s update %s" % (ud.basecmd, " ".join(options))
else:
raise FetchError("Invalid svn command %s" % command, ud.url)
@@ -117,6 +117,11 @@ class Svn(FetchMethod):
logger.info("Update " + loc)
# update sources there
os.chdir(ud.moddir)
# We need to attempt to run svn upgrade first in case its an older working format
try:
runfetchcmd(ud.basecmd + " upgrade", d)
except FetchError:
pass
logger.debug(1, "Running %s", svnupdatecmd)
bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)
runfetchcmd(svnupdatecmd, d)

View File

@@ -45,6 +45,9 @@ class Wget(FetchMethod):
"""
return ud.type in ['http', 'https', 'ftp']
def recommends_checksum(self, urldata):
return True
def urldata_init(self, ud, d):
ud.basename = os.path.basename(ud.path)
@@ -53,39 +56,34 @@ class Wget(FetchMethod):
def download(self, uri, ud, d, checkonly = False):
"""Fetch urls"""
def fetch_uri(uri, ud, d):
if checkonly:
fetchcmd = data.getVar("CHECKCOMMAND", d, True)
elif os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again..
fetchcmd = data.getVar("RESUMECOMMAND", d, True)
else:
fetchcmd = data.getVar("FETCHCOMMAND", d, True)
basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
uri = uri.split(";")[0]
uri_decoded = list(decodeurl(uri))
uri_type = uri_decoded[0]
uri_host = uri_decoded[1]
if checkonly:
fetchcmd = d.getVar("CHECKCOMMAND_wget", True) or d.expand(basecmd + " -c -P ${DL_DIR} '${URI}'")
elif os.path.exists(ud.localpath):
# file exists, but we didnt complete it.. trying again..
fetchcmd = d.getVar("RESUMECOMMAND_wget", True) or d.expand(basecmd + " --spider -P ${DL_DIR} '${URI}'")
else:
fetchcmd = d.getVar("FETCHCOMMAND_wget", True) or d.expand(basecmd + " -P ${DL_DIR} '${URI}'")
fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0])
fetchcmd = fetchcmd.replace("${FILE}", ud.basename)
if not checkonly:
logger.info("fetch " + uri)
logger.debug(2, "executing " + fetchcmd)
bb.fetch2.check_network_access(d, fetchcmd)
runfetchcmd(fetchcmd, d, quiet=checkonly)
uri = uri.split(";")[0]
uri_decoded = list(decodeurl(uri))
uri_type = uri_decoded[0]
uri_host = uri_decoded[1]
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
if not os.path.exists(ud.localpath) and not checkonly:
raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (uri, ud.localpath), uri)
fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0])
fetchcmd = fetchcmd.replace("${FILE}", ud.basename)
if not checkonly:
logger.info("fetch " + uri)
logger.debug(2, "executing " + fetchcmd)
bb.fetch2.check_network_access(d, fetchcmd)
runfetchcmd(fetchcmd, d, quiet=checkonly)
localdata = data.createCopy(d)
data.setVar('OVERRIDES', "wget:" + data.getVar('OVERRIDES', localdata), localdata)
data.update_data(localdata)
# Sanity check since wget can pretend it succeed when it didn't
# Also, this used to happen if sourceforge sent us to the mirror page
if not os.path.exists(ud.localpath) and not checkonly:
raise FetchError("The fetch command returned success for url %s but %s doesn't exist?!" % (uri, ud.localpath), uri)
fetch_uri(uri, ud, localdata)
return True
def checkstatus(self, uri, ud, d):

View File

@@ -52,7 +52,7 @@ def insert_method(modulename, code, fn):
if name in ['None', 'False']:
continue
elif name in _parsed_fns and not _parsed_fns[name] == modulename:
error( "Error Method already seen: %s in' %s' now in '%s'" % (name, _parsed_fns[name], modulename))
error("The function %s defined in %s was already declared in %s. BitBake has a global python function namespace so shared functions should be declared in a common include file rather than being duplicated, or if the functions are different, please use different function names." % (name, modulename, _parsed_fns[name]))
else:
_parsed_fns[name] = modulename

View File

@@ -69,7 +69,7 @@ def supports(fn, d):
return os.path.splitext(fn)[-1] in [".bb", ".bbclass", ".inc"]
def inherit(files, fn, lineno, d):
__inherit_cache = data.getVar('__inherit_cache', d) or []
__inherit_cache = d.getVar('__inherit_cache') or []
files = d.expand(files).split()
for file in files:
if not os.path.isabs(file) and not file.endswith(".bbclass"):
@@ -80,7 +80,7 @@ def inherit(files, fn, lineno, d):
__inherit_cache.append( file )
data.setVar('__inherit_cache', __inherit_cache, d)
include(fn, file, lineno, d, "inherit")
__inherit_cache = data.getVar('__inherit_cache', d) or []
__inherit_cache = d.getVar('__inherit_cache') or []
def get_statements(filename, absolute_filename, base_name):
global cached_statements
@@ -126,13 +126,13 @@ def handle(fn, d, include):
if ext == ".bbclass":
__classname__ = root
classes.append(__classname__)
__inherit_cache = data.getVar('__inherit_cache', d) or []
__inherit_cache = d.getVar('__inherit_cache') or []
if not fn in __inherit_cache:
__inherit_cache.append(fn)
data.setVar('__inherit_cache', __inherit_cache, d)
if include != 0:
oldfile = data.getVar('FILE', d)
oldfile = d.getVar('FILE')
else:
oldfile = None

View File

@@ -71,6 +71,14 @@ def include(oldfn, fn, lineno, data, error_out):
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
logger.debug(2, "CONF file '%s' not found", fn)
# We have an issue where a UI might want to enforce particular settings such as
# an empty DISTRO variable. If configuration files do something like assigning
# a weak default, it turns out to be very difficult to filter out these changes,
# particularly when the weak default might appear half way though parsing a chain
# of configuration files. We therefore let the UIs hook into configuration file
# parsing. This turns out to be a hard problem to solve any other way.
confFilters = []
def handle(fn, data, include):
init(data)
@@ -107,6 +115,9 @@ def handle(fn, data, include):
if oldfile:
data.setVar('FILE', oldfile)
for f in confFilters:
f(fn, data)
return data
def feeder(lineno, s, fn, statements):

View File

@@ -1,6 +1,8 @@
import logging
import signal
import subprocess
import errno
import select
logger = logging.getLogger('BitBake.Process')
@@ -68,20 +70,38 @@ def _logged_communicate(pipe, log, input):
pipe.stdin.write(input)
pipe.stdin.close()
bufsize = 512
outdata, errdata = [], []
while pipe.poll() is None:
if pipe.stdout is not None:
data = pipe.stdout.read(bufsize)
if data is not None:
outdata.append(data)
log.write(data)
rin = []
if pipe.stderr is not None:
data = pipe.stderr.read(bufsize)
if data is not None:
errdata.append(data)
log.write(data)
if pipe.stdout is not None:
bb.utils.nonblockingfd(pipe.stdout.fileno())
rin.append(pipe.stdout)
if pipe.stderr is not None:
bb.utils.nonblockingfd(pipe.stderr.fileno())
rin.append(pipe.stderr)
try:
while pipe.poll() is None:
rlist = rin
try:
r,w,e = select.select (rlist, [], [])
except OSError, e:
if e.errno != errno.EINTR:
raise
if pipe.stdout in r:
data = pipe.stdout.read()
if data is not None:
outdata.append(data)
log.write(data)
if pipe.stderr in r:
data = pipe.stderr.read()
if data is not None:
errdata.append(data)
log.write(data)
finally:
log.flush()
return ''.join(outdata), ''.join(errdata)
def run(cmd, input=None, log=None, **options):

View File

@@ -35,6 +35,8 @@ class NoProvider(bb.BBHandledException):
class NoRProvider(bb.BBHandledException):
"""Exception raised when no provider of a runtime dependency can be found"""
class MultipleRProvider(bb.BBHandledException):
"""Exception raised when multiple providers of a runtime dependency can be found"""
def findProviders(cfgData, dataCache, pkg_pn = None):
"""

View File

@@ -375,9 +375,8 @@ class RunQueueData:
"""
runq_build = []
recursive_tdepends = {}
runq_recrdepends = []
tdepends_fnid = {}
recursivetasks = {}
recursivetasksselfref = set()
taskData = self.taskData
@@ -406,11 +405,10 @@ class RunQueueData:
depdata = taskData.build_targets[depid][0]
if depdata is None:
continue
dep = taskData.fn_index[depdata]
for taskname in tasknames:
taskid = taskData.gettask_id(dep, taskname, False)
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
if taskid is not None:
depends.append(taskid)
depends.add(taskid)
def add_runtime_dependencies(depids, tasknames, depends):
for depid in depids:
@@ -419,15 +417,20 @@ class RunQueueData:
depdata = taskData.run_targets[depid][0]
if depdata is None:
continue
dep = taskData.fn_index[depdata]
for taskname in tasknames:
taskid = taskData.gettask_id(dep, taskname, False)
taskid = taskData.gettask_id_fromfnid(depdata, taskname)
if taskid is not None:
depends.append(taskid)
depends.add(taskid)
def add_resolved_dependencies(depids, tasknames, depends):
for depid in depids:
for taskname in tasknames:
taskid = taskData.gettask_id_fromfnid(depid, taskname)
if taskid is not None:
depends.add(taskid)
for task in xrange(len(taskData.tasks_name)):
depends = []
recrdepends = []
depends = set()
fnid = taskData.tasks_fnid[task]
fn = taskData.fn_index[fnid]
task_deps = self.dataCache.task_deps[fn]
@@ -439,7 +442,7 @@ class RunQueueData:
# Resolve task internal dependencies
#
# e.g. addtask before X after Y
depends = taskData.tasks_tdepends[task]
depends = set(taskData.tasks_tdepends[task])
# Resolve 'deptask' dependencies
#
@@ -454,99 +457,91 @@ class RunQueueData:
# e.g. do_sometask[rdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all RDEPENDS)
if 'rdeptask' in task_deps and taskData.tasks_name[task] in task_deps['rdeptask']:
taskname = task_deps['rdeptask'][taskData.tasks_name[task]]
add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
tasknames = task_deps['rdeptask'][taskData.tasks_name[task]].split()
add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
# Resolve inter-task dependencies
#
# e.g. do_sometask[depends] = "targetname:do_someothertask"
# (makes sure sometask runs after targetname's someothertask)
if fnid not in tdepends_fnid:
tdepends_fnid[fnid] = set()
idepends = taskData.tasks_idepends[task]
for (depid, idependtask) in idepends:
if depid in taskData.build_targets:
# Won't be in build_targets if ASSUME_PROVIDED
depdata = taskData.build_targets[depid][0]
if depdata is not None:
dep = taskData.fn_index[depdata]
taskid = taskData.gettask_id(dep, idependtask, False)
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
if taskid is None:
bb.msg.fatal("RunQueue", "Task %s in %s depends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
depends.append(taskid)
if depdata != fnid:
tdepends_fnid[fnid].add(taskid)
depends.add(taskid)
irdepends = taskData.tasks_irdepends[task]
for (depid, idependtask) in irdepends:
if depid in taskData.run_targets:
# Won't be in run_targets if ASSUME_PROVIDED
depdata = taskData.run_targets[depid][0]
if depdata is not None:
taskid = taskData.gettask_id_fromfnid(depdata, idependtask)
if taskid is None:
bb.msg.fatal("RunQueue", "Task %s in %s rdepends upon non-existent task %s in %s" % (taskData.tasks_name[task], fn, idependtask, dep))
depends.add(taskid)
# Resolve recursive 'recrdeptask' dependencies (A)
# Resolve recursive 'recrdeptask' dependencies (Part A)
#
# e.g. do_sometask[recrdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively)
# We cover the recursive part of the dependencies below
if 'recrdeptask' in task_deps and taskData.tasks_name[task] in task_deps['recrdeptask']:
for taskname in task_deps['recrdeptask'][taskData.tasks_name[task]].split():
recrdepends.append(taskname)
add_build_dependencies(taskData.depids[fnid], [taskname], depends)
add_runtime_dependencies(taskData.rdepids[fnid], [taskname], depends)
# Rmove all self references
if task in depends:
newdep = []
logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], depends)
for dep in depends:
if task != dep:
newdep.append(dep)
depends = newdep
tasknames = task_deps['recrdeptask'][taskData.tasks_name[task]].split()
recursivetasks[task] = tasknames
add_build_dependencies(taskData.depids[fnid], tasknames, depends)
add_runtime_dependencies(taskData.rdepids[fnid], tasknames, depends)
if taskData.tasks_name[task] in tasknames:
recursivetasksselfref.add(task)
self.runq_fnid.append(taskData.tasks_fnid[task])
self.runq_task.append(taskData.tasks_name[task])
self.runq_depends.append(set(depends))
self.runq_depends.append(depends)
self.runq_revdeps.append(set())
self.runq_hash.append("")
runq_build.append(0)
runq_recrdepends.append(recrdepends)
#
# Build a list of recursive cumulative dependencies for each fnid
# We do this by fnid, since if A depends on some task in B
# we're interested in later tasks B's fnid might have but B itself
# doesn't depend on
#
# Algorithm is O(tasks) + O(tasks)*O(fnids)
#
reccumdepends = {}
for task in xrange(len(self.runq_fnid)):
fnid = self.runq_fnid[task]
if fnid not in reccumdepends:
if fnid in tdepends_fnid:
reccumdepends[fnid] = tdepends_fnid[fnid]
else:
reccumdepends[fnid] = set()
reccumdepends[fnid].update(self.runq_depends[task])
for task in xrange(len(self.runq_fnid)):
taskfnid = self.runq_fnid[task]
for fnid in reccumdepends:
if task in reccumdepends[fnid]:
reccumdepends[fnid].add(task)
if taskfnid in reccumdepends:
reccumdepends[fnid].update(reccumdepends[taskfnid])
# Resolve recursive 'recrdeptask' dependencies (B)
# Resolve recursive 'recrdeptask' dependencies (Part B)
#
# e.g. do_sometask[recrdeptask] = "do_someothertask"
# (makes sure sometask runs after someothertask of all DEPENDS, RDEPENDS and intertask dependencies, recursively)
for task in xrange(len(self.runq_fnid)):
if len(runq_recrdepends[task]) > 0:
taskfnid = self.runq_fnid[task]
for dep in reccumdepends[taskfnid]:
# Ignore self references
if dep == task:
continue
for taskname in runq_recrdepends[task]:
if taskData.tasks_name[dep] == taskname:
self.runq_depends[task].add(dep)
# We need to do this separately since we need all of self.runq_depends to be complete before this is processed
extradeps = {}
for task in recursivetasks:
extradeps[task] = set(self.runq_depends[task])
tasknames = recursivetasks[task]
seendeps = set()
seenfnid = []
def generate_recdeps(t):
newdeps = set()
add_resolved_dependencies([taskData.tasks_fnid[t]], tasknames, newdeps)
extradeps[task].update(newdeps)
seendeps.add(t)
newdeps.add(t)
for i in newdeps:
for n in self.runq_depends[i]:
if n not in seendeps:
generate_recdeps(n)
generate_recdeps(task)
# Remove circular references so that do_a[recrdeptask] = "do_a do_b" can work
for task in recursivetasks:
extradeps[task].difference_update(recursivetasksselfref)
for task in xrange(len(taskData.tasks_name)):
# Add in extra dependencies
if task in extradeps:
self.runq_depends[task] = extradeps[task]
# Remove all self references
if task in self.runq_depends[task]:
logger.debug(2, "Task %s (%s %s) contains self reference! %s", task, taskData.fn_index[taskData.tasks_fnid[task]], taskData.tasks_name[task], self.runq_depends[task])
self.runq_depends[task].remove(task)
# Step B - Mark all active tasks
#
@@ -705,6 +700,28 @@ class RunQueueData:
continue
self.runq_setscene.append(task)
def invalidate_task(fn, taskname, error_nostamp):
taskdep = self.dataCache.task_deps[fn]
if 'nostamp' in taskdep and taskname in taskdep['nostamp']:
if error_nostamp:
bb.fatal("Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
bb.debug(1, "Task %s is marked nostamp, cannot invalidate this task" % taskname)
else:
logger.verbose("Invalidate task %s, %s", taskname, fn)
bb.parse.siggen.invalidate_task(taskname, self.dataCache, fn)
# Invalidate task if force mode active
if self.cooker.configuration.force:
for (fn, target) in self.target_pairs:
invalidate_task(fn, target, False)
# Invalidate task if invalidate mode active
if self.cooker.configuration.invalidate_stamp:
for (fn, target) in self.target_pairs:
for st in self.cooker.configuration.invalidate_stamp.split(','):
invalidate_task(fn, "do_%s" % st, True)
# Interate over the task list and call into the siggen code
dealtwith = set()
todeal = set(range(len(self.runq_fnid)))
@@ -731,12 +748,6 @@ class RunQueueData:
deps.append(depidentifier)
self.hash_deps[identifier] = deps
# Remove stamps for targets if force mode active
if self.cooker.configuration.force:
for (fn, target) in self.target_pairs:
logger.verbose("Remove stamp %s, %s", target, fn)
bb.build.del_stamp(target, self.dataCache, fn)
return len(self.runq_fnid)
def dump_data(self, taskQueue):
@@ -781,101 +792,7 @@ class RunQueue:
self.rqexe = None
def check_stamps(self):
unchecked = {}
current = []
notcurrent = []
buildable = []
if self.stamppolicy == "perfile":
fulldeptree = False
else:
fulldeptree = True
stampwhitelist = []
if self.stamppolicy == "whitelist":
stampwhitelist = self.rqdata.stampfnwhitelist
for task in xrange(len(self.rqdata.runq_fnid)):
unchecked[task] = ""
if len(self.rqdata.runq_depends[task]) == 0:
buildable.append(task)
def check_buildable(self, task, buildable):
for revdep in self.rqdata.runq_revdeps[task]:
alldeps = 1
for dep in self.rqdata.runq_depends[revdep]:
if dep in unchecked:
alldeps = 0
if alldeps == 1:
if revdep in unchecked:
buildable.append(revdep)
for task in xrange(len(self.rqdata.runq_fnid)):
if task not in unchecked:
continue
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
taskname = self.rqdata.runq_task[task]
stampfile = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
# If the stamp is missing its not current
if not os.access(stampfile, os.F_OK):
del unchecked[task]
notcurrent.append(task)
check_buildable(self, task, buildable)
continue
# If its a 'nostamp' task, it's not current
taskdep = self.rqdata.dataCache.task_deps[fn]
if 'nostamp' in taskdep and task in taskdep['nostamp']:
del unchecked[task]
notcurrent.append(task)
check_buildable(self, task, buildable)
continue
while (len(buildable) > 0):
nextbuildable = []
for task in buildable:
if task in unchecked:
fn = self.taskData.fn_index[self.rqdata.runq_fnid[task]]
taskname = self.rqdata.runq_task[task]
stampfile = bb.build.stampfile(taskname, self.rqdata.dataCache, fn)
iscurrent = True
t1 = os.stat(stampfile)[stat.ST_MTIME]
for dep in self.rqdata.runq_depends[task]:
if iscurrent:
fn2 = self.taskData.fn_index[self.rqdata.runq_fnid[dep]]
taskname2 = self.rqdata.runq_task[dep]
stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCache, fn2)
if fn == fn2 or (fulldeptree and fn2 not in stampwhitelist):
if dep in notcurrent:
iscurrent = False
else:
t2 = os.stat(stampfile2)[stat.ST_MTIME]
if t1 < t2:
iscurrent = False
del unchecked[task]
if iscurrent:
current.append(task)
else:
notcurrent.append(task)
check_buildable(self, task, nextbuildable)
buildable = nextbuildable
#for task in range(len(self.runq_fnid)):
# fn = self.taskData.fn_index[self.runq_fnid[task]]
# taskname = self.runq_task[task]
# print "%s %s.%s" % (task, taskname, fn)
#print "Unchecked: %s" % unchecked
#print "Current: %s" % current
#print "Not current: %s" % notcurrent
if len(unchecked) > 0:
bb.msg.fatal("RunQueue", "check_stamps fatal internal error")
return current
def check_stamp_task(self, task, taskname = None, recurse = False):
def check_stamp_task(self, task, taskname = None, recurse = False, cache = None):
def get_timestamp(f):
try:
if not os.access(f, os.F_OK):
@@ -911,10 +828,16 @@ class RunQueue:
if taskname != "do_setscene" and taskname.endswith("_setscene"):
return True
if cache is None:
cache = {}
iscurrent = True
t1 = get_timestamp(stampfile)
for dep in self.rqdata.runq_depends[task]:
if iscurrent:
if dep in cache:
iscurrent = cache[dep]
continue
fn2 = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[dep]]
taskname2 = self.rqdata.runq_task[dep]
stampfile2 = bb.build.stampfile(taskname2, self.rqdata.dataCache, fn2)
@@ -931,7 +854,9 @@ class RunQueue:
logger.debug(2, 'Stampfile %s < %s', stampfile, stampfile2)
iscurrent = False
if recurse and iscurrent:
iscurrent = self.check_stamp_task(dep, recurse=True)
iscurrent = self.check_stamp_task(dep, recurse=True, cache=cache)
cache[dep] = iscurrent
cache[task] = iscurrent
return iscurrent
def execute_runqueue(self):
@@ -1041,23 +966,36 @@ class RunQueueExecute:
self.build_stamps = {}
self.failed_fnids = []
self.stampcache = {}
def runqueue_process_waitpid(self):
"""
Return none is there are no processes awaiting result collection, otherwise
collect the process exit codes and close the information pipe.
"""
result = os.waitpid(-1, os.WNOHANG)
if result[0] == 0 and result[1] == 0:
pid, status = os.waitpid(-1, os.WNOHANG)
if pid == 0 or os.WIFSTOPPED(status):
return None
task = self.build_pids[result[0]]
del self.build_pids[result[0]]
self.build_pipes[result[0]].close()
del self.build_pipes[result[0]]
# self.build_stamps[result[0]] may not exist when use shared work directory.
if result[0] in self.build_stamps.keys():
del self.build_stamps[result[0]]
if result[1] != 0:
self.task_fail(task, result[1]>>8)
if os.WIFEXITED(status):
status = os.WEXITSTATUS(status)
elif os.WIFSIGNALED(status):
# Per shell conventions for $?, when a process exits due to
# a signal, we return an exit code of 128 + SIGNUM
status = 128 + os.WTERMSIG(status)
task = self.build_pids[pid]
del self.build_pids[pid]
self.build_pipes[pid].close()
del self.build_pipes[pid]
# self.build_stamps[pid] may not exist when use shared work directory.
if pid in self.build_stamps:
del self.build_stamps[pid]
if status != 0:
self.task_fail(task, status)
else:
self.task_complete(task)
return True
@@ -1164,8 +1102,6 @@ class RunQueueExecute:
os.umask(umask)
self.cooker.configuration.data.setVar("BB_WORKERCONTEXT", "1")
self.cooker.configuration.data.setVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY", self)
self.cooker.configuration.data.setVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY2", fn)
bb.parse.siggen.set_taskdata(self.rqdata.hashes, self.rqdata.hash_deps)
ret = 0
try:
@@ -1373,7 +1309,7 @@ class RunQueueExecuteTasks(RunQueueExecute):
self.task_skip(task)
return True
if self.rq.check_stamp_task(task, taskname):
if self.rq.check_stamp_task(task, taskname, cache=self.stampcache):
logger.debug(2, "Stamp current task %s (%s)", task,
self.rqdata.get_user_idstring(task))
self.task_skip(task)
@@ -1557,7 +1493,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
bb.build.make_stamp(taskname + "_setscene", self.rqdata.dataCache, fn)
continue
if self.rq.check_stamp_task(realtask, taskname + "_setscene"):
if self.rq.check_stamp_task(realtask, taskname + "_setscene", cache=self.stampcache):
logger.debug(2, 'Setscene stamp current for task %s(%s)', task, self.rqdata.get_user_idstring(realtask))
stamppresent.append(task)
self.task_skip(task)
@@ -1650,7 +1586,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[realtask]]
taskname = self.rqdata.runq_task[realtask] + "_setscene"
if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask], recurse = True):
if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask], recurse = True, cache=self.stampcache):
logger.debug(2, 'Stamp for underlying task %s(%s) is current, so skipping setscene variant',
task, self.rqdata.get_user_idstring(realtask))
self.task_failoutright(task)
@@ -1662,7 +1598,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
self.task_failoutright(task)
return True
if self.rq.check_stamp_task(realtask, taskname):
if self.rq.check_stamp_task(realtask, taskname, cache=self.stampcache):
logger.debug(2, 'Setscene stamp current task %s(%s), so skip it and its dependencies',
task, self.rqdata.get_user_idstring(realtask))
self.task_skip(task)
@@ -1776,15 +1712,6 @@ class runQueueTaskCompleted(runQueueEvent):
Event notifing a task completed
"""
def check_stamp_fn(fn, taskname, d):
rqexe = d.getVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY")
fn = d.getVar("__RUNQUEUE_DO_NOT_USE_EXTERNALLY2")
fnid = rqexe.rqdata.taskData.getfn_id(fn)
taskid = rqexe.rqdata.get_task_id(fnid, taskname)
if taskid is not None:
return rqexe.rq.check_stamp_task(taskid)
return None
class runQueuePipe():
"""
Abstraction for a pipe between a worker thread and the server
@@ -1792,7 +1719,7 @@ class runQueuePipe():
def __init__(self, pipein, pipeout, d):
self.input = pipein
pipeout.close()
fcntl.fcntl(self.input, fcntl.F_SETFL, fcntl.fcntl(self.input, fcntl.F_GETFL) | os.O_NONBLOCK)
bb.utils.nonblockingfd(self.input)
self.queue = ""
self.d = d

View File

@@ -50,6 +50,10 @@ class SignatureGenerator(object):
def dump_sigtask(self, fn, task, stampbase, runtime):
return
def invalidate_task(self, task, d, fn):
bb.build.del_stamp(task, d, fn)
class SignatureGeneratorBasic(SignatureGenerator):
"""
"""
@@ -60,6 +64,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
self.taskhash = {}
self.taskdeps = {}
self.runtaskdeps = {}
self.file_checksum_values = {}
self.gendeps = {}
self.lookupcache = {}
self.pkgnameextract = re.compile("(?P<fn>.*)\..*")
@@ -107,6 +112,10 @@ class SignatureGeneratorBasic(SignatureGenerator):
data = data + dep
if dep in lookupcache:
var = lookupcache[dep]
elif dep[-1] == ']':
vf = dep[:-1].split('[')
var = d.getVarFlag(vf[0], vf[1], False)
lookupcache[dep] = var
else:
var = d.getVar(dep, False)
lookupcache[dep] = var
@@ -148,10 +157,20 @@ class SignatureGeneratorBasic(SignatureGenerator):
return False
return True
def read_taint(self, fn, task, stampbase):
taint = None
try:
with open(stampbase + '.' + task + '.taint', 'r') as taintf:
taint = taintf.read()
except IOError:
pass
return taint
def get_taskhash(self, fn, task, deps, dataCache):
k = fn + "." + task
data = dataCache.basetaskhash[k]
self.runtaskdeps[k] = []
self.file_checksum_values[k] = {}
recipename = dataCache.pkg_fn[fn]
for dep in sorted(deps, key=clean_basepath):
depname = dataCache.pkg_fn[self.pkgnameextract.search(dep).group('fn')]
@@ -161,6 +180,17 @@ class SignatureGeneratorBasic(SignatureGenerator):
bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?", dep)
data = data + self.taskhash[dep]
self.runtaskdeps[k].append(dep)
if task in dataCache.file_checksums[fn]:
checksums = bb.fetch2.get_file_checksums(dataCache.file_checksums[fn][task], recipename)
for (f,cs) in checksums:
self.file_checksum_values[k][f] = cs
data = data + cs
taint = self.read_taint(fn, task, dataCache.stamp[fn])
if taint:
data = data + taint
h = hashlib.md5(data).hexdigest()
self.taskhash[k] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
@@ -197,12 +227,19 @@ class SignatureGeneratorBasic(SignatureGenerator):
if runtime and k in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[k]
data['file_checksum_values'] = self.file_checksum_values[k]
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.taskhash[dep]
p = pickle.Pickler(file(sigfile, "wb"), -1)
p.dump(data)
taint = self.read_taint(fn, task, stampbase)
if taint:
data['taint'] = taint
with open(sigfile, "wb") as f:
p = pickle.Pickler(f, -1)
p.dump(data)
os.chmod(sigfile, 0664)
def dump_sigs(self, dataCache):
for fn in self.taskdeps:
@@ -230,6 +267,10 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
h = self.basehash[k]
return ("%s.%s.%s.%s" % (stampbase, taskname, h, extrainfo)).rstrip('.')
def invalidate_task(self, task, d, fn):
bb.note("Tainting hash to force rebuild of task %s, %s" % (fn, task))
bb.build.write_taint(task, d, fn)
def dump_this_task(outfile, d):
import bb.parse
fn = d.getVar("BB_FILENAME", True)
@@ -250,9 +291,9 @@ def clean_basepaths(a):
return b
def compare_sigfiles(a, b):
p1 = pickle.Unpickler(file(a, "rb"))
p1 = pickle.Unpickler(open(a, "rb"))
a_data = p1.load()
p2 = pickle.Unpickler(file(b, "rb"))
p2 = pickle.Unpickler(open(b, "rb"))
b_data = p2.load()
def dict_diff(a, b, whitelist=set()):
@@ -302,6 +343,18 @@ def compare_sigfiles(a, b):
for dep in changed:
print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
changed, added, removed = dict_diff(a_data['file_checksum_values'], b_data['file_checksum_values'])
if changed:
for f in changed:
print "Checksum for file %s changed from %s to %s" % (f, a_data['file_checksum_values'][f], b_data['file_checksum_values'][f])
if added:
for f in added:
print "Dependency on checksum of file %s was added" % (f)
if removed:
for f in removed:
print "Dependency on checksum of file %s was removed" % (f)
if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
a = clean_basepaths(a_data['runtaskhashes'])
b = clean_basepaths(b_data['runtaskhashes'])
@@ -330,8 +383,15 @@ def compare_sigfiles(a, b):
for dep in changed:
print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep])
a_taint = a_data.get('taint', None)
b_taint = b_data.get('taint', None)
if a_taint != b_taint:
print "Taint (by forced/invalidated task) changed from %s to %s" % (a_taint, b_taint)
def dump_sigfile(a):
p1 = pickle.Unpickler(file(a, "rb"))
p1 = pickle.Unpickler(open(a, "rb"))
a_data = p1.load()
print "basewhitelist: %s" % (a_data['basewhitelist'])
@@ -351,6 +411,12 @@ def dump_sigfile(a):
if 'runtaskdeps' in a_data:
print "Tasks this task depends on: %s" % (a_data['runtaskdeps'])
if 'file_checksum_values' in a_data:
print "This task depends on the checksums of files: %s" % (a_data['file_checksum_values'])
if 'runtaskhashes' in a_data:
for dep in a_data['runtaskhashes']:
print "Hash for dependent task %s is %s" % (dep, a_data['runtaskhashes'][dep])
if 'taint' in a_data:
print "Tainted (by forced/invalidated task): %s" % a_data['taint']

View File

@@ -55,6 +55,7 @@ class TaskData:
self.tasks_name = []
self.tasks_tdepends = []
self.tasks_idepends = []
self.tasks_irdepends = []
# Cache to speed up task ID lookups
self.tasks_lookup = {}
@@ -115,6 +116,16 @@ class TaskData:
ids.append(self.tasks_lookup[fnid][task])
return ids
def gettask_id_fromfnid(self, fnid, task):
"""
Return an ID number for the task matching fnid and task.
"""
if fnid in self.tasks_lookup:
if task in self.tasks_lookup[fnid]:
return self.tasks_lookup[fnid][task]
return None
def gettask_id(self, fn, task, create = True):
"""
Return an ID number for the task matching fn and task.
@@ -134,6 +145,7 @@ class TaskData:
self.tasks_fnid.append(fnid)
self.tasks_tdepends.append([])
self.tasks_idepends.append([])
self.tasks_irdepends.append([])
listid = len(self.tasks_name) - 1
@@ -178,6 +190,15 @@ class TaskData:
bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'depends' should be specified in the form 'packagename:task'" % (fn, dep))
ids.append(((self.getbuild_id(dep.split(":")[0])), dep.split(":")[1]))
self.tasks_idepends[taskid].extend(ids)
if 'rdepends' in task_deps and task in task_deps['rdepends']:
ids = []
for dep in task_deps['rdepends'][task].split():
if dep:
if ":" not in dep:
bb.msg.fatal("TaskData", "Error for %s, dependency %s does not contain ':' character\n. Task 'rdepends' should be specified in the form 'packagename:task'" % (fn, dep))
ids.append(((self.getrun_id(dep.split(":")[0])), dep.split(":")[1]))
self.tasks_irdepends[taskid].extend(ids)
# Work out build dependencies
if not fnid in self.depids:
@@ -461,6 +482,7 @@ class TaskData:
providers_list.append(dataCache.pkg_fn[fn])
bb.event.fire(bb.event.MultipleProviders(item, providers_list, runtime=True), cfgData)
self.consider_msgs_cache.append(item)
raise bb.providers.MultipleRProvider(item)
# run through the list until we find one that we can build
for fn in eligible:
@@ -533,6 +555,11 @@ class TaskData:
dependees = self.get_rdependees(targetid)
for fnid in dependees:
self.fail_fnid(fnid, missing_list)
for taskid in xrange(len(self.tasks_irdepends)):
irdepends = self.tasks_irdepends[taskid]
for (idependid, idependtask) in irdepends:
if idependid == targetid:
self.fail_fnid(self.tasks_fnid[taskid], missing_list)
def add_unresolved(self, cfgData, dataCache):
"""
@@ -554,7 +581,7 @@ class TaskData:
try:
self.add_rprovider(cfgData, dataCache, target)
added = added + 1
except bb.providers.NoRProvider:
except (bb.providers.NoRProvider, bb.providers.MultipleRProvider):
self.remove_runtarget(self.getrun_id(target))
logger.debug(1, "Resolved " + str(added) + " extra dependencies")
if added == 0:

View File

@@ -0,0 +1,369 @@
#
# BitBake Test for codeparser.py
#
# Copyright (C) 2010 Chris Larson
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import unittest
import logging
import bb
logger = logging.getLogger('BitBake.TestCodeParser')
import bb.data
class ReferenceTest(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
def setEmptyVars(self, varlist):
for k in varlist:
self.d.setVar(k, "")
def setValues(self, values):
for k, v in values.items():
self.d.setVar(k, v)
def assertReferences(self, refs):
self.assertEqual(self.references, refs)
def assertExecs(self, execs):
self.assertEqual(self.execs, execs)
class VariableReferenceTest(ReferenceTest):
def parseExpression(self, exp):
parsedvar = self.d.expandWithRefs(exp, None)
self.references = parsedvar.references
def test_simple_reference(self):
self.setEmptyVars(["FOO"])
self.parseExpression("${FOO}")
self.assertReferences(set(["FOO"]))
def test_nested_reference(self):
self.setEmptyVars(["BAR"])
self.d.setVar("FOO", "BAR")
self.parseExpression("${${FOO}}")
self.assertReferences(set(["FOO", "BAR"]))
def test_python_reference(self):
self.setEmptyVars(["BAR"])
self.parseExpression("${@bb.data.getVar('BAR', d, True) + 'foo'}")
self.assertReferences(set(["BAR"]))
class ShellReferenceTest(ReferenceTest):
def parseExpression(self, exp):
parsedvar = self.d.expandWithRefs(exp, None)
parser = bb.codeparser.ShellParser("ParserTest", logger)
parser.parse_shell(parsedvar.value)
self.references = parsedvar.references
self.execs = parser.execs
def test_quotes_inside_assign(self):
self.parseExpression('foo=foo"bar"baz')
self.assertReferences(set([]))
def test_quotes_inside_arg(self):
self.parseExpression('sed s#"bar baz"#"alpha beta"#g')
self.assertExecs(set(["sed"]))
def test_arg_continuation(self):
self.parseExpression("sed -i -e s,foo,bar,g \\\n *.pc")
self.assertExecs(set(["sed"]))
def test_dollar_in_quoted(self):
self.parseExpression('sed -i -e "foo$" *.pc')
self.assertExecs(set(["sed"]))
def test_quotes_inside_arg_continuation(self):
self.setEmptyVars(["bindir", "D", "libdir"])
self.parseExpression("""
sed -i -e s#"moc_location=.*$"#"moc_location=${bindir}/moc4"# \\
-e s#"uic_location=.*$"#"uic_location=${bindir}/uic4"# \\
${D}${libdir}/pkgconfig/*.pc
""")
self.assertReferences(set(["bindir", "D", "libdir"]))
def test_assign_subshell_expansion(self):
self.parseExpression("foo=$(echo bar)")
self.assertExecs(set(["echo"]))
def test_shell_unexpanded(self):
self.setEmptyVars(["QT_BASE_NAME"])
self.parseExpression('echo "${QT_BASE_NAME}"')
self.assertExecs(set(["echo"]))
self.assertReferences(set(["QT_BASE_NAME"]))
def test_incomplete_varexp_single_quotes(self):
self.parseExpression("sed -i -e 's:IP{:I${:g' $pc")
self.assertExecs(set(["sed"]))
def test_until(self):
self.parseExpression("until false; do echo true; done")
self.assertExecs(set(["false", "echo"]))
self.assertReferences(set())
def test_case(self):
self.parseExpression("""
case $foo in
*)
bar
;;
esac
""")
self.assertExecs(set(["bar"]))
self.assertReferences(set())
def test_assign_exec(self):
self.parseExpression("a=b c='foo bar' alpha 1 2 3")
self.assertExecs(set(["alpha"]))
def test_redirect_to_file(self):
self.setEmptyVars(["foo"])
self.parseExpression("echo foo >${foo}/bar")
self.assertExecs(set(["echo"]))
self.assertReferences(set(["foo"]))
def test_heredoc(self):
self.setEmptyVars(["theta"])
self.parseExpression("""
cat <<END
alpha
beta
${theta}
END
""")
self.assertReferences(set(["theta"]))
def test_redirect_from_heredoc(self):
v = ["B", "SHADOW_MAILDIR", "SHADOW_MAILFILE", "SHADOW_UTMPDIR", "SHADOW_LOGDIR", "bindir"]
self.setEmptyVars(v)
self.parseExpression("""
cat <<END >${B}/cachedpaths
shadow_cv_maildir=${SHADOW_MAILDIR}
shadow_cv_mailfile=${SHADOW_MAILFILE}
shadow_cv_utmpdir=${SHADOW_UTMPDIR}
shadow_cv_logdir=${SHADOW_LOGDIR}
shadow_cv_passwd_dir=${bindir}
END
""")
self.assertReferences(set(v))
self.assertExecs(set(["cat"]))
# def test_incomplete_command_expansion(self):
# self.assertRaises(reftracker.ShellSyntaxError, reftracker.execs,
# bbvalue.shparse("cp foo`", self.d), self.d)
# def test_rogue_dollarsign(self):
# self.setValues({"D" : "/tmp"})
# self.parseExpression("install -d ${D}$")
# self.assertReferences(set(["D"]))
# self.assertExecs(set(["install"]))
class PythonReferenceTest(ReferenceTest):
def setUp(self):
self.d = bb.data.init()
if hasattr(bb.utils, "_context"):
self.context = bb.utils._context
else:
import __builtin__
self.context = __builtin__.__dict__
def parseExpression(self, exp):
parsedvar = self.d.expandWithRefs(exp, None)
parser = bb.codeparser.PythonParser("ParserTest", logger)
parser.parse_python(parsedvar.value)
self.references = parsedvar.references | parser.references
self.execs = parser.execs
@staticmethod
def indent(value):
"""Python Snippets have to be indented, python values don't have to
be. These unit tests are testing snippets."""
return " " + value
def test_getvar_reference(self):
self.parseExpression("bb.data.getVar('foo', d, True)")
self.assertReferences(set(["foo"]))
self.assertExecs(set())
def test_getvar_computed_reference(self):
self.parseExpression("bb.data.getVar('f' + 'o' + 'o', d, True)")
self.assertReferences(set())
self.assertExecs(set())
def test_getvar_exec_reference(self):
self.parseExpression("eval('bb.data.getVar(\"foo\", d, True)')")
self.assertReferences(set())
self.assertExecs(set(["eval"]))
def test_var_reference(self):
self.context["foo"] = lambda x: x
self.setEmptyVars(["FOO"])
self.parseExpression("foo('${FOO}')")
self.assertReferences(set(["FOO"]))
self.assertExecs(set(["foo"]))
del self.context["foo"]
def test_var_exec(self):
for etype in ("func", "task"):
self.d.setVar("do_something", "echo 'hi mom! ${FOO}'")
self.d.setVarFlag("do_something", etype, True)
self.parseExpression("bb.build.exec_func('do_something', d)")
self.assertReferences(set(["do_something"]))
def test_function_reference(self):
self.context["testfunc"] = lambda msg: bb.msg.note(1, None, msg)
self.d.setVar("FOO", "Hello, World!")
self.parseExpression("testfunc('${FOO}')")
self.assertReferences(set(["FOO"]))
self.assertExecs(set(["testfunc"]))
del self.context["testfunc"]
def test_qualified_function_reference(self):
self.parseExpression("time.time()")
self.assertExecs(set(["time.time"]))
def test_qualified_function_reference_2(self):
self.parseExpression("os.path.dirname('/foo/bar')")
self.assertExecs(set(["os.path.dirname"]))
def test_qualified_function_reference_nested(self):
self.parseExpression("time.strftime('%Y%m%d',time.gmtime())")
self.assertExecs(set(["time.strftime", "time.gmtime"]))
def test_function_reference_chained(self):
self.context["testget"] = lambda: "\tstrip me "
self.parseExpression("testget().strip()")
self.assertExecs(set(["testget"]))
del self.context["testget"]
class DependencyReferenceTest(ReferenceTest):
pydata = """
bb.data.getVar('somevar', d, True)
def test(d):
foo = 'bar %s' % 'foo'
def test2(d):
d.getVar(foo, True)
d.getVar('bar', False)
test2(d)
def a():
\"\"\"some
stuff
\"\"\"
return "heh"
test(d)
bb.data.expand(bb.data.getVar("something", False, d), d)
bb.data.expand("${inexpand} somethingelse", d)
bb.data.getVar(a(), d, False)
"""
def test_python(self):
self.d.setVar("FOO", self.pydata)
self.setEmptyVars(["inexpand", "a", "test2", "test"])
self.d.setVarFlags("FOO", {"func": True, "python": True})
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
self.assertEquals(deps, set(["somevar", "bar", "something", "inexpand", "test", "test2", "a"]))
shelldata = """
foo () {
bar
}
{
echo baz
$(heh)
eval `moo`
}
a=b
c=d
(
true && false
test -f foo
testval=something
$testval
) || aiee
! inverted
echo ${somevar}
case foo in
bar)
echo bar
;;
baz)
echo baz
;;
foo*)
echo foo
;;
esac
"""
def test_shell(self):
execs = ["bar", "echo", "heh", "moo", "true", "aiee"]
self.d.setVar("somevar", "heh")
self.d.setVar("inverted", "echo inverted...")
self.d.setVarFlag("inverted", "func", True)
self.d.setVar("FOO", self.shelldata)
self.d.setVarFlags("FOO", {"func": True})
self.setEmptyVars(execs)
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
self.assertEquals(deps, set(["somevar", "inverted"] + execs))
def test_vardeps(self):
self.d.setVar("oe_libinstall", "echo test")
self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
self.d.setVarFlag("FOO", "vardeps", "oe_libinstall")
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
self.assertEquals(deps, set(["oe_libinstall"]))
def test_vardeps_expand(self):
self.d.setVar("oe_libinstall", "echo test")
self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
self.d.setVarFlag("FOO", "vardeps", "${@'oe_libinstall'}")
deps, values = bb.data.build_dependencies("FOO", set(self.d.keys()), set(), set(), self.d)
self.assertEquals(deps, set(["oe_libinstall"]))
#Currently no wildcard support
#def test_vardeps_wildcards(self):
# self.d.setVar("oe_libinstall", "echo test")
# self.d.setVar("FOO", "foo=oe_libinstall; eval $foo")
# self.d.setVarFlag("FOO", "vardeps", "oe_*")
# self.assertEquals(deps, set(["oe_libinstall"]))

134
bitbake/lib/bb/tests/cow.py Normal file
View File

@@ -0,0 +1,134 @@
#
# BitBake Tests for Copy-on-Write (cow.py)
#
# Copyright 2006 Holger Freyther <freyther@handhelds.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import unittest
import os
class COWTestCase(unittest.TestCase):
"""
Test case for the COW module from mithro
"""
def testGetSet(self):
"""
Test and set
"""
from bb.COW import COWDictBase
a = COWDictBase.copy()
self.assertEquals(False, a.has_key('a'))
a['a'] = 'a'
a['b'] = 'b'
self.assertEquals(True, a.has_key('a'))
self.assertEquals(True, a.has_key('b'))
self.assertEquals('a', a['a'] )
self.assertEquals('b', a['b'] )
def testCopyCopy(self):
"""
Test the copy of copies
"""
from bb.COW import COWDictBase
# create two COW dict 'instances'
b = COWDictBase.copy()
c = COWDictBase.copy()
# assign some keys to one instance, some keys to another
b['a'] = 10
b['c'] = 20
c['a'] = 30
# test separation of the two instances
self.assertEquals(False, c.has_key('c'))
self.assertEquals(30, c['a'])
self.assertEquals(10, b['a'])
# test copy
b_2 = b.copy()
c_2 = c.copy()
self.assertEquals(False, c_2.has_key('c'))
self.assertEquals(10, b_2['a'])
b_2['d'] = 40
self.assertEquals(False, c_2.has_key('d'))
self.assertEquals(True, b_2.has_key('d'))
self.assertEquals(40, b_2['d'])
self.assertEquals(False, b.has_key('d'))
self.assertEquals(False, c.has_key('d'))
c_2['d'] = 30
self.assertEquals(True, c_2.has_key('d'))
self.assertEquals(True, b_2.has_key('d'))
self.assertEquals(30, c_2['d'])
self.assertEquals(40, b_2['d'])
self.assertEquals(False, b.has_key('d'))
self.assertEquals(False, c.has_key('d'))
# test copy of the copy
c_3 = c_2.copy()
b_3 = b_2.copy()
b_3_2 = b_2.copy()
c_3['e'] = 4711
self.assertEquals(4711, c_3['e'])
self.assertEquals(False, c_2.has_key('e'))
self.assertEquals(False, b_3.has_key('e'))
self.assertEquals(False, b_3_2.has_key('e'))
self.assertEquals(False, b_2.has_key('e'))
b_3['e'] = 'viel'
self.assertEquals('viel', b_3['e'])
self.assertEquals(4711, c_3['e'])
self.assertEquals(False, c_2.has_key('e'))
self.assertEquals(True, b_3.has_key('e'))
self.assertEquals(False, b_3_2.has_key('e'))
self.assertEquals(False, b_2.has_key('e'))
def testCow(self):
from bb.COW import COWDictBase
c = COWDictBase.copy()
c['123'] = 1027
c['other'] = 4711
c['d'] = { 'abc' : 10, 'bcd' : 20 }
copy = c.copy()
self.assertEquals(1027, c['123'])
self.assertEquals(4711, c['other'])
self.assertEquals({'abc':10, 'bcd':20}, c['d'])
self.assertEquals(1027, copy['123'])
self.assertEquals(4711, copy['other'])
self.assertEquals({'abc':10, 'bcd':20}, copy['d'])
# cow it now
copy['123'] = 1028
copy['other'] = 4712
copy['d']['abc'] = 20
self.assertEquals(1027, c['123'])
self.assertEquals(4711, c['other'])
self.assertEquals({'abc':10, 'bcd':20}, c['d'])
self.assertEquals(1028, copy['123'])
self.assertEquals(4712, copy['other'])
self.assertEquals({'abc':20, 'bcd':20}, copy['d'])

View File

@@ -0,0 +1,252 @@
#
# BitBake Tests for the Data Store (data.py/data_smart.py)
#
# Copyright (C) 2010 Chris Larson
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import unittest
import bb
import bb.data
class DataExpansions(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
self.d["foo"] = "value of foo"
self.d["bar"] = "value of bar"
self.d["value of foo"] = "value of 'value of foo'"
def test_one_var(self):
val = self.d.expand("${foo}")
self.assertEqual(str(val), "value of foo")
def test_indirect_one_var(self):
val = self.d.expand("${${foo}}")
self.assertEqual(str(val), "value of 'value of foo'")
def test_indirect_and_another(self):
val = self.d.expand("${${foo}} ${bar}")
self.assertEqual(str(val), "value of 'value of foo' value of bar")
def test_python_snippet(self):
val = self.d.expand("${@5*12}")
self.assertEqual(str(val), "60")
def test_expand_in_python_snippet(self):
val = self.d.expand("${@'boo ' + '${foo}'}")
self.assertEqual(str(val), "boo value of foo")
def test_python_snippet_getvar(self):
val = self.d.expand("${@d.getVar('foo', True) + ' ${bar}'}")
self.assertEqual(str(val), "value of foo value of bar")
def test_python_snippet_syntax_error(self):
self.d.setVar("FOO", "${@foo = 5}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_python_snippet_runtime_error(self):
self.d.setVar("FOO", "${@int('test')}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_python_snippet_error_path(self):
self.d.setVar("FOO", "foo value ${BAR}")
self.d.setVar("BAR", "bar value ${@int('test')}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_value_containing_value(self):
val = self.d.expand("${@d.getVar('foo', True) + ' ${bar}'}")
self.assertEqual(str(val), "value of foo value of bar")
def test_reference_undefined_var(self):
val = self.d.expand("${undefinedvar} meh")
self.assertEqual(str(val), "${undefinedvar} meh")
def test_double_reference(self):
self.d.setVar("BAR", "bar value")
self.d.setVar("FOO", "${BAR} foo ${BAR}")
val = self.d.getVar("FOO", True)
self.assertEqual(str(val), "bar value foo bar value")
def test_direct_recursion(self):
self.d.setVar("FOO", "${FOO}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_indirect_recursion(self):
self.d.setVar("FOO", "${BAR}")
self.d.setVar("BAR", "${BAZ}")
self.d.setVar("BAZ", "${FOO}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_recursion_exception(self):
self.d.setVar("FOO", "${BAR}")
self.d.setVar("BAR", "${${@'FOO'}}")
self.assertRaises(bb.data_smart.ExpansionError, self.d.getVar, "FOO", True)
def test_incomplete_varexp_single_quotes(self):
self.d.setVar("FOO", "sed -i -e 's:IP{:I${:g' $pc")
val = self.d.getVar("FOO", True)
self.assertEqual(str(val), "sed -i -e 's:IP{:I${:g' $pc")
def test_nonstring(self):
self.d.setVar("TEST", 5)
val = self.d.getVar("TEST", True)
self.assertEqual(str(val), "5")
def test_rename(self):
self.d.renameVar("foo", "newfoo")
self.assertEqual(self.d.getVar("newfoo"), "value of foo")
self.assertEqual(self.d.getVar("foo"), None)
def test_deletion(self):
self.d.delVar("foo")
self.assertEqual(self.d.getVar("foo"), None)
def test_keys(self):
keys = self.d.keys()
self.assertEqual(keys, ['value of foo', 'foo', 'bar'])
class TestNestedExpansions(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
self.d["foo"] = "foo"
self.d["bar"] = "bar"
self.d["value of foobar"] = "187"
def test_refs(self):
val = self.d.expand("${value of ${foo}${bar}}")
self.assertEqual(str(val), "187")
#def test_python_refs(self):
# val = self.d.expand("${@${@3}**2 + ${@4}**2}")
# self.assertEqual(str(val), "25")
def test_ref_in_python_ref(self):
val = self.d.expand("${@'${foo}' + 'bar'}")
self.assertEqual(str(val), "foobar")
def test_python_ref_in_ref(self):
val = self.d.expand("${${@'f'+'o'+'o'}}")
self.assertEqual(str(val), "foo")
def test_deep_nesting(self):
depth = 100
val = self.d.expand("${" * depth + "foo" + "}" * depth)
self.assertEqual(str(val), "foo")
#def test_deep_python_nesting(self):
# depth = 50
# val = self.d.expand("${@" * depth + "1" + "+1}" * depth)
# self.assertEqual(str(val), str(depth + 1))
def test_mixed(self):
val = self.d.expand("${value of ${@('${foo}'+'bar')[0:3]}${${@'BAR'.lower()}}}")
self.assertEqual(str(val), "187")
def test_runtime(self):
val = self.d.expand("${${@'value of' + ' f'+'o'+'o'+'b'+'a'+'r'}}")
self.assertEqual(str(val), "187")
class TestMemoize(unittest.TestCase):
def test_memoized(self):
d = bb.data.init()
d.setVar("FOO", "bar")
self.assertTrue(d.getVar("FOO") is d.getVar("FOO"))
def test_not_memoized(self):
d1 = bb.data.init()
d2 = bb.data.init()
d1.setVar("FOO", "bar")
d2.setVar("FOO", "bar2")
self.assertTrue(d1.getVar("FOO") is not d2.getVar("FOO"))
def test_changed_after_memoized(self):
d = bb.data.init()
d.setVar("foo", "value of foo")
self.assertEqual(str(d.getVar("foo")), "value of foo")
d.setVar("foo", "second value of foo")
self.assertEqual(str(d.getVar("foo")), "second value of foo")
def test_same_value(self):
d = bb.data.init()
d.setVar("foo", "value of")
d.setVar("bar", "value of")
self.assertEqual(d.getVar("foo"),
d.getVar("bar"))
class TestConcat(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
self.d.setVar("FOO", "foo")
self.d.setVar("VAL", "val")
self.d.setVar("BAR", "bar")
def test_prepend(self):
self.d.setVar("TEST", "${VAL}")
self.d.prependVar("TEST", "${FOO}:")
self.assertEqual(self.d.getVar("TEST", True), "foo:val")
def test_append(self):
self.d.setVar("TEST", "${VAL}")
self.d.appendVar("TEST", ":${BAR}")
self.assertEqual(self.d.getVar("TEST", True), "val:bar")
def test_multiple_append(self):
self.d.setVar("TEST", "${VAL}")
self.d.prependVar("TEST", "${FOO}:")
self.d.appendVar("TEST", ":val2")
self.d.appendVar("TEST", ":${BAR}")
self.assertEqual(self.d.getVar("TEST", True), "foo:val:val2:bar")
class TestOverrides(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
self.d.setVar("OVERRIDES", "foo:bar:local")
self.d.setVar("TEST", "testvalue")
def test_no_override(self):
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST", True), "testvalue")
def test_one_override(self):
self.d.setVar("TEST_bar", "testvalue2")
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST", True), "testvalue2")
def test_multiple_override(self):
self.d.setVar("TEST_bar", "testvalue2")
self.d.setVar("TEST_local", "testvalue3")
self.d.setVar("TEST_foo", "testvalue4")
bb.data.update_data(self.d)
self.assertEqual(self.d.getVar("TEST", True), "testvalue3")
class TestFlags(unittest.TestCase):
def setUp(self):
self.d = bb.data.init()
self.d.setVar("foo", "value of foo")
self.d.setVarFlag("foo", "flag1", "value of flag1")
self.d.setVarFlag("foo", "flag2", "value of flag2")
def test_setflag(self):
self.assertEqual(self.d.getVarFlag("foo", "flag1"), "value of flag1")
self.assertEqual(self.d.getVarFlag("foo", "flag2"), "value of flag2")
def test_delflag(self):
self.d.delVarFlag("foo", "flag2")
self.assertEqual(self.d.getVarFlag("foo", "flag1"), "value of flag1")
self.assertEqual(self.d.getVarFlag("foo", "flag2"), None)

View File

@@ -0,0 +1,191 @@
#
# BitBake Tests for the Fetcher (fetch2/)
#
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import unittest
import tempfile
import subprocess
import os
import bb
class FetcherTest(unittest.TestCase):
replaceuris = {
("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "http://somewhere.org/somedir/")
: "http://somewhere.org/somedir/git2_git.invalid.infradead.org.mtd-utils.git.tar.gz",
("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
: "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/somedir/\\2;protocol=http")
: "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/([^/]+/)*([^/]*)", "git://somewhere.org/\\2;protocol=http")
: "git://somewhere.org/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://someserver.org/bitbake;tag=1234567890123456789012345678901234567890", "git://someserver.org/bitbake", "git://git.openembedded.org/bitbake")
: "git://git.openembedded.org/bitbake;tag=1234567890123456789012345678901234567890",
("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache")
: "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
("file://sstate-xyz.tgz", "file://.*", "file:///somewhere/1234/sstate-cache/")
: "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
("http://somewhere.org/somedir1/somedir2/somefile_1.2.3.tar.gz", "http://.*/.*", "http://somewhere2.org/somedir3")
: "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz",
("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz")
: "http://somewhere2.org/somedir3/somefile_1.2.3.tar.gz",
("http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2", "http://www.apache.org/dist", "http://archive.apache.org/dist")
: "http://archive.apache.org/dist/subversion/subversion-1.7.1.tar.bz2",
("http://www.apache.org/dist/subversion/subversion-1.7.1.tar.bz2", "http://.*/.*", "file:///somepath/downloads/")
: "file:///somepath/downloads/subversion-1.7.1.tar.bz2",
("git://git.invalid.infradead.org/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
: "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/BASENAME;protocol=http")
: "git://somewhere.org/somedir/mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
("git://git.invalid.infradead.org/foo/mtd-utils.git;tag=1234567890123456789012345678901234567890", "git://.*/.*", "git://somewhere.org/somedir/MIRRORNAME;protocol=http")
: "git://somewhere.org/somedir/git.invalid.infradead.org.foo.mtd-utils.git;tag=1234567890123456789012345678901234567890;protocol=http",
#Renaming files doesn't work
#("http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere.org/somedir1/somefile_1.2.3.tar.gz", "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz") : "http://somewhere2.org/somedir3/somefile_2.3.4.tar.gz"
#("file://sstate-xyz.tgz", "file://.*/.*", "file:///somewhere/1234/sstate-cache") : "file:///somewhere/1234/sstate-cache/sstate-xyz.tgz",
}
mirrorvar = "http://.*/.* file:///somepath/downloads/ \n" \
"git://someserver.org/bitbake git://git.openembedded.org/bitbake \n" \
"https://.*/.* file:///someotherpath/downloads/ \n" \
"http://.*/.* file:///someotherpath/downloads/ \n"
def setUp(self):
self.d = bb.data.init()
self.tempdir = tempfile.mkdtemp()
self.dldir = os.path.join(self.tempdir, "download")
os.mkdir(self.dldir)
self.d.setVar("DL_DIR", self.dldir)
self.unpackdir = os.path.join(self.tempdir, "unpacked")
os.mkdir(self.unpackdir)
persistdir = os.path.join(self.tempdir, "persistdata")
self.d.setVar("PERSISTENT_DIR", persistdir)
def tearDown(self):
bb.utils.prunedir(self.tempdir)
def test_fetch(self):
fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d)
fetcher.download()
self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.1.tar.gz"), 57892)
self.d.setVar("BB_NO_NETWORK", "1")
fetcher = bb.fetch.Fetch(["http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", "http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.1.tar.gz"], self.d)
fetcher.download()
fetcher.unpack(self.unpackdir)
self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.0/")), 9)
self.assertEqual(len(os.listdir(self.unpackdir + "/bitbake-1.1/")), 9)
def test_fetch_mirror(self):
self.d.setVar("MIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
fetcher.download()
self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
def test_fetch_premirror(self):
self.d.setVar("PREMIRRORS", "http://.*/.* http://downloads.yoctoproject.org/releases/bitbake")
fetcher = bb.fetch.Fetch(["http://invalid.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz"], self.d)
fetcher.download()
self.assertEqual(os.path.getsize(self.dldir + "/bitbake-1.0.tar.gz"), 57749)
def gitfetcher(self, url1, url2):
def checkrevision(self, fetcher):
fetcher.unpack(self.unpackdir)
revision = subprocess.check_output("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git").strip()
self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5")
self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1")
self.d.setVar("SRCREV", "270a05b0b4ba0959fe0624d2a4885d7b70426da5")
fetcher = bb.fetch.Fetch([url1], self.d)
fetcher.download()
checkrevision(self, fetcher)
# Wipe out the dldir clone and the unpacked source, turn off the network and check mirror tarball works
bb.utils.prunedir(self.dldir + "/git2/")
bb.utils.prunedir(self.unpackdir)
self.d.setVar("BB_NO_NETWORK", "1")
fetcher = bb.fetch.Fetch([url2], self.d)
fetcher.download()
checkrevision(self, fetcher)
def test_gitfetch(self):
url1 = url2 = "git://git.openembedded.org/bitbake"
self.gitfetcher(url1, url2)
def test_gitfetch_premirror(self):
url1 = "git://git.openembedded.org/bitbake"
url2 = "git://someserver.org/bitbake"
self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
self.gitfetcher(url1, url2)
def test_gitfetch_premirror2(self):
url1 = url2 = "git://someserver.org/bitbake"
self.d.setVar("PREMIRRORS", "git://someserver.org/bitbake git://git.openembedded.org/bitbake \n")
self.gitfetcher(url1, url2)
def test_gitfetch_premirror3(self):
realurl = "git://git.openembedded.org/bitbake"
dummyurl = "git://someserver.org/bitbake"
self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git")
os.chdir(self.tempdir)
subprocess.check_output("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True)
self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file \n" % (dummyurl, self.sourcedir))
self.gitfetcher(dummyurl, dummyurl)
def test_urireplace(self):
for k, v in self.replaceuris.items():
ud = bb.fetch.FetchData(k[0], self.d)
ud.setup_localpath(self.d)
mirrors = bb.fetch2.mirror_from_string("%s %s" % (k[1], k[2]))
newuris, uds = bb.fetch2.build_mirroruris(ud, mirrors, self.d)
self.assertEqual([v], newuris)
def test_urilist1(self):
fetcher = bb.fetch.FetchData("http://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", self.d)
mirrors = bb.fetch2.mirror_from_string(self.mirrorvar)
uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
self.assertEqual(uris, ['file:///somepath/downloads/bitbake-1.0.tar.gz', 'file:///someotherpath/downloads/bitbake-1.0.tar.gz'])
def test_urilist2(self):
# Catch https:// -> files:// bug
fetcher = bb.fetch.FetchData("https://downloads.yoctoproject.org/releases/bitbake/bitbake-1.0.tar.gz", self.d)
mirrors = bb.fetch2.mirror_from_string(self.mirrorvar)
uris, uds = bb.fetch2.build_mirroruris(fetcher, mirrors, self.d)
self.assertEqual(uris, ['file:///someotherpath/downloads/bitbake-1.0.tar.gz'])
class URLHandle(unittest.TestCase):
datatable = {
"http://www.google.com/index.html" : ('http', 'www.google.com', '/index.html', '', '', {}),
"cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', '', {'module': 'familiar/dist/ipkg'}),
"cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg" : ('cvs', 'cvs.handhelds.org', '/cvs', 'anoncvs', 'anonymous', {'tag': 'V0-99-81', 'module': 'familiar/dist/ipkg'})
}
def test_decodeurl(self):
for k, v in self.datatable.items():
result = bb.fetch.decodeurl(k)
self.assertEqual(result, v)
def test_encodeurl(self):
for k, v in self.datatable.items():
result = bb.fetch.encodeurl(v)
self.assertEqual(result, k)

View File

@@ -0,0 +1,36 @@
#
# BitBake Tests for utils.py
#
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
import unittest
import bb
class VerCmpString(unittest.TestCase):
def test_vercmpstring(self):
result = bb.utils.vercmp_string('1', '2')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('2', '1')
self.assertTrue(result > 0)
result = bb.utils.vercmp_string('1', '1.0')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1', '1.1')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1.1', '1_p2')
self.assertTrue(result < 0)

View File

@@ -23,11 +23,13 @@
import gtk
import pango
import gobject
import bb.process
from bb.ui.crumbs.progressbar import HobProgressBar
from bb.ui.crumbs.hobwidget import hic, HobNotebook, HobAltButton, HobWarpCellRendererText
from bb.ui.crumbs.hobwidget import hic, HobNotebook, HobAltButton, HobWarpCellRendererText, HobButton
from bb.ui.crumbs.runningbuild import RunningBuildTreeView
from bb.ui.crumbs.runningbuild import BuildFailureTreeView
from bb.ui.crumbs.hobpages import HobPage
from bb.ui.crumbs.hobcolor import HobColors
class BuildConfigurationTreeView(gtk.TreeView):
def __init__ (self):
@@ -81,26 +83,25 @@ class BuildConfigurationTreeView(gtk.TreeView):
# renew the tree model after get the configuration messages
self.set_model(listmodel)
def show(self, src_config_info):
def show(self, src_config_info, src_params):
vars = []
vars.append(self.set_vars("BB version:", src_config_info.bb_version))
vars.append(self.set_vars("Target arch:", src_config_info.target_arch))
vars.append(self.set_vars("Target OS:", src_config_info.target_os))
vars.append(self.set_vars("BB version:", src_params.bb_version))
vars.append(self.set_vars("Target arch:", src_params.target_arch))
vars.append(self.set_vars("Target OS:", src_params.target_os))
vars.append(self.set_vars("Machine:", src_config_info.curr_mach))
vars.append(self.set_vars("Distro:", src_config_info.curr_distro))
vars.append(self.set_vars("Distro version:", src_config_info.distro_version))
vars.append(self.set_vars("Distro version:", src_params.distro_version))
vars.append(self.set_vars("SDK machine:", src_config_info.curr_sdk_machine))
vars.append(self.set_vars("Tune feature:", src_config_info.tune_pkgarch))
vars.append(self.set_vars("Tune features:", src_params.tune_pkgarch))
vars.append(self.set_vars("Layers:", src_config_info.layers))
for path in src_config_info.layers:
import os, os.path
if os.path.exists(path):
f = os.popen('cd %s; git branch 2>&1 | grep "^* " | tr -d "* "' % path)
if f:
branch = f.readline().lstrip('\n').rstrip('\n')
branch = bb.process.run('cd %s; git branch | grep "^* " | tr -d "* "' % path)[0]
if branch:
branch = branch.strip('\n')
vars.append(self.set_vars("Branch:", branch))
f.close()
break
self.set_config_model(vars)
@@ -144,7 +145,7 @@ class BuildDetailsPage (HobPage):
self.scrolled_view_config = gtk.ScrolledWindow ()
self.scrolled_view_config.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
self.scrolled_view_config.add(self.config_tv)
self.notebook.append_page(self.scrolled_view_config, gtk.Label("Build configuration"))
self.notebook.append_page(self.scrolled_view_config, "Build configuration")
self.failure_tv = BuildFailureTreeView()
self.failure_model = self.builder.handler.build.model.failure_model()
@@ -152,14 +153,14 @@ class BuildDetailsPage (HobPage):
self.scrolled_view_failure = gtk.ScrolledWindow ()
self.scrolled_view_failure.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
self.scrolled_view_failure.add(self.failure_tv)
self.notebook.append_page(self.scrolled_view_failure, gtk.Label("Issues"))
self.notebook.append_page(self.scrolled_view_failure, "Issues")
self.build_tv = RunningBuildTreeView(readonly=True, hob=True)
self.build_tv.set_model(self.builder.handler.build.model)
self.scrolled_view_build = gtk.ScrolledWindow ()
self.scrolled_view_build.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
self.scrolled_view_build.add(self.build_tv)
self.notebook.append_page(self.scrolled_view_build, gtk.Label("Log"))
self.notebook.append_page(self.scrolled_view_build, "Log")
self.builder.handler.build.model.connect_after("row-changed", self.scroll_to_present_row, self.scrolled_view_build.get_vadjustment(), self.build_tv)
@@ -198,6 +199,87 @@ class BuildDetailsPage (HobPage):
for child in children:
self.remove(child)
def update_failures_sum_display(self):
num = 0
it = self.failure_model.get_iter_first()
while it:
color = self.failure_model.get_value(it, self.builder.handler.build.model.COL_COLOR)
if color == HobColors.ERROR:
num += 1
it = self.failure_model.iter_next(it)
return num
def add_build_fail_top_bar(self, actions):
mainly_action = "Edit %s" % actions
if 'image' in actions:
next_action = ""
else:
next_action = "Create new image"
#set to issue page
self.notebook.set_page("Issues")
color = HobColors.ERROR
build_fail_top = gtk.EventBox()
build_fail_top.set_size_request(-1, 260)
build_fail_top.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
build_fail_tab = gtk.Table(7, 40, True)
build_fail_top.add(build_fail_tab)
icon = gtk.Image()
icon_pix_buffer = gtk.gdk.pixbuf_new_from_file(hic.ICON_INDI_ERROR_FILE)
icon.set_from_pixbuf(icon_pix_buffer)
build_fail_tab.attach(icon, 1, 4, 0, 3)
label = gtk.Label()
label.set_alignment(0.0, 0.5)
label.set_markup("<span size='x-large'>%s</span>" % self.title)
build_fail_tab.attach(label, 4, 20, 0, 3)
label = gtk.Label()
label.set_alignment(0.0, 0.5)
num_of_fails = self.update_failures_sum_display()
current_fail, recipe_task_status = self.task_status.get_text().split('\n')
label.set_markup(" %d tasks failed, %s, %s" % (num_of_fails, current_fail, recipe_task_status))
build_fail_tab.attach(label, 4, 40, 2, 4)
# create button 'Edit packages'
action_button = HobButton(mainly_action)
action_button.set_size_request(-1, 49)
action_button.connect('clicked', self.failure_main_action_button_clicked_cb, mainly_action)
build_fail_tab.attach(action_button, 4, 16, 4, 6)
if next_action:
next_button = HobAltButton(next_action)
next_button.set_alignment(0.0, 0.5)
next_button.connect('clicked', self.failure_next_action_button_clicked_cb, next_action)
build_fail_tab.attach(next_button, 17, 24, 4, 5)
file_bug_button = HobAltButton('File a bug')
file_bug_button.set_alignment(0.0, 0.5)
file_bug_button.connect('clicked', self.failure_file_bug_activate_link_cb)
build_fail_tab.attach(file_bug_button, 17, 24, 4 + abs(next_action != ""), 6)
return build_fail_top
def show_fail_page(self, title, action_names):
self._remove_all_widget()
self.title = "Hob cannot build your %s" % title
self.build_fail_bar = self.add_build_fail_top_bar(action_names)
self.pack_start(self.build_fail_bar)
self.pack_start(self.group_align, expand=True, fill=True)
self.box_group_area.pack_start(self.vbox, expand=True, fill=True)
self.vbox.pack_start(self.notebook, expand=True, fill=True)
self.box_group_area.pack_end(self.button_box, expand=False, fill=False)
self.show_all()
self.back_button.hide()
def show_page(self, step):
self._remove_all_widget()
if step == self.builder.PACKAGE_GENERATING or step == self.builder.FAST_IMAGE_GENERATING:
@@ -238,6 +320,7 @@ class BuildDetailsPage (HobPage):
self.builder.stop_build()
def hide_stop_button(self):
self.stop_button.set_sensitive(False)
self.stop_button.hide()
def scroll_to_present_row(self, model, path, iter, v_adj, treeview):
@@ -248,5 +331,20 @@ class BuildDetailsPage (HobPage):
if (v_adj.upper <= v_adj.page_size) or (v_adj.value == v_adj.upper - v_adj.page_size):
treeview.scroll_to_cell(path)
def show_configurations(self, configurations):
self.config_tv.show(configurations)
def show_configurations(self, configurations, params):
self.config_tv.show(configurations, params)
def failure_main_action_button_clicked_cb(self, button, action):
if "Edit recipes" in action:
self.builder.show_recipes()
elif "Edit packages" in action:
self.builder.show_packages()
elif "Edit image configuration" in action:
self.builder.show_configuration()
def failure_next_action_button_clicked_cb(self, button, action):
if "Create new image" in action:
self.builder.initiate_new_build_async()
def failure_file_bug_activate_link_cb(self, button):
button.child.emit('activate-link', "http://bugzilla.yoctoproject.org")

View File

@@ -26,62 +26,127 @@ import copy
import os
import subprocess
import shlex
import re
from bb.ui.crumbs.template import TemplateMgr
from bb.ui.crumbs.imageconfigurationpage import ImageConfigurationPage
from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
from bb.ui.crumbs.builddetailspage import BuildDetailsPage
from bb.ui.crumbs.imagedetailspage import ImageDetailsPage
from bb.ui.crumbs.hobwidget import hwc, HobButton, HobAltButton
from bb.ui.crumbs.hobwidget import hwc, HobButton, HobAltButton, hcc
from bb.ui.crumbs.hig import CrumbsMessageDialog, ImageSelectionDialog, \
AdvancedSettingDialog, LayerSelectionDialog, \
DeployImageDialog
from bb.ui.crumbs.persistenttooltip import PersistentTooltip
import bb.ui.crumbs.utils
hobVer = 20120530
class Configuration:
'''Represents the data structure of configuration.'''
def __init__(self, params):
# Settings
@classmethod
def parse_proxy_string(cls, proxy):
pattern = "^\s*((http|https|ftp|git|cvs)://)?((\S+):(\S+)@)?(\S+):(\d+)/?"
match = re.search(pattern, proxy)
if match:
return match.group(2), match.group(4), match.group(5), match.group(6), match.group(7)
else:
return None, None, None, "", ""
@classmethod
def make_host_string(cls, prot, user, passwd, host, default_prot=""):
if host == None or host == "":
return ""
passwd = passwd or ""
if user != None and user != "":
if prot == None or prot == "":
prot = default_prot
return prot + "://" + user + ":" + passwd + "@" + host
else:
if prot == None or prot == "":
return host
else:
return prot + "://" + host
@classmethod
def make_port_string(cls, port):
port = port or ""
return port
@classmethod
def make_proxy_string(cls, prot, user, passwd, host, port, default_prot=""):
if host == None or host == "" or port == None or port == "":
return ""
return Configuration.make_host_string(prot, user, passwd, host, default_prot) + ":" + Configuration.make_port_string(port)
def __init__(self):
self.curr_mach = ""
self.curr_distro = params["distro"]
self.dldir = params["dldir"]
self.sstatedir = params["sstatedir"]
self.sstatemirror = params["sstatemirror"]
self.pmake = int(params["pmake"].split()[1])
self.bbthread = params["bbthread"]
self.curr_package_format = " ".join(params["pclass"].split("package_")).strip()
self.image_rootfs_size = params["image_rootfs_size"]
self.image_extra_size = params["image_extra_size"]
self.image_overhead_factor = params['image_overhead_factor']
self.incompat_license = params["incompat_license"]
self.curr_sdk_machine = params["sdk_machine"]
self.conf_version = params["conf_version"]
self.lconf_version = params["lconf_version"]
# settings
self.curr_distro = ""
self.dldir = self.sstatedir = self.sstatemirror = ""
self.pmake = self.bbthread = 0
self.curr_package_format = ""
self.image_rootfs_size = self.image_extra_size = 0
self.image_overhead_factor = 1
self.incompat_license = ""
self.curr_sdk_machine = ""
self.conf_version = self.lconf_version = ""
self.extra_setting = {}
self.toolchain_build = False
self.image_fstypes = params["image_fstypes"]
self.image_fstypes = ""
# bblayers.conf
self.layers = params["layer"].split()
self.layers = []
# image/recipes/packages
self.clear_selection()
self.user_selected_packages = []
self.default_task = "build"
# proxy settings
self.enable_proxy = None
self.same_proxy = False
self.proxies = {
"http" : [None, None, None, "", ""], # protocol : [prot, user, passwd, host, port]
"https" : [None, None, None, "", ""],
"ftp" : [None, None, None, "", ""],
"git" : [None, None, None, "", ""],
"cvs" : [None, None, None, "", ""],
}
def clear_selection(self):
self.selected_image = None
self.selected_recipes = []
self.selected_packages = []
self.user_selected_packages = []
def split_proxy(self, protocol, proxy):
entry = []
prot, user, passwd, host, port = Configuration.parse_proxy_string(proxy)
entry.append(prot)
entry.append(user)
entry.append(passwd)
entry.append(host)
entry.append(port)
self.proxies[protocol] = entry
# proxy settings
self.all_proxy = params["all_proxy"]
self.http_proxy = params["http_proxy"]
self.ftp_proxy = params["ftp_proxy"]
self.https_proxy = params["https_proxy"]
self.git_proxy_host = params["git_proxy_host"]
self.git_proxy_port = params["git_proxy_port"]
self.cvs_proxy_host = params["cvs_proxy_host"]
self.cvs_proxy_port = params["cvs_proxy_port"]
def combine_proxy(self, protocol):
entry = self.proxies[protocol]
return Configuration.make_proxy_string(entry[0], entry[1], entry[2], entry[3], entry[4], protocol)
def combine_host_only(self, protocol):
entry = self.proxies[protocol]
return Configuration.make_host_string(entry[0], entry[1], entry[2], entry[3], protocol)
def combine_port_only(self, protocol):
entry = self.proxies[protocol]
return Configuration.make_port_string(entry[4])
def update(self, params):
# settings
self.curr_distro = params["distro"]
self.dldir = params["dldir"]
self.sstatedir = params["sstatedir"]
@@ -97,14 +162,20 @@ class Configuration:
self.conf_version = params["conf_version"]
self.lconf_version = params["lconf_version"]
self.image_fstypes = params["image_fstypes"]
self.tune_arch = params["tune_arch"]
self.bb_version = params["bb_version"]
self.target_arch = params["target_arch"]
self.target_os = params["target_os"]
self.distro_version = params["distro_version"]
self.tune_pkgarch = params["tune_pkgarch"]
# self.extra_setting/self.toolchain_build
# bblayers.conf
self.layers = params["layer"].split()
self.default_task = params["default_task"]
# proxy settings
self.enable_proxy = params["http_proxy"] != "" or params["https_proxy"] != "" or params["ftp_proxy"] != "" \
or params["git_proxy_host"] != "" or params["git_proxy_port"] != "" \
or params["cvs_proxy_host"] != "" or params["cvs_proxy_port"] != ""
self.split_proxy("http", params["http_proxy"])
self.split_proxy("https", params["https_proxy"])
self.split_proxy("ftp", params["ftp_proxy"])
self.split_proxy("git", params["git_proxy_host"] + ":" + params["git_proxy_port"])
self.split_proxy("cvs", params["cvs_proxy_host"] + ":" + params["cvs_proxy_port"])
def load(self, template):
self.curr_mach = template.getVar("MACHINE")
@@ -144,20 +215,21 @@ class Configuration:
self.selected_recipes = template.getVar("DEPENDS").split()
self.selected_packages = template.getVar("IMAGE_INSTALL").split()
# proxy
self.all_proxy = template.getVar("all_proxy")
self.http_proxy = template.getVar("http_proxy")
self.ftp_proxy = template.getVar("ftp_proxy")
self.https_proxy = template.getVar("https_proxy")
self.git_proxy_host = template.getVar("GIT_PROXY_HOST")
self.git_proxy_port = template.getVar("GIT_PROXY_PORT")
self.cvs_proxy_host = template.getVar("CVS_PROXY_HOST")
self.cvs_proxy_port = template.getVar("CVS_PROXY_PORT")
self.enable_proxy = eval(template.getVar("enable_proxy"))
self.same_proxy = eval(template.getVar("use_same_proxy"))
self.split_proxy("http", template.getVar("http_proxy"))
self.split_proxy("https", template.getVar("https_proxy"))
self.split_proxy("ftp", template.getVar("ftp_proxy"))
self.split_proxy("git", template.getVar("GIT_PROXY_HOST") + ":" + template.getVar("GIT_PROXY_PORT"))
self.split_proxy("cvs", template.getVar("CVS_PROXY_HOST") + ":" + template.getVar("CVS_PROXY_PORT"))
def save(self, template, filename):
def save(self, template, defaults=False):
template.setVar("VERSION", "%s" % hobVer)
# bblayers.conf
template.setVar("BBLAYERS", " ".join(self.layers))
# local.conf
template.setVar("MACHINE", self.curr_mach)
if not defaults:
template.setVar("MACHINE", self.curr_mach)
template.setVar("DISTRO", self.curr_distro)
template.setVar("DL_DIR", self.dldir)
template.setVar("SSTATE_DIR", self.sstatedir)
@@ -174,41 +246,94 @@ class Configuration:
template.setVar("EXTRA_SETTING", self.extra_setting)
template.setVar("TOOLCHAIN_BUILD", self.toolchain_build)
template.setVar("IMAGE_FSTYPES", self.image_fstypes)
# image/recipes/packages
self.selected_image = filename
template.setVar("__SELECTED_IMAGE__", self.selected_image)
template.setVar("DEPENDS", self.selected_recipes)
template.setVar("IMAGE_INSTALL", self.user_selected_packages)
if not defaults:
# image/recipes/packages
template.setVar("__SELECTED_IMAGE__", self.selected_image)
template.setVar("DEPENDS", self.selected_recipes)
template.setVar("IMAGE_INSTALL", self.user_selected_packages)
# proxy
template.setVar("all_proxy", self.all_proxy)
template.setVar("http_proxy", self.http_proxy)
template.setVar("ftp_proxy", self.ftp_proxy)
template.setVar("https_proxy", self.https_proxy)
template.setVar("GIT_PROXY_HOST", self.git_proxy_host)
template.setVar("GIT_PROXY_PORT", self.git_proxy_port)
template.setVar("CVS_PROXY_HOST", self.cvs_proxy_host)
template.setVar("CVS_PROXY_PORT", self.cvs_proxy_port)
template.setVar("enable_proxy", self.enable_proxy)
template.setVar("use_same_proxy", self.same_proxy)
template.setVar("http_proxy", self.combine_proxy("http"))
template.setVar("https_proxy", self.combine_proxy("https"))
template.setVar("ftp_proxy", self.combine_proxy("ftp"))
template.setVar("GIT_PROXY_HOST", self.combine_host_only("git"))
template.setVar("GIT_PROXY_PORT", self.combine_port_only("git"))
template.setVar("CVS_PROXY_HOST", self.combine_host_only("cvs"))
template.setVar("CVS_PROXY_PORT", self.combine_port_only("cvs"))
class Parameters:
'''Represents other variables like available machines, etc.'''
def __init__(self, params):
def __init__(self):
# Variables
self.max_threads = 65535
self.core_base = ""
self.image_addr = ""
self.image_types = []
self.runnable_image_types = []
self.runnable_machine_patterns = []
self.deployable_image_types = []
self.tmpdir = ""
self.all_machines = []
self.all_package_formats = []
self.all_distros = []
self.all_sdk_machines = []
self.max_threads = params["max_threads"]
self.all_layers = []
self.core_base = params["core_base"]
self.image_names = []
self.image_white_pattern = ""
self.image_black_pattern = ""
# for build log to show
self.bb_version = ""
self.target_arch = ""
self.target_os = ""
self.distro_version = ""
self.tune_pkgarch = ""
def update(self, params):
self.max_threads = params["max_threads"]
self.core_base = params["core_base"]
self.image_addr = params["image_addr"]
self.image_types = params["image_types"].split()
self.runnable_image_types = params["runnable_image_types"].split()
self.runnable_machine_patterns = params["runnable_machine_patterns"].split()
self.deployable_image_types = params["deployable_image_types"].split()
self.tmpdir = params["tmpdir"]
self.enable_proxy = False
self.image_white_pattern = params["image_white_pattern"]
self.image_black_pattern = params["image_black_pattern"]
self.kernel_image_type = params["kernel_image_type"]
# for build log to show
self.bb_version = params["bb_version"]
self.target_arch = params["target_arch"]
self.target_os = params["target_os"]
self.distro_version = params["distro_version"]
self.tune_pkgarch = params["tune_pkgarch"]
def hob_conf_filter(fn, data):
if fn.endswith("/local.conf"):
distro = data.getVar("DISTRO_HOB")
if distro:
if distro != "defaultsetup":
data.setVar("DISTRO", distro)
else:
data.delVar("DISTRO")
keys = ["MACHINE_HOB", "SDKMACHINE_HOB", "PACKAGE_CLASSES_HOB", \
"BB_NUMBER_THREADS_HOB", "PARALLEL_MAKE_HOB", "DL_DIR_HOB", \
"SSTATE_DIR_HOB", "SSTATE_MIRROR_HOB", "INCOMPATIBLE_LICENSE_HOB"]
for key in keys:
var_hob = data.getVar(key)
if var_hob:
data.setVar(key.split("_HOB")[0], var_hob)
return
if fn.endswith("/bblayers.conf"):
layers = data.getVar("BBLAYERS_HOB")
if layers:
data.setVar("BBLAYERS", layers)
return
class Builder(gtk.Window):
@@ -250,6 +375,15 @@ class Builder(gtk.Window):
END_NOOP : None,
}
@classmethod
def interpret_markup(cls, msg):
msg = msg.replace('&', '&amp;')
msg = msg.replace('<', '&lt;')
msg = msg.replace('>', '&gt;')
msg = msg.replace('"', '&quot;')
msg = msg.replace("'", "&acute;")
return msg
def __init__(self, hobHandler, recipe_model, package_model):
super(Builder, self).__init__()
@@ -261,6 +395,10 @@ class Builder(gtk.Window):
self.template = None
# configuration and parameters
self.configuration = Configuration()
self.parameters = Parameters()
# build step
self.current_step = None
self.previous_step = None
@@ -274,6 +412,9 @@ class Builder(gtk.Window):
# Indicate whether user has customized the image
self.customized = False
# Indicate whether the UI is working
self.sensitive = True
# create visual elements
self.create_visual_elements()
@@ -291,10 +432,16 @@ class Builder(gtk.Window):
self.handler.build.connect("build-failed", self.handler_build_failed_cb)
self.handler.build.connect("task-started", self.handler_task_started_cb)
self.handler.build.connect("log-error", self.handler_build_failure_cb)
self.handler.build.connect("no-provider", self.handler_no_provider_cb)
self.handler.connect("generating-data", self.handler_generating_data_cb)
self.handler.connect("data-generated", self.handler_data_generated_cb)
self.handler.connect("command-succeeded", self.handler_command_succeeded_cb)
self.handler.connect("command-failed", self.handler_command_failed_cb)
self.handler.connect("sanity-failed", self.handler_sanity_failed_cb)
self.handler.connect("recipe-populated", self.handler_recipe_populated_cb)
self.handler.connect("package-populated", self.handler_package_populated_cb)
self.handler.set_config_filter(hob_conf_filter)
self.initiate_new_build_async()
@@ -334,14 +481,18 @@ class Builder(gtk.Window):
def initiate_new_build_async(self):
self.switch_page(self.MACHINE_SELECTION)
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.handler.parse_config()
if self.load_template(TemplateMgr.convert_to_template_pathfilename("default", ".hob/")) == False:
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.handler.generate_configuration()
def update_config_async(self):
self.switch_page(self.MACHINE_SELECTION)
self.set_user_config()
self.handler.parse_generate_configuration()
self.handler.generate_configuration()
def sanity_check(self):
self.handler.trigger_sanity_check()
def populate_recipe_package_info_async(self):
self.switch_page(self.RCPPKGINFO_POPULATING)
@@ -355,7 +506,7 @@ class Builder(gtk.Window):
_, all_recipes = self.recipe_model.get_selected_recipes()
self.set_user_config()
self.handler.reset_build()
self.handler.generate_packages(all_recipes)
self.handler.generate_packages(all_recipes, self.configuration.default_task)
def fast_generate_image_async(self):
self.switch_page(self.FAST_IMAGE_GENERATING)
@@ -363,21 +514,27 @@ class Builder(gtk.Window):
_, all_recipes = self.recipe_model.get_selected_recipes()
self.set_user_config()
self.handler.reset_build()
self.handler.generate_packages(all_recipes)
self.handler.generate_packages(all_recipes, self.configuration.default_task)
def generate_image_async(self):
self.switch_page(self.IMAGE_GENERATING)
self.handler.reset_build()
# Build image
self.set_user_config()
packages = self.package_model.get_selected_packages()
toolchain_packages = []
if self.configuration.toolchain_build:
toolchain_packages = self.package_model.get_selected_packages_toolchain()
self.handler.reset_build()
self.handler.generate_image(packages,
self.hob_image,
if self.configuration.selected_image == self.recipe_model.__custom_image__:
packages = self.package_model.get_selected_packages()
image = self.hob_image
else:
packages = []
image = self.configuration.selected_image
self.handler.generate_image(image,
self.hob_toolchain,
toolchain_packages)
packages,
toolchain_packages,
self.configuration.default_task)
def get_parameters_sync(self):
return self.handler.get_parameters()
@@ -388,27 +545,40 @@ class Builder(gtk.Window):
def cancel_build_sync(self, force=False):
self.handler.cancel_build(force)
def generate_configuration_async(self):
self.handler.generate_configuration()
def cancel_parse_sync(self):
self.handler.cancel_parse()
def load_template(self, path):
if not os.path.isfile(path):
return False
self.template = TemplateMgr()
self.template.load(path)
self.configuration.load(self.template)
# check compatibility
tempVer = self.template.getVersion(path)
if not tempVer or int(tempVer) < hobVer:
self.template.destroy()
self.template = None
return False
try:
self.template.load(path)
self.configuration.load(self.template)
except Exception as e:
self.show_error_dialog("Hob Exception - %s" % (str(e)))
self.reset()
finally:
self.template.destroy()
self.template = None
for layer in self.configuration.layers:
if not os.path.exists(layer+'/conf/layer.conf'):
return False
self.save_defaults() # remember layers and settings
self.update_config_async()
return True
self.template.destroy()
self.template = None
def save_template(self, path):
def save_template(self, path, defaults=False):
if path.rfind("/") == -1:
filename = "default"
path = "."
@@ -417,12 +587,22 @@ class Builder(gtk.Window):
path = path[0:path.rfind("/")]
self.template = TemplateMgr()
self.template.open(filename, path)
self.configuration.save(self.template, filename)
try:
self.template.open(filename, path)
self.configuration.save(self.template, defaults)
self.template.save()
self.template.destroy()
self.template = None
self.template.save()
except Exception as e:
self.show_error_dialog("Hob Exception - %s" % (str(e)))
self.reset()
finally:
self.template.destroy()
self.template = None
def save_defaults(self):
if not os.path.exists(".hob/"):
os.mkdir(".hob/")
self.save_template(".hob/default", True)
def switch_page(self, next_step):
# Main Workflow (Business Logic)
@@ -491,13 +671,18 @@ class Builder(gtk.Window):
self.handler.set_extra_inherit("packageinfo")
self.handler.set_extra_inherit("image_types")
# set proxies
if self.parameters.enable_proxy:
self.handler.set_http_proxy(self.configuration.http_proxy)
self.handler.set_https_proxy(self.configuration.https_proxy)
self.handler.set_ftp_proxy(self.configuration.ftp_proxy)
self.handler.set_all_proxy(self.configuration.all_proxy)
self.handler.set_git_proxy(self.configuration.git_proxy_host, self.configuration.git_proxy_port)
self.handler.set_cvs_proxy(self.configuration.cvs_proxy_host, self.configuration.cvs_proxy_port)
if self.configuration.enable_proxy == True:
self.handler.set_http_proxy(self.configuration.combine_proxy("http"))
self.handler.set_https_proxy(self.configuration.combine_proxy("https"))
self.handler.set_ftp_proxy(self.configuration.combine_proxy("ftp"))
self.handler.set_git_proxy(self.configuration.combine_host_only("git"), self.configuration.combine_port_only("git"))
self.handler.set_cvs_proxy(self.configuration.combine_host_only("cvs"), self.configuration.combine_port_only("cvs"))
elif self.configuration.enable_proxy == False:
self.handler.set_http_proxy("")
self.handler.set_https_proxy("")
self.handler.set_ftp_proxy("")
self.handler.set_git_proxy("", "")
self.handler.set_cvs_proxy("", "")
def update_recipe_model(self, selected_image, selected_recipes):
self.recipe_model.set_selected_image(selected_image)
@@ -507,6 +692,17 @@ class Builder(gtk.Window):
left = self.package_model.set_selected_packages(selected_packages)
self.configuration.selected_packages += left
def update_configuration_parameters(self, params):
if params:
self.configuration.update(params)
self.parameters.update(params)
def reset(self):
self.configuration.curr_mach = ""
self.configuration.clear_selection()
self.image_configuration_page.switch_machine_combo()
self.switch_page(self.MACHINE_SELECTION)
# Callback Functions
def handler_config_updated_cb(self, handler, which, values):
if which == "distro":
@@ -521,21 +717,15 @@ class Builder(gtk.Window):
self.parameters.all_package_formats = formats
def handler_command_succeeded_cb(self, handler, initcmd):
if initcmd == self.handler.PARSE_CONFIG:
# settings
params = self.get_parameters_sync()
self.configuration = Configuration(params)
self.parameters = Parameters(params)
self.generate_configuration_async()
elif initcmd == self.handler.GENERATE_CONFIGURATION:
params = self.get_parameters_sync()
self.configuration.update(params)
if initcmd == self.handler.GENERATE_CONFIGURATION:
self.update_configuration_parameters(self.get_parameters_sync())
self.sanity_check()
elif initcmd == self.handler.SANITY_CHECK:
self.image_configuration_page.switch_machine_combo()
elif initcmd in [self.handler.GENERATE_RECIPES,
self.handler.GENERATE_PACKAGES,
self.handler.GENERATE_IMAGE]:
params = self.get_parameters_sync()
self.configuration.update(params)
self.update_configuration_parameters(self.get_parameters_sync())
self.request_package_info_async()
elif initcmd == self.handler.POPULATE_PACKAGEINFO:
if self.current_step == self.RCPPKGINFO_POPULATING:
@@ -546,28 +736,31 @@ class Builder(gtk.Window):
self.rcppkglist_populated()
if self.current_step == self.FAST_IMAGE_GENERATING:
self.generate_image_async()
elif self.current_step == self.PACKAGE_GENERATING:
self.switch_page(self.PACKAGE_GENERATED)
elif self.current_step == self.IMAGE_GENERATING:
self.switch_page(self.IMAGE_GENERATED)
def show_error_dialog(self, msg):
lbl = "<b>Error</b>\n"
lbl = lbl + "%s\n\n" % Builder.interpret_markup(msg)
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
response = dialog.run()
dialog.destroy()
def handler_command_failed_cb(self, handler, msg):
if msg:
msg = msg.replace("your local.conf", "Settings")
lbl = "<b>Error</b>\n"
lbl = lbl + "%s\n\n" % msg
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
response = dialog.run()
dialog.destroy()
self.configuration.curr_mach = ""
self.image_configuration_page.switch_machine_combo()
self.switch_page(self.MACHINE_SELECTION)
self.show_error_dialog(msg)
self.reset()
def handler_sanity_failed_cb(self, handler, msg):
msg = msg.replace("your local.conf", "Settings")
self.show_error_dialog(msg)
self.reset()
def window_sensitive(self, sensitive):
self.image_configuration_page.machine_combo.set_sensitive(sensitive)
self.image_configuration_page.machine_combo.child.set_sensitive(sensitive)
self.image_configuration_page.image_combo.set_sensitive(sensitive)
self.image_configuration_page.image_combo.child.set_sensitive(sensitive)
self.image_configuration_page.layer_button.set_sensitive(sensitive)
self.image_configuration_page.layer_info_icon.set_sensitive(sensitive)
self.image_configuration_page.toolbar.set_sensitive(sensitive)
@@ -584,6 +777,7 @@ class Builder(gtk.Window):
self.get_root_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.LEFT_PTR))
else:
self.get_root_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
self.sensitive = sensitive
def handler_generating_data_cb(self, handler):
@@ -597,12 +791,8 @@ class Builder(gtk.Window):
selected_recipes = self.configuration.selected_recipes[:]
selected_packages = self.configuration.selected_packages[:]
self.recipe_model.image_list_append(selected_image,
" ".join(selected_recipes),
" ".join(selected_packages))
self.image_configuration_page.update_image_combo(self.recipe_model, selected_image)
self.image_configuration_page.update_image_desc(selected_image)
self.image_configuration_page.update_image_desc()
self.update_recipe_model(selected_image, selected_recipes)
self.update_package_model(selected_packages)
@@ -612,6 +802,12 @@ class Builder(gtk.Window):
def packagelist_changed_cb(self, package_model):
self.package_details_page.refresh_selection()
def handler_recipe_populated_cb(self, handler):
self.image_configuration_page.update_progress_bar("Populated recipes", 0.99)
def handler_package_populated_cb(self, handler):
self.image_configuration_page.update_progress_bar("Populated packages", 1.0)
def handler_parsing_started_cb(self, handler, message):
if self.current_step != self.RCPPKGINFO_POPULATING:
return
@@ -631,7 +827,7 @@ class Builder(gtk.Window):
fraction = message["current"] * 1.0/message["total"]
if message["eventname"] == "TreeDataPreparationProgress":
fraction = 0.6 + 0.4 * fraction
fraction = 0.6 + 0.38 * fraction
else:
fraction = 0.6 * fraction
self.image_configuration_page.update_progress_bar(message["title"], fraction)
@@ -641,7 +837,7 @@ class Builder(gtk.Window):
return
if message["eventname"] == "TreeDataPreparationCompleted":
fraction = 1.0
fraction = 0.98
else:
fraction = 0.6
self.image_configuration_page.update_progress_bar(message["title"], fraction)
@@ -657,7 +853,7 @@ class Builder(gtk.Window):
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 0
self.build_details_page.update_progress_bar("Build Started: ", fraction)
self.build_details_page.show_configurations(self.configuration)
self.build_details_page.show_configurations(self.configuration, self.parameters)
def build_succeeded(self):
if self.current_step == self.FAST_IMAGE_GENERATING:
@@ -665,29 +861,47 @@ class Builder(gtk.Window):
elif self.current_step == self.IMAGE_GENERATING:
fraction = 1.0
self.parameters.image_names = []
linkname = 'hob-image-' + self.configuration.curr_mach
selected_image = self.recipe_model.get_selected_image()
if selected_image == self.recipe_model.__custom_image__:
linkname = 'hob-image-' + self.configuration.curr_mach
else:
linkname = selected_image + '-' + self.configuration.curr_mach
for image_type in self.parameters.image_types:
linkpath = self.parameters.image_addr + '/' + linkname + '.' + image_type
if os.path.exists(linkpath):
self.parameters.image_names.append(os.readlink(linkpath))
for real_image_type in hcc.SUPPORTED_IMAGE_TYPES[image_type]:
linkpath = self.parameters.image_addr + '/' + linkname + '.' + real_image_type
if os.path.exists(linkpath):
self.parameters.image_names.append(os.readlink(linkpath))
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 1.0
self.build_details_page.update_progress_bar("Build Completed: ", fraction)
self.handler.build_succeeded_async()
self.stopping = False
if self.current_step == self.PACKAGE_GENERATING:
self.switch_page(self.PACKAGE_GENERATED)
elif self.current_step == self.IMAGE_GENERATING:
self.switch_page(self.IMAGE_GENERATED)
def build_failed(self):
if self.stopping:
status = "stop"
message = "Build stopped: "
fraction = self.build_details_page.progress_bar.get_fraction()
else:
fail_to_next_edit = ""
if self.current_step == self.FAST_IMAGE_GENERATING:
fail_to_next_edit = "image configuration"
fraction = 0.9
elif self.current_step == self.IMAGE_GENERATING:
if self.previous_step == self.FAST_IMAGE_GENERATING:
fail_to_next_edit = "image configuration"
else:
fail_to_next_edit = "packages"
fraction = 1.0
elif self.current_step == self.PACKAGE_GENERATING:
fail_to_next_edit = "recipes"
fraction = 1.0
self.build_details_page.show_fail_page(fail_to_next_edit.split(' ')[0], fail_to_next_edit)
status = "fail"
message = "Build failed: "
self.build_details_page.update_progress_bar(message, fraction, status)
@@ -706,6 +920,14 @@ class Builder(gtk.Window):
def handler_build_failed_cb(self, running_build):
self.build_failed()
def handler_no_provider_cb(self, running_build, msg):
dialog = CrumbsMessageDialog(self, Builder.interpret_markup(msg), gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
self.build_failed()
def handler_task_started_cb(self, running_build, message):
fraction = message["current"] * 1.0/message["total"]
title = "Build packages"
@@ -738,6 +960,8 @@ class Builder(gtk.Window):
self.build_details_page.show_issues()
def destroy_window_cb(self, widget, event):
if not self.sensitive:
return True
lbl = "<b>Do you really want to exit the Hob image creator?</b>"
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
@@ -784,7 +1008,7 @@ class Builder(gtk.Window):
selected_packages = self.package_model.get_selected_packages() or []
# If no base image and no selected packages don't build anything
if not (selected_packages or selected_image != self.recipe_model.__dummy_image__):
if not (selected_packages or selected_image != self.recipe_model.__custom_image__):
lbl = "<b>No selections made</b>\nYou have not made any selections"
lbl = lbl + " so there isn't anything to bake at this time."
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
@@ -798,7 +1022,7 @@ class Builder(gtk.Window):
def show_binb_dialog(self, binb):
markup = "<b>Brought in by:</b>\n%s" % binb
ptip = PersistentTooltip(markup)
ptip = PersistentTooltip(markup, self)
ptip.show()
@@ -817,6 +1041,7 @@ class Builder(gtk.Window):
response = dialog.run()
if response == gtk.RESPONSE_YES:
self.configuration.layers = dialog.layers
self.save_defaults() # remember layers
# DO refresh layers
if dialog.layers_changed:
self.update_config_async()
@@ -889,7 +1114,6 @@ class Builder(gtk.Window):
all_distros = self.parameters.all_distros,
all_sdk_machines = self.parameters.all_sdk_machines,
max_threads = self.parameters.max_threads,
enable_proxy = self.parameters.enable_proxy,
parent = self,
flags = gtk.DIALOG_MODAL
| gtk.DIALOG_DESTROY_WITH_PARENT
@@ -901,17 +1125,18 @@ class Builder(gtk.Window):
response = dialog.run()
settings_changed = False
if response == gtk.RESPONSE_YES:
self.parameters.enable_proxy = dialog.enable_proxy
self.configuration = dialog.configuration
self.save_defaults() # remember settings
settings_changed = dialog.settings_changed
dialog.destroy()
return response == gtk.RESPONSE_YES, settings_changed
def reparse_post_adv_settings(self):
# DO reparse recipes
if not self.configuration.curr_mach:
self.update_config_async()
else:
self.configuration.clear_selection()
# DO reparse recipes
self.populate_recipe_package_info_async()
def deploy_image(self, image_name):
@@ -938,16 +1163,7 @@ class Builder(gtk.Window):
response = dialog.run()
dialog.destroy()
def runqemu_image(self, image_name):
if not image_name:
lbl = "<b>Please select an image to launch in QEMU.</b>"
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
return
def show_load_kernel_dialog(self):
dialog = gtk.FileChooserDialog("Load Kernel Files", self,
gtk.FILE_CHOOSER_ACTION_SAVE)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
@@ -962,35 +1178,50 @@ class Builder(gtk.Window):
dialog.set_current_folder(self.parameters.image_addr)
response = dialog.run()
kernel_path = ""
if response == gtk.RESPONSE_YES:
kernel_path = dialog.get_filename()
image_path = os.path.join(self.parameters.image_addr, image_name)
dialog.destroy()
if response == gtk.RESPONSE_YES:
source_env_path = os.path.join(self.parameters.core_base, "oe-init-build-env")
tmp_path = self.parameters.tmpdir
cmdline = bb.ui.crumbs.utils.which_terminal()
if os.path.exists(image_path) and os.path.exists(kernel_path) \
and os.path.exists(source_env_path) and os.path.exists(tmp_path) \
and cmdline:
cmdline += "\' bash -c \"export OE_TMPDIR=" + tmp_path + "; "
cmdline += "source " + source_env_path + " " + os.getcwd() + "; "
cmdline += "runqemu " + kernel_path + " " + image_path + "\"\'"
subprocess.Popen(shlex.split(cmdline))
else:
lbl = "<b>Path error</b>\nOne of your paths is wrong,"
lbl = lbl + " please make sure the following paths exist:\n"
lbl = lbl + "image path:" + image_path + "\n"
lbl = lbl + "kernel path:" + kernel_path + "\n"
lbl = lbl + "source environment path:" + source_env_path + "\n"
lbl = lbl + "tmp path: " + tmp_path + "."
lbl = lbl + "You may be missing either xterm or vte for terminal services."
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
return kernel_path
def runqemu_image(self, image_name, kernel_name):
if not image_name or not kernel_name:
lbl = "<b>Please select an %s to launch in QEMU.</b>" % ("kernel" if image_name else "image")
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
return
kernel_path = os.path.join(self.parameters.image_addr, kernel_name)
image_path = os.path.join(self.parameters.image_addr, image_name)
source_env_path = os.path.join(self.parameters.core_base, "oe-init-build-env")
tmp_path = self.parameters.tmpdir
cmdline = bb.ui.crumbs.utils.which_terminal()
if os.path.exists(image_path) and os.path.exists(kernel_path) \
and os.path.exists(source_env_path) and os.path.exists(tmp_path) \
and cmdline:
cmdline += "\' bash -c \"export OE_TMPDIR=" + tmp_path + "; "
cmdline += "source " + source_env_path + " " + os.getcwd() + "; "
cmdline += "runqemu " + kernel_path + " " + image_path + "\"\'"
subprocess.Popen(shlex.split(cmdline))
else:
lbl = "<b>Path error</b>\nOne of your paths is wrong,"
lbl = lbl + " please make sure the following paths exist:\n"
lbl = lbl + "image path:" + image_path + "\n"
lbl = lbl + "kernel path:" + kernel_path + "\n"
lbl = lbl + "source environment path:" + source_env_path + "\n"
lbl = lbl + "tmp path: " + tmp_path + "."
lbl = lbl + "You may be missing either xterm or vte for terminal services."
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
def show_packages(self, ask=True):
_, selected_recipes = self.recipe_model.get_selected_recipes()

View File

@@ -20,17 +20,20 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import glob
import gtk
import gobject
import hashlib
import os
import re
import subprocess
import shlex
import subprocess
import tempfile
from bb.ui.crumbs.hobcolor import HobColors
from bb.ui.crumbs.hobwidget import hcc, hic, HobViewTable, HobInfoButton, HobButton, HobAltButton, HobIconChecker
from bb.ui.crumbs.progressbar import HobProgressBar
import bb.ui.crumbs.utils
import bb.process
"""
The following are convenience classes for implementing GNOME HIG compliant
@@ -63,7 +66,7 @@ class CrumbsMessageDialog(CrumbsDialog):
"""
def __init__(self, parent=None, label="", icon=gtk.STOCK_INFO):
super(CrumbsMessageDialog, self).__init__("", parent, gtk.DIALOG_DESTROY_WITH_PARENT)
self.set_border_width(6)
self.vbox.set_property("spacing", 12)
self.action_area.set_property("spacing", 12)
@@ -137,6 +140,8 @@ class AdvancedSettingDialog (CrumbsDialog):
def entry_widget_select_path_cb(self, action, parent, entry):
dialog = gtk.FileChooserDialog("", parent,
gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
text = entry.get_text()
dialog.set_current_folder(text if len(text) > 0 else os.getcwd())
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("Open", gtk.RESPONSE_YES)
@@ -172,6 +177,45 @@ class AdvancedSettingDialog (CrumbsDialog):
hbox.show_all()
return hbox, entry
def details_cb(self, button, parent, protocol):
dialog = ProxyDetailsDialog(title = protocol.upper() + " Proxy Details",
user = self.configuration.proxies[protocol][1],
passwd = self.configuration.proxies[protocol][2],
parent = parent,
flags = gtk.DIALOG_MODAL
| gtk.DIALOG_DESTROY_WITH_PARENT
| gtk.DIALOG_NO_SEPARATOR)
dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_OK)
response = dialog.run()
if response == gtk.RESPONSE_OK:
self.configuration.proxies[protocol][1] = dialog.user
self.configuration.proxies[protocol][2] = dialog.passwd
self.refresh_proxy_components()
dialog.destroy()
def gen_proxy_entry_widget(self, protocol, parent, need_button=True):
hbox = gtk.HBox(False, 12)
label = gtk.Label(protocol.upper() + " proxy")
hbox.pack_start(label, expand=True, fill=False, padding=24)
proxy_entry = gtk.Entry()
proxy_entry.set_size_request(300, -1)
hbox.pack_start(proxy_entry, expand=False, fill=False)
hbox.pack_start(gtk.Label(":"), expand=False, fill=False)
port_entry = gtk.Entry()
port_entry.set_size_request(60, -1)
hbox.pack_start(port_entry, expand=False, fill=False)
details_button = HobAltButton("Details")
details_button.connect("clicked", self.details_cb, parent, protocol)
hbox.pack_start(details_button, expand=False, fill=False)
hbox.show_all()
return hbox, proxy_entry, port_entry, details_button
def rootfs_combo_changed_cb(self, rootfs_combo, all_package_format, check_hbox):
combo_item = self.rootfs_combo.get_active_text()
for child in check_hbox.get_children():
@@ -309,7 +353,7 @@ class AdvancedSettingDialog (CrumbsDialog):
def __init__(self, title, configuration, all_image_types,
all_package_formats, all_distros, all_sdk_machines,
max_threads, enable_proxy, parent, flags, buttons=None):
max_threads, parent, flags, buttons=None):
super(AdvancedSettingDialog, self).__init__(title, parent, flags, buttons)
# class members from other objects
@@ -320,7 +364,6 @@ class AdvancedSettingDialog (CrumbsDialog):
self.all_distros = all_distros
self.all_sdk_machines = all_sdk_machines
self.max_threads = max_threads
self.enable_proxy = enable_proxy
# class members for internal use
self.distro_combo = None
@@ -356,6 +399,10 @@ class AdvancedSettingDialog (CrumbsDialog):
data += ("SDK_MACHINE: " + self._get_sorted_value(self.configuration.curr_sdk_machine))
data += ("TOOLCHAIN_BUILD: " + self._get_sorted_value(self.configuration.toolchain_build))
data += ("IMAGE_FSTYPES: " + self._get_sorted_value(self.configuration.image_fstypes))
data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy))
if self.configuration.enable_proxy:
for protocol in self.configuration.proxies.keys():
data += (protocol + ": " + self._get_sorted_value(self.configuration.combine_proxy(protocol)))
for key in self.configuration.extra_setting.keys():
data += (key + ": " + self._get_sorted_value(self.configuration.extra_setting[key]))
return hashlib.md5(data).hexdigest()
@@ -392,7 +439,10 @@ class AdvancedSettingDialog (CrumbsDialog):
j = 1
for image_type in self.image_types:
self.image_types_checkbuttons[image_type] = gtk.CheckButton(image_type)
self.image_types_checkbuttons[image_type].set_tooltip_text("Build an %s image" % image_type)
article = ""
if image_type.startswith(("a", "e", "i", "o", "u")):
article = "n"
self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type))
table.attach(self.image_types_checkbuttons[image_type], j, j + 4, i, i + 1)
if image_type in self.configuration.image_fstypes.split():
self.image_types_checkbuttons[image_type].set_active(True)
@@ -420,15 +470,15 @@ class AdvancedSettingDialog (CrumbsDialog):
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Image rootfs size: (MB)</span>")
tooltip = "Sets the basic size of your target image.\nThis is the basic size of your target image unless your selected package size exceeds this value or you select \'Image Extra Size\'."
rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 1024, tooltip)
rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 65536, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(rootfs_size_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Image extra size: (MB)</span>")
tooltip = "Sets the extra free space of your target image.\nBy default, the system reserves 30% of your image size as free space. If your image contains zypper, it brings in 50MB more space. The maximum free space is 1024MB."
extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 1024, tooltip)
tooltip = "Sets the extra free space of your target image.\nBy default, the system reserves 30% of your image size as free space. If your image contains zypper, it brings in 50MB more space. The maximum free space is 64GB."
extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 65536, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(extra_size_widget, expand=False, fill=False)
@@ -447,7 +497,7 @@ class AdvancedSettingDialog (CrumbsDialog):
self.toolchain_checkbox.set_active(self.configuration.toolchain_build)
sub_hbox.pack_start(self.toolchain_checkbox, expand=False, fill=False)
tooltip = "Selects the Host platform for which you want to run the toolchain"
tooltip = "Selects the host platform for which you want to run the toolchain"
sdk_machine_widget, self.sdk_machine_combo = self.gen_combo_widget(self.configuration.curr_sdk_machine, self.all_sdk_machines, tooltip)
sub_hbox.pack_start(sdk_machine_widget, expand=False, fill=False)
@@ -517,60 +567,56 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
self.proxy_checkbox = gtk.CheckButton("Enable proxy")
label = self.gen_label_widget("<span weight=\"bold\">Set the proxies that will be used during fetching source code</span>")
tooltip = "Set the proxies that will be used during fetching source code or set none for direct the Internet connection"
info = HobInfoButton(tooltip, self)
hbox = gtk.HBox(False, 12)
hbox.pack_start(label, expand=True, fill=True)
hbox.pack_start(info, expand=False, fill=False)
sub_vbox.pack_start(hbox, expand=False, fill=False)
self.direct_checkbox = gtk.RadioButton(None, "Direct internet connection")
self.direct_checkbox.set_tooltip_text("Check this box to connect the Internet directly without any proxy")
self.direct_checkbox.set_active(not self.configuration.enable_proxy)
sub_vbox.pack_start(self.direct_checkbox, expand=False, fill=False)
self.proxy_checkbox = gtk.RadioButton(self.direct_checkbox, "Manual proxy configuration")
self.proxy_checkbox.set_tooltip_text("Check this box to setup the proxy you specified")
self.proxy_checkbox.set_active(self.enable_proxy)
self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
self.proxy_checkbox.set_active(self.configuration.enable_proxy)
sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set all proxy:</span>")
tooltip = "Set the all proxy that will be used if the proxy for a URL isn't specified."
proxy_widget, self.all_proxy_text = self.gen_entry_widget(self.configuration.all_proxy, self, tooltip, False)
self.all_proxy_text.set_editable(self.enable_proxy)
self.all_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
self.same_checkbox = gtk.CheckButton("Use the same proxy for all protocols")
self.same_checkbox.set_tooltip_text("Use the same proxy as the first proxy i.e. http proxy for all protocols")
self.same_checkbox.set_active(self.configuration.same_proxy)
hbox = gtk.HBox(False, 12)
hbox.pack_start(self.same_checkbox, expand=False, fill=False, padding=24)
sub_vbox.pack_start(hbox, expand=False, fill=False)
proxy_widget, self.http_proxy, self.http_proxy_port, self.http_proxy_details = self.gen_proxy_entry_widget(
"http", self, True)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set http proxy:</span>")
tooltip = "Set the http proxy that will be used in do_fetch() source code"
proxy_widget, self.http_proxy_text = self.gen_entry_widget(self.configuration.http_proxy, self, tooltip, False)
self.http_proxy_text.set_editable(self.enable_proxy)
self.http_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
proxy_widget, self.https_proxy, self.https_proxy_port, self.https_proxy_details = self.gen_proxy_entry_widget(
"https", self, True)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set https proxy:</span>")
tooltip = "Set the https proxy that will be used in do_fetch() source code"
proxy_widget, self.https_proxy_text = self.gen_entry_widget(self.configuration.https_proxy, self, tooltip, False)
self.https_proxy_text.set_editable(self.enable_proxy)
self.https_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
proxy_widget, self.ftp_proxy, self.ftp_proxy_port, self.ftp_proxy_details = self.gen_proxy_entry_widget(
"ftp", self, True)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set ftp proxy:</span>")
tooltip = "Set the ftp proxy that will be used in do_fetch() source code"
proxy_widget, self.ftp_proxy_text = self.gen_entry_widget(self.configuration.ftp_proxy, self, tooltip, False)
self.ftp_proxy_text.set_editable(self.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
proxy_widget, self.git_proxy, self.git_proxy_port, self.git_proxy_details = self.gen_proxy_entry_widget(
"git", self, True)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set git proxy:</span>")
tooltip = "Set the git proxy that will be used in do_fetch() source code"
proxy_widget, self.git_proxy_text = self.gen_entry_widget(self.configuration.git_proxy_host + ':' + self.configuration.git_proxy_port, self, tooltip, False)
self.git_proxy_text.set_editable(self.enable_proxy)
self.git_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
proxy_widget, self.cvs_proxy, self.cvs_proxy_port, self.cvs_proxy_details = self.gen_proxy_entry_widget(
"cvs", self, True)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set cvs proxy:</span>")
tooltip = "Set the cvs proxy that will be used in do_fetch() source code"
proxy_widget, self.cvs_proxy_text = self.gen_entry_widget(self.configuration.cvs_proxy_host + ':' + self.configuration.cvs_proxy_port, self, tooltip, False)
self.cvs_proxy_text.set_editable(self.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
self.direct_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
self.same_checkbox.connect("toggled", self.same_checkbox_toggled_cb)
self.refresh_proxy_components()
return advanced_vbox
def create_others_page(self):
@@ -587,20 +633,59 @@ class AdvancedSettingDialog (CrumbsDialog):
return advanced_vbox
def refresh_proxy_components(self):
self.same_checkbox.set_sensitive(self.configuration.enable_proxy)
self.http_proxy.set_text(self.configuration.combine_host_only("http"))
self.http_proxy.set_editable(self.configuration.enable_proxy)
self.http_proxy.set_sensitive(self.configuration.enable_proxy)
self.http_proxy_port.set_text(self.configuration.combine_port_only("http"))
self.http_proxy_port.set_editable(self.configuration.enable_proxy)
self.http_proxy_port.set_sensitive(self.configuration.enable_proxy)
self.http_proxy_details.set_sensitive(self.configuration.enable_proxy)
self.https_proxy.set_text(self.configuration.combine_host_only("https"))
self.https_proxy.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.https_proxy.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.https_proxy_port.set_text(self.configuration.combine_port_only("https"))
self.https_proxy_port.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.https_proxy_port.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.https_proxy_details.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.ftp_proxy.set_text(self.configuration.combine_host_only("ftp"))
self.ftp_proxy.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.ftp_proxy.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.ftp_proxy_port.set_text(self.configuration.combine_port_only("ftp"))
self.ftp_proxy_port.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.ftp_proxy_port.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.ftp_proxy_details.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.git_proxy.set_text(self.configuration.combine_host_only("git"))
self.git_proxy.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.git_proxy.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.git_proxy_port.set_text(self.configuration.combine_port_only("git"))
self.git_proxy_port.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.git_proxy_port.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.git_proxy_details.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.cvs_proxy.set_text(self.configuration.combine_host_only("cvs"))
self.cvs_proxy.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.cvs_proxy.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.cvs_proxy_port.set_text(self.configuration.combine_port_only("cvs"))
self.cvs_proxy_port.set_editable(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.cvs_proxy_port.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
self.cvs_proxy_details.set_sensitive(self.configuration.enable_proxy and (not self.configuration.same_proxy))
def proxy_checkbox_toggled_cb(self, button):
self.enable_proxy = self.proxy_checkbox.get_active()
self.all_proxy_text.set_editable(self.enable_proxy)
self.all_proxy_text.set_sensitive(self.enable_proxy)
self.http_proxy_text.set_editable(self.enable_proxy)
self.http_proxy_text.set_sensitive(self.enable_proxy)
self.https_proxy_text.set_editable(self.enable_proxy)
self.https_proxy_text.set_sensitive(self.enable_proxy)
self.ftp_proxy_text.set_editable(self.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.enable_proxy)
self.git_proxy_text.set_editable(self.enable_proxy)
self.git_proxy_text.set_sensitive(self.enable_proxy)
self.cvs_proxy_text.set_editable(self.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.enable_proxy)
self.configuration.enable_proxy = self.proxy_checkbox.get_active()
if not self.configuration.enable_proxy:
self.configuration.same_proxy = False
self.same_checkbox.set_active(self.configuration.same_proxy)
self.refresh_proxy_components()
def same_checkbox_toggled_cb(self, button):
self.configuration.same_proxy = self.same_checkbox.get_active()
self.refresh_proxy_components()
def response_cb(self, dialog, response_id):
package_format = []
@@ -644,12 +729,17 @@ class AdvancedSettingDialog (CrumbsDialog):
self.configuration.extra_setting[key] = value
it = self.setting_store.iter_next(it)
self.configuration.all_proxy = self.all_proxy_text.get_text()
self.configuration.http_proxy = self.http_proxy_text.get_text()
self.configuration.https_proxy = self.https_proxy_text.get_text()
self.configuration.ftp_proxy = self.ftp_proxy_text.get_text()
self.configuration.git_proxy_host, self.configuration.git_proxy_port = self.git_proxy_text.get_text().split(':')
self.configuration.cvs_proxy_host, self.configuration.cvs_proxy_port = self.cvs_proxy_text.get_text().split(':')
self.configuration.split_proxy("http", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
if self.configuration.same_proxy:
self.configuration.split_proxy("https", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
self.configuration.split_proxy("ftp", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
self.configuration.split_proxy("git", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
self.configuration.split_proxy("cvs", self.http_proxy.get_text() + ":" + self.http_proxy_port.get_text())
else:
self.configuration.split_proxy("https", self.https_proxy.get_text() + ":" + self.https_proxy_port.get_text())
self.configuration.split_proxy("ftp", self.ftp_proxy.get_text() + ":" + self.ftp_proxy_port.get_text())
self.configuration.split_proxy("git", self.git_proxy.get_text() + ":" + self.git_proxy_port.get_text())
self.configuration.split_proxy("cvs", self.cvs_proxy.get_text() + ":" + self.cvs_proxy_port.get_text())
md5 = self.config_md5()
self.settings_changed = (self.md5 != md5)
@@ -661,21 +751,28 @@ class DeployImageDialog (CrumbsDialog):
__dummy_usb__ = "--select a usb drive--"
def __init__(self, title, image_path, parent, flags, buttons=None):
def __init__(self, title, image_path, parent, flags, buttons=None, standalone=False):
super(DeployImageDialog, self).__init__(title, parent, flags, buttons)
self.image_path = image_path
self.standalone = standalone
self.create_visual_elements()
self.connect("response", self.response_cb)
def create_visual_elements(self):
self.set_size_request(600, 400)
label = gtk.Label()
label.set_alignment(0.0, 0.5)
markup = "<span font_desc='12'>The image to be written into usb drive:</span>"
label.set_markup(markup)
self.vbox.pack_start(label, expand=False, fill=False, padding=2)
table = gtk.Table(2, 10, False)
table.set_col_spacings(5)
table.set_row_spacings(5)
self.vbox.pack_start(table, expand=True, fill=True)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
scroll.set_shadow_type(gtk.SHADOW_IN)
@@ -683,11 +780,31 @@ class DeployImageDialog (CrumbsDialog):
tv.set_editable(False)
tv.set_wrap_mode(gtk.WRAP_WORD)
tv.set_cursor_visible(False)
buf = gtk.TextBuffer()
buf.set_text(self.image_path)
tv.set_buffer(buf)
self.buf = gtk.TextBuffer()
self.buf.set_text(self.image_path)
tv.set_buffer(self.buf)
scroll.add(tv)
self.vbox.pack_start(scroll, expand=True, fill=True)
table.attach(scroll, 0, 10, 0, 1)
# There are 2 ways to use DeployImageDialog
# One way is that called by HOB when the 'Deploy Image' button is clicked
# The other way is that called by a standalone script.
# Following block of codes handles the latter way. It adds a 'Select Image' button and
# emit a signal when the button is clicked.
if self.standalone:
gobject.signal_new("select_image_clicked", self, gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ())
icon = gtk.Image()
pix_buffer = gtk.gdk.pixbuf_new_from_file(hic.ICON_IMAGES_DISPLAY_FILE)
icon.set_from_pixbuf(pix_buffer)
button = gtk.Button("Select Image")
button.set_image(icon)
button.set_size_request(140, 50)
table.attach(button, 9, 10, 1, 2, gtk.FILL, 0, 0, 0)
button.connect("clicked", self.select_image_button_clicked_cb)
separator = gtk.HSeparator()
self.vbox.pack_start(separator, expand=False, fill=False, padding=10)
self.usb_desc = gtk.Label()
self.usb_desc.set_alignment(0.0, 0.5)
@@ -702,7 +819,7 @@ class DeployImageDialog (CrumbsDialog):
for usb in self.find_all_usb_devices():
self.usb_combo.append_text("/dev/" + usb)
self.usb_combo.set_active(0)
self.vbox.pack_start(self.usb_combo, expand=True, fill=True)
self.vbox.pack_start(self.usb_combo, expand=False, fill=False)
self.vbox.pack_start(self.usb_desc, expand=False, fill=False, padding=2)
self.progress_bar = HobProgressBar()
@@ -713,12 +830,19 @@ class DeployImageDialog (CrumbsDialog):
self.vbox.show_all()
self.progress_bar.hide()
def set_image_text_buffer(self, image_path):
self.buf.set_text(image_path)
def set_image_path(self, image_path):
self.image_path = image_path
def popen_read(self, cmd):
return os.popen("%s 2>/dev/null" % cmd).read().strip()
tmpout, errors = bb.process.run("%s" % cmd)
return tmpout.strip()
def find_all_usb_devices(self):
usb_devs = [ os.readlink(u)
for u in self.popen_read('ls /dev/disk/by-id/usb*').split()
for u in glob.glob('/dev/disk/by-id/usb*')
if not re.search(r'part\d+', u) ]
return [ '%s' % u[u.rfind('/')+1:] for u in usb_devs ]
@@ -727,6 +851,9 @@ class DeployImageDialog (CrumbsDialog):
(self.popen_read('cat /sys/class/block/%s/device/vendor' % dev),
self.popen_read('cat /sys/class/block/%s/device/model' % dev))
def select_image_button_clicked_cb(self, button):
self.emit('select_image_clicked')
def usb_combo_changed_cb(self, usb_combo):
combo_item = self.usb_combo.get_active_text()
if not combo_item or combo_item == self.__dummy_usb__:
@@ -738,12 +865,32 @@ class DeployImageDialog (CrumbsDialog):
def response_cb(self, dialog, response_id):
if response_id == gtk.RESPONSE_YES:
lbl = ''
combo_item = self.usb_combo.get_active_text()
if combo_item and combo_item != self.__dummy_usb__:
if combo_item and combo_item != self.__dummy_usb__ and self.image_path:
cmdline = bb.ui.crumbs.utils.which_terminal()
if cmdline:
cmdline += "\"sudo dd if=" + self.image_path + " of=" + combo_item + "\""
subprocess.Popen(args=shlex.split(cmdline))
tmpfile = tempfile.NamedTemporaryFile()
cmdline += "\"sudo dd if=" + self.image_path + \
" of=" + combo_item + "; echo $? > " + tmpfile.name + "\""
subprocess.call(shlex.split(cmdline))
if int(tmpfile.readline().strip()) == 0:
lbl = "<b>Deploy image successfully.</b>"
else:
lbl = "<b>Failed to deploy image.</b>\nPlease check image <b>%s</b> exists and USB device <b>%s</b> is writable." % (self.image_path, combo_item)
tmpfile.close()
else:
if not self.image_path:
lbl = "<b>No selection made.</b>\nYou have not selected an image to deploy."
else:
lbl = "<b>No selection made.</b>\nYou have not selected a USB device."
if len(lbl):
crumbs_dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = crumbs_dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
crumbs_dialog.run()
crumbs_dialog.destroy()
def update_progress_bar(self, title, fraction, status=None):
self.progress_bar.update(fraction)
@@ -947,7 +1094,7 @@ class LayerSelectionDialog (CrumbsDialog):
# create visual elements on the dialog
self.create_visual_elements()
self.connect("response", self.response_cb)
def create_visual_elements(self):
layer_widget, self.layer_store = self.gen_layer_widget(self.layers, self.all_layers, self, None)
layer_widget.set_size_request(450, 250)
@@ -1061,12 +1208,13 @@ class ImageSelectionDialog (CrumbsDialog):
self.image_table = HobViewTable(self.__columns__)
self.image_table.set_size_request(-1, 300)
self.image_table.connect("toggled", self.toggled_cb)
self.image_table.connect_group_selection(self.table_selected_cb)
self.image_table.connect("row-activated", self.row_actived_cb)
self.vbox.pack_start(self.image_table, expand=True, fill=True)
self.show_all()
def toggled_cb(self, table, cell, path, columnid, tree):
model = tree.get_model()
def change_image_cb(self, model, path, columnid):
if not model:
return
iter = model.get_iter_first()
@@ -1077,9 +1225,24 @@ class ImageSelectionDialog (CrumbsDialog):
model[path][columnid] = True
def toggled_cb(self, table, cell, path, columnid, tree):
model = tree.get_model()
self.change_image_cb(model, path, columnid)
def table_selected_cb(self, selection):
model, paths = selection.get_selected_rows()
if paths:
self.change_image_cb(model, paths[0], 1)
def row_actived_cb(self, tab, model, path):
self.change_image_cb(model, path, 1)
self.emit('response', gtk.RESPONSE_YES)
def select_path_cb(self, action, parent, entry):
dialog = gtk.FileChooserDialog("", parent,
gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER)
text = entry.get_text()
dialog.set_current_folder(text if len(text) > 0 else os.getcwd())
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("Open", gtk.RESPONSE_YES)
@@ -1104,9 +1267,9 @@ class ImageSelectionDialog (CrumbsDialog):
for image_type in self.image_types:
for real_image_type in hcc.SUPPORTED_IMAGE_TYPES[image_type]:
if f.endswith('.' + real_image_type):
imageset.add(f.rsplit('.' + real_image_type)[0])
imageset.add(f.rsplit('.' + real_image_type)[0].rsplit('.rootfs')[0])
self.image_list.append(f)
for image in imageset:
self.image_store.set(self.image_store.append(), 0, image, 1, False)
@@ -1122,5 +1285,65 @@ class ImageSelectionDialog (CrumbsDialog):
for f in self.image_list:
if f.startswith(self.image_store[path][0] + '.'):
self.image_names.append(f)
break
break
iter = self.image_store.iter_next(iter)
class ProxyDetailsDialog (CrumbsDialog):
def __init__(self, title, user, passwd, parent, flags, buttons=None):
super(ProxyDetailsDialog, self).__init__(title, parent, flags, buttons)
self.connect("response", self.response_cb)
self.auth = not (user == None or passwd == None or user == "")
self.user = user or ""
self.passwd = passwd or ""
# create visual elements on the dialog
self.create_visual_elements()
def create_visual_elements(self):
self.auth_checkbox = gtk.CheckButton("Use authentication")
self.auth_checkbox.set_tooltip_text("Check this box to set the username and the password")
self.auth_checkbox.set_active(self.auth)
self.auth_checkbox.connect("toggled", self.auth_checkbox_toggled_cb)
self.vbox.pack_start(self.auth_checkbox, expand=False, fill=False)
hbox = gtk.HBox(False, 6)
self.user_label = gtk.Label("Username:")
self.user_text = gtk.Entry()
self.user_text.set_text(self.user)
hbox.pack_start(self.user_label, expand=False, fill=False)
hbox.pack_end(self.user_text, expand=False, fill=False)
self.vbox.pack_start(hbox, expand=False, fill=False)
hbox = gtk.HBox(False, 6)
self.passwd_label = gtk.Label("Password:")
self.passwd_text = gtk.Entry()
self.passwd_text.set_text(self.passwd)
hbox.pack_start(self.passwd_label, expand=False, fill=False)
hbox.pack_end(self.passwd_text, expand=False, fill=False)
self.vbox.pack_start(hbox, expand=False, fill=False)
self.refresh_auth_components()
self.show_all()
def refresh_auth_components(self):
self.user_label.set_sensitive(self.auth)
self.user_text.set_editable(self.auth)
self.user_text.set_sensitive(self.auth)
self.passwd_label.set_sensitive(self.auth)
self.passwd_text.set_editable(self.auth)
self.passwd_text.set_sensitive(self.auth)
def auth_checkbox_toggled_cb(self, button):
self.auth = self.auth_checkbox.get_active()
self.refresh_auth_components()
def response_cb(self, dialog, response_id):
if response_id == gtk.RESPONSE_OK:
if self.auth:
self.user = self.user_text.get_text()
self.passwd = self.passwd_text.get_text()
else:
self.user = None
self.passwd = None

View File

@@ -42,6 +42,9 @@ class HobHandler(gobject.GObject):
"command-failed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING,)),
"sanity-failed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING,)),
"generating-data" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
@@ -57,10 +60,16 @@ class HobHandler(gobject.GObject):
"parsing-completed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
"recipe-populated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
"package-populated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
}
(PARSE_CONFIG, GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO) = range(6)
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(10)
(GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK) = range(6)
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_SANITY_CHECK, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(11)
def __init__(self, server, recipe_model, package_model):
super(HobHandler, self).__init__()
@@ -91,6 +100,15 @@ class HobHandler(gobject.GObject):
self.emit("data-generated")
self.generating = False
def runCommand(self, commandline):
try:
return self.server.runCommand(commandline)
except Exception as e:
self.commands_async = []
self.clear_busy()
self.emit("command-failed", "Hob Exception - %s" % (str(e)))
return None
def run_next_command(self, initcmd=None):
if initcmd != None:
self.initcmd = initcmd
@@ -105,36 +123,39 @@ class HobHandler(gobject.GObject):
return
if next_command == self.SUB_PATH_LAYERS:
self.server.runCommand(["findConfigFilePath", "bblayers.conf"])
self.runCommand(["findConfigFilePath", "bblayers.conf"])
elif next_command == self.SUB_FILES_DISTRO:
self.server.runCommand(["findConfigFiles", "DISTRO"])
self.runCommand(["findConfigFiles", "DISTRO"])
elif next_command == self.SUB_FILES_MACH:
self.server.runCommand(["findConfigFiles", "MACHINE"])
self.runCommand(["findConfigFiles", "MACHINE"])
elif next_command == self.SUB_FILES_SDKMACH:
self.server.runCommand(["findConfigFiles", "MACHINE-SDK"])
self.runCommand(["findConfigFiles", "MACHINE-SDK"])
elif next_command == self.SUB_MATCH_CLASS:
self.server.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
self.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
elif next_command == self.SUB_PARSE_CONFIG:
self.server.runCommand(["parseConfigurationFiles", "", ""])
self.runCommand(["parseConfigurationFiles", "", ""])
elif next_command == self.SUB_GNERATE_TGTS:
self.server.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
self.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
elif next_command == self.SUB_GENERATE_PKGINFO:
self.server.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
self.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
elif next_command == self.SUB_SANITY_CHECK:
self.runCommand(["triggerEvent", "bb.event.SanityCheck()"])
elif next_command == self.SUB_BUILD_RECIPES:
self.clear_busy()
self.building = True
self.server.runCommand(["buildTargets", self.recipe_queue, "build"])
self.runCommand(["buildTargets", self.recipe_queue, self.default_task])
self.recipe_queue = []
elif next_command == self.SUB_BUILD_IMAGE:
self.clear_busy()
self.building = True
targets = [self.hob_image]
self.server.runCommand(["setVariable", "LINGUAS_INSTALL", ""])
self.server.runCommand(["setVariable", "PACKAGE_INSTALL", " ".join(self.package_queue)])
targets = [self.image]
if self.package_queue:
self.runCommand(["setVariable", "LINGUAS_INSTALL", ""])
self.runCommand(["setVariable", "PACKAGE_INSTALL", " ".join(self.package_queue)])
if self.toolchain_packages:
self.server.runCommand(["setVariable", "TOOLCHAIN_TARGET_TASK", " ".join(self.toolchain_packages)])
targets.append(self.hob_toolchain)
self.server.runCommand(["buildTargets", targets, "build"])
self.runCommand(["setVariable", "TOOLCHAIN_TARGET_TASK", " ".join(self.toolchain_packages)])
targets.append(self.toolchain)
self.runCommand(["buildTargets", targets, self.default_task])
def handle_event(self, event):
if not event:
@@ -146,8 +167,15 @@ class HobHandler(gobject.GObject):
if isinstance(event, bb.event.PackageInfo):
self.package_model.populate(event._pkginfolist)
self.emit("package-populated")
self.run_next_command()
elif isinstance(event, bb.event.SanityCheckPassed):
self.run_next_command()
elif isinstance(event, bb.event.SanityCheckFailed):
self.emit("sanity-failed", event._msg)
elif isinstance(event, logging.LogRecord):
if event.levelno >= logging.ERROR:
self.error_msg += event.msg + '\n'
@@ -156,6 +184,7 @@ class HobHandler(gobject.GObject):
self.current_phase = "data generation"
if event._model:
self.recipe_model.populate(event._model)
self.emit("recipe-populated")
elif isinstance(event, bb.event.ConfigFilesFound):
self.current_phase = "configuration lookup"
var = event._variable
@@ -179,32 +208,13 @@ class HobHandler(gobject.GObject):
elif isinstance(event, bb.command.CommandCompleted):
self.current_phase = None
self.run_next_command()
# TODO: Currently there are NoProvider issues when generate
# universe tree dependency for non-x86 architecture.
# Comment the follow code to enable the build of non-x86
# architectures in Hob.
#elif isinstance(event, bb.event.NoProvider):
# if event._runtime:
# r = "R"
# else:
# r = ""
# if event._dependees:
# self.error_msg += " Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)" % (r, event._item, ", ".join(event._dependees), r)
# else:
# self.error_msg += " Nothing %sPROVIDES '%s'" % (r, event._item)
# if event._reasons:
# for reason in event._reasons:
# self.error_msg += " %s" % reason
# self.commands_async = []
# self.emit("command-failed", self.error_msg)
# self.error_msg = ""
elif isinstance(event, bb.command.CommandFailed):
self.commands_async = []
self.clear_busy()
self.emit("command-failed", self.error_msg)
self.error_msg = ""
if self.building:
self.building = False
elif isinstance(event, (bb.event.ParseStarted,
bb.event.CacheLoadStarted,
bb.event.TreeDataPreparationStarted,
@@ -237,99 +247,95 @@ class HobHandler(gobject.GObject):
return
def init_cooker(self):
self.server.runCommand(["initCooker"])
def parse_config(self):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.run_next_command(self.PARSE_CONFIG)
def parse_generate_configuration(self):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.generate_configuration()
self.runCommand(["initCooker"])
def set_extra_inherit(self, bbclass):
inherits = self.server.runCommand(["getVariable", "INHERIT"]) or ""
inherits = self.runCommand(["getVariable", "INHERIT"]) or ""
inherits = inherits + " " + bbclass
self.server.runCommand(["setVariable", "INHERIT", inherits])
self.runCommand(["setVariable", "INHERIT", inherits])
def set_bblayers(self, bblayers):
self.server.runCommand(["setVariable", "BBLAYERS", " ".join(bblayers)])
self.runCommand(["setVariable", "BBLAYERS_HOB", " ".join(bblayers)])
def set_machine(self, machine):
if machine:
self.server.runCommand(["setVariable", "MACHINE", machine])
self.runCommand(["setVariable", "MACHINE_HOB", machine])
def set_sdk_machine(self, sdk_machine):
self.server.runCommand(["setVariable", "SDKMACHINE", sdk_machine])
self.runCommand(["setVariable", "SDKMACHINE_HOB", sdk_machine])
def set_image_fstypes(self, image_fstypes):
self.server.runCommand(["setVariable", "IMAGE_FSTYPES", image_fstypes])
self.runCommand(["setVariable", "IMAGE_FSTYPES", image_fstypes])
def set_distro(self, distro):
if distro != "defaultsetup":
self.server.runCommand(["setVariable", "DISTRO", distro])
self.runCommand(["setVariable", "DISTRO_HOB", distro])
def set_package_format(self, format):
package_classes = ""
for pkgfmt in format.split():
package_classes += ("package_%s" % pkgfmt + " ")
self.server.runCommand(["setVariable", "PACKAGE_CLASSES", package_classes])
self.runCommand(["setVariable", "PACKAGE_CLASSES_HOB", package_classes])
def set_bbthreads(self, threads):
self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", threads])
self.runCommand(["setVariable", "BB_NUMBER_THREADS_HOB", threads])
def set_pmake(self, threads):
pmake = "-j %s" % threads
self.server.runCommand(["setVariable", "PARALLEL_MAKE", pmake])
self.runCommand(["setVariable", "PARALLEL_MAKE_HOB", pmake])
def set_dl_dir(self, directory):
self.server.runCommand(["setVariable", "DL_DIR", directory])
self.runCommand(["setVariable", "DL_DIR_HOB", directory])
def set_sstate_dir(self, directory):
self.server.runCommand(["setVariable", "SSTATE_DIR", directory])
self.runCommand(["setVariable", "SSTATE_DIR_HOB", directory])
def set_sstate_mirror(self, url):
self.server.runCommand(["setVariable", "SSTATE_MIRROR", url])
self.runCommand(["setVariable", "SSTATE_MIRROR_HOB", url])
def set_extra_size(self, image_extra_size):
self.server.runCommand(["setVariable", "IMAGE_ROOTFS_EXTRA_SPACE", str(image_extra_size)])
self.runCommand(["setVariable", "IMAGE_ROOTFS_EXTRA_SPACE", str(image_extra_size)])
def set_rootfs_size(self, image_rootfs_size):
self.server.runCommand(["setVariable", "IMAGE_ROOTFS_SIZE", str(image_rootfs_size)])
self.runCommand(["setVariable", "IMAGE_ROOTFS_SIZE", str(image_rootfs_size)])
def set_incompatible_license(self, incompat_license):
self.server.runCommand(["setVariable", "INCOMPATIBLE_LICENSE", incompat_license])
self.runCommand(["setVariable", "INCOMPATIBLE_LICENSE_HOB", incompat_license])
def set_extra_config(self, extra_setting):
for key in extra_setting.keys():
value = extra_setting[key]
self.server.runCommand(["setVariable", key, value])
self.runCommand(["setVariable", key, value])
def set_config_filter(self, config_filter):
self.runCommand(["setConfFilter", config_filter])
def set_http_proxy(self, http_proxy):
self.server.runCommand(["setVariable", "http_proxy", http_proxy])
self.runCommand(["setVariable", "http_proxy", http_proxy])
def set_https_proxy(self, https_proxy):
self.server.runCommand(["setVariable", "https_proxy", https_proxy])
self.runCommand(["setVariable", "https_proxy", https_proxy])
def set_ftp_proxy(self, ftp_proxy):
self.server.runCommand(["setVariable", "ftp_proxy", ftp_proxy])
def set_all_proxy(self, all_proxy):
self.server.runCommand(["setVariable", "all_proxy", all_proxy])
self.runCommand(["setVariable", "ftp_proxy", ftp_proxy])
def set_git_proxy(self, host, port):
self.server.runCommand(["setVariable", "GIT_PROXY_HOST", host])
self.server.runCommand(["setVariable", "GIT_PROXY_PORT", port])
self.runCommand(["setVariable", "GIT_PROXY_HOST", host])
self.runCommand(["setVariable", "GIT_PROXY_PORT", port])
def set_cvs_proxy(self, host, port):
self.server.runCommand(["setVariable", "CVS_PROXY_HOST", host])
self.server.runCommand(["setVariable", "CVS_PROXY_PORT", port])
self.runCommand(["setVariable", "CVS_PROXY_HOST", host])
self.runCommand(["setVariable", "CVS_PROXY_PORT", port])
def request_package_info(self):
self.commands_async.append(self.SUB_GENERATE_PKGINFO)
self.run_next_command(self.POPULATE_PACKAGEINFO)
def trigger_sanity_check(self):
self.commands_async.append(self.SUB_SANITY_CHECK)
self.run_next_command(self.SANITY_CHECK)
def generate_configuration(self):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_PATH_LAYERS)
self.commands_async.append(self.SUB_FILES_DISTRO)
self.commands_async.append(self.SUB_FILES_MACH)
@@ -341,20 +347,22 @@ class HobHandler(gobject.GObject):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_GNERATE_TGTS)
self.run_next_command(self.GENERATE_RECIPES)
def generate_packages(self, tgts):
def generate_packages(self, tgts, default_task="build"):
targets = []
targets.extend(tgts)
self.recipe_queue = targets
self.default_task = default_task
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_BUILD_RECIPES)
self.run_next_command(self.GENERATE_PACKAGES)
def generate_image(self, tgts, hob_image, hob_toolchain, toolchain_packages=[]):
self.package_queue = tgts
self.hob_image = hob_image
self.hob_toolchain = hob_toolchain
def generate_image(self, image, toolchain, image_packages=[], toolchain_packages=[], default_task="build"):
self.image = image
self.toolchain = toolchain
self.package_queue = image_packages
self.toolchain_packages = toolchain_packages
self.default_task = default_task
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_BUILD_IMAGE)
self.run_next_command(self.GENERATE_IMAGE)
@@ -368,16 +376,16 @@ class HobHandler(gobject.GObject):
self.building = False
def cancel_parse(self):
self.server.runCommand(["stateStop"])
self.runCommand(["stateStop"])
def cancel_build(self, force=False):
if force:
# Force the cooker to stop as quickly as possible
self.server.runCommand(["stateStop"])
self.runCommand(["stateStop"])
else:
# Wait for tasks to complete before shutting down, this helps
# leave the workdir in a usable state
self.server.runCommand(["stateShutdown"])
self.runCommand(["stateShutdown"])
def reset_build(self):
self.build.reset()
@@ -392,19 +400,19 @@ class HobHandler(gobject.GObject):
def get_parameters(self):
# retrieve the parameters from bitbake
params = {}
params["core_base"] = self.server.runCommand(["getVariable", "COREBASE"]) or ""
params["core_base"] = self.runCommand(["getVariable", "COREBASE"]) or ""
hob_layer = params["core_base"] + "/meta-hob"
params["layer"] = self.server.runCommand(["getVariable", "BBLAYERS"]) or ""
params["layer"] = self.runCommand(["getVariable", "BBLAYERS"]) or ""
if hob_layer not in params["layer"].split():
params["layer"] += (" " + hob_layer)
params["dldir"] = self.server.runCommand(["getVariable", "DL_DIR"]) or ""
params["machine"] = self.server.runCommand(["getVariable", "MACHINE"]) or ""
params["distro"] = self.server.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
params["pclass"] = self.server.runCommand(["getVariable", "PACKAGE_CLASSES"]) or ""
params["sstatedir"] = self.server.runCommand(["getVariable", "SSTATE_DIR"]) or ""
params["sstatemirror"] = self.server.runCommand(["getVariable", "SSTATE_MIRROR"]) or ""
params["dldir"] = self.runCommand(["getVariable", "DL_DIR"]) or ""
params["machine"] = self.runCommand(["getVariable", "MACHINE"]) or ""
params["distro"] = self.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
params["pclass"] = self.runCommand(["getVariable", "PACKAGE_CLASSES"]) or ""
params["sstatedir"] = self.runCommand(["getVariable", "SSTATE_DIR"]) or ""
params["sstatemirror"] = self.runCommand(["getVariable", "SSTATE_MIRROR"]) or ""
num_threads = self.server.runCommand(["getCpuCount"])
num_threads = self.runCommand(["getCpuCount"])
if not num_threads:
num_threads = 1
max_threads = 65536
@@ -417,7 +425,7 @@ class HobHandler(gobject.GObject):
max_threads = 65536
params["max_threads"] = max_threads
bbthread = self.server.runCommand(["getVariable", "BB_NUMBER_THREADS"])
bbthread = self.runCommand(["getVariable", "BB_NUMBER_THREADS"])
if not bbthread:
bbthread = num_threads
else:
@@ -427,7 +435,7 @@ class HobHandler(gobject.GObject):
bbthread = num_threads
params["bbthread"] = bbthread
pmake = self.server.runCommand(["getVariable", "PARALLEL_MAKE"])
pmake = self.runCommand(["getVariable", "PARALLEL_MAKE"])
if not pmake:
pmake = num_threads
elif isinstance(pmake, int):
@@ -439,9 +447,9 @@ class HobHandler(gobject.GObject):
pmake = num_threads
params["pmake"] = "-j %s" % pmake
params["image_addr"] = self.server.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"]) or ""
params["image_addr"] = self.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"]) or ""
image_extra_size = self.server.runCommand(["getVariable", "IMAGE_ROOTFS_EXTRA_SPACE"])
image_extra_size = self.runCommand(["getVariable", "IMAGE_ROOTFS_EXTRA_SPACE"])
if not image_extra_size:
image_extra_size = 0
else:
@@ -451,7 +459,7 @@ class HobHandler(gobject.GObject):
image_extra_size = 0
params["image_extra_size"] = image_extra_size
image_rootfs_size = self.server.runCommand(["getVariable", "IMAGE_ROOTFS_SIZE"])
image_rootfs_size = self.runCommand(["getVariable", "IMAGE_ROOTFS_SIZE"])
if not image_rootfs_size:
image_rootfs_size = 0
else:
@@ -461,7 +469,7 @@ class HobHandler(gobject.GObject):
image_rootfs_size = 0
params["image_rootfs_size"] = image_rootfs_size
image_overhead_factor = self.server.runCommand(["getVariable", "IMAGE_OVERHEAD_FACTOR"])
image_overhead_factor = self.runCommand(["getVariable", "IMAGE_OVERHEAD_FACTOR"])
if not image_overhead_factor:
image_overhead_factor = 1
else:
@@ -471,36 +479,39 @@ class HobHandler(gobject.GObject):
image_overhead_factor = 1
params['image_overhead_factor'] = image_overhead_factor
params["incompat_license"] = self._remove_redundant(self.server.runCommand(["getVariable", "INCOMPATIBLE_LICENSE"]) or "")
params["sdk_machine"] = self.server.runCommand(["getVariable", "SDKMACHINE"]) or self.server.runCommand(["getVariable", "SDK_ARCH"]) or ""
params["incompat_license"] = self._remove_redundant(self.runCommand(["getVariable", "INCOMPATIBLE_LICENSE"]) or "")
params["sdk_machine"] = self.runCommand(["getVariable", "SDKMACHINE"]) or self.runCommand(["getVariable", "SDK_ARCH"]) or ""
params["image_fstypes"] = self._remove_redundant(self.server.runCommand(["getVariable", "IMAGE_FSTYPES"]) or "")
params["image_fstypes"] = self._remove_redundant(self.runCommand(["getVariable", "IMAGE_FSTYPES"]) or "")
params["image_types"] = self._remove_redundant(self.server.runCommand(["getVariable", "IMAGE_TYPES"]) or "")
params["image_types"] = self._remove_redundant(self.runCommand(["getVariable", "IMAGE_TYPES"]) or "")
params["conf_version"] = self.server.runCommand(["getVariable", "CONF_VERSION"]) or ""
params["lconf_version"] = self.server.runCommand(["getVariable", "LCONF_VERSION"]) or ""
params["conf_version"] = self.runCommand(["getVariable", "CONF_VERSION"]) or ""
params["lconf_version"] = self.runCommand(["getVariable", "LCONF_VERSION"]) or ""
params["runnable_image_types"] = self._remove_redundant(self.server.runCommand(["getVariable", "RUNNABLE_IMAGE_TYPES"]) or "")
params["runnable_machine_patterns"] = self._remove_redundant(self.server.runCommand(["getVariable", "RUNNABLE_MACHINE_PATTERNS"]) or "")
params["deployable_image_types"] = self._remove_redundant(self.server.runCommand(["getVariable", "DEPLOYABLE_IMAGE_TYPES"]) or "")
params["tmpdir"] = self.server.runCommand(["getVariable", "TMPDIR"]) or ""
params["distro_version"] = self.server.runCommand(["getVariable", "DISTRO_VERSION"]) or ""
params["target_os"] = self.server.runCommand(["getVariable", "TARGET_OS"]) or ""
params["target_arch"] = self.server.runCommand(["getVariable", "TARGET_ARCH"]) or ""
params["tune_pkgarch"] = self.server.runCommand(["getVariable", "TUNE_PKGARCH"]) or ""
params["bb_version"] = self.server.runCommand(["getVariable", "BB_MIN_VERSION"]) or ""
params["tune_arch"] = self.server.runCommand(["getVariable", "TUNE_ARCH"]) or ""
params["runnable_image_types"] = self._remove_redundant(self.runCommand(["getVariable", "RUNNABLE_IMAGE_TYPES"]) or "")
params["runnable_machine_patterns"] = self._remove_redundant(self.runCommand(["getVariable", "RUNNABLE_MACHINE_PATTERNS"]) or "")
params["deployable_image_types"] = self._remove_redundant(self.runCommand(["getVariable", "DEPLOYABLE_IMAGE_TYPES"]) or "")
params["kernel_image_type"] = self.runCommand(["getVariable", "KERNEL_IMAGETYPE"]) or ""
params["tmpdir"] = self.runCommand(["getVariable", "TMPDIR"]) or ""
params["distro_version"] = self.runCommand(["getVariable", "DISTRO_VERSION"]) or ""
params["target_os"] = self.runCommand(["getVariable", "TARGET_OS"]) or ""
params["target_arch"] = self.runCommand(["getVariable", "TARGET_ARCH"]) or ""
params["tune_pkgarch"] = self.runCommand(["getVariable", "TUNE_PKGARCH"]) or ""
params["bb_version"] = self.runCommand(["getVariable", "BB_MIN_VERSION"]) or ""
params["git_proxy_host"] = self.server.runCommand(["getVariable", "GIT_PROXY_HOST"]) or ""
params["git_proxy_port"] = self.server.runCommand(["getVariable", "GIT_PROXY_PORT"]) or ""
params["default_task"] = self.runCommand(["getVariable", "BB_DEFAULT_TASK"]) or "build"
params["http_proxy"] = self.server.runCommand(["getVariable", "http_proxy"]) or ""
params["ftp_proxy"] = self.server.runCommand(["getVariable", "ftp_proxy"]) or ""
params["https_proxy"] = self.server.runCommand(["getVariable", "https_proxy"]) or ""
params["all_proxy"] = self.server.runCommand(["getVariable", "all_proxy"]) or ""
params["git_proxy_host"] = self.runCommand(["getVariable", "GIT_PROXY_HOST"]) or ""
params["git_proxy_port"] = self.runCommand(["getVariable", "GIT_PROXY_PORT"]) or ""
params["cvs_proxy_host"] = self.server.runCommand(["getVariable", "CVS_PROXY_HOST"]) or ""
params["cvs_proxy_port"] = self.server.runCommand(["getVariable", "CVS_PROXY_PORT"]) or ""
params["http_proxy"] = self.runCommand(["getVariable", "http_proxy"]) or ""
params["ftp_proxy"] = self.runCommand(["getVariable", "ftp_proxy"]) or ""
params["https_proxy"] = self.runCommand(["getVariable", "https_proxy"]) or ""
params["cvs_proxy_host"] = self.runCommand(["getVariable", "CVS_PROXY_HOST"]) or ""
params["cvs_proxy_port"] = self.runCommand(["getVariable", "CVS_PROXY_PORT"]) or ""
params["image_white_pattern"] = self.runCommand(["getVariable", "BBUI_IMAGE_WHITE_PATTERN"]) or ""
params["image_black_pattern"] = self.runCommand(["getVariable", "BBUI_IMAGE_BLACK_PATTERN"]) or ""
return params

View File

@@ -34,7 +34,7 @@ class PackageListModel(gtk.TreeStore):
providing convenience functions to access gtk.TreeModel subclasses which
provide filtered views of the data.
"""
(COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC, COL_FADE_INC) = range(12)
(COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT) = range(13)
__gsignals__ = {
"package-selection-changed" : (gobject.SIGNAL_RUN_LAST,
@@ -42,6 +42,8 @@ class PackageListModel(gtk.TreeStore):
()),
}
__toolchain_required_packages__ = ["task-core-standalone-sdk-target", "task-core-standalone-sdk-target-dbg"]
def __init__(self):
self.contents = None
@@ -63,7 +65,8 @@ class PackageListModel(gtk.TreeStore):
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN,
gobject.TYPE_BOOLEAN)
gobject.TYPE_BOOLEAN,
gobject.TYPE_STRING)
"""
@@ -187,7 +190,7 @@ class PackageListModel(gtk.TreeStore):
self.COL_SEC, section, self.COL_SUM, summary,
self.COL_RDEP, rdep + ' ' + rrec,
self.COL_RPROV, rprov, self.COL_SIZE, size,
self.COL_BINB, "", self.COL_INC, False)
self.COL_BINB, "", self.COL_INC, False, self.COL_FONT, '10')
"""
Check whether the item at item_path is included or not
@@ -389,7 +392,7 @@ class PackageListModel(gtk.TreeStore):
child_it = self.iter_next(child_it)
it = self.iter_next(it)
return packagelist
return list(set(packagelist + self.__toolchain_required_packages__));
"""
Return the selected package size, unit is B.
"""
@@ -453,7 +456,7 @@ class RecipeListModel(gtk.ListStore):
"""
(COL_NAME, COL_DESC, COL_LIC, COL_GROUP, COL_DEPS, COL_BINB, COL_TYPE, COL_INC, COL_IMG, COL_INSTALL, COL_PN, COL_FADE_INC) = range(12)
__dummy_image__ = "Create your own image"
__custom_image__ = "Create your own image"
__gsignals__ = {
"recipe-selection-changed" : (gobject.SIGNAL_RUN_LAST,
@@ -562,12 +565,14 @@ class RecipeListModel(gtk.ListStore):
self.clear()
# dummy image for prompt
self.set(self.append(), self.COL_NAME, self.__dummy_image__,
self.COL_DESC, "",
self.set(self.append(), self.COL_NAME, self.__custom_image__,
self.COL_DESC, "Use the 'View recipes' and 'View packages' " \
"options to select what you want to include " \
"in your image.",
self.COL_LIC, "", self.COL_GROUP, "",
self.COL_DEPS, "", self.COL_BINB, "",
self.COL_TYPE, "image", self.COL_INC, False,
self.COL_IMG, False, self.COL_INSTALL, "", self.COL_PN, self.__dummy_image__)
self.COL_IMG, False, self.COL_INSTALL, "", self.COL_PN, self.__custom_image__)
for item in event_model["pn"]:
name = item
@@ -615,22 +620,6 @@ class RecipeListModel(gtk.ListStore):
def path_included(self, item_path):
return self[item_path][self.COL_INC]
"""
Append a certain image into the combobox
"""
def image_list_append(self, name, deps, install):
# check whether a certain image is there
if not name or self.find_path_for_item(name):
return
it = self.append()
self.set(it, self.COL_NAME, name, self.COL_DESC, "",
self.COL_LIC, "", self.COL_GROUP, "",
self.COL_DEPS, deps, self.COL_BINB, "",
self.COL_TYPE, "image", self.COL_INC, False,
self.COL_IMG, False, self.COL_INSTALL, install,
self.COL_PN, name)
self.pn_path[name] = self.get_path(it)
"""
Add this item, and any of its dependencies, to the image contents
"""

View File

@@ -23,6 +23,7 @@ import os
import os.path
import sys
import pango, pangocairo
import cairo
import math
from bb.ui.crumbs.hobcolor import HobColors
@@ -88,6 +89,7 @@ class hcc:
"cpio.xz" : ["cpio.xz"],
"vmdk" : ["vmdk"],
"cpio.lzma" : ["cpio.lzma"],
"elf" : ["elf"],
}
class HobViewTable (gtk.VBox):
@@ -119,6 +121,7 @@ class HobViewTable (gtk.VBox):
self.table_tree.set_headers_clickable(True)
self.table_tree.set_enable_search(True)
self.table_tree.set_rules_hint(True)
self.table_tree.set_enable_tree_lines(True)
self.table_tree.get_selection().set_mode(gtk.SELECTION_SINGLE)
self.toggle_columns = []
self.table_tree.connect("row-activated", self.row_activated_cb)
@@ -140,6 +143,8 @@ class HobViewTable (gtk.VBox):
cell = gtk.CellRendererText()
col.pack_start(cell, True)
col.set_attributes(cell, text=column['col_id'])
if 'col_t_id' in column.keys():
col.add_attribute(cell, 'font', column['col_t_id'])
elif column['col_style'] == 'check toggle':
cell = HobCellRendererToggle()
cell.set_property('activatable', True)
@@ -149,6 +154,8 @@ class HobViewTable (gtk.VBox):
col.pack_end(cell, True)
col.set_attributes(cell, active=column['col_id'])
self.toggle_columns.append(column['col_name'])
if 'col_group' in column.keys():
col.set_cell_data_func(cell, self.set_group_number_cb)
elif column['col_style'] == 'radio toggle':
cell = gtk.CellRendererToggle()
cell.set_property('activatable', True)
@@ -162,10 +169,11 @@ class HobViewTable (gtk.VBox):
cell = gtk.CellRendererText()
col.pack_start(cell, True)
col.set_cell_data_func(cell, self.display_binb_cb, column['col_id'])
if 'col_t_id' in column.keys():
col.add_attribute(cell, 'font', column['col_t_id'])
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
scroll.set_shadow_type(gtk.SHADOW_IN)
scroll.add(self.table_tree)
self.pack_start(scroll, True, True, 0)
@@ -175,7 +183,8 @@ class HobViewTable (gtk.VBox):
if binb:
bin = binb.split(', ')
cell.set_property('text', bin[0])
else:
cell.set_property('text', "")
return True
def set_model(self, tree_model):
@@ -204,6 +213,15 @@ class HobViewTable (gtk.VBox):
def stop_cell_fadeinout_cb(self, ctrl, cell, tree):
self.emit("cell-fadeinout-stopped", ctrl, cell, tree)
def set_group_number_cb(self, col, cell, model, iter):
if model and (model.iter_parent(iter) == None):
cell.cell_attr["number_of_children"] = model.iter_n_children(iter)
else:
cell.cell_attr["number_of_children"] = 0
def connect_group_selection(self, cb_func):
self.table_tree.get_selection().connect("changed", cb_func)
"""
A method to calculate a softened value for the colour of widget when in the
provided state.
@@ -380,363 +398,95 @@ class HobInfoButton(gtk.EventBox):
def mouse_out_cb(self, widget, event):
self.image.set_from_file(hic.ICON_INFO_DISPLAY_FILE)
class HobTabBar(gtk.DrawingArea):
__gsignals__ = {
"blank-area-changed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_INT,
gobject.TYPE_INT,
gobject.TYPE_INT,
gobject.TYPE_INT,)),
"tab-switched" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_INT,)),
}
def __init__(self):
class HobIndicator(gtk.DrawingArea):
def __init__(self, count):
gtk.DrawingArea.__init__(self)
self.children = []
# Set no window for transparent background
self.set_has_window(False)
self.set_size_request(38,38)
# We need to pass through button clicks
self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.BUTTON_RELEASE_MASK)
self.tab_width = 140
self.tab_height = 52
self.tab_x = 10
self.tab_y = 0
self.connect('expose-event', self.expose)
self.width = 500
self.height = 53
self.tab_w_ratio = 140 * 1.0/500
self.tab_h_ratio = 52 * 1.0/53
self.set_size_request(self.width, self.height)
self.count = count
self.color = HobColors.GRAY
self.current_child = None
self.font = self.get_style().font_desc
self.font.set_size(pango.SCALE * 13)
self.update_children_text_layout_and_bg_color()
def expose(self, widget, event):
if self.count and self.count > 0:
ctx = widget.window.cairo_create()
self.blank_rectangle = None
self.tab_pressed = False
x, y, w, h = self.allocation
self.set_property('can-focus', True)
self.set_events(gtk.gdk.EXPOSURE_MASK | gtk.gdk.POINTER_MOTION_MASK |
gtk.gdk.BUTTON1_MOTION_MASK | gtk.gdk.BUTTON_PRESS_MASK |
gtk.gdk.BUTTON_RELEASE_MASK)
ctx.set_operator(cairo.OPERATOR_OVER)
ctx.set_source_color(gtk.gdk.color_parse(self.color))
ctx.translate(w/2, h/2)
ctx.arc(x, y, min(w,h)/2 - 2, 0, 2*math.pi)
ctx.fill_preserve()
self.connect("expose-event", self.on_draw)
self.connect("button-press-event", self.button_pressed_cb)
self.connect("button-release-event", self.button_released_cb)
self.connect("query-tooltip", self.query_tooltip_cb)
self.show_all()
layout = self.create_pango_layout(str(self.count))
textw, texth = layout.get_pixel_size()
x = (w/2)-(textw/2) + x
y = (h/2) - (texth/2) + y
ctx.move_to(x, y)
self.window.draw_layout(self.style.light_gc[gtk.STATE_NORMAL], int(x), int(y), layout)
def button_released_cb(self, widget, event):
self.tab_pressed = False
self.queue_draw()
def set_count(self, count):
self.count = count
def button_pressed_cb(self, widget, event):
if event.type == gtk.gdk._2BUTTON_PRESS:
return
result = False
if self.is_focus() or event.type == gtk.gdk.BUTTON_PRESS:
x, y = event.get_coords()
# check which tab be clicked
for child in self.children:
if (child["x"] < x) and (x < child["x"] + self.tab_width) \
and (child["y"] < y) and (y < child["y"] + self.tab_height):
self.current_child = child
result = True
self.grab_focus()
break
# check the blank area is focus in or not
if (self.blank_rectangle) and (self.blank_rectangle.x > 0) and (self.blank_rectangle.y > 0):
if (self.blank_rectangle.x < x) and (x < self.blank_rectangle.x + self.blank_rectangle.width) \
and (self.blank_rectangle.y < y) and (y < self.blank_rectangle.y + self.blank_rectangle.height):
self.grab_focus()
if result == True:
page = self.current_child["toggled_page"]
self.emit("tab-switched", page)
self.tab_pressed = True
self.queue_draw()
def update_children_size(self):
# calculate the size of tabs
self.tab_width = int(self.width * self.tab_w_ratio)
self.tab_height = int(self.height * self.tab_h_ratio)
for i, child in enumerate(self.children):
child["x"] = self.tab_x + i * self.tab_width
child["y"] = self.tab_y
if self.blank_rectangle:
self.resize_blank_rectangle()
def resize_blank_rectangle(self):
width = self.width - self.tab_width * len(self.children) - self.tab_x
x = self.tab_x + self.tab_width * len(self.children)
hpadding = vpadding = 5
self.blank_rectangle = self.set_blank_size(x + hpadding, self.tab_y + vpadding,
width - 2 * hpadding, self.tab_height - 2 * vpadding)
def update_children_text_layout_and_bg_color(self):
style = self.get_style().copy()
color = style.base[gtk.STATE_NORMAL]
for child in self.children:
pangolayout = self.create_pango_layout(child["title"])
pangolayout.set_font_description(self.font)
child["title_layout"] = pangolayout
child["r"] = color.red
child["g"] = color.green
child["b"] = color.blue
def append_tab_child(self, title, page, tooltip=""):
num = len(self.children) + 1
self.tab_width = self.tab_width * len(self.children) / num
i = 0
for i, child in enumerate(self.children):
child["x"] = self.tab_x + i * self.tab_width
i += 1
x = self.tab_x + i * self.tab_width
y = self.tab_y
pangolayout = self.create_pango_layout(title)
pangolayout.set_font_description(self.font)
color = self.style.base[gtk.STATE_NORMAL]
new_one = {
"x" : x,
"y" : y,
"r" : color.red,
"g" : color.green,
"b" : color.blue,
"title_layout" : pangolayout,
"toggled_page" : page,
"title" : title,
"indicator_show" : False,
"indicator_number" : 0,
"tooltip_markup" : tooltip,
}
self.children.append(new_one)
if tooltip and (not self.props.has_tooltip):
self.props.has_tooltip = True
# set the default current child
if not self.current_child:
self.current_child = new_one
def on_draw(self, widget, event):
cr = widget.window.cairo_create()
self.width = self.allocation.width
self.height = self.allocation.height
self.update_children_size()
self.draw_background(cr)
self.draw_toggled_tab(cr)
for child in self.children:
if child["indicator_show"] == True:
self.draw_indicator(cr, child)
self.draw_tab_text(cr)
def draw_background(self, cr):
style = self.get_style()
if self.is_focus():
cr.set_source_color(style.base[gtk.STATE_SELECTED])
def set_active(self, active):
if active:
self.color = HobColors.DEEP_RED
else:
cr.set_source_color(style.base[gtk.STATE_NORMAL])
self.color = HobColors.GRAY
y = 6
h = self.height - 6 - 1
gap = 1
class HobTabLabel(gtk.HBox):
def __init__(self, text, count=0):
gtk.HBox.__init__(self, False, 0)
self.indicator = HobIndicator(count)
self.indicator.show()
self.pack_end(self.indicator, False, False)
self.lbl = gtk.Label(text)
self.lbl.set_alignment(0.0, 0.5)
self.lbl.show()
self.pack_end(self.lbl, True, True, 6)
w = self.children[0]["x"]
cr.set_source_color(gtk.gdk.color_parse(HobColors.GRAY))
cr.rectangle(0, y, w - gap, h) # start rectangle
cr.fill()
def set_count(self, count):
self.indicator.set_count(count)
cr.set_source_color(style.base[gtk.STATE_NORMAL])
cr.rectangle(w - gap, y, w, h) #first gap
cr.fill()
w = self.tab_width
for child in self.children:
x = child["x"]
cr.set_source_color(gtk.gdk.color_parse(HobColors.GRAY))
cr.rectangle(x, y, w - gap, h) # tab rectangle
cr.fill()
cr.set_source_color(style.base[gtk.STATE_NORMAL])
cr.rectangle(x + w - gap, y, w, h) # gap
cr.fill()
cr.set_source_color(gtk.gdk.color_parse(HobColors.GRAY))
cr.rectangle(x + w, y, self.width - x - w, h) # last rectangle
cr.fill()
def draw_tab_text(self, cr):
style = self.get_style()
for child in self.children:
pangolayout = child["title_layout"]
if pangolayout:
fontw, fonth = pangolayout.get_pixel_size()
# center pos
off_x = (self.tab_width - fontw) / 2
off_y = (self.tab_height - fonth) / 2
x = child["x"] + off_x
y = child["y"] + off_y
if not child == self.current_child:
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), pangolayout, gtk.gdk.Color(HobColors.WHITE))
else:
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), pangolayout)
def draw_toggled_tab(self, cr):
if not self.current_child:
return
x = self.current_child["x"]
y = self.current_child["y"]
width = self.tab_width
height = self.tab_height
style = self.get_style()
color = style.base[gtk.STATE_NORMAL]
r = height / 10
if self.tab_pressed == True:
for xoff, yoff, c1, c2 in [(1, 0, HobColors.SLIGHT_DARK, HobColors.DARK), (2, 0, HobColors.GRAY, HobColors.LIGHT_GRAY)]:
cr.set_source_color(gtk.gdk.color_parse(c1))
cr.move_to(x + xoff, y + height + yoff)
cr.line_to(x + xoff, r + yoff)
cr.arc(x + r + xoff, y + r + yoff, r, math.pi, 1.5*math.pi)
cr.move_to(x + r + xoff, y + yoff)
cr.line_to(x + width - r + xoff, y + yoff)
cr.arc(x + width - r + xoff, y + r + yoff, r, 1.5*math.pi, 2*math.pi)
cr.stroke()
cr.set_source_color(gtk.gdk.color_parse(c2))
cr.move_to(x + width + xoff, r + yoff)
cr.line_to(x + width + xoff, y + height + yoff)
cr.line_to(x + xoff, y + height + yoff)
cr.stroke()
x = x + 2
y = y + 2
cr.set_source_rgba(color.red, color.green, color.blue, 1)
cr.move_to(x + r, y)
cr.line_to(x + width - r , y)
cr.arc(x + width - r, y + r, r, 1.5*math.pi, 2*math.pi)
cr.move_to(x + width, r)
cr.line_to(x + width, y + height)
cr.line_to(x, y + height)
cr.line_to(x, r)
cr.arc(x + r, y + r, r, math.pi, 1.5*math.pi)
cr.fill()
def draw_indicator(self, cr, child):
text = ("%d" % child["indicator_number"])
layout = self.create_pango_layout(text)
layout.set_font_description(self.font)
textw, texth = layout.get_pixel_size()
# draw the back round area
tab_x = child["x"]
tab_y = child["y"]
dest_w = int(32 * self.tab_w_ratio)
dest_h = int(32 * self.tab_h_ratio)
if dest_h < self.tab_height:
dest_w = dest_h
# x position is offset(tab_width*3/4 - icon_width/2) + start_pos(tab_x)
x = tab_x + self.tab_width * 3/4 - dest_w/2
y = tab_y + self.tab_height/2 - dest_h/2
r = min(dest_w, dest_h)/2
if not child == self.current_child:
color = cr.set_source_color(gtk.gdk.color_parse(HobColors.DEEP_RED))
else:
color = cr.set_source_color(gtk.gdk.color_parse(HobColors.GRAY))
# check round back area can contain the text or not
back_round_can_contain_width = float(2 * r * 0.707)
if float(textw) > back_round_can_contain_width:
xoff = (textw - int(back_round_can_contain_width)) / 2
cr.move_to(x + r - xoff, y + r + r)
cr.arc((x + r - xoff), (y + r), r, 0.5*math.pi, 1.5*math.pi)
cr.fill() # left half round
cr.rectangle((x + r - xoff), y, 2 * xoff, 2 * r)
cr.fill() # center rectangle
cr.arc((x + r + xoff), (y + r), r, 1.5*math.pi, 0.5*math.pi)
cr.fill() # right half round
else:
cr.arc((x + r), (y + r), r, 0, 2*math.pi)
cr.fill()
# draw the number text
x = x + (dest_w/2)-(textw/2)
y = y + (dest_h/2) - (texth/2)
cr.move_to(x, y)
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), layout, gtk.gdk.Color(HobColors.WHITE))
def show_indicator_icon(self, child, number):
child["indicator_show"] = True
child["indicator_number"] = number
self.queue_draw()
def hide_indicator_icon(self, child):
child["indicator_show"] = False
self.queue_draw()
def set_blank_size(self, x, y, w, h):
if not self.blank_rectangle or self.blank_rectangle.x != x or self.blank_rectangle.width != w:
self.emit("blank-area-changed", x, y, w, h)
return gtk.gdk.Rectangle(x, y, w, h)
def query_tooltip_cb(self, widget, x, y, keyboardtip, tooltip):
if keyboardtip or (not tooltip):
return False
# check which tab be clicked
for child in self.children:
if (child["x"] < x) and (x < child["x"] + self.tab_width) \
and (child["y"] < y) and (y < child["y"] + self.tab_height):
tooltip.set_markup(child["tooltip_markup"])
return True
return False
class HobNotebook(gtk.VBox):
def set_active(self, active=True):
self.indicator.set_active(active)
class HobNotebook(gtk.Notebook):
def __init__(self):
gtk.VBox.__init__(self, False, 0)
gtk.Notebook.__init__(self)
self.set_property('homogeneous', True)
self.notebook = gtk.Notebook()
self.notebook.set_property('homogeneous', True)
self.notebook.set_property('show-tabs', False)
self.tabbar = HobTabBar()
self.tabbar.connect("tab-switched", self.tab_switched_cb)
self.notebook.connect("page-added", self.page_added_cb)
self.notebook.connect("page-removed", self.page_removed_cb)
self.pages = []
self.search = None
self.search_name = ""
self.tb = gtk.Table(1, 100, False)
self.hbox= gtk.HBox(False, 0)
self.hbox.pack_start(self.tabbar, True, True)
self.tb.attach(self.hbox, 0, 100, 0, 1)
self.pack_start(self.tb, False, False)
self.pack_start(self.notebook)
self.connect("switch-page", self.page_changed_cb)
self.show_all()
def append_page(self, child, tab_label):
self.notebook.set_current_page(self.notebook.append_page(child, tab_label))
def page_changed_cb(self, nb, page, page_num):
for p, lbl in enumerate(self.pages):
if p == page_num:
lbl.set_active()
else:
lbl.set_active(False)
def append_page(self, child, tab_label, tab_tooltip=None):
label = HobTabLabel(tab_label)
if tab_tooltip:
label.set_tooltip_text(tab_tooltip)
label.set_active(False)
self.pages.append(label)
gtk.Notebook.append_page(self, child, label)
def set_entry(self, name="Search:"):
for child in self.tb.get_children():
if child:
self.tb.remove(child)
hbox_entry = gtk.HBox(False, 0)
hbox_entry.show()
self.search = gtk.Entry()
self.search_name = name
style = self.search.get_style()
@@ -747,59 +497,20 @@ class HobNotebook(gtk.VBox):
self.search.set_icon_from_stock(gtk.ENTRY_ICON_SECONDARY, gtk.STOCK_CLEAR)
self.search.connect("icon-release", self.set_search_entry_clear_cb)
self.search.show()
self.align = gtk.Alignment(xalign=1.0, yalign=0.7)
self.align.add(self.search)
self.align.show()
hbox_entry.pack_end(self.align, False, False)
self.tabbar.resize_blank_rectangle()
self.tb.attach(hbox_entry, 75, 100, 0, 1, xpadding=5)
self.tb.attach(self.hbox, 0, 100, 0, 1)
self.tabbar.connect("blank-area-changed", self.blank_area_resize_cb)
self.search.connect("focus-in-event", self.set_search_entry_editable_cb)
self.search.connect("focus-out-event", self.set_search_entry_reset_cb)
self.tb.show()
self.set_action_widget(self.search, gtk.PACK_END)
def show_indicator_icon(self, title, number):
for child in self.tabbar.children:
if child["toggled_page"] == -1:
continue
if child["title"] == title:
self.tabbar.show_indicator_icon(child, number)
for child in self.pages:
if child.lbl.get_label() == title:
child.set_count(number)
def hide_indicator_icon(self, title):
for child in self.tabbar.children:
if child["toggled_page"] == -1:
continue
if child["title"] == title:
self.tabbar.hide_indicator_icon(child)
def tab_switched_cb(self, widget, page):
self.notebook.set_current_page(page)
def page_added_cb(self, notebook, notebook_child, page):
if not notebook:
return
title = notebook.get_tab_label_text(notebook_child)
label = notebook.get_tab_label(notebook_child)
tooltip_markup = label.get_tooltip_markup()
if not title:
return
for child in self.tabbar.children:
if child["title"] == title:
child["toggled_page"] = page
return
self.tabbar.append_tab_child(title, page, tooltip_markup)
def page_removed_cb(self, notebook, notebook_child, page, title=""):
for child in self.tabbar.children:
if child["title"] == title:
child["toggled_page"] = -1
def blank_area_resize_cb(self, widget, request_x, request_y, request_width, request_height):
self.search.set_size_request(request_width, request_height)
for child in self.pages:
if child.lbl.get_label() == title:
child.set_count(0)
def set_search_entry_editable_cb(self, search, event):
search.set_editable(True)
@@ -819,7 +530,14 @@ class HobNotebook(gtk.VBox):
self.reset_entry(search)
def set_search_entry_clear_cb(self, search, icon_pos, event):
self.reset_entry(search)
if search.get_editable() == True:
search.set_text("")
def set_page(self, title):
for child in self.pages:
if child.lbl.get_label() == title:
child.grab_focus()
self.set_current_page(self.page_num(child))
class HobWarpCellRendererText(gtk.CellRendererText):
def __init__(self, col_number):
@@ -1057,7 +775,7 @@ class HobCellRendererPixbuf(gtk.CellRendererPixbuf):
if self.control.is_active():
self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, True)
else:
self.control.start_run(200, 0, 0, 1000, 200, tree)
self.control.start_run(200, 0, 0, 1000, 150, tree)
else:
self.control.remove_running_cell_area(cell_area)
self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, False)
@@ -1084,11 +802,17 @@ class HobCellRendererToggle(gtk.CellRendererToggle):
gtk.CellRendererToggle.__init__(self)
self.ctrl = HobCellRendererController(is_draw_row=True)
self.ctrl.running_mode = self.ctrl.MODE_ONE_SHORT
self.cell_attr = {"fadeout": False}
self.cell_attr = {"fadeout": False, "number_of_children": 0}
def do_render(self, window, widget, background_area, cell_area, expose_area, flags):
if (not self.ctrl) or (not widget):
return
if flags & gtk.CELL_RENDERER_SELECTED:
state = gtk.STATE_SELECTED
else:
state = gtk.STATE_NORMAL
if self.ctrl.is_active():
path = widget.get_path_at_pos(cell_area.x + cell_area.width/2, cell_area.y + cell_area.height/2)
# sometimes the parameters of cell_area will be a negative number,such as pull up down the scroll bar
@@ -1097,14 +821,23 @@ class HobCellRendererToggle(gtk.CellRendererToggle):
path = path[0]
if path in self.ctrl.running_cell_areas:
cr = window.cairo_create()
color = gtk.gdk.Color(HobColors.WHITE)
color = widget.get_style().base[state]
row_x, _, row_width, _ = widget.get_visible_rect()
border_y = self.get_property("ypad")
self.ctrl.on_draw_fadeinout_cb(cr, color, row_x, cell_area.y - border_y, row_width, \
cell_area.height + border_y * 2, self.cell_attr["fadeout"])
# draw number of a group
if self.cell_attr["number_of_children"]:
text = "%d pkg" % self.cell_attr["number_of_children"]
pangolayout = widget.create_pango_layout(text)
textw, texth = pangolayout.get_pixel_size()
x = cell_area.x + (cell_area.width/2) - (textw/2)
y = cell_area.y + (cell_area.height/2) - (texth/2)
return gtk.CellRendererToggle.do_render(self, window, widget, background_area, cell_area, expose_area, flags)
widget.style.paint_layout(window, state, True, cell_area, widget, "checkbox", x, y, pangolayout)
else:
return gtk.CellRendererToggle.do_render(self, window, widget, background_area, cell_area, expose_area, flags)
'''delay: normally delay time is 1000ms
cell_list: whilch cells need to be render

View File

@@ -22,6 +22,7 @@
import gtk
import glib
import re
from bb.ui.crumbs.progressbar import HobProgressBar
from bb.ui.crumbs.hobcolor import HobColors
from bb.ui.crumbs.hobwidget import hic, HobImageButton, HobInfoButton, HobAltButton, HobButton
@@ -33,6 +34,9 @@ from bb.ui.crumbs.hobpages import HobPage
#
class ImageConfigurationPage (HobPage):
__dummy_machine__ = "--select a machine--"
__dummy_image__ = "--select a base image--"
def __init__(self, builder):
super(ImageConfigurationPage, self).__init__(builder, "Image configuration")
@@ -147,7 +151,6 @@ class ImageConfigurationPage (HobPage):
self.machine_title_desc.set_markup(mark)
self.machine_combo = gtk.combo_box_new_text()
self.machine_combo.set_wrap_width(1)
self.machine_combo.connect("changed", self.machine_combo_changed_cb)
icon_file = hic.ICON_LAYERS_DISPLAY_FILE
@@ -196,11 +199,12 @@ class ImageConfigurationPage (HobPage):
self.image_title_desc.set_markup(mark)
self.image_combo = gtk.combo_box_new_text()
self.image_combo.set_wrap_width(1)
self.image_combo_id = self.image_combo.connect("changed", self.image_combo_changed_cb)
self.image_desc = gtk.Label()
self.image_desc.set_alignment(0.0, 0.5)
self.image_desc.set_size_request(360, -1)
self.image_desc.set_justify(gtk.JUSTIFY_LEFT)
self.image_desc.set_line_wrap(True)
# button to view recipes
@@ -259,14 +263,18 @@ class ImageConfigurationPage (HobPage):
def machine_combo_changed_cb(self, machine_combo):
combo_item = machine_combo.get_active_text()
if not combo_item:
if not combo_item or combo_item == self.__dummy_machine__:
return
# remove __dummy_machine__ item from the store list after first user selection
# because it is no longer valid
combo_store = machine_combo.get_model()
if len(combo_store) and (combo_store[0][0] == self.__dummy_machine__):
machine_combo.remove_text(0)
self.builder.configuration.curr_mach = combo_item
if self.machine_combo_changed_by_manual:
self.builder.configuration.selected_image = None
self.builder.configuration.selected_recipes = []
self.builder.configuration.selected_packages = []
self.builder.configuration.clear_selection()
# reset machine_combo_changed_by_manual
self.machine_combo_changed_by_manual = True
@@ -274,13 +282,13 @@ class ImageConfigurationPage (HobPage):
self.builder.populate_recipe_package_info_async()
def update_machine_combo(self):
all_machines = self.builder.parameters.all_machines
all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines
model = self.machine_combo.get_model()
model.clear()
for machine in all_machines:
self.machine_combo.append_text(machine)
self.machine_combo.set_active(-1)
self.machine_combo.set_active(0)
def switch_machine_combo(self):
self.machine_combo_changed_by_manual = False
@@ -291,10 +299,15 @@ class ImageConfigurationPage (HobPage):
self.machine_combo.set_active(active)
return
active += 1
self.machine_combo.set_active(-1)
def update_image_desc(self, selected_image):
if model[0][0] != self.__dummy_machine__:
self.machine_combo.insert_text(0, self.__dummy_machine__)
self.machine_combo.set_active(0)
def update_image_desc(self):
desc = ""
selected_image = self.image_combo.get_active_text()
if selected_image and selected_image in self.builder.recipe_model.pn_path.keys():
image_path = self.builder.recipe_model.pn_path[selected_image]
image_iter = self.builder.recipe_model.get_iter(image_path)
@@ -311,9 +324,15 @@ class ImageConfigurationPage (HobPage):
def image_combo_changed_cb(self, combo):
self.builder.window_sensitive(False)
selected_image = self.image_combo.get_active_text()
if not selected_image:
if not selected_image or (selected_image == self.__dummy_image__):
return
# remove __dummy_image__ item from the store list after first user selection
# because it is no longer valid
combo_store = combo.get_model()
if len(combo_store) and (combo_store[0][0] == self.__dummy_image__):
combo.remove_text(0)
self.builder.customized = False
selected_recipes = []
@@ -321,7 +340,7 @@ class ImageConfigurationPage (HobPage):
image_path = self.builder.recipe_model.pn_path[selected_image]
image_iter = self.builder.recipe_model.get_iter(image_path)
selected_packages = self.builder.recipe_model.get_value(image_iter, self.builder.recipe_model.COL_INSTALL).split()
self.update_image_desc(selected_image)
self.update_image_desc()
self.builder.recipe_model.reset()
self.builder.package_model.reset()
@@ -344,32 +363,61 @@ class ImageConfigurationPage (HobPage):
# populate image combo
filter = {RecipeListModel.COL_TYPE : ['image']}
image_model = recipe_model.tree_model(filter)
active = -1
cnt = 0
active = 0
cnt = 1
white_pattern = []
if self.builder.parameters.image_white_pattern:
for i in self.builder.parameters.image_white_pattern.split():
white_pattern.append(re.compile(i))
black_pattern = []
if self.builder.parameters.image_black_pattern:
for i in self.builder.parameters.image_black_pattern.split():
black_pattern.append(re.compile(i))
it = image_model.get_iter_first()
self._image_combo_disconnect_signal()
model = self.image_combo.get_model()
model.clear()
# Set a indicator text to combo store when first open
self.image_combo.append_text(self.__dummy_image__)
# append and set active
while it:
path = image_model.get_path(it)
it = image_model.iter_next(it)
image_name = image_model[path][recipe_model.COL_NAME]
if image_name == self.builder.recipe_model.__dummy_image__:
if image_name == self.builder.recipe_model.__custom_image__:
continue
self.image_combo.append_text(image_name)
if image_name == selected_image:
active = cnt
cnt = cnt + 1
self.image_combo.append_text(self.builder.recipe_model.__dummy_image__)
if selected_image == self.builder.recipe_model.__dummy_image__:
if black_pattern:
allow = True
for pattern in black_pattern:
if pattern.search(image_name):
allow = False
break
elif white_pattern:
allow = False
for pattern in white_pattern:
if pattern.search(image_name):
allow = True
break
else:
allow = True
if allow:
self.image_combo.append_text(image_name)
if image_name == selected_image:
active = cnt
cnt = cnt + 1
self.image_combo.append_text(self.builder.recipe_model.__custom_image__)
if selected_image == self.builder.recipe_model.__custom_image__:
active = cnt
self.image_combo.set_active(-1)
self.image_combo.set_active(active)
if active != -1:
if active != 0:
self.show_baseimg_selected()
self._image_combo_connect_signal()

View File

@@ -25,32 +25,13 @@ import gtk
from bb.ui.crumbs.hobcolor import HobColors
from bb.ui.crumbs.hobwidget import hic, HobViewTable, HobAltButton, HobButton
from bb.ui.crumbs.hobpages import HobPage
import subprocess
from bb.ui.crumbs.hig import CrumbsDialog
#
# ImageDetailsPage
#
class ImageDetailsPage (HobPage):
__columns__ = [{
'col_name' : 'Image name',
'col_id' : 0,
'col_style': 'text',
'col_min' : 500,
'col_max' : 500
}, {
'col_name' : 'Image size',
'col_id' : 1,
'col_style': 'text',
'col_min' : 100,
'col_max' : 100
}, {
'col_name' : 'Select',
'col_id' : 2,
'col_style': 'radio toggle',
'col_min' : 100,
'col_max' : 100
}]
class DetailBox (gtk.EventBox):
def __init__(self, widget = None, varlist = None, vallist = None, icon = None, button = None, color = HobColors.LIGHT_GRAY):
gtk.EventBox.__init__(self)
@@ -61,30 +42,34 @@ class ImageDetailsPage (HobPage):
self.set_style(style)
self.hbox = gtk.HBox()
self.hbox.set_border_width(15)
self.hbox.set_border_width(10)
self.add(self.hbox)
total_rows = 0
if widget:
row = 1
elif varlist and vallist:
total_rows = 10
if varlist and vallist:
# pack the icon and the text on the left
row = len(varlist)
self.table = gtk.Table(row, 20, True)
total_rows += len(varlist)
self.table = gtk.Table(total_rows, 20, True)
self.table.set_row_spacings(6)
self.table.set_size_request(100, -1)
self.hbox.pack_start(self.table, expand=True, fill=True, padding=15)
colid = 0
rowid = 0
self.line_widgets = {}
if icon:
self.table.attach(icon, colid, colid + 2, 0, 1)
colid = colid + 2
if widget:
self.table.attach(widget, colid, 20, 0, 1)
elif varlist and vallist:
for line in range(0, row):
self.line_widgets[varlist[line]] = self.text2label(varlist[line], vallist[line])
self.table.attach(self.line_widgets[varlist[line]], colid, 20, line, line + 1)
self.table.attach(widget, colid, 20, 0, 10)
rowid = 10
if varlist and vallist:
for row in range(rowid, total_rows):
index = row - rowid
self.line_widgets[varlist[index]] = self.text2label(varlist[index], vallist[index])
self.table.attach(self.line_widgets[varlist[index]], colid, 20, row, row + 1)
# pack the button on the right
if button:
self.hbox.pack_end(button, expand=False, fill=False)
@@ -96,9 +81,23 @@ class ImageDetailsPage (HobPage):
return
self.line_widgets[variable].set_markup(self.format_line(variable, value))
def wrap_line(self, inputs):
# wrap the long text of inputs
wrap_width_chars = 75
outputs = ""
tmps = inputs
less_chars = len(inputs)
while (less_chars - wrap_width_chars) > 0:
less_chars -= wrap_width_chars
outputs += tmps[:wrap_width_chars] + "\n "
tmps = inputs[less_chars:]
outputs += tmps
return outputs
def format_line(self, variable, value):
wraped_value = self.wrap_line(value)
markup = "<span weight=\'bold\'>%s</span>" % variable
markup += "<span weight=\'normal\' foreground=\'#1c1c1c\' font_desc=\'14px\'>%s</span>" % value
markup += "<span weight=\'normal\' foreground=\'#1c1c1c\' font_desc=\'14px\'>%s</span>" % wraped_value
return markup
def text2label(self, variable, value):
@@ -112,7 +111,7 @@ class ImageDetailsPage (HobPage):
def __init__(self, builder):
super(ImageDetailsPage, self).__init__(builder, "Image details")
self.image_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)
self.image_store = []
self.button_ids = {}
self.details_bottom_buttons = gtk.HBox(False, 6)
self.create_visual_elements()
@@ -157,10 +156,10 @@ class ImageDetailsPage (HobPage):
self.details_bottom_buttons.remove(child)
def show_page(self, step):
build_succeeded = (step == self.builder.IMAGE_GENERATED)
self.build_succeeded = (step == self.builder.IMAGE_GENERATED)
image_addr = self.builder.parameters.image_addr
image_names = self.builder.parameters.image_names
if build_succeeded:
if self.build_succeeded:
machine = self.builder.configuration.curr_mach
base_image = self.builder.recipe_model.get_selected_image()
layers = self.builder.configuration.layers
@@ -172,12 +171,13 @@ class ImageDetailsPage (HobPage):
for button_id, button in self.button_ids.items():
button.disconnect(button_id)
self._remove_all_widget()
# repack
self.pack_start(self.details_top_buttons, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
self.build_result = None
if build_succeeded:
if self.build_succeeded:
# building is the previous step
icon = gtk.Image()
pixmap_path = hic.ICON_INDI_CONFIRM_FILE
@@ -190,45 +190,83 @@ class ImageDetailsPage (HobPage):
self.box_group_area.pack_start(self.build_result, expand=False, fill=False)
# create the buttons at the bottom first because the buttons are used in apply_button_per_image()
if build_succeeded:
if self.build_succeeded:
self.buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"]
else: # get to this page from "My images"
self.buttonlist = ["Build new image", "Run image", "Deploy image"]
# Name
self.image_store.clear()
default_toggled = False
self.image_store = []
self.toggled_image = ""
default_image_size = 0
self.num_toggled = 0
i = 0
for image_name in image_names:
image_size = HobPage._size_to_string(os.stat(os.path.join(image_addr, image_name)).st_size)
if not default_toggled:
default_toggled = (self.test_type_runnable(image_name) and self.test_mach_runnable(image_name)) \
or self.test_deployable(image_name)
image_attr = ("run" if (self.test_type_runnable(image_name) and self.test_mach_runnable(image_name)) else \
("deploy" if self.test_deployable(image_name) else ""))
is_toggled = (image_attr != "")
if not self.toggled_image:
if i == (len(image_names) - 1):
default_toggled = True
self.image_store.set(self.image_store.append(), 0, image_name, 1, image_size, 2, default_toggled)
if default_toggled:
is_toggled = True
if is_toggled:
default_image_size = image_size
self.create_bottom_buttons(self.buttonlist, image_name)
self.toggled_image = image_name
split_stuff = image_name.split('.')
if "rootfs" in split_stuff:
image_type = image_name[(len(split_stuff[0]) + len(".rootfs") + 1):]
else:
self.image_store.set(self.image_store.append(), 0, image_name, 1, image_size, 2, False)
image_type = image_name[(len(split_stuff[0]) + 1):]
self.image_store.append({'name': image_name,
'type': image_type,
'size': image_size,
'is_toggled': is_toggled,
'action_attr': image_attr,})
i = i + 1
image_table = HobViewTable(self.__columns__)
image_table.set_model(self.image_store)
image_table.connect("toggled", self.toggled_cb)
self.num_toggled += is_toggled
is_runnable = self.create_bottom_buttons(self.buttonlist, self.toggled_image)
# Generated image files info
varlist = ["Name: ", "FileCreated: ", "Directory: "]
vallist = []
vallist.append(image_name.split('.')[0])
vallist.append(', '.join(fileitem['type'] for fileitem in self.image_store))
vallist.append(image_addr)
view_files_button = HobAltButton("View files")
view_files_button.connect("clicked", self.view_files_clicked_cb, image_addr)
view_files_button.set_tooltip_text("Open the directory containing the image files")
self.image_detail = self.DetailBox(widget=image_table, button=view_files_button)
self.box_group_area.pack_start(self.image_detail, expand=True, fill=True)
self.image_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=view_files_button)
self.box_group_area.pack_start(self.image_detail, expand=False, fill=True)
# The default kernel box for the qemu images
self.sel_kernel = ""
if 'qemu' in image_name:
self.sel_kernel = self.get_kernel_file_name()
varlist = ["Kernel: "]
vallist = []
vallist.append(self.sel_kernel)
change_kernel_button = HobAltButton("Change")
change_kernel_button.connect("clicked", self.change_kernel_cb)
change_kernel_button.set_tooltip_text("Change qemu kernel file")
self.kernel_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=change_kernel_button)
self.box_group_area.pack_start(self.kernel_detail, expand=False, fill=False)
# Machine, Base image and Layers
layer_num_limit = 15
varlist = ["Machine: ", "Base image: ", "Layers: "]
vallist = []
self.setting_detail = None
if build_succeeded:
if self.build_succeeded:
vallist.append(machine)
vallist.append(base_image)
i = 0
@@ -252,14 +290,14 @@ class ImageDetailsPage (HobPage):
edit_config_button.set_tooltip_text("Edit machine, base image and recipes")
edit_config_button.connect("clicked", self.edit_config_button_clicked_cb)
self.setting_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_config_button)
self.box_group_area.pack_start(self.setting_detail, expand=False, fill=False)
self.box_group_area.pack_start(self.setting_detail, expand=True, fill=True)
# Packages included, and Total image size
varlist = ["Packages included: ", "Total image size: "]
vallist = []
vallist.append(pkg_num)
vallist.append(default_image_size)
if build_succeeded:
if self.build_succeeded:
edit_packages_button = HobAltButton("Edit packages")
edit_packages_button.set_tooltip_text("Edit the packages included in your image")
edit_packages_button.connect("clicked", self.edit_packages_button_clicked_cb)
@@ -269,12 +307,19 @@ class ImageDetailsPage (HobPage):
self.box_group_area.pack_start(self.package_detail, expand=False, fill=False)
# pack the buttons at the bottom, at this time they are already created.
self.box_group_area.pack_end(self.details_bottom_buttons, expand=False, fill=False)
if self.build_succeeded:
self.box_group_area.pack_end(self.details_bottom_buttons, expand=False, fill=False)
else: # for "My images" page
self.details_separator = gtk.HSeparator()
self.box_group_area.pack_start(self.details_separator, expand=False, fill=False)
self.box_group_area.pack_start(self.details_bottom_buttons, expand=False, fill=False)
self.show_all()
if not is_runnable:
self.kernel_detail.hide()
def view_files_clicked_cb(self, button, image_addr):
os.system("xdg-open /%s" % image_addr)
subprocess.call("xdg-open /%s" % image_addr, shell=True)
def refresh_package_detail_box(self, image_size):
self.package_detail.update_line_widgets("Total image size: ", image_size)
@@ -303,43 +348,109 @@ class ImageDetailsPage (HobPage):
break
return deployable
def toggled_cb(self, table, cell, path, columnid, tree):
model = tree.get_model()
if not model:
def get_kernel_file_name(self, kernel_addr=""):
kernel_name = ""
if not kernel_addr:
kernel_addr = self.builder.parameters.image_addr
files = [f for f in os.listdir(kernel_addr) if f[0] <> '.']
for check_file in files:
if check_file.endswith(".bin"):
name_splits = check_file.split(".")[0]
if self.builder.parameters.kernel_image_type in name_splits.split("-"):
kernel_name = check_file
break
return kernel_name
def show_builded_images_dialog(self, widget, primary_action=""):
title = primary_action if primary_action else "Your builded images"
dialog = CrumbsDialog(title, self.builder,
gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)
dialog.set_border_width(12)
label = gtk.Label()
label.set_use_markup(True)
label.set_alignment(0.0, 0.5)
label.set_markup("<span font_desc='12'>Select the image file you want to %s</span>" % primary_action)
dialog.vbox.pack_start(label, expand=False, fill=False)
# filter created images as action attribution (deploy or run)
action_attr = ""
action_images = []
for fileitem in self.image_store:
action_attr = fileitem['action_attr']
if (action_attr == 'run' and primary_action == "Run image") \
or (action_attr == 'deploy' and primary_action == "Deploy image"):
action_images.append(fileitem)
# pack the corresponding 'runnable' or 'deploy' radio_buttons, if there has no more than one file.
# assume that there does not both have 'deploy' and 'runnable' files in the same building result
# in possible as design.
curr_row = 0
rows = (len(action_images)) if len(action_images) < 10 else 10
table = gtk.Table(rows, 10, True)
table.set_row_spacings(6)
table.set_col_spacing(0, 12)
table.set_col_spacing(5, 12)
sel_parent_btn = None
for fileitem in action_images:
sel_btn = gtk.RadioButton(sel_parent_btn, fileitem['type'])
sel_parent_btn = sel_btn if not sel_parent_btn else sel_parent_btn
sel_btn.set_active(fileitem['is_toggled'])
sel_btn.connect('toggled', self.table_selected_cb, fileitem)
if curr_row < 10:
table.attach(sel_btn, 2, 5, curr_row, curr_row + 1)
else:
table.attach(sel_btn, 7, 10, curr_row - 10, curr_row - 9)
curr_row += 1
dialog.vbox.pack_start(table, expand=False, fill=False, padding = 6)
button = dialog.add_button("Cancel", gtk.RESPONSE_CANCEL)
HobAltButton.style_button(button)
if primary_action:
button = dialog.add_button(primary_action, gtk.RESPONSE_YES)
HobButton.style_button(button)
dialog.show_all()
response = dialog.run()
dialog.destroy()
if response != gtk.RESPONSE_YES:
return
iter = model.get_iter_first()
while iter:
rowpath = model.get_path(iter)
model[rowpath][columnid] = False
iter = model.iter_next(iter)
model[path][columnid] = True
self.refresh_package_detail_box(model[path][1])
for fileitem in self.image_store:
if fileitem['is_toggled']:
if fileitem['action_attr'] == 'run':
self.builder.runqemu_image(fileitem['name'], self.sel_kernel)
elif fileitem['action_attr'] == 'deploy':
self.builder.deploy_image(fileitem['name'])
image_name = model[path][0]
def table_selected_cb(self, tbutton, image):
image['is_toggled'] = tbutton.get_active()
if image['is_toggled']:
self.toggled_image = image['name']
# remove
for button_id, button in self.button_ids.items():
button.disconnect(button_id)
self._remove_all_widget()
# repack
self.pack_start(self.details_top_buttons, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
if self.build_result:
self.box_group_area.pack_start(self.build_result, expand=False, fill=False)
self.box_group_area.pack_start(self.image_detail, expand=True, fill=True)
if self.setting_detail:
self.box_group_area.pack_start(self.setting_detail, expand=False, fill=False)
self.box_group_area.pack_start(self.package_detail, expand=False, fill=False)
self.create_bottom_buttons(self.buttonlist, image_name)
self.box_group_area.pack_end(self.details_bottom_buttons, expand=False, fill=False)
self.show_all()
def change_kernel_cb(self, widget):
kernel_path = self.builder.show_load_kernel_dialog()
if kernel_path and self.kernel_detail:
import os.path
self.sel_kernel = os.path.basename(kernel_path)
markup = self.kernel_detail.format_line("Kernel: ", self.sel_kernel)
label = ((self.kernel_detail.get_children()[0]).get_children()[0]).get_children()[0]
label.set_markup(markup)
def create_bottom_buttons(self, buttonlist, image_name):
# Create the buttons at the bottom
created = False
packed = False
self.button_ids = {}
is_runnable = False
# create button "Deploy image"
name = "Deploy image"
@@ -374,15 +485,7 @@ class ImageDetailsPage (HobPage):
self.button_ids[button_id] = run_button
self.details_bottom_buttons.pack_end(run_button, expand=False, fill=False)
created = True
if not packed:
box = gtk.HBox(False, 6)
box.show()
subbox = gtk.HBox(False, 0)
subbox.set_size_request(205, 49)
subbox.show()
box.add(subbox)
self.details_bottom_buttons.pack_end(box, False, False)
is_runnable = True
name = "Save as template"
if name in buttonlist:
@@ -391,8 +494,13 @@ class ImageDetailsPage (HobPage):
label = gtk.Label(" or ")
self.details_bottom_buttons.pack_end(label, expand=False, fill=False)
# create button "Save as template"
save_button = HobAltButton("Save as template")
# create button "Save as template"
save_button = HobAltButton("Save as template")
else:
save_button = HobButton("Save as template")
save_button.set_size_request(205, 49)
save_button.set_flags(gtk.CAN_DEFAULT)
packed = True
save_button.set_tooltip_text("Save the image configuration for reuse")
button_id = save_button.connect("clicked", self.save_button_clicked_cb)
self.button_ids[button_id] = save_button
@@ -402,34 +510,39 @@ class ImageDetailsPage (HobPage):
name = "Build new image"
if name in buttonlist:
# create button "Build new image"
build_new_button = HobAltButton("Build new image")
if packed:
build_new_button = HobAltButton("Build new image")
else:
build_new_button = HobButton("Build new image")
build_new_button.set_flags(gtk.CAN_DEFAULT)
build_new_button.set_size_request(205, 49)
self.details_bottom_buttons.pack_end(build_new_button, expand=False, fill=False)
build_new_button.set_tooltip_text("Create a new image from scratch")
button_id = build_new_button.connect("clicked", self.build_new_button_clicked_cb)
self.button_ids[button_id] = build_new_button
self.details_bottom_buttons.pack_start(build_new_button, expand=False, fill=False)
def _get_selected_image(self):
image_name = ""
iter = self.image_store.get_iter_first()
while iter:
path = self.image_store.get_path(iter)
if self.image_store[path][2]:
image_name = self.image_store[path][0]
break
iter = self.image_store.iter_next(iter)
return image_name
return is_runnable
def save_button_clicked_cb(self, button):
self.builder.show_save_template_dialog()
def deploy_button_clicked_cb(self, button):
image_name = self._get_selected_image()
self.builder.deploy_image(image_name)
if self.toggled_image:
if self.num_toggled > 1:
self.set_sensitive(False)
self.show_builded_images_dialog(None, "Deploy image")
self.set_sensitive(True)
else:
self.builder.deploy_image(self.toggled_image)
def run_button_clicked_cb(self, button):
image_name = self._get_selected_image()
self.builder.runqemu_image(image_name)
if self.toggled_image:
if self.num_toggled > 1:
self.set_sensitive(False)
self.show_builded_images_dialog(None, "Run image")
self.set_sensitive(True)
else:
self.builder.runqemu_image(self.toggled_image, self.sel_kernel)
def build_new_button_clicked_cb(self, button):
self.builder.initiate_new_build_async()

View File

@@ -39,6 +39,7 @@ class PackageSelectionPage (HobPage):
'columns' : [{
'col_name' : 'Package name',
'col_id' : PackageListModel.COL_NAME,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'text',
'col_min' : 100,
'col_max' : 300,
@@ -46,6 +47,7 @@ class PackageSelectionPage (HobPage):
}, {
'col_name' : 'Brought in by',
'col_id' : PackageListModel.COL_BINB,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'binb',
'col_min' : 100,
'col_max' : 350,
@@ -53,6 +55,7 @@ class PackageSelectionPage (HobPage):
}, {
'col_name' : 'Size',
'col_id' : PackageListModel.COL_SIZE,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'text',
'col_min' : 100,
'col_max' : 300,
@@ -60,7 +63,9 @@ class PackageSelectionPage (HobPage):
}, {
'col_name' : 'Included',
'col_id' : PackageListModel.COL_INC,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'check toggle',
'col_group': 'tree store group',
'col_min' : 100,
'col_max' : 100
}]
@@ -70,6 +75,7 @@ class PackageSelectionPage (HobPage):
'columns' : [{
'col_name' : 'Package name',
'col_id' : PackageListModel.COL_NAME,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400,
@@ -77,6 +83,7 @@ class PackageSelectionPage (HobPage):
}, {
'col_name' : 'Size',
'col_id' : PackageListModel.COL_SIZE,
'col_t_id' : PackageListModel.COL_FONT,
'col_style': 'text',
'col_min' : 100,
'col_max' : 500,
@@ -85,6 +92,7 @@ class PackageSelectionPage (HobPage):
'col_name' : 'Included',
'col_id' : PackageListModel.COL_INC,
'col_style': 'check toggle',
'col_group': 'tree store group',
'col_min' : 100,
'col_max' : 100
}]
@@ -101,13 +109,16 @@ class PackageSelectionPage (HobPage):
# create visual elements
self.create_visual_elements()
def included_clicked_cb(self, button):
self.ins.set_current_page(0)
def create_visual_elements(self):
self.label = gtk.Label("Packages included: 0\nSelected packages size: 0 MB")
self.eventbox = self.add_onto_top_bar(self.label, 73)
self.pack_start(self.eventbox, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
# set visiable members
# set visible members
self.ins = HobNotebook()
self.tables = [] # we need to modify table when the dialog is shown
# append the tab
@@ -117,11 +128,11 @@ class PackageSelectionPage (HobPage):
filter = page['filter']
tab.set_model(self.package_model.tree_model(filter))
tab.connect("toggled", self.table_toggled_cb, page['name'])
tab.connect_group_selection(self.table_selected_cb)
if page['name'] == "Included":
tab.connect("button-release-event", self.button_click_cb)
tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include)
label = gtk.Label(page['name'])
self.ins.append_page(tab, label)
self.ins.append_page(tab, page['name'])
self.tables.append(tab)
self.ins.set_entry("Search packages:")
@@ -183,7 +194,7 @@ class PackageSelectionPage (HobPage):
image_total_size += (51200 * 1024)
image_total_size_str = HobPage._size_to_string(image_total_size)
self.label.set_text("Packages included: %s\nSelected packages size: %s\nTotal image size: %s" %
self.label.set_label("Packages included: %s\nSelected packages size: %s\nTotal image size: %s" %
(selected_packages_num, selected_packages_size_str, image_total_size_str))
self.ins.show_indicator_icon("Included", selected_packages_num)
@@ -201,7 +212,7 @@ class PackageSelectionPage (HobPage):
self.refresh_selection()
if not self.builder.customized:
self.builder.customized = True
self.builder.configuration.selected_image = self.recipe_model.__dummy_image__
self.builder.configuration.selected_image = self.recipe_model.__custom_image__
self.builder.rcppkglist_populated()
self.builder.window_sensitive(True)
@@ -247,3 +258,20 @@ class PackageSelectionPage (HobPage):
def after_fadeout_checkin_include(self, table, ctrl, cell, tree):
tree.set_model(self.package_model.tree_model(self.pages[0]['filter']))
tree.expand_all()
def foreach_cell_change_font(self, model, path, iter, paths=None):
# Changed the font for a group cells
if path and iter and path[0] == paths[0]:
self.package_model.set(iter, self.package_model.COL_FONT, "bold")
else:
if iter and model.iter_parent(iter) == None:
self.package_model.set(iter, self.package_model.COL_FONT, '11')
else:
self.package_model.set(iter, self.package_model.COL_FONT, '10')
def table_selected_cb(self, selection):
model, paths = selection.get_selected_rows()
if paths:
child_path = self.package_model.convert_vpath_to_path(model, paths[0])
self.package_model.foreach(self.foreach_cell_change_font, child_path)

View File

@@ -35,7 +35,7 @@ class PersistentTooltip(gtk.Window):
markup: some Pango text markup to display in the tooltip
"""
def __init__(self, markup):
def __init__(self, markup, parent_win=None):
gtk.Window.__init__(self, gtk.WINDOW_POPUP)
# Inherit the system theme for a tooltip
@@ -76,6 +76,10 @@ class PersistentTooltip(gtk.Window):
# Ensure a reasonable minimum size
self.set_geometry_hints(self, 100, 50)
# Set this window as a transient window for parent(main window)
if parent_win:
self.set_transient_for(parent_win)
self.set_destroy_with_parent(True)
# Draw our label and close buttons
hbox = gtk.HBox(False, 0)
hbox.show()
@@ -121,11 +125,17 @@ class PersistentTooltip(gtk.Window):
style.fg[gtk.STATE_NORMAL] = gtk.gdk.color_parse(val)
self.label.set_style(style)
break # we only care for the tooltip_fg_color
self.label.set_markup(markup)
self.label.show()
bin.add(self.label)
hbox.pack_end(bin, True, True, 6)
# add the original URL display for user reference
if 'a href' in markup:
hbox.set_tooltip_text(self.get_markup_url(markup))
hbox.show()
self.connect("key-press-event", self._catch_esc_cb)
"""
@@ -161,3 +171,16 @@ class PersistentTooltip(gtk.Window):
def hide(self):
self.shown = False
gtk.Window.hide(self)
"""
Called to get the hyperlink URL from markup text.
"""
def get_markup_url(self, markup):
url = "http:"
if markup and type(markup) == str:
s = markup
if 'http:' in s:
import re
url = re.search('(http:[^,\\ "]+)', s).group(0)
return url

View File

@@ -99,7 +99,7 @@ class RecipeSelectionPage (HobPage):
}]
}, {
'name' : 'Tasks',
'tooltip' : 'All tasks availabel in the Yocto Project',
'tooltip' : 'All tasks available in the Yocto Project',
'filter' : { RecipeListModel.COL_TYPE : ['task'] },
'columns' : [{
'col_name' : 'Task name',
@@ -134,13 +134,15 @@ class RecipeSelectionPage (HobPage):
# create visual elements
self.create_visual_elements()
def included_clicked_cb(self, button):
self.ins.set_current_page(0)
def create_visual_elements(self):
self.label = gtk.Label()
self.eventbox = self.add_onto_top_bar(self.label, 73)
self.eventbox = self.add_onto_top_bar(None, 73)
self.pack_start(self.eventbox, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
# set visiable members
# set visible members
self.ins = HobNotebook()
self.tables = [] # we need modify table when the dialog is shown
# append the tabs in order
@@ -153,10 +155,7 @@ class RecipeSelectionPage (HobPage):
if page['name'] == "Included":
tab.connect("button-release-event", self.button_click_cb)
tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include)
label = gtk.Label(page['name'])
label.set_selectable(False)
label.set_tooltip_text(page['tooltip'])
self.ins.append_page(tab, label)
self.ins.append_page(tab, page['name'], page['tooltip'])
self.tables.append(tab)
self.ins.set_entry("Search recipes:")
@@ -202,7 +201,6 @@ class RecipeSelectionPage (HobPage):
def refresh_selection(self):
self.builder.configuration.selected_image = self.recipe_model.get_selected_image()
_, self.builder.configuration.selected_recipes = self.recipe_model.get_selected_recipes()
self.label.set_text("Recipes included: %s" % len(self.builder.configuration.selected_recipes))
self.ins.show_indicator_icon("Included", len(self.builder.configuration.selected_recipes))
def toggle_item_idle_cb(self, path, view_tree, cell, pagename):
@@ -219,7 +217,7 @@ class RecipeSelectionPage (HobPage):
self.refresh_selection()
if not self.builder.customized:
self.builder.customized = True
self.builder.configuration.selected_image = self.recipe_model.__dummy_image__
self.builder.configuration.selected_image = self.recipe_model.__custom_image__
self.builder.rcppkglist_populated()
self.builder.window_sensitive(True)

View File

@@ -82,6 +82,9 @@ class RunningBuild (gobject.GObject):
'log-error' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'no-provider' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
}
pids_to_task = {}
tasks_to_iter = {}
@@ -320,6 +323,20 @@ class RunningBuild (gobject.GObject):
message["title"] = ""
message["task"] = event.taskstring
self.emit("task-started", message)
elif isinstance(event, bb.event.NoProvider):
msg = ""
if event._runtime:
r = "R"
else:
r = ""
if event._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)\n" % (r, event._item, ", ".join(event._dependees), r)
else:
msg = "Nothing %sPROVIDES '%s'\n" % (r, event._item)
if event._reasons:
for reason in event._reasons:
msg += ("%s\n" % reason)
self.emit("no-provider", msg)
return

View File

@@ -101,7 +101,19 @@ class HobTemplateFile(ConfigFile):
return self.dictionary[var]
else:
return ""
def getVersion(self):
contents = ConfigFile.readFile(self)
pattern = "^\s*(\S+)\s*=\s*(\".*?\")"
for line in contents:
match = re.search(pattern, line)
if match:
if match.group(1) == "VERSION":
return match.group(2).strip('"')
return None
def load(self):
contents = ConfigFile.readFile(self)
self.dictionary.clear()
@@ -136,11 +148,27 @@ class TemplateMgr(gobject.GObject):
self.local_conf = None
self.image_bb = None
@classmethod
def convert_to_template_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "template-", filename, ".hob")
@classmethod
def convert_to_bblayers_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "bblayers-", filename, ".conf")
@classmethod
def convert_to_local_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "local-", filename, ".conf")
@classmethod
def convert_to_image_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "hob-image-", filename, ".bb")
def open(self, filename, path):
self.template_hob = HobTemplateFile("%s/%s%s%s" % (path, "template-", filename, ".hob"))
self.bblayers_conf = ConfigFile("%s/%s%s%s" % (path, "bblayers-", filename, ".conf"))
self.local_conf = ConfigFile("%s/%s%s%s" % (path, "local-", filename, ".conf"))
self.image_bb = RecipeFile("%s/%s%s%s" % (path, "hob-image-", filename, ".bb"))
self.template_hob = HobTemplateFile(TemplateMgr.convert_to_template_pathfilename(filename, path))
self.bblayers_conf = ConfigFile(TemplateMgr.convert_to_bblayers_pathfilename(filename, path))
self.local_conf = ConfigFile(TemplateMgr.convert_to_local_pathfilename(filename, path))
self.image_bb = RecipeFile(TemplateMgr.convert_to_image_pathfilename(filename, path))
def setVar(self, var, val):
if var in TemplateMgr.__gLocalVars__:
@@ -158,6 +186,9 @@ class TemplateMgr(gobject.GObject):
self.image_bb.save()
self.template_hob.save()
def getVersion(self, path):
return HobTemplateFile(path).getVersion()
def load(self, path):
self.template_hob = HobTemplateFile(path)
self.dictionary = self.template_hob.load()

View File

@@ -22,6 +22,7 @@
# bitbake which will allow more flexibility.
import os
import bb
def which_terminal():
term = bb.utils.which(os.environ["PATH"], "xterm")

View File

@@ -24,7 +24,7 @@ import threading
import xmlrpclib
import bb
import bb.event
from bb.ui.crumbs.progress import ProgressBar
from bb.ui.crumbs.progressbar import HobProgressBar
# Package Model
(COL_PKG_NAME) = (0)
@@ -220,8 +220,12 @@ def main(server, eventHandler):
gtk.gdk.threads_enter()
dep = DepExplorer()
pbar = ProgressBar(dep)
pbar.connect("delete-event", gtk.main_quit)
bardialog = gtk.Dialog(parent=dep)
bardialog.set_default_size(400, 50)
pbar = HobProgressBar()
bardialog.vbox.pack_start(pbar)
bardialog.show_all()
bardialog.connect("delete-event", gtk.main_quit)
gtk.gdk.threads_leave()
progress_total = 0
@@ -238,19 +242,20 @@ def main(server, eventHandler):
if isinstance(event, bb.event.CacheLoadStarted):
progress_total = event.total
gtk.gdk.threads_enter()
pbar.set_title("Loading Cache")
pbar.update(0, progress_total)
bardialog.set_title("Loading Cache")
pbar.update(0)
gtk.gdk.threads_leave()
if isinstance(event, bb.event.CacheLoadProgress):
x = event.current
gtk.gdk.threads_enter()
pbar.update(x, progress_total)
pbar.update(x * 1.0 / progress_total)
pbar.set_title('')
gtk.gdk.threads_leave()
continue
if isinstance(event, bb.event.CacheLoadCompleted):
pbar.hide()
bardialog.hide()
continue
if isinstance(event, bb.event.ParseStarted):
@@ -258,19 +263,21 @@ def main(server, eventHandler):
if progress_total == 0:
continue
gtk.gdk.threads_enter()
pbar.set_title("Processing recipes")
pbar.update(0, progress_total)
pbar.update(0)
bardialog.set_title("Processing recipes")
gtk.gdk.threads_leave()
if isinstance(event, bb.event.ParseProgress):
x = event.current
gtk.gdk.threads_enter()
pbar.update(x, progress_total)
pbar.update(x * 1.0 / progress_total)
pbar.set_title('')
gtk.gdk.threads_leave()
continue
if isinstance(event, bb.event.ParseCompleted):
pbar.hide()
bardialog.hide()
continue
if isinstance(event, bb.event.DepTreeGenerated):

View File

@@ -30,7 +30,7 @@ try:
pygtk.require('2.0') # to be certain we don't have gtk+ 1.x !?!
gtkver = gtk.gtk_version
pygtkver = gtk.pygtk_version
if gtkver < (2, 18, 0) or pygtkver < (2, 16, 0):
if gtkver < (2, 20, 0) or pygtkver < (2, 21, 0):
sys.exit("%s,\nYou have Gtk+ %s and PyGtk %s." % (requirements,
".".join(map(str, gtkver)),
".".join(map(str, pygtkver))))

View File

@@ -106,4 +106,4 @@ class TerminalFilter2(object):
self.termios.tcsetattr(fd, self.termios.TCSADRAIN, self.stdinbackup)
def main(server, eventHandler):
bb.ui.knotty.main(server, eventHandler, TerminalFilter2)
return bb.ui.knotty.main(server, eventHandler, TerminalFilter2)

View File

@@ -47,7 +47,7 @@
from __future__ import division
import logging
import os, sys, curses, itertools, time
import os, sys, curses, itertools, time, subprocess
import bb
import xmlrpclib
from bb import ui
@@ -286,7 +286,7 @@ class NCursesUI:
# bb.error("log data follows (%s)" % logfile)
# number_of_lines = data.getVar("BBINCLUDELOGS_LINES", d)
# if number_of_lines:
# os.system('tail -n%s %s' % (number_of_lines, logfile))
# subprocess.call('tail -n%s %s' % (number_of_lines, logfile), shell=True)
# else:
# f = open(logfile, "r")
# while True:

View File

@@ -26,14 +26,12 @@ import logging
import bb
import bb.msg
import multiprocessing
import fcntl
from commands import getstatusoutput
from contextlib import contextmanager
logger = logging.getLogger("BitBake.Util")
# Version comparison
separators = ".-"
# Context used in better_exec, eval
_context = {
"os": os,
@@ -48,15 +46,18 @@ def explode_version(s):
while (s != ''):
if s[0] in string.digits:
m = numeric_regexp.match(s)
r.append(int(m.group(1)))
r.append((0, int(m.group(1))))
s = m.group(2)
continue
if s[0] in string.letters:
m = alpha_regexp.match(s)
r.append(m.group(1))
r.append((1, m.group(1)))
s = m.group(2)
continue
r.append(s[0])
if s[0] == '~':
r.append((-1, s[0]))
else:
r.append((2, s[0]))
s = s[1:]
return r
@@ -77,33 +78,25 @@ def split_version(s):
def vercmp_part(a, b):
va = explode_version(a)
vb = explode_version(b)
sa = False
sb = False
while True:
if va == []:
ca = None
(oa, ca) = (0, None)
else:
ca = va.pop(0)
(oa, ca) = va.pop(0)
if vb == []:
cb = None
(ob, cb) = (0, None)
else:
cb = vb.pop(0)
if ca == None and cb == None:
(ob, cb) = vb.pop(0)
if (oa, ca) == (0, None) and (ob, cb) == (0, None):
return 0
if isinstance(ca, basestring):
sa = ca in separators
if isinstance(cb, basestring):
sb = cb in separators
if sa and not sb:
if oa < ob:
return -1
if not sa and sb:
elif oa > ob:
return 1
if ca > cb:
return 1
if ca < cb:
elif ca < cb:
return -1
elif ca > cb:
return 1
def vercmp(ta, tb):
(ea, va, ra) = ta
@@ -116,130 +109,10 @@ def vercmp(ta, tb):
r = vercmp_part(ra, rb)
return r
_package_weights_ = {"pre":-2, "p":0, "alpha":-4, "beta":-3, "rc":-1} # dicts are unordered
_package_ends_ = ["pre", "p", "alpha", "beta", "rc", "cvs", "bk", "HEAD" ] # so we need ordered list
def relparse(myver):
"""Parses the last elements of a version number into a triplet, that can
later be compared.
"""
number = 0
p1 = 0
p2 = 0
mynewver = myver.split('_')
if len(mynewver) == 2:
# an _package_weights_
number = float(mynewver[0])
match = 0
for x in _package_ends_:
elen = len(x)
if mynewver[1][:elen] == x:
match = 1
p1 = _package_weights_[x]
try:
p2 = float(mynewver[1][elen:])
except:
p2 = 0
break
if not match:
# normal number or number with letter at end
divider = len(myver)-1
if myver[divider:] not in "1234567890":
# letter at end
p1 = ord(myver[divider:])
number = float(myver[0:divider])
else:
number = float(myver)
else:
# normal number or number with letter at end
divider = len(myver)-1
if myver[divider:] not in "1234567890":
#letter at end
p1 = ord(myver[divider:])
number = float(myver[0:divider])
else:
number = float(myver)
return [number, p1, p2]
__vercmp_cache__ = {}
def vercmp_string(val1, val2):
"""This takes two version strings and returns an integer to tell you whether
the versions are the same, val1>val2 or val2>val1.
"""
# quick short-circuit
if val1 == val2:
return 0
valkey = val1 + " " + val2
# cache lookup
try:
return __vercmp_cache__[valkey]
try:
return - __vercmp_cache__[val2 + " " + val1]
except KeyError:
pass
except KeyError:
pass
# consider 1_p2 vc 1.1
# after expansion will become (1_p2,0) vc (1,1)
# then 1_p2 is compared with 1 before 0 is compared with 1
# to solve the bug we need to convert it to (1,0_p2)
# by splitting _prepart part and adding it back _after_expansion
val1_prepart = val2_prepart = ''
if val1.count('_'):
val1, val1_prepart = val1.split('_', 1)
if val2.count('_'):
val2, val2_prepart = val2.split('_', 1)
# replace '-' by '.'
# FIXME: Is it needed? can val1/2 contain '-'?
val1 = val1.split("-")
if len(val1) == 2:
val1[0] = val1[0] + "." + val1[1]
val2 = val2.split("-")
if len(val2) == 2:
val2[0] = val2[0] + "." + val2[1]
val1 = val1[0].split('.')
val2 = val2[0].split('.')
# add back decimal point so that .03 does not become "3" !
for x in xrange(1, len(val1)):
if val1[x][0] == '0' :
val1[x] = '.' + val1[x]
for x in xrange(1, len(val2)):
if val2[x][0] == '0' :
val2[x] = '.' + val2[x]
# extend varion numbers
if len(val2) < len(val1):
val2.extend(["0"]*(len(val1)-len(val2)))
elif len(val1) < len(val2):
val1.extend(["0"]*(len(val2)-len(val1)))
# add back _prepart tails
if val1_prepart:
val1[-1] += '_' + val1_prepart
if val2_prepart:
val2[-1] += '_' + val2_prepart
# The above code will extend version numbers out so they
# have the same number of digits.
for x in xrange(0, len(val1)):
cmp1 = relparse(val1[x])
cmp2 = relparse(val2[x])
for y in xrange(0, 3):
myret = cmp1[y] - cmp2[y]
if myret != 0:
__vercmp_cache__[valkey] = myret
return myret
__vercmp_cache__[valkey] = 0
return 0
def vercmp_string(a, b):
ta = split_version(a)
tb = split_version(b)
return vercmp(ta, tb)
def explode_deps(s):
"""
@@ -550,8 +423,6 @@ def preserved_envvars():
'BB_PRESERVE_ENV',
'BB_ENV_WHITELIST',
'BB_ENV_EXTRAWHITE',
'LANG',
'_',
]
return v + preserved_envvars_exported() + preserved_envvars_exported_interactive()
@@ -849,6 +720,8 @@ def which(path, item, direction = 0):
for p in paths:
next = os.path.join(p, item)
if os.path.exists(next):
if not os.path.isabs(next):
next = os.path.abspath(next)
return next
return ""
@@ -880,3 +753,7 @@ def contains(variable, checkvalues, truevalue, falsevalue, d):
def cpu_count():
return multiprocessing.cpu_count()
def nonblockingfd(fd):
fcntl.fcntl(fd, fcntl.F_SETFL, fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK)

View File

@@ -82,7 +82,8 @@ ALLPREQ = html pdf tarball
#
# Note that the tarfile might produce the "Cannot stat: No such file or directory" error
# message for .PNG files that are not present when building a particular branch. The
# list of files is all-inclusive for all branches.
# list of files is all-inclusive for all branches. Note, if you don't provide a BRANCH
# option, it defaults to the latest stuff. This would be appropriate for "master" branch.
#
ifeq ($(BRANCH),edison)
@@ -94,13 +95,22 @@ TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/kernel-overview-3-edison.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
else
else ifeq ($(BRANCH),denzil)
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos.png \
figures/kernel-example-repos-denzil.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3.png \
figures/kernel-overview-3-denzil.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
else
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos-denzil.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3-denzil.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
endif
@@ -195,7 +205,7 @@ validate:
publish:
scp -r $(MANUALS) $(STYLESHEET) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)
cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)/figures
cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)
clean:
rm -f $(MANUALS)

View File

@@ -8,7 +8,7 @@
<para>
Recall that earlier the manual discussed how to use an existing toolchain
tarball that had been installed into <filename>/opt/poky</filename>,
which is outside of the Yocto Project build tree
which is outside of the build directory
(see the section "<link linkend='using-an-existing-toolchain-tarball'>Using an Existing
Toolchain Tarball)</link>".
And, that sourcing your architecture-specific environment setup script
@@ -21,7 +21,7 @@
for example, <filename>configure.sh</filename> can find pre-generated
test results for tests that need target hardware on which to run.
These conditions allow you to easily use the toolchain outside of the
Yocto Project build environment on both autotools-based projects and
OpenEmbedded build environment on both autotools-based projects and
Makefile-based projects.
</para>

View File

@@ -7,9 +7,9 @@
<para>
The Eclipse IDE is a popular development environment and it fully supports
development using Yocto Project.
development using the Yocto Project.
When you install and configure the Eclipse Yocto Project Plug-in into
the Eclipse IDE, you maximize your Yocto Project design experience.
the Eclipse IDE, you maximize your Yocto Project experience.
Installing and configuring the Plug-in results in an environment that
has extensions specifically designed to let you more easily develop software.
These extensions allow for cross-compilation, deployment, and execution of
@@ -21,7 +21,7 @@
</para>
<para>
This section describes how to install and configure the Eclipse IDE
Yocto Plug-in and how to use it to develop your Yocto Project.
Yocto Plug-in and how to use it to develop your application.
</para>
<section id='setting-up-the-eclipse-ide'>
@@ -35,6 +35,11 @@
<listitem><para>Install the Eclipse Yocto Plug-in.</para></listitem>
<listitem><para>Configure the Eclipse Yocto Plug-in.</para></listitem>
</orderedlist>
<note>
Do not install Eclipse from your distribution's package repository.
Be sure to install Eclipse from the official Eclipse download site as directed
in the next section.
</note>
</para>
<section id='installing-eclipse-ide'>
@@ -59,7 +64,7 @@
into a clean directory using the default name <filename>eclipse</filename>:
<literallayout class='monospaced'>
$ cd ~
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.1-linux-gtk-x86_64.tar.gz
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.2-linux-gtk-x86_64.tar.gz
</literallayout>
</para>
@@ -147,7 +152,7 @@
<para>
You can install the Eclipse Yocto Plug-in into the Eclipse IDE
one of two ways: use the Yocto Project update site to install the pre-built plug-in,
one of two ways: use the Yocto Project's Eclipse Update site to install the pre-built plug-in,
or build and install the plug-in from the latest source code.
If you don't want to permanently install the plug-in but just want to try it out
within the Eclipse environment, you can import the plug-in project from the
@@ -288,7 +293,7 @@
<itemizedlist>
<listitem><para>Choose <filename>Windows -&gt; Preferences</filename> to display
the <filename>Preferences</filename> Dialog</para></listitem>
<listitem><para>Click <filename>Yocto ADT</filename></para></listitem>
<listitem><para>Click <filename>Yocto Project ADT</filename></para></listitem>
</itemizedlist>
</para>
@@ -315,16 +320,16 @@
<listitem><para><emphasis>
<filename>Build System Derived Toolchain:</filename></emphasis>
Select this mode if the cross-toolchain has been installed and built
as part of the Yocto Project build tree.
as part of the build directory.
When you select <filename>Build system derived toolchain</filename>,
you are using the toolchain bundled
inside the Yocto Project build tree.
inside the build directory.
</para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
If you are using a stand-alone pre-built toolchain, you should be pointing to the
<filename>/opt/poky/1.1</filename> directory.
<filename>&YOCTO_ADTPATH_DIR;</filename> directory.
This is the location for toolchains installed by the ADT Installer or by hand.
Sections "<link linkend='configuring-and-running-the-adt-installer-script'>Configuring
and Running the ADT Installer Script</link>" and
@@ -337,11 +342,10 @@
However, doing so is discouraged.</note></para>
<para>If you are using a system-derived toolchain, the path you provide
for the <filename>Toolchain Root Location</filename>
field is the Yocto Project's build directory.
field is the build directory.
See section "<link linkend='using-the-toolchain-from-within-the-build-tree'>Using
BitBake and the Yocto Project Build Tree</link>" for
information on how to install the toolchain into the Yocto
Project build tree.</para></listitem>
BitBake and the build directory</link>" for
information on how to install the toolchain into the build directory.</para></listitem>
<listitem><para><emphasis>Specify the Sysroot Location:</emphasis>
This location is where the root filesystem for the
target hardware is created on the development system by the ADT Installer.
@@ -375,7 +379,7 @@
and specify any custom options.</para>
<para>If you selected <filename>Build system derived toolchain</filename>,
the target kernel you built will be located in the
Yocto Project build tree in <filename>tmp/deploy/images</filename> directory.
build directory in <filename>tmp/deploy/images</filename> directory.
If you selected <filename>Standalone pre-built toolchain</filename>, the
pre-built image you downloaded is located
in the directory you specified when you downloaded the image.</para>
@@ -426,9 +430,9 @@
<listitem><para>Select <filename>File -&gt; New -&gt; Project</filename>.</para></listitem>
<listitem><para>Double click <filename>CC++</filename>.</para></listitem>
<listitem><para>Double click <filename>C Project</filename> to create the project.</para></listitem>
<listitem><para>Expand <filename>Yocto ADT Project</filename>.</para></listitem>
<listitem><para>Expand <filename>Yocto Project ADT Project</filename>.</para></listitem>
<listitem><para>Select <filename>Hello World ANSI C Autotools Project</filename>.
This is an Autotools-based project based on a Yocto Project template.</para></listitem>
This is an Autotools-based project based on a Yocto template.</para></listitem>
<listitem><para>Put a name in the <filename>Project name:</filename> field.
Do not use hyphens as part of the name.</para></listitem>
<listitem><para>Click <filename>Next</filename>.</para></listitem>
@@ -455,7 +459,7 @@
You can override these settings for a given project by following these steps:
<orderedlist>
<listitem><para>Select <filename>Project -&gt; Change Yocto Project Settings</filename>:
This selection brings up the <filename>Project Yocto Settings</filename> Dialog
This selection brings up the <filename>Yocot Project Settings</filename> Dialog
and allows you to make changes specific to an individual project.
</para>
<para>By default, the Cross Compiler Options and Target Options for a project
@@ -463,7 +467,7 @@
Dialog as described earlier
in the "<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse
Yocto Plug-in</link>" section.
The <filename>Project Yocto Settings</filename>
The <filename>Yocto Project Settings</filename>
Dialog allows you to override those default settings
for a given project.</para></listitem>
<listitem><para>Make your configurations for the project and click "OK".</para></listitem>
@@ -672,7 +676,7 @@
<filename>&lt;project_location&gt;/&lt;project_name&gt;</filename>.
If that directory does not exist, you need to check
the "Clone from Yocto Git Repository" box, which would execute a
<filename>git clone</filename> command to get the Yocto project's metadata files.
<filename>git clone</filename> command to get the project's metadata files.
</para></listitem>
<listitem><para>Select <filename>Finish</filename> to create the project.</para></listitem>
</orderedlist>
@@ -697,9 +701,9 @@
<listitem><para>Select <filename>File -> New -> Yocto BitBake Commander -> BitBake Recipe</filename>
to open a new recipe wizard.</para></listitem>
<listitem><para>Point to your source by filling in the "SRC_URL" field.
For example, you can add a recipe in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-source-files'>Yocto Project Source Files</ulink>,
input the "SRC_URL" as follows:
For example, you can add a recipe to your
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-source-files'>source directory structure</ulink>
by defining "SRC_URL" as follows:
<literallayout class='monospaced'>
ftp://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
</literallayout></para></listitem>

View File

@@ -17,7 +17,7 @@
<para>
Fundamentally, the ADT consists of an architecture-specific cross-toolchain and
a matching sysroot that are both built by the Yocto Project build system Poky.
a matching sysroot that are both built by the OpenEmbedded build system Poky.
The toolchain and sysroot are based on a metadata configuration and extensions,
which allows you to cross-develop on the host machine for the target.
</para>
@@ -50,7 +50,7 @@
The cross-toolchain consists of a cross-compiler, cross-linker, and cross-debugger
that are used to develop user-space applications for targeted hardware.
This toolchain is created either by running the ADT Installer script or
through a Yocto Project build tree that is based on your metadata
through a build directory that is based on your metadata
configuration or extension for your targeted device.
The cross-toolchain works with a matching target sysroot.
</para>
@@ -63,7 +63,7 @@
The matching target sysroot contains needed headers and libraries for generating
binaries that run on the target architecture.
The sysroot is based on the target root filesystem image that is built by
the Yocto Project's build system Poky and uses the same metadata configuration
the OpenEmbedded build system Poky and uses the same metadata configuration
used to build the cross-toolchain.
</para>
</section>
@@ -79,8 +79,8 @@
<listitem><para>If you use the ADT Installer script to install ADT, you can
specify whether or not to install QEMU.</para></listitem>
<listitem><para>If you have downloaded a Yocto Project release and unpacked
it to create a Yocto Project file structure and you have sourced
the Yocto Project environment setup script, QEMU is installed and automatically
it to create a source directory and you have sourced
the environment setup script, QEMU is installed and automatically
available.</para></listitem>
<listitem><para>If you have installed the cross-toolchain
tarball and you have sourcing the toolchain's setup environment script, QEMU
@@ -120,7 +120,7 @@
<listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure
that simplifies information gathering about a running Linux system.
This information helps you diagnose performance or functional problems.
SystemTap is not available as a user-space tool through the Yocto Eclipse IDE Plug-in.
SystemTap is not available as a user-space tool through the Eclipse IDE Yocto Plug-in.
See <ulink url='http://sourceware.org/systemtap'></ulink> for more information
on SystemTap.</para></listitem>
<listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to

View File

@@ -46,8 +46,13 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.3</revnumber>
<date>Sometime in 2012</date>
<revremark>Released with the Yocto Project 1.3 Release.</revremark>
</revision>
</revhistory>

View File

@@ -17,7 +17,7 @@
<title>Package Management Systems</title>
<para>
The Yocto Project supports the generation of sysroot files using
The OpenEmbedded build system supports the generation of sysroot files using
three different Package Management Systems (PMS):
<itemizedlist>
<listitem><para><emphasis>OPKG:</emphasis> A less well known PMS whose use
@@ -28,7 +28,7 @@
<listitem><para><emphasis>RPM:</emphasis> A more widely known PMS intended for GNU/Linux
distributions.
This PMS works with files packaged in an <filename>.rms</filename> format.
The Yocto Project currently installs through this PMS by default.
The build system currently installs through this PMS by default.
See <ulink url='http://en.wikipedia.org/wiki/RPM_Package_Manager'></ulink>
for more information about RPM.</para></listitem>
<listitem><para><emphasis>Debian:</emphasis> The PMS for Debian-based systems
@@ -75,7 +75,7 @@
</para>
<para>
Next, source the environment setup script found in the Yocto Project files.
Next, source the environment setup script found in the source directory.
Follow that by setting up the installation destination to point to your
sysroot as <filename>&lt;sysroot_dir&gt;</filename>.
Finally, have an OPKG configuration file <filename>&lt;conf_file&gt;</filename>

View File

@@ -23,6 +23,21 @@
See the "<link linkend='setting-up-the-cross-development-environment'>Setting Up the
Cross-Development Environment</link>"
section for more information.
</para>
<note>
<para>Avoid mixing installation methods when installing the ADT for different architectures.
For example, avoid using the ADT Installer to install some toolchains and then hand-installing
cross-development toolchains from downloaded tarballs to install toolchains
for different architectures.
Mixing installation methods can result in situations where the ADT Installer becomes
unreliable and might not install the toolchain.</para>
<para>If you must mix installation methods, you might avoid problems by deleting
<filename>/var/lib/opkg</filename>, thus purging the <filename>opkg</filename> package
metadata</para>
</note>
<para>
<itemizedlist>
<listitem><para><emphasis>Use the ADT Installer Script:</emphasis>
This method is the recommended way to install the ADT because it
@@ -36,8 +51,8 @@
If you use this method, you just get the cross-toolchain and QEMU - you do not
get any of the other mentioned benefits had you run the ADT Installer script.</para></listitem>
<listitem><para><emphasis>Use the Toolchain from within a Yocto Project Build Tree:</emphasis>
If you already have a Yocto Project build tree, you can build the cross-toolchain
within tree.
If you already have a build directory, you can build the cross-toolchain
within that structure.
However, like the previous method mentioned, you only get the cross-toolchain and QEMU - you
do not get any of the other benefits without taking separate steps.</para></listitem>
</itemizedlist>
@@ -60,22 +75,21 @@
<ulink url='&YOCTO_DL_URL;/releases'>Index of Releases</ulink>, specifically
at
<ulink url='&YOCTO_ADTINSTALLER_DL_URL;'></ulink>.
Or, you can use BitBake to generate the tarball inside the existing Yocto Project
build tree.
Or, you can use BitBake to generate the tarball inside the existing build directory.
</para>
<para>
If you use BitBake to generate the ADT Installer tarball, you must
<filename>source</filename> the Yocto Project environment setup script
<filename>source</filename> the environment setup script
(<filename>oe-init-build-env</filename>) located
in the Yocto Project file structure before running the <filename>bitbake</filename>
in the source directory before running the <filename>bitbake</filename>
command that creates the tarball.
</para>
<para>
The following example commands download the Yocto Project release tarball, set up the Yocto
Project files structure, set up the environment while also creating the
default Yocto Project build tree,
The following example commands download the Yocto Project release tarball, set up the
source directory, set up the environment while also creating the
default build directory,
and run the <filename>bitbake</filename> command that results in the tarball
<filename>~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2</filename>:
<literallayout class='monospaced'>
@@ -136,7 +150,7 @@
or not to install the emulator QEMU.</para></listitem>
<listitem><para><filename>YOCTOADT_NFS_UTIL</filename>: Indicates whether
or not to install user-mode NFS.
If you plan to use the Yocto Eclipse IDE plug-in against QEMU,
If you plan to use the Eclipse IDE Yocto plug-in against QEMU,
you should install NFS.
<note>To boot QEMU images using our userspace NFS server, you need
to be running <filename>portmap</filename> or <filename>rpcbind</filename>.
@@ -166,7 +180,10 @@
<para>
After you have configured the <filename>adt_installer.conf</filename> file,
run the installer using the following command:
run the installer using the following command.
Be sure that you are not trying to use cross-compilation tools.
When you run the installer, the environment must use a
host <filename>gcc</filename>:
<literallayout class='monospaced'>
$ ./adt_installer
</literallayout>
@@ -226,17 +243,17 @@
poky-eglibc-x86_64-i586-toolchain-gmae-&DISTRO;.tar.bz2
</literallayout>
<note><para>As an alternative to steps one and two, you can build the toolchain tarball
if you have a Yocto Project build tree.
if you have a build directory.
If you need GMAE, you should use the <filename>bitbake meta-toolchain-gmae</filename>
command.
The resulting tarball will support such development.
However, if you are not concerned with GMAE,
you can generate the tarball using <filename>bitbake meta-toolchain</filename>.</para>
<para>Use the appropriate <filename>bitbake</filename> command only after you have
sourced the <filename>oe-build-init-env</filename> script located in the Yocto
Project files.
sourced the <filename>oe-build-init-env</filename> script located in the source
directory.
When the <filename>bitbake</filename> command completes, the tarball will
be in <filename>tmp/deploy/sdk</filename> in the Yocto Project build tree.
be in <filename>tmp/deploy/sdk</filename> in the build directory.
</para></note></para></listitem>
<listitem><para>Make sure you are in the root directory with root privileges and then expand
the tarball.
@@ -249,26 +266,27 @@
</section>
<section id='using-the-toolchain-from-within-the-build-tree'>
<title>Using BitBake and the Yocto Project Build Tree</title>
<title>Using BitBake and the Build Directory</title>
<para>
A final way of installing just the cross-toolchain is to use BitBake to build the
toolchain within an existing Yocto Project build tree.
This method does not install the toolchain into the <filename>/opt</filename> directory.
A final way of making the cross-toolchain available is to use BitBake
to generate the toolchain within an existing build directory.
This method does not install the toolchain into the
<filename>/opt</filename> directory.
As with the previous method, if you need to install the target sysroot, you must
do this separately.
</para>
<para>
Follow these steps to build and install the toolchain into the build tree:
Follow these steps to generate the toolchain into the build tree:
<orderedlist>
<listitem><para>Source the environment setup script
<filename>oe-init-build-env</filename> located in the Yocto Project
files.</para></listitem>
<filename>oe-init-build-env</filename> located in the source directory.
</para></listitem>
<listitem><para>At this point, you should be sure that the
<filename>MACHINE</filename> variable
in the <filename>local.conf</filename> file found in the
<filename>conf</filename> directory of the Yocto Project build directory
<filename>conf</filename> directory of the build directory
is set for the target architecture.
Comments within the <filename>local.conf</filename> file list the values you
can use for the <filename>MACHINE</filename> variable.
@@ -278,17 +296,17 @@
<filename>local.conf</filename> file and re-run the BitBake
command.</note></para></listitem>
<listitem><para>Run <filename>bitbake meta-ide-support</filename> to complete the
cross-toolchain installation.
<note>If change out of your working directory after you
cross-toolchain generation.
<note>If you change out of your working directory after you
<filename>source</filename> the environment setup script and before you run
the <filename>bitbake</filename> command, the command might not work.
Be sure to run the <filename>bitbake</filename> command immediately
after checking or editing the <filename>local.conf</filename> but without
changing out of your working directory.</note>
Once the <filename>bitbake</filename> command finishes,
the tarball for the cross-toolchain is generated within the Yocto Project build tree.
the cross-toolchain is generated and populated within the build directory.
You will notice environment setup files for the cross-toolchain in the
Yocto Project build tree in the <filename>tmp</filename> directory.
build directory in the <filename>tmp</filename> directory.
Setup script filenames contain the strings <filename>environment-setup</filename>.
</para></listitem>
</orderedlist>
@@ -306,7 +324,7 @@
then you can find this script in the <filename>&YOCTO_ADTPATH_DIR;</filename>
directory.
If you installed the toolchain in the build tree, you can find the environment setup
script for the toolchain in the Yocto Project build tree's <filename>tmp</filename> directory.
script for the toolchain in the build directory's <filename>tmp</filename> directory.
</para>
<para>
@@ -344,14 +362,15 @@
</para>
<para>
The Yocto Project provides basic kernel and filesystem images for several
The Yocto Project ships basic kernel and filesystem images for several
architectures (<filename>x86</filename>, <filename>x86-64</filename>,
<filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>)
that you can use unaltered in the QEMU emulator.
These kernel images reside in the Yocto Project release
These kernel images reside in the release
area - <ulink url='&YOCTO_MACHINES_DL_URL;'></ulink>
and are ideal for experimentation within Yocto Project.
For information on the image types you can build using the Yocto Project, see the
and are ideal for experimentation using Yocto Project.
For information on the image types you can build using the OpenEmbedded build system,
see the
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Reference: Images</ulink>" appendix in
The Yocto Project Reference Manual.
</para>
@@ -370,7 +389,7 @@
you can do so one of two ways:
<itemizedlist>
<listitem><para>Modify the <filename>conf/local.conf</filename> configuration in
the Yocto Project build directory and then rebuild the image.
the build directory and then rebuild the image.
With this method, you need to modify the <filename>EXTRA_IMAGE_FEATURES</filename>
variable to have the value of "tools-debug" before rebuilding the image.
Once the image is rebuilt, the <filename>tcf-agent</filename> will be included

View File

@@ -58,8 +58,13 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.3</revnumber>
<date>Sometime in 2012</date>
<revremark>Released with the Yocto Project 1.3 Release.</revremark>
</revision>
</revhistory>

View File

@@ -48,8 +48,8 @@
This root is what you add to the
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink>
variable in the <filename>conf/bblayers.conf</filename> file found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>Yocto Project Build Directory</ulink>.
Adding the root allows the Yocto Project build system to recognize the BSP
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
Adding the root allows the OpenEmbedded build system to recognize the BSP
definition and from it build an image.
Here is an example:
<literallayout class='monospaced'>
@@ -75,7 +75,7 @@
<para>
Some layers function as a layer to hold other BSP layers.
An example of this type of layers is the <filename>meta-intel</filename> layer.
An example of this type of layer is the <filename>meta-intel</filename> layer.
The <filename>meta-intel</filename> layer contains over 10 individual BSP layers.
</para>
@@ -99,13 +99,14 @@
</para>
<para>
The proposed form does have elements that are specific to the Yocto Project and
OpenEmbedded build systems.
The proposed form does have elements that are specific to the
OpenEmbedded build system.
It is intended that this information can be
used by other systems besides Yocto Project and OpenEmbedded and that it will be simple
used by other build systems besides the OpenEmbedded build system
and that it will be simple
to extract information and convert it to other formats if required.
Yocto Project, through its standard layers mechanism, can directly accept the format
described as a layer.
The OpenEmbedded build system, through its standard layers mechanism, can directly
accept the format described as a layer.
The BSP captures all
the hardware-specific details in one place in a standard format, which is
useful for any person wishing to use the hardware platform regardless of
@@ -121,6 +122,15 @@
are separate components that happen to be combined in certain end products.
</para>
<para>
Before looking at the common form for the file structure inside a BSP Layer,
you should be aware that some requirements do exist in order for a BSP to
be considered compliant with the Yocto Project.
For that list of requirements, see the
"<link linkend='released-bsp-requirements'>Released BSP Requirements</link>"
section.
</para>
<para>
Below is the common form for the file structure inside a BSP Layer.
While you can use this basic form for the standard, realize that the actual structures
@@ -288,9 +298,10 @@
</para>
<para>
The <filename>conf/layer.conf</filename> file identifies the file structure as a Yocto
Project layer, identifies the
contents of the layer, and contains information about how Yocto Project should use it.
The <filename>conf/layer.conf</filename> file identifies the file structure as a
layer, identifies the
contents of the layer, and contains information about how the build
system should use it.
Generally, a standard boilerplate file such as the following works.
In the following example, you would replace "<filename>bsp</filename>" and
"<filename>_bsp</filename>" with the actual name
@@ -324,7 +335,7 @@
<para>
This file simply makes BitBake aware of the recipes and configuration directories.
The file must exist so that the Yocto Project build system can recognize the BSP.
The file must exist so that the OpenEmbedded build system can recognize the BSP.
</para>
</section>
@@ -339,7 +350,7 @@
<para>
The machine files bind together all the information contained elsewhere
in the BSP into a format that the Yocto Project build system can understand.
in the BSP into a format that the build system can understand.
If the BSP supports multiple machines, multiple machine configuration files
can be present.
These filenames correspond to the values to which users have set the
@@ -379,8 +390,8 @@
<para>
Tuning files are found in the <filename>meta/conf/machine/include</filename>
directory of the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink>.
directory within the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
Tuning files can also reside in the BSP Layer itself.
For example, the <filename>ia32-base.inc</filename> file resides in the
<filename>meta-intel</filename> BSP Layer in <filename>conf/machine/include</filename>.
@@ -432,7 +443,7 @@
formfactor recipe
<filename>meta/recipes-bsp/formfactor/formfactor_0.0.bb</filename>,
which is found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink>.
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
</para></note>
</section>
@@ -498,8 +509,8 @@
</para>
<para>
For your BSP, you typically want to use an existing Yocto Project kernel found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto
Project Files</ulink> at <filename>meta/recipes-kernel/linux</filename>.
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
at <filename>meta/recipes-kernel/linux</filename>.
You can append your specific changes to the kernel recipe by using a
similarly named append file, which is located in the BSP Layer (e.g.
the <filename>meta-&lt;bsp_name&gt;/recipes-kernel/linux</filename> directory).
@@ -564,10 +575,10 @@
The file also points to some configuration fragments to use by setting the
<filename>KERNEL_FEATURES</filename> variable.
The location for the configuration fragments is the kernel tree itself in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>Yocto Project Build
Directory</ulink> under <filename>linux/meta</filename>.
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
under <filename>linux/meta</filename>.
Finally, the append file points to the specific commits in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink> Git
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> Git
repository and the <filename>meta</filename> Git repository branches to identify the
exact kernel needed to build the Crown Bay BSP.
</para>
@@ -620,7 +631,7 @@
For example, if you are working with a local clone of the kernel repository,
you could checkout the kernel's <filename>meta</filename> branch, make your changes,
and then push the changes to the local bare clone of the kernel.
The result is that you directly add configuration options to the Yocto kernel
The result is that you directly add configuration options to the
<filename>meta</filename> branch for your BSP.
The configuration options will likely end up in that location anyway if the BSP gets
added to the Yocto Project.
@@ -644,6 +655,219 @@
</section>
</section>
<section id='requirements-and-recommendations-for-released-bsps'>
<title>Requirements and Recommendations for Released BSPs</title>
<para>
Certain requirements exist for a released BSP to be considered
compliant with the Yocto Project.
Additionally, a single recommendation also exists.
This section describes the requirements and recommendation for
released BSPs.
</para>
<section id='released-bsp-requirements'>
<title>Released BSP Requirements</title>
<para>
Before looking at BSP requirements, you should consider the following:
<itemizedlist>
<listitem><para>The requirements here assume the BSP layer is a well-formed, "legal"
layer that can be added to the Yocto Project.
For guidelines on creating a layer that meets these base requirements, see the
"<link linkend='bsp-layers'>BSP Layers</link>" and the
"<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding
and Creating Layers"</ulink> in the Yocto Project Development Manual.</para></listitem>
<listitem><para>The requirements in this section apply regardless of how you
ultimately package a BSP.
You should consult the packaging and distribution guidelines for your
specific release process.
For an example of packaging and distribution requirements, see the
<ulink url='https://wiki.yoctoproject.org/wiki/Third_Party_BSP_Release_Process'>Third
Party BSP Release Process</ulink> wiki page.</para></listitem>
<listitem><para>The requirements for the BSP as it is made available to a developer
are completely independent of the released form of the BSP.
For example, the BSP metadata can be contained within a Git repository
and could have a directory structure completely different from what appears
in the officially released BSP layer.</para></listitem>
<listitem><para>It is not required that specific packages or package
modifications exist in the BSP layer, beyond the requirements for general
compliance with the Yocto Project.
For example, no requirement exists dictating that a specific kernel or
kernel version be used in a given BSP.</para></listitem>
</itemizedlist>
</para>
<para>
Following are the requirements for a released BSP that conforms to the
Yocto Project:
<itemizedlist>
<listitem><para><emphasis>Layer Name:</emphasis>
The BSP must have a layer name that follows the Yocto
Project standards.
For information on BSP layer names, see the
"<link linkend='bsp-layers'>BSP Layers</link>" section.
</para></listitem>
<listitem><para><emphasis>File System Layout:</emphasis>
When possible, use the same directory names in your
BSP layer as listed in the <filename>recipes.txt</filename> file.
In particular, you should place recipes
(<filename>.bb</filename> files) and recipe
modifications (<filename>.bbappend</filename> files) into
<filename>recipes-*</filename> subdirectories by functional area
as outlined in <filename>recipes.txt</filename>.
If you cannot find a category in <filename>recipes.txt</filename>
to fit a particular recipe, you can make up your own
<filename>recipe-*</filename> subdirectory.
You can find <filename>recipes.txt</filename> in the
<filename>meta</filename> directory of the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>,
or in the OpenEmbedded Core Layer
(<filename>openembedded-core</filename>) found at
<ulink url='http://git.openembedded.org/openembedded-core/tree/meta'></ulink>.
</para>
<para>Within any particular <filename>recipes-*</filename> category, the layout
should match what is found in the OpenEmbedded Core
Git repository (<filename>openembedded-core</filename>)
or the source directory (<filename>poky</filename>).
In other words, make sure you place related files in appropriately
related <filename>recipes-*</filename> subdirectories specific to the
recipe's function, or within a subdirectory containing a set of closely-related
recipes.
The recipes themselves should follow the general guidelines
for recipes used in the Yocto Project found in the
<ulink url='https://wiki.yoctoproject.org/wiki/Recipe_%26_Patch_Style_Guide'>Yocto
Recipe and Patch Style Guide</ulink>.</para></listitem>
<listitem><para><emphasis>License File:</emphasis>
You must include a license file in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This license covers the BSP metadata as a whole.
You must specify which license to use since there is no
default license if one is not specified.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/COPYING.MIT'><filename>COPYING.MIT</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para></listitem>
<listitem><para><emphasis>README File:</emphasis>
You must include a <filename>README</filename> file in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/README'><filename>README</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para>
<para>At a minimum, the <filename>README</filename> file should
contain the following:
<itemizedlist>
<listitem><para>A brief description about the hardware the BSP
targets.</para></listitem>
<listitem><para>A list of all the dependencies a
on which a BSP layer depends.
These dependencies are typically a list of required layers needed
to build the BSP.
However, the dependencies should also contain information regarding
any other dependencies the BSP might have.</para></listitem>
<listitem><para>Any required special licensing information.
For example, this information includes information on
special variables needed to satisfy a EULA,
or instructions on information needed to build or distribute
binaries built from the BSP metadata.</para></listitem>
<listitem><para>The name and contact information for the
BSP layer maintainer.
This is the person to whom patches and questions should
be sent.</para></listitem>
<listitem><para>Instructions on how to build the BSP using the BSP
layer.</para></listitem>
<listitem><para>Instructions on how to boot the BSP build from
the BSP layer.</para></listitem>
<listitem><para>Instructions on how to boot the binary images
contained in the <filename>/binary</filename> directory,
if present.</para></listitem>
<listitem><para>Information on any known bugs or issues that users
should know about when either building or booting the BSP
binaries.</para></listitem>
</itemizedlist></para></listitem>
<listitem><para><emphasis>README.sources File:</emphasis>
You must include a <filename>README.sources</filename> in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This file specifies exactly where you can find the sources used to
generate the binary images contained in the
<filename>/binary</filename> directory, if present.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/README.sources'><filename>README.sources</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para></listitem>
<listitem><para><emphasis>Layer Configuration File:</emphasis>
You must include a <filename>conf/layer.conf</filename> in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This file identifies the <filename>meta-&lt;bsp_name&gt;</filename>
BSP layer as a layer to the build system.</para></listitem>
<listitem><para><emphasis>Machine Configuration File:</emphasis>
You must include a <filename>conf/machine/&lt;bsp_name&gt;.conf</filename>
in the <filename>meta-&lt;bsp_name&gt;</filename> directory.
This configuration file defines a machine target that can be built
using the BSP layer.
Multiple machine configuration files define variations of machine
configurations that are supported by the BSP.
If a BSP supports more multiple machine variations, you need to
adequately describe each variation in the BSP
<filename>README</filename> file.
Do not use multiple machine configuration files to describe disparate
hardware.
Multiple machine configuration files should describe very similar targets.
If you do have very different targets, you should create a separate
BSP.
<note>It is completely possible for a developer to structure the
working repository as a conglomeration of unrelated BSP
files, and to possibly generate specifically targeted 'release' BSPs
from that directory using scripts or some other mechanism.
Such considerations are outside the scope of this document.</note>
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='released-bsp-recommendations'>
<title>Released BSP Recommendations</title>
<para>
Following are recommendations for a released BSP that conforms to the
Yocto Project:
<itemizedlist>
<listitem><para><emphasis>Bootable Images:</emphasis>
BSP releases
can contain one or more bootable images.
Including bootable images allows users to easily try out the BSP
on their own hardware.</para>
<para>In some cases, it might not be convenient to include a
bootable image.
In this case, you might want to make two versions of the
BSP available: one that contains binary images, and one
that does not.
The version that does not contain bootable images avoids
unnecessary download times for users not interested in the images.
</para>
<para>If you need to distribute a BSP and include bootable images or build kernel and
filesystems meant to allow users to boot the BSP for evaluation
purposes, you should put the images and artifacts within a
<filename>binary/</filename> subdirectory located in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
<note>If you do include a bootable image as part of the BSP and the image
was built by software covered by the GPL or other open source licenses,
it is your responsibility to understand
and meet all licensing requirements, which could include distribution
of source files.</note></para></listitem>
<listitem><para><emphasis>Use a Yocto Linux Kernel:</emphasis>
Kernel recipes in the BSP should be based on a Yocto Linux kernel.
Basing your recipes on these kernels reduces the costs for maintaining
the BSP and increases its scalability.
See the <filename>Yocto Linux Kernel</filename> category in the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'><filename>Yocto Source Repositories</filename></ulink>
for these kernels.</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id='customizing-a-recipe-for-a-bsp'>
<title>Customizing a Recipe for a BSP</title>
@@ -688,7 +912,7 @@
for a component or components.
For these cases, you are required to accept the terms of a commercial or other
type of license that requires some kind of explicit End User License Agreement (EULA).
Once the license is accepted, the Yocto Project build system can then build and
Once the license is accepted, the OpenEmbedded build system can then build and
include the corresponding component in the final BSP image.
If the BSP is available as a pre-built image, you can download the image after
agreeing to the license or EULA.
@@ -731,13 +955,12 @@
</para>
<para>
A couple different methods exist within the Yocto
Project build system to satisfy the licensing
requirements for an encumbered BSP.
A couple different methods exist within the OpenEmbedded build system to
satisfy the licensing requirements for an encumbered BSP.
The following list describes them in order of preference:
<orderedlist>
<listitem><para><emphasis>Use the <filename>LICENSE_FLAGS</filename> variable
to define the Yocto Project recipes that have commercial or other types of
to define the recipes that have commercial or other types of
specially-licensed packages:</emphasis>
For each of those recipes, you can
specify a matching license string in a
@@ -760,7 +983,7 @@
restart the build to continue where it left off.
During the build, the prompt will not appear again
since you have satisfied the requirement.</para>
<para>Once the appropriate license flags are whitelisted
<para>Once the appropriate license flags are on the white list
in the <filename>LICENSE_FLAGS_WHITELIST</filename> variable, you
can build the encumbered image with no change at all
to the normal build process.</para></listitem>
@@ -802,7 +1025,7 @@
The Yocto Project includes a couple of tools that enable
you to create a <link linkend='bsp-layers'>BSP layer</link>
from scratch and do basic configuration and maintenance
of the kernel without ever looking at a Yocto Project metadata file.
of the kernel without ever looking at a metadata file.
These tools are <filename>yocto-bsp</filename> and <filename>yocto-kernel</filename>,
respectively.
</para>
@@ -829,8 +1052,7 @@
<para>
Both tools reside in the <filename>scripts/</filename> subdirectory
of the <ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project
Files</ulink>.
of the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
Consequently, to use the scripts, you must <filename>source</filename> the
environment just as you would when invoking a build:
<literallayout class='monospaced'>
@@ -882,7 +1104,7 @@
[-i &lt;JSON PROPERTY FILE&gt; | --infile &lt;JSON PROPERTY_FILE&gt;]
This command creates a Yocto BSP based on the specified parameters.
The new BSP will be a new Yocto BSP layer contained by default within
The new BSP will be a new BSP layer contained by default within
the top-level directory specified as 'meta-bsp-name'. The -o option
can be used to place the BSP layer in a directory with a different
name and location.
@@ -919,7 +1141,7 @@
...
NOTE: Once created, you should add your new layer to your
bblayers.conf file in order for it to be subsquently seen and
bblayers.conf file in order for it to be subsequently seen and
modified by the yocto-kernel tool.
NOTE for x86- and x86_64-based BSPs: The generated BSP assumes the
@@ -931,7 +1153,7 @@
<para>
Now that you know where these two commands reside and how to access information
on them, you should find it relatively straightforward to discover the commands
necessary to create a BSP and perform basic kernel maintainence on that BSP using
necessary to create a BSP and perform basic kernel maintenance on that BSP using
the tools.
The next sections provide a concrete starting point to expand on a few points that
might not be immediately obvious or that could use further explanation.
@@ -990,7 +1212,7 @@
In every other way, this architecture is representative of how creating a BSP for
a 'real' machine would work.
The reason the example uses this architecture is because it is an emulated architecture
and can easily be followed without requireing actual hardware.
and can easily be followed without requiring actual hardware.
</para>
<para>
@@ -1059,7 +1281,7 @@
If you enter 'n', the script prompts you to further enter the kernel
you do want to use (e.g. 3.0, 3.2_preempt-rt, etc.).</para></listitem>
<listitem><para>Next, the script asks whether you would like to have a new
branch created especially for your BSPin the local
branch created especially for your BSP in the local
<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>
Git repository .
If not, then the script re-uses an existing branch.</para>
@@ -1088,8 +1310,8 @@
<listitem><para>The remainder of the prompts are routine.
Defaults are accepted for each.</para></listitem>
<listitem><para>By default, the script creates the new BSP Layer in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>Yocto Project
Build Directory</ulink>.</para></listitem>
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
</para></listitem>
</orderedlist>
</para>
@@ -1114,8 +1336,7 @@
<title>Managing Kernel Patches and Config Items with yocto-kernel</title>
<para>
Assuming you have created a Yocto Project
<link linkend='bsp-layers'>BSP Layer</link> using
Assuming you have created a <link linkend='bsp-layers'>BSP Layer</link> using
<link linkend='creating-a-new-bsp-layer-using-the-yocto-bsp-script'>
<filename>yocto-bsp</filename></link> and you added it to your
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink>
@@ -1126,7 +1347,7 @@
<para>
The <filename>yocto-kernel</filename> script allows you to add, remove, and list patches
and kernel config settings to a Yocto Project BSP's kernel
and kernel config settings to a BSP's kernel
<filename>.bbappend</filename> file.
All you need to do is use the appropriate sub-command.
Recall that the easiest way to see exactly what sub-commands are available

View File

@@ -23,19 +23,20 @@
</para>
<section id='getting-local-yocto-project-files-and-bsp-files'>
<title>Getting Local Yocto Project Files and BSP Files</title>
<title>Getting Local Source Files and BSP Files</title>
<para>
You need to have the Yocto Project files available on your host system.
You can get files through tarball extraction or by cloning the <filename>poky</filename>
Git repository.
You need to have the <link linkend='source-directory'>source directory</link>
available on your host system.
You can set up this directory through tarball extraction or by cloning the
<filename>poky</filename> Git repository.
The following paragraphs describe both methods.
For additional information, see the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>".
</para>
<para>
As mentioned, one way to get the Yocto Project files is to use Git to clone the
As mentioned, one way to set up the source directory is to use Git to clone the
<filename>poky</filename> repository.
These commands create a local copy of the Git repository.
By default, the top-level directory of the repository is named <filename>poky</filename>:
@@ -43,10 +44,10 @@
$ git clone git://git.yoctoproject.org/poky
$ cd poky
</literallayout>
Alternatively, you can start with the downloaded Poky "edison" tarball.
These commands unpack the tarball into a Yocto Project File directory structure.
By default, the top-level directory of the file structure is named
<filename>poky-&YOCTO_POKY;</filename>:
Alternatively, you can start with the downloaded Poky "&DISTRO_NAME;" tarball.
These commands unpack the tarball into a source directory structure.
By default, the top-level directory of the source directory is named
<filename>&YOCTO_POKY;</filename>:
<literallayout class='monospaced'>
$ tar xfj &YOCTO_POKY_TARBALL;
$ cd &YOCTO_POKY;
@@ -54,20 +55,19 @@
<note><para>If you're using the tarball method, you can ignore all the following steps that
ask you to carry out Git operations.
You already have the results of those operations
in the form of the edison release tarballs.
in the form of the &DISTRO_NAME; release tarballs.
Consequently, there is nothing left to do other than extract those tarballs into the
proper locations.</para>
<para>Once you expand the released tarball, you have a snapshot of the Git repository
that represents a specific release.
Fundamentally, this is different than having a local copy of the Yocto Project
Git repository.
Fundamentally, this is different than having a local copy of the Poky Git repository.
Given the tarball method, changes you make are building on top of a release.
With the Git repository method you have the ability to track development
and keep changes in revision control.
See the
"<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>" section
for more discussion around these differneces.</para></note>
for more discussion around these differences.</para></note>
</para>
<para>
@@ -133,11 +133,12 @@
<para>
You need to have the base BSP layer on your development system.
Similar to the local Yocto Project files, you can get the BSP
Similar to the local <link linkend='source-directory'>source directory</link>,
you can get the BSP
layer in a couple of different ways:
download the BSP tarball and extract it, or set up a local Git repository that
has the Yocto Project BSP layers.
You should use the same method that you used to get the local Yocto Project files earlier.
has the BSP layers.
You should use the same method that you used to set up the source directory earlier.
See "<link linkend='getting-setup'>Getting Setup</link>" for information on how to get
the BSP files.
</para>
@@ -160,15 +161,15 @@
$ cd meta-intel
</literallayout>
Alternatively, you can start with the downloaded Crown Bay tarball.
You can download the edison version of the BSP tarball from the
You can download the &DISTRO_NAME; version of the BSP tarball from the
<ulink url='&YOCTO_HOME_URL;/download'>Download</ulink> page of the
Yocto Project website.
Here is the specific link for the tarball needed for this example:
<ulink url='&YOCTO_MACHINES_DL_URL;/crownbay-noemgd/crownbay-noemgd-&DISTRO_NAME;-6.0.0.tar.bz2'></ulink>.
<ulink url='&YOCTO_MACHINES_DL_URL;/crownbay-noemgd/crownbay-noemgd-&DISTRO_NAME;-&POKYVERSION;.tar.bz2'></ulink>.
Again, be sure that you are already in the <filename>poky</filename> directory
as described previously before installing the tarball:
<literallayout class='monospaced'>
$ tar xfj crownbay-noemgd-&DISTRO_NAME;-6.0.0.tar.bz2
$ tar xfj crownbay-noemgd-&DISTRO_NAME;-&POKYVERSION;.tar.bz2
$ cd meta-intel
</literallayout>
</para>
@@ -177,7 +178,7 @@
The <filename>meta-intel</filename> directory contains all the metadata
that supports BSP creation.
If you're using the Git method, the following
step will switch to the edison metadata.
step will switch to the &DISTRO_NAME; metadata.
If you're using the tarball method, you already have the correct metadata and can
skip to the next step.
Because <filename>meta-intel</filename> is its own Git repository, you will want
@@ -185,6 +186,7 @@
For this example we are going to use the <filename>&DISTRO_NAME;</filename> branch.
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
@@ -194,8 +196,8 @@
<title>Making a Copy of the Base BSP to Create Your New BSP Layer</title>
<para>
Now that you have the local Yocto Project files and the base BSP files, you need to create a
new layer for your BSP.
Now that you have set up the source directory and included the base BSP files, you need to
create a new layer for your BSP.
To create your BSP layer, you simply copy the <filename>meta-crownbay</filename>
layer to a new layer.
</para>
@@ -205,7 +207,7 @@
The name should follow the BSP layer naming convention, which is
<filename>meta-&lt;name&gt;</filename>.
The following assumes your working directory is <filename>meta-intel</filename>
inside the local Yocto Project files.
inside your source directory.
To start your new layer, just copy the new layer alongside the existing
BSP layers in the <filename>meta-intel</filename> directory:
<literallayout class='monospaced'>
@@ -237,7 +239,7 @@
First, since in this example the new BSP will not support EMGD, we will get rid of the
<filename>crownbay.conf</filename> file and then rename the
<filename>crownbay-noemgd.conf</filename> file to <filename>mymachine.conf</filename>.
Much of what we do in the configuration directory is designed to help the Yocto Project
Much of what we do in the configuration directory is designed to help the OpenEmbedded
build system work with the new layer and to be able to find and use the right software.
The following two commands result in a single machine configuration file named
<filename>mymachine.conf</filename>.
@@ -261,10 +263,10 @@
<para>
Note that inside the <filename>mymachine.conf</filename> is the
<filename>PREFERRED_PROVIDER_virtual/kernel</filename> statement.
<filename>PREFERRED_VERSION_linux-yocto</filename> statement.
This statement identifies the kernel that the BSP is going to use.
In this case, the BSP is using <filename>linux-yocto</filename>, which is the
current Linux Yocto kernel based on the Linux 3.0 release.
current Yocto Project kernel based on the Linux 3.2 release.
</para>
<para>
@@ -283,6 +285,8 @@
BBFILE_COLLECTIONS += "crownbay"
BBFILE_PATTERN_crownbay := "^${LAYERDIR}/"
BBFILE_PRIORITY_crownbay = "6"
LAYERDEPENDS_crownbay = "intel"
</literallayout>
</para>
@@ -293,6 +297,8 @@
BBFILE_COLLECTIONS += "mymachine"
BBFILE_PATTERN_mymachine := "^${LAYERDIR}/"
BBFILE_PRIORITY_mymachine = "6"
LAYERDEPENDS_mymachine = "intel"
</literallayout>
</para>
</section>
@@ -306,7 +312,7 @@
When you create a BSP, you use these areas for appropriate recipes and append files.
Recipes take the form of <filename>.bb</filename> files, while append files take
the form of <filename>.bbappend</filename> files.
If you want to leverage the existing recipes the Yocto Project build system uses
If you want to leverage the existing recipes the OpenEmbedded build system uses
but change those recipes, you can use <filename>.bbappend</filename> files.
All new recipes and append files for your layer must go in the layers
<filename>recipes-bsp</filename>, <filename>recipes-kernel</filename>,
@@ -359,7 +365,7 @@
Now let's look at changes in <filename>recipes-core</filename>.
The file <filename>task-core-tools.bbappend</filename> in
<filename>recipes-core/tasks</filename> appends the similarly named recipe
located in the local <link linkend='yocto-project-files'>Yocto Project Files</link> at
located in the <link linkend='source-directory'>source directory</link> at
<filename>meta/recipes-core/tasks</filename>.
The append file in our layer right now is Crown Bay-specific and supports
EMGD and non-EMGD.
@@ -389,9 +395,9 @@
Recall that the BSP uses the <filename>linux-yocto</filename> kernel as determined
earlier in the <filename>mymachine.conf</filename>.
The recipe for that kernel is not located in the
BSP layer but rather in the local Yocto Project files at
BSP layer but rather in the source directory at
<filename>meta/recipes-kernel/linux</filename> and is
named <filename>linux-yocto_3.0.bb</filename>.
named <filename>linux-yocto_3.2.bb</filename>.
The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename>
statements point to the exact commits used by the Yocto Project development team
in their source repositories that identify the right kernel for our hardware.
@@ -404,7 +410,7 @@
<para>
However, in the <filename>meta-mymachine</filename> layer in
<filename>recipes-kernel/linux</filename> resides a <filename>.bbappend</filename>
file named <filename>linux-yocto_3.0.bbappend</filename> that
file named <filename>linux-yocto_3.2.bbappend</filename> that
appends information to the recipe of the same name in <filename>meta/recipes-kernel/linux</filename>.
Thus, the <filename>SRCREV</filename> statements in the append file override
the more general statements found in <filename>meta</filename>.
@@ -413,17 +419,20 @@
<para>
The <filename>SRCREV</filename> statements in the append file currently identify
the kernel that supports the Crown Bay BSP with and without EMGD support.
Here are the statements:
Here are the statements:
<note>The commit ID strings used in this manual might not match the actual commit
ID strings found in the <filename>linux-yocto_3.2.bbappend</filename> file.
For the example, this difference does not matter.</note>
<literallayout class='monospaced'>
SRCREV_machine_pn-linux-yocto_crownbay ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
"211fc7f4d10ec2b82b424286aabbaff9254b7cbd"
SRCREV_meta_pn-linux-yocto_crownbay ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"514847185c78c07f52e02750fbe0a03ca3a31d8f"
SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
"211fc7f4d10ec2b82b424286aabbaff9254b7cbd"
SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"514847185c78c07f52e02750fbe0a03ca3a31d8f"
</literallayout>
</para>
@@ -438,19 +447,19 @@
</para>
<para>
To fix this situation in <filename>linux-yocto_3.0.bbappend</filename>,
To fix this situation in <filename>linux-yocto_3.2.bbappend</filename>,
we delete the two <filename>SRCREV</filename> statements that support
EMGD (the top pair).
We also change the remaining pair to specify <filename>mymachine</filename>
and insert the commit identifiers to identify the kernel in which we
are interested, which will be based on the <filename>atom-pc-standard</filename>
kernel.
In this case, because we're working with the edison branch of everything, we
In this case, because we're working with the &DISTRO_NAME; branch of everything, we
need to use the <filename>SRCREV</filename> values for the atom-pc branch
that are associated with the edison release.
that are associated with the &DISTRO_NAME; release.
To find those values, we need to find the <filename>SRCREV</filename>
values that edison uses for the atom-pc branch, which we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
values that &DISTRO_NAME; uses for the atom-pc branch, which we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.2.bbappend</filename>
file.
</para>
@@ -459,23 +468,21 @@
<filename>SRCREV_machine_atom-pc</filename> variable.
The meta <filename>SRCREV</filename> isn't specified in this file, so it must be
specified in the base kernel recipe in the
<filename>poky/meta/recipes-kernel/linux/linux-yocto_3.0.bb</filename>
file, in the <filename>SRCREV_meta variable</filename> found there.
It happens to be the same as the value we already inherited from the
<filename>meta-crownbay</filename> BSP.
<filename>poky/meta/recipes-kernel/linux/linux-yocto_3.2.bb</filename>
file, in the <filename>SRCREV_meta</filename> variable found there.
Here are the final <filename>SRCREV</filename> statements:
<literallayout class='monospaced'>
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"f29531a41df15d74be5ad47d958e4117ca9e489e"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"b14a08f5c7b469a5077c10942f4e1aec171faa9d"
</literallayout>
</para>
<para>
In this example, we're using the <filename>SRCREV</filename> values we
found already captured in the edison release because we're creating a BSP based on
edison.
found already captured in the &DISTRO_NAME; release because we're creating a BSP based on
&DISTRO_NAME;.
If, instead, we had based our BSP on the master branches, we would want to use
the most recent <filename>SRCREV</filename> values taken directly from the kernel repo.
We will not be doing that for this example.
@@ -484,19 +491,19 @@
exact commit strings in the Yocto Project source repositories you need to change
the <filename>SRCREV</filename> statements.
You can find all the <filename>machine</filename> and <filename>meta</filename>
branch points (commits) for the <filename>linux-yocto-3.0</filename> kernel at
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/linux-yocto-3.0'></ulink>.
branch points (commits) for the <filename>linux-yocto-3.2</filename> kernel at
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/linux-yocto-3.2'></ulink>.
</para>
<para>
If you need a little more assistance after going to the link then do the following:
<orderedlist>
<listitem><para>Expand the list of branches by clicking <filename>[…]</filename></para></listitem>
<listitem><para>Click on the <filename>yocto/standard/common-pc/atom-pc</filename>
<listitem><para>Click on the <filename>standard/default/common-pc/atom-pc</filename>
branch</para></listitem>
<listitem><para>Click on the commit column header to view the top commit</para></listitem>
<listitem><para>Copy the commit string for use in the
<filename>linux-yocto_3.0.bbappend</filename> file</para></listitem>
<filename>linux-yocto_3.2.bbappend</filename> file</para></listitem>
</orderedlist>
</para>
@@ -507,32 +514,34 @@
</para>
<para>
Also in the <filename>linux-yocto_3.0.bbappend</filename> file are
Also in the <filename>linux-yocto_3.2.bbappend</filename> file are
<filename>COMPATIBLE_MACHINE</filename>, <filename>KMACHINE</filename>,
and <filename>KERNEL_FEATURES</filename> statements.
and <filename>KBRANCH</filename> statements.
Two sets of these exist: one set supports EMGD and one set does not.
Because we are not interested in supporting EMGD those three can be deleted.
The remaining three must be changed so that <filename>mymachine</filename> replaces
<filename>crownbay-noemgd</filename> and <filename>crownbay</filename>.
Because we are using the atom-pc branch for this new BSP, we can also find
the exact branch we need for the KMACHINE variable in our new BSP from the value
Because we are using the <filename>atom-pc</filename> branch for this new BSP, we can also find
the exact branch we need for the <filename>KMACHINE</filename>
and <filename>KBRANCH</filename> variables in our new BSP from the value
we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.2.bbappend</filename>
file we looked at in a previous step.
In this case, the value we want is in the KMACHINE_atom-pc variable in that file.
Here is the final <filename>linux-yocto_3.0.bbappend</filename> file after all
In this case, the values we want are in the <filename>KMACHINE_atom-pc</filename> variable
and the <filename>KBRANCH_atom-pc</filename> variables in that file.
Here is the final <filename>linux-yocto_3.2.bbappend</filename> file after all
the edits:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE_mymachine = "mymachine"
KMACHINE_mymachine = "yocto/standard/common-pc/atom-pc"
KERNEL_FEATURES_append_mymachine += " cfg/smp.scc"
KMACHINE_mymachine = "atom-pc"
KBRANCH_mymachine = "standard/default/common-pc/atom-pc"
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
"f29531a41df15d74be5ad47d958e4117ca9e489e"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"b14a08f5c7b469a5077c10942f4e1aec171faa9d"
</literallayout>
</para>
</section>
@@ -567,15 +576,14 @@
<orderedlist>
<listitem><para>Get the environment ready for the build by sourcing the environment
script.
The environment script is in the top-level of the local Yocto Project files
directory structure.
The environment script is in the top-level of the source directory.
The script has the string
<filename>init-build-env</filename> in the files name.
For this example, the following command gets the build environment ready:
<literallayout class='monospaced'>
$ source oe-init-build-env yocto-build
</literallayout>
When you source the script a build directory is created in the current
When you source the script, a build directory is created in the current
working directory.
In our example we were in the <filename>poky</filename> directory.
Thus, entering the previous command created the <filename>yocto-build</filename> directory.
@@ -600,11 +608,12 @@
both the <filename>BB_NUMBER_THREADS</filename> and <filename>PARALLEL_MAKE</filename>
variables to twice the number of cores your system supports.</para></listitem>
<listitem><para>Update the <filename>bblayers.conf</filename> file so that it includes
the path to your new BSP layer.
In this example you need to include the pathname to <filename>meta-mymachine</filename>.
For this example the
<filename>BBLAYERS</filename> variable in the file would need to include the following path:
both the path to your new BSP layer and the path to the
<filename>meta-intel</filename> layer.
In this example, you need to include both these paths as part of the
<filename>BBLAYERS</filename> variable:
<literallayout class='monospaced'>
$HOME/poky/meta-intel
$HOME/poky/meta-intel/meta-mymachine
</literallayout></para></listitem>
</orderedlist>
@@ -682,12 +691,12 @@
</para>
<para>
For reference, the sato image produced by the previous steps for edison
For reference, the sato image produced by the previous steps for &DISTRO_NAME;
should look like the following in terms of size.
If your sato image is much different from this,
you probably made a mistake in one of the above steps:
<literallayout class='monospaced'>
358715392 2011-11-01 19:11 core-image-sato-mymachine-20111101223904.hddimg
260538368 2012-04-27 01:44 core-image-sato-mymachine-20120427025051.hddimg
</literallayout>
<note>The previous instructions are also present in the README that was copied
from meta-crownbay, which should also be updated to reflect the specifics of your

File diff suppressed because it is too large Load Diff

View File

@@ -18,12 +18,13 @@
sources where you can find more detail.
For example, detailed information on Git, repositories and open source in general
can be found in many places.
Another example is how to get set up to use the Yocto Project, which our Yocto Project Quick Start covers.
Another example is how to get set up to use the Yocto Project, which our Yocto Project
Quick Start covers.
</para>
<para>
The Yocto Project Development Manual, however, does provide detailed examples on how to create a
Board Support Package (BSP), change the kernel source code, and re-configure the kernel.
Board Support Package (BSP), change the kernel source code, and reconfigure the kernel.
You can find this information in the appendices of the manual.
</para>
</section>
@@ -44,13 +45,7 @@
applications.</para></listitem>
<listitem><para>An overview and understanding of the emulation environment used with
the Yocto Project (QEMU).</para></listitem>
<!-- <listitem><para>A discussion of target-level analysis techniques, tools, tips,
and tricks.</para></listitem>
<listitem><para>Considerations for deploying your final product.</para></listitem> -->
<listitem><para>An understanding of basic kernel architecture and
concepts.</para></listitem>
<!-- <listitem><para>Information that will help you migrate an existing project to the
Yocto Project development environment.</para></listitem> -->
<listitem><para>An understanding of basic kernel architecture and concepts.</para></listitem>
<listitem><para>Many references to other sources of related information.</para></listitem>
</itemizedlist>
</para>
@@ -97,7 +92,7 @@
<listitem><para><emphasis>
<ulink url='&YOCTO_DOCS_REF_URL;'>
The Yocto Project Reference Manual</ulink>:</emphasis> This manual is a reference
guide to the Yocto Project build component known as "Poky."
guide to the OpenEmbedded build system known as "Poky."
The manual also contains a reference chapter on Board Support Package (BSP)
layout.</para></listitem>
<listitem><para><emphasis>
@@ -117,7 +112,7 @@
some work flow examples.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'>
Yocto Eclipse Plug-in</ulink>:</emphasis> A step-by-step instructional video that
Eclipse IDE Yocto Plug-in</ulink>:</emphasis> A step-by-step instructional video that
demonstrates how an application developer uses Yocto Plug-in features within
the Eclipse IDE.</para></listitem>
<listitem><para><emphasis>
@@ -127,6 +122,17 @@
<ulink url='&YOCTO_HOME_URL;/download/yocto/yocto-project-1.1-release-notes-poky-&POKYVERSION;'>
Release Notes</ulink>:</emphasis> Features, updates and known issues for the current
release of the Yocto Project.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_HOME_URL;/projects/hob'>
Hob</ulink>:</emphasis> A graphical user interface for BitBake.
Hob's primary goal is to enable a user to perform common tasks more easily.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>
Build Appliance</ulink>:</emphasis> A bootable custom embedded Linux image you can
either build using a non-Linux development system (VMware applications) or download
from the Yocto Project website.
See the <ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>Build Appliance</ulink>
page for more information.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>:</emphasis>
The bug tracking application the Yocto Project uses.
@@ -141,28 +147,32 @@
<listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink> for a
Yocto Project Discussions mailing list about the Poky build system.</para></listitem>
<listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto-announce'></ulink>
for a mailing list to receive offical Yocto Project announcements for developments and
for a mailing list to receive official Yocto Project announcements for developments and
as well as Yocto Project milestones.</para></listitem>
</itemizedlist></para></listitem>
<listitem><para><emphasis>Internet Relay Chat (IRC):</emphasis>
Two IRC channels on freenode are available
for Yocto Project and Poky discussions: <filename>#yocto</filename> and
<filename>#poky</filename>.</para></listitem>
<filename>#poky</filename>, respectively.</para></listitem>
<listitem><para><emphasis>
<ulink url='&OH_HOME_URL;'>OpenedHand</ulink>:</emphasis>
The company where the Yocto Project build system Poky was first developed.
OpenedHand has since been acquired by Intel Corporation.</para></listitem>
The company that initially developed the Poky project, which is the basis
for the OpenEmbedded build system used by the Yocto Project.
OpenedHand was acquired by Intel Corporation in 2008.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.intel.com/'>Intel Corporation</ulink>:</emphasis>
The company that acquired OpenedHand in 2008 and continues development on the
Yocto Project.</para></listitem>
A multinational semiconductor chip manufacturer company whose Software and
Services Group created and supports the Yocto Project.
Intel acquired OpenedHand in 2008.</para></listitem>
<listitem><para><emphasis>
<ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis>
The upstream, generic, embedded distribution the Yocto Project build system (Poky) derives
from and to which it contributes.</para></listitem>
The build system used by the Yocto Project.
This project is the upstream, generic, embedded distribution from which the Yocto
Project derives its build system (Poky) from and to which it contributes.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://developer.berlios.de/projects/bitbake/'>
BitBake</ulink>:</emphasis> The tool used to process Yocto Project metadata.</para></listitem>
BitBake</ulink>:</emphasis> The tool used by the OpenEmbedded build systm
to process project metadata.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://bitbake.berlios.de/manual/'>
BitBake User Manual</ulink>:</emphasis> A comprehensive guide to the BitBake tool.

View File

@@ -12,17 +12,6 @@
or even altering the source code itself.
This appendix presents simple examples that modify the kernel source code,
change the kernel configuration, and add a kernel source recipe.
<!-- [WRITER'S NOTE: I might want to work in information about applying a local
change to a kernel layer and also pushing a change upstream into the tree]
<orderedlist>
<listitem><para>Iteratively determine and set kernel configurations and make
kernel recipe changes.</para></listitem>
<listitem><para>Apply your configuration changes to your local kernel layer.
</para></listitem>
<listitem><para>Push your configuration and recipe changes upstream into the
Yocto Project source repositories to make them available to the community.
</para></listitem>
</orderedlist> -->
</para>
<section id='modifying-the-kernel-source-code'>
@@ -45,18 +34,17 @@
Briefly, you need the following:
<itemizedlist>
<listitem><para>A local
<link linkend='yocto-project-files'>Yocto Project Files</link>
Git repository</para></listitem>
<listitem><para>The
<link linkend='source-directory'>source directory</link> for the
poky Git repository</para></listitem>
<listitem><para>Local copies of the
<link linkend='poky-extras-repo'><filename>poky-extras</filename></link>
Git repository placed within the local Yocto Project files Git
repository</para></listitem>
Git repository placed within the source directory.</para></listitem>
<listitem><para>A bare clone of the
<link linkend='local-kernel-files'>Linux Yocto Kernel</link> upstream Git
<link linkend='local-kernel-files'>Yocto Project Kernel</link> upstream Git
repository to which you want to push your modifications.
</para></listitem>
<listitem><para>A copy of that bare clone in which you make your source
modifcations</para></listitem>
modifications</para></listitem>
</itemizedlist>
</para>
@@ -71,37 +59,38 @@
</para>
<para>
<imagedata fileref="figures/kernel-example-repos.png" width="7in" depth="5in"
<imagedata fileref="figures/kernel-example-repos-denzil.png" width="7in" depth="5in"
align="center" scale="100" />
</para>
<para>
Here is a brief description of the four areas:
<itemizedlist>
<listitem><para><emphasis>Local Yocto Project Files Git Repository:</emphasis>
This area contains all the metadata that supports building images in the
Yocto Project build environment - the local Yocto Project files.
In this example, the local Yocto Project files Git repository also
<listitem><para><emphasis>Local Source Directory:</emphasis>
This area contains all the metadata that supports building images
using the OpenEmbedded build system.
In this example, the source directory also
contains the build directory, which contains the configuration directory
that lets you control the build.
In this example, the repository also contains the
Also in this example, the source directory contains local copies of the
<filename>poky-extras</filename> Git repository.</para>
<para>See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.</para></listitem>
<listitem><para><emphasis><filename>poky-extras</filename> Git Repository:</emphasis>
for information on how to get these files on your local system.</para></listitem>
<listitem><para><emphasis>Local copies of the<filename>poky-extras</filename>
Git Repository:</emphasis>
This area contains the <filename>meta-kernel-dev</filename> layer,
which is where you make changes that append the kernel build recipes.
You edit <filename>.bbappend</filename> files to locate your
local kernel source files and to identify the kernel being built.
This Git repository is a gathering place for extensions to the Linux Yocto
This Git repository is a gathering place for extensions to the Yocto Project
(or really any) kernel recipes that faciliate the creation and development
of kernel features, BSPs or configurations.</para>
<para>See the bulleted item
"<link linkend='poky-extras-repo'>The
<filename>poky-extras</filename> Git Repository</link>"
for information on how to get these files.</para></listitem>
<listitem><para><emphasis>Bare Clone of the Linux Yocto kernel:</emphasis>
<listitem><para><emphasis>Bare Clone of the Yocto Project kernel:</emphasis>
This bare Git repository tracks the upstream Git repository of the Linux
Yocto kernel source code you are changing.
When you modify the kernel you must work through a bare clone.
@@ -111,15 +100,15 @@
<filename>poky-extras</filename> repository points to the bare clone
so that the build process can locate the locally changed source files.</para>
<para>See the bulleted item
"<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
"<link linkend='local-kernel-files'>Yocto Project Kernel</link>"
for information on how to set up the bare clone.
</para></listitem>
<listitem><para><emphasis>Copy of the Linux Yocto Kernel Bare Clone:</emphasis>
<listitem><para><emphasis>Copy of the Yocto Project Kernel Bare Clone:</emphasis>
This Git repository contains the actual source files that you modify.
Any changes you make to files in this location need to ultimately be pushed
to the bare clone using the <filename>git push</filename> command.</para>
<para>See the bulleted item
"<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
"<link linkend='local-kernel-files'>Yocto Project Kernel</link>"
for information on how to set up the bare clone.
<note>Typically, Git workflows follow a scheme where changes made to a local area
are pulled into a Git repository.
@@ -133,50 +122,65 @@
</section>
<section id='setting-up-the-local-yocto-project-files-git-repository'>
<title>Setting Up the Local Yocto Project Files Git Repository</title>
<title>Setting Up the Local Source Directory</title>
<para>
You can get the local Yocto Project files through tarball extraction or by
You can set up the source directory through tarball extraction or by
cloning the <filename>poky</filename> Git repository.
This example uses <filename>poky</filename> as the root directory of the
local Yocto Project files Git repository.
local source directory.
See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.
</para>
<para>
Once you have the repository set up,
Once you have source directory set up,
you have many development branches from which you can work.
From inside the repository you can see the branch names and the tag names used
in the Git repository using either of the following two commands:
From inside the local repository you can see the branch names and the tag names used
in the upstream Git repository by using either of the following commands:
<literallayout class='monospaced'>
$ cd poky
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1 Release code named "edison",
which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>edison</filename>
This example uses the Yocto Project &DISTRO; Release code named "&DISTRO_NAME;",
which maps to the <filename>&DISTRO_NAME;</filename> branch in the repository.
The following commands create and checkout the local <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch edison set up to track remote branch &DISTRO_NAME; from origin.
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
</section>
<section id='setting-up-the-poky-extras-git-repository'>
<title>Setting Up the poky-extras Git Repository</title>
<title>Setting Up the Local poky-extras Git Repository</title>
<para>
This example places the <filename>poky-extras</filename> Git repository inside
of <filename>poky</filename>.
See the bulleted item
"<link linkend='poky-extras-repo'>The
This example creates a local copy of the <filename>poky-extras</filename> Git
repository inside the <filename>poky</filename> source directory.
See the bulleted item "<link linkend='poky-extras-repo'>The
<filename>poky-extras</filename> Git Repository</link>"
for information on how to get the <filename>poky-extras</filename> repository.
for information on how to set up a local copy of the
<filename>poky-extras</filename> repository.
</para>
<para>
Because this example uses the Yocto Project &DISTRO; Release code
named "&DISTRO_NAME;", which maps to the <filename>&DISTRO_NAME;</filename>
branch in the repository, you need to be sure you are using that
branch for <filename>poky-extra</filename>.
The following commands create and checkout the local
branch you are using for the <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
</section>
@@ -184,11 +188,11 @@
<title>Setting Up the Bare Clone and its Copy</title>
<para>
This example modifies the <filename>linux-yocto-3.0-1.1.x</filename> kernel.
This example modifies the <filename>linux-yocto-3.2</filename> kernel.
Thus, you need to create a bare clone of that kernel and then make a copy of the
bare clone.
See the bulleted item
"<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
"<link linkend='local-kernel-files'>Yocto Project Kernel</link>"
for information on how to do that.
</para>
@@ -196,15 +200,16 @@
The bare clone exists for the kernel build tools and simply as the receiving end
of <filename>git push</filename>
commands after you make edits and commits inside the copy of the clone.
The copy (<filename>my-linux-yocto-3.0-1.1.x-work</filename> in this example) has to have
The copy (<filename>my-linux-yocto-3.2-work</filename> in this example) has to have
a local branch created and checked out for your work.
This example uses <filename>common-pc-base</filename> as the local branch.
The following commands create and checkout the branch:
<literallayout class='monospaced'>
$ cd ~/my-linux-yocto-3.0-1.1.x-work
$ git checkout -b common-pc-base origin/yocto/standard/common-pc/base
$ cd ~/my-linux-yocto-3.2-work
$ git checkout -b common-pc-base origin/standard/default/common-pc/base
Checking out files: 100% (532/532), done.
Branch common-pc-base set up to track remote branch
yocto/standard/common-pc/base from origin.
standard/default/common-pc/base from origin.
Switched to a new branch 'common-pc-base'
</literallayout>
</para>
@@ -296,7 +301,7 @@
<para>
The file you change in this example is named <filename>calibrate.c</filename>
and is located in the <filename>my-linux-yocto-3.0-1.1.x-work</filename> Git repository
and is located in the <filename>my-linux-yocto-3.2-work</filename> Git repository
(the copy of the bare clone) in <filename>init</filename>.
This example simply inserts several <filename>printk</filename> statements
at the beginning of the <filename>calibrate_delay</filename> function.
@@ -307,10 +312,11 @@
<literallayout class='monospaced'>
void __cpuinit calibrate_delay(void)
{
unsigned long lpj;
static bool printed;
unsigned long lpj;
static bool printed;
int this_cpu = smp_processor_id();
if (preset_lpj) {
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
.
.
.
@@ -319,19 +325,21 @@
<para>
Here is the altered code showing five new <filename>printk</filename> statements
just after initializing <filename>lps_precision</filename>:
near the top of the function:
<literallayout class='monospaced'>
void __cpuinit calibrate_delay(void)
{
unsigned long lpj;
static bool printed;
unsigned long lpj;
static bool printed;
int this_cpu = smp_processor_id();
printk("*************************************\n");
printk("* *\n");
printk("* HELLO YOCTO KERNEL *\n");
printk("* *\n");
printk("*************************************\n");
if (preset_lpj) {
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
.
.
.
@@ -350,14 +358,14 @@
<para>
Once the source code has been modified, you need to use Git to push the changes to
the bare clone.
If you do not push the changes, then the Yocto Project build system will not pick
If you do not push the changes, then the OpenEmbedded build system will not pick
up the changed source files.
</para>
<para>
The following command pushes the changes to the bare clone:
<literallayout class='monospaced'>
$ git push origin common-pc-base:yocto/standard/common-pc/base
$ git push origin common-pc-base:standard/default/common-pc/base
</literallayout>
</para>
</section>
@@ -367,7 +375,7 @@
<para>
At this point, the source has been changed and pushed.
The example now defines some variables used by the Yocto Project build system
The example now defines some variables used by the OpenEmbedded build system
to locate your kernel source.
You essentially need to identify where to find the kernel recipe and the changed source code.
You also need to be sure some basic configurations are in place that identify the
@@ -416,37 +424,35 @@
"
</literallayout></para></listitem>
<listitem><para><emphasis>Identify Your Source Files:</emphasis> In the
<filename>linux-yocto_3.0.bbappend</filename> file located in the
<filename>linux-yocto_3.2.bbappend</filename> file located in the
<filename>poky-extras/meta-kernel-dev/recipes-kernel/linux</filename>
directory, you need to identify the location of the
local source code, which in this example is the bare clone named
<filename>linux-yocto-3.0-1.1.x.git</filename>.
<filename>linux-yocto-3.2.git</filename>.
To do this, set the <filename>KSRC_linux_yocto</filename> variable to point to your
local <filename>linux-yocto-3.0-1.1.x.git</filename> Git repository by adding the
local <filename>linux-yocto-3.2.git</filename> Git repository by adding the
following statement.
Be sure to substitute your user information in the statement:
<literallayout class='monospaced'>
KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0-1.1.x.git
</literallayout></para></listitem>
<listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the
<filename>linux-yocto_3.0.bbappend</filename> file, you need to specify
the kernel machine with the following statement:
<literallayout class='monospaced'>
KMACHINE_qemux86 = "yocto/standard/common-pc/base"
KSRC_linux_yocto_3_2 ?= "/home/scottrif/linux-yocto-3.2.git"
</literallayout></para></listitem>
</itemizedlist>
</para>
<note>
Before attempting to build the modified kernel, there is one more set of changes you
<para>Before attempting to build the modified kernel, there is one more set of changes you
need to make in the <filename>meta-kernel-dev</filename> layer.
Because all the kernel <filename>.bbappend</filename> files are parsed during the
build process regardless of whether you are using them or not, you should either
comment out the <filename>COMPATIBLE_MACHINE</filename> statements in all
unused <filename>.bbappend</filename> files.
Alternatively, you can simply remove all the files
unused <filename>.bbappend</filename> files, or simply remove (or rename) all the files
except the one your are using for the build
(i.e. <filename>linux-yocto_3.0.bbappend</filename> in this example).
(i.e. <filename>linux-yocto_3.2.bbappend</filename> in this example).</para>
<para>If you do not make one of these two adjustments, your machine will be compatible
with all the kernel recipes in the <filename>meta-kernel-dev</filename> layer.
When your machine is comapatible with all the kernel recipes, the build attempts
to build all kernels in the layer.
You could end up with build errors blocking your work.</para>
</note>
</section>
@@ -471,7 +477,7 @@
$ bitbake -c cleanall linux-yocto
</literallayout></para>
<para><note>Never remove any files by hand from the <filename>tmp/deploy</filename>
directory insided the local Yocto Project files build directory.
directory insided the build directory.
Always use the BitBake <filename>cleanall</filename> task to clear
out previous builds.</note></para></listitem>
<listitem><para>Next, build the kernel image using this command:
@@ -505,8 +511,8 @@
<title>Changing the Kernel Configuration</title>
<para>
This example changes the default behavior, which is "off", of the Symmetric
Multi-processing Support (<filename>CONFIG_SMP</filename>) to "on".
This example changes the default behavior, which is "on", of the Symmetric
Multi-processing Support (<filename>CONFIG_SMP</filename>) to "off".
It is a simple example that demonstrates how to reconfigure the kernel.
</para>
@@ -516,42 +522,42 @@
<para>
If you took the time to work through the example that modifies the kernel source code
in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source
Code</link>" you should already have the Yocto Project files set up on your
Code</link>" you should already have the source directory set up on your
host machine.
If this is the case, go to then next section titled
If this is the case, go to the next section, which is titled
"<link linkend='examining-the-default-config-smp-behavior'>Examining the Default
<filename>CONFIG_SMP</filename> Behavior</link>" and continue with the
<filename>CONFIG_SMP</filename> Behavior</link>", and continue with the
example.
</para>
<para>
If you don't have the Yocto Project files established on your system,
If you don't have the source directory established on your system,
you can get them through tarball extraction or by
cloning the <filename>poky</filename> Git repository.
This example uses <filename>poky</filename> as the root directory of the
local Yocto Project files Git repository.
<link linkend='source-directory'>source directory</link>.
See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.
</para>
<para>
Once you have the repository set up,
Once you have the local copy of the repository set up,
you have many development branches from which you can work.
From inside the repository you can see the branch names and the tag names used
in the Git repository using either of the following two commands:
in the upstream Git repository using either of the following commands:
<literallayout class='monospaced'>
$ cd poky
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1.1 Release code named "&DISTRO_NAME;",
This example uses the Yocto Project &DISTRO; Release code named "&DISTRO_NAME;",
which maps to the <filename>&DISTRO_NAME;</filename> branch in the repository.
The following commands create and checkout the local <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch edison set up to track remote branch &DISTRO_NAME; from origin.
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
@@ -612,11 +618,11 @@
<title>Examining the Default&nbsp;&nbsp;<filename>CONFIG_SMP</filename> Behavior</title>
<para>
By default, <filename>CONFIG_SMP</filename> supports single processor machines.
By default, <filename>CONFIG_SMP</filename> supports multiple processor machines.
To see this default setting from within the QEMU emulator, boot your image using
the emulator as follows:
<literallayout class='monospaced'>
$ runqemu qemux86 qemuparams="-smp 2"
$ runqemu qemux86 qemuparams="-smp 4"
</literallayout>
</para>
@@ -624,11 +630,25 @@
Login to the machine using <filename>root</filename> with no password.
After logging in, enter the following command to see how many processors are
being supported in the emulator.
The emulator reports support for a single processor:
The emulator reports support for the number of processors you specified using
the <filename>-smp</filename> option, four in this case:
<literallayout class='monospaced'>
# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
#
</literallayout>
To check the setting for <filename>CONFIG_SMP</filename>, you can use the
following command:
<literallayout class='monospaced'>
zcat /proc/config.gz | grep CONFIG_SMP
</literallayout>
The console returns the following showing that multi-processor machine support
is set:
<literallayout class='monospaced'>
CONFIG_SMP=y
</literallayout>
Logout of the emulator using the <filename>exit</filename> command and
then close it down.
@@ -643,7 +663,7 @@
to set kernel configurations.
You need to run <filename>menuconfig</filename> inside the Yocto BitBake environment.
Thus, the environment must be set up using the <filename>oe-init-build-env</filename>
script found in the Yocto Project files Git repository build directory.
script found in the build directory.
If you have not sourced this script do so with the following commands:
<literallayout class='monospaced'>
$ cd ~/poky
@@ -654,12 +674,14 @@
<para>
After setting up the environment to run <filename>menuconfig</filename>, you are ready
to use the tool to interactively change the kernel configuration.
In this example, we are basing our changes on the <filename>linux-yocto-3.0-1.1.x</filename>
In this example, we are basing our changes on the <filename>linux-yocto-3.2</filename>
kernel.
The Yocto Project build environment recognizes this kernel as
The OpenEmbedded build system recognizes this kernel as
<filename>linux-yocto</filename>.
Thus, the following command from the shell in which you previously sourced the
environment initialization script launches <filename>menuconfig</filename>:
Thus, the following commands from the shell in which you previously sourced the
environment initialization script cleans the shared state cache and the
<ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>
directory and then builds and launches <filename>menuconfig</filename>:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c menuconfig
</literallayout>
@@ -671,31 +693,33 @@
You can find it at <filename>Processor Type and Features</filename>.
The configuration selection is
<filename>Symmetric Multi-processing Support</filename>.
After using the arrow keys to highlight this selection, press "y" to select it.
After using the arrow keys to highlight this selection, press "n" to turn it off.
Then, exit out and save your selections.
</para>
<para>
Once you save the selection, the <filename>.config</filename> configuration file
is updated.
This is the file that the build system uses to configure the Linux Yocto kernel
This is the file that the build system uses to configure the Yocto Project kernel
when it is built.
You can find and examine this file in the Yocto Project files Git repository in
the build directory.
This example uses the following.
Note that this example directory is artificially split and many of the characters
in the actually filename are omitted in order to make it more
readable:
You can find and examine this file in the build directory.
This example uses the following:
<literallayout class='monospaced'>
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f...
...r20/linux-qemux86-standard-build
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.2.11+git1+84f...
...656ed30-r1/linux-qemux86-standard-build
</literallayout>
<note>
The previous example directory is artificially split and many of the characters
in the actual filename are omitted in order to make it more readable.
Also, depending on the kernel you are using, the exact pathname might differ
slightly.
</note>
</para>
<para>
Within the <filename>.config</filename> file, you can see the following setting:
<literallayout class='monospaced'>
CONFIG_SMP=y
# CONFIG_SMP is not set
</literallayout>
</para>
@@ -712,7 +736,7 @@
<note>
Be sure to make a copy of the <filename>.config</filename> and don't just
rename it.
The Yocto Project build system needs an existing <filename>.config</filename>
The build system needs an existing <filename>.config</filename>
from which to work.
</note>
</para>
@@ -723,17 +747,16 @@
<para>
At this point, you are ready to recompile your kernel image with
the new setting in effect using the BitBake commands below:
the new setting in effect using the BitBake command below:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c compile -f
$ bitbake linux-yocto
</literallayout>
</para>
<para>
Now run the QEMU emulator:
Now run the QEMU emulator and pass it the same multi-processor option as before:
<literallayout class='monospaced'>
$ runqemu qemux86 qemuparams="-smp 2"
$ runqemu qemux86 qemuparams="-smp 4"
</literallayout>
</para>
@@ -743,13 +766,22 @@
<literallayout class='monospaced'>
# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
#
</literallayout>
</para>
<para>
From the output, you can see that you have successfully reconfigured the kernel.
From the output, you can see that the kernel no longer supports multi-processor systems.
The output indicates support for a single processor. You can verify the
<filename>CONFIG_SMP</filename> setting by using this command:
<literallayout class='monospaced'>
zcat /proc/config.gz | grep CONFIG_SMP
</literallayout>
The console returns the following output:
<literallayout class='monospaced'>
# CONFIG_SMP is not set
</literallayout>
You have successfully reconfigured the kernel.
</para>
</section>
</section>
@@ -767,352 +799,8 @@
width="2in" depth="3in" align="center" scalefit="1" />
</para>
</section>
<!-- <section id='is-vfat-supported'>
<title>Is VFAT Supported?</title>
<para>
<literallayout class='monospaced'>
I entered runqemu qemux86 and it fires upthis fires up the emulator and uses the
image and filesystem in the build area created in the previous section.
Then I copied over a pre-created and formated 5.2MB VFAT file named vfat.img.
I did this with scp vfat.img root@192.168.7.2:
The file is in the root directory.
I had to do this because the mkfs.vfat vfat.img command does not work.
mkfs is not recognized in the qemu terminal session.
when I try mount -o loop -t vfat vfat.img mnt/ I get the error
mount: can't set up loop device: No space left on device.
This error is because the loop module is not currently in the kernel image.
However, this module is available in the
build area in the tarball modules-2.6.37.6-yocto-starndard+-20-qemux86.tgz.
You can add this to the kernel image by adding the
IMAGE_INSTALL += " kernel-module-loop" statement at the top of the local.conf
file in the build area and then rebuilding the kernel using bitbake.
It should just build whatever is necessary and not go through an entire build again.
The <filename>menuconfig</filename> tool provides an interactive method with which
to set kernel configurations.
In order to use <filename>menuconfig</filename> from within the BitBake environment
you need to source an environment setup script.
This script is located in the local Yocto Project file structure and is called
<filename>oe-init-build-env</filename>.
</para>
<para>
The following command sets up the environment:
<literallayout class='monospaced'>
$ cd ~/poky
$ source oe-init-build-env
$ runqemu qemux86
Continuing with the following parameters:
KERNEL: [/home/scottrif/poky/build/tmp/deploy/images/bzImage-qemux86.bin]
ROOTFS: [/home/scottrif/poky/build/tmp/deploy/images/core-image-sato-qemux86.ext3]
FSTYPE: [ext3]
Setting up tap interface under sudo
Acquiring lockfile for tap0...
WARNING: distccd not present, no distcc support loaded.
Running qemu...
/home/scottrif/poky/build/tmp/sysroots/x86_64-linux/usr/bin/qemu
-kernel /home/scottrif/poky/build/tmp/deploy/images/bzImage-qemux86.bin
-net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no,downscript=no
-hda /home/scottrif/poky/build/tmp/deploy/images/core-image-sato-qemux86.ext3
-show-cursor -usb -usbdevice wacom-tablet -vga vmware -enable-gl -no-reboot
-m 128 &dash;&dash;append "vga=0 root=/dev/hda rw mem=128M ip=192.168.7.2::192.168.7.1:255.255.255.0 oprofile.timer=1 "
Enabling opengl
vmsvga_value_write: guest runs Linux.
</literallayout>
</para>
</section>
<section id='prepare-to-use-menuconfig'>
<title>Prepare to use <filename>menuconfig</filename></title>
<para>
[WRITER'S NOTE: Stuff from here down are crib notes]
</para>
<para>
Once menuconfig fires up you see all kinds of categories that you can interactively
investigate.
If they have an "M" in it then the feature is "modularized".
I guess that means that means that it needs to be manually linked in when the
kernel is booted??? (Not sure).
If they have an "*" then the feature is automatically part of the kernel.]
</para>
<para>
So the tmp/work/ area was created in poky and there is a .config file in there and
a .config.old file.
The old one must have been created when I exited from menuconfig after poking around
a bit.
Nope - appears to just be created automatically.
</para>
<para>
A good practice is to first determine what configurations you have for the kernel.
You can see the results by looking in the .config file in the build/tmp/work/qemux86-poky-linux area
of the local YP files.
There is a directory named linux-yocto-2.6.37* in the directory.
In that directory is a directory named linux-qemux86-standard-build.
In that directory you will find a file named .config that is the configuration file
for the kernel that will be used when you build the kernel.
You can open that file up and examine it.
If you do a search for "VFAT" you will see that that particular configuration is not
enabled for the kernel.
This means that you cannot print a VFAT text file, or for that matter, even mount one
from the image if you were to build it at this point.
</para>
<para>
You can prove the point by actually trying it at this point.
Here are the commands:
<literallayout class='monospaced'>
$ mkdir ~/vfat-test
$ cd ~/vfat-test
$ dd if=/dev/zero of=vfat.img bs=1024 count=5000 [creates a 5MB disk image]
5+0 records in
5+0 records out
5242880 bytes (5.2 MB) copied, 0.00798912 s, 656 MB/s
$ ls -lah [lists the contents of the new image. l=long, a=all, h=human readable]
total 5.1M
drwxr-xr-x 2 srifenbark scottrif 4.0K 2011-08-01 08:18 .
drwxr-xr-x 66 srifenbark scottrif 4.0K 2011-08-01 08:14 ..
-rw-r&dash;&dash;r&dash;&dash; 1 srifenbark scottrif 5.0M 2011-08-01 08:18 vfat.img
$ mkfs.vfat vfat.img [formats the disk image]
mkfs.vfat 3.0.7 (24 Dec 2009)
$ mkdir mnt [mounts the disk image]
$ sudo su [gives you root privilege]
# mount -o loop vfat.img mnt [mounts it as a loop device]
# ls mnt [shows nothing in mnt]
# mount [lists the mounted filesystems - note/dev/loop0]
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/scottrif/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=srifenbark)
/dev/loop0 on /home/scottrif/vfat-test/mnt type vfat (rw)
# echo "hello world" > mnt/hello.txt [creates a text file in the mounted VFAT system]
# ls mnt [verifies the file is there]
hello.txt
# cat mnt/hello.txt [displays the contents of the file created]
hello world
# umount mnt [unmounts the system and destroys the loop]
# exit [gets out of privileged user mode]
exit
$ lsmod [this stuff Darren did to show me ]
Module Size Used by [the status of modules in the regular linux kernel]
nls_iso8859_1 4633 0
nls_cp437 6351 0
vfat 10866 0
fat 55350 1 vfat
snd_hda_codec_atihdmi 3023 1
binfmt_misc 7960 1
snd_hda_codec_realtek 279008 1
ppdev 6375 0
snd_hda_intel 25805 2
fbcon 39270 71
tileblit 2487 1 fbcon
font 8053 1 fbcon
bitblit 5811 1 fbcon
snd_hda_codec 85759 3 snd_hda_codec_atihdmi,snd_hda_codec_realtek,snd_hda_intel
softcursor 1565 1 bitblit
snd_seq_dummy 1782 0
snd_hwdep 6924 1 snd_hda_codec
vga16fb 12757 0
snd_pcm_oss 41394 0
snd_mixer_oss 16299 1 snd_pcm_oss
snd_pcm 87946 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
vgastate 9857 1 vga16fb
snd_seq_oss 31191 0
snd_seq_midi 5829 0
snd_rawmidi 23420 1 snd_seq_midi
radeon 744506 3
snd_seq_midi_event 7267 2 snd_seq_oss,snd_seq_midi
ttm 61007 1 radeon
snd_seq 57481 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
drm_kms_helper 30742 1 radeon
snd_timer 23649 2 snd_pcm,snd_seq
snd_seq_device 6888 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
usb_storage 50377 0
snd 71283 16 \
snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec, \
snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm, \
snd_seq_oss,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 8052 1 snd
psmouse 65040 0
drm 198886 5 radeon,ttm,drm_kms_helper
i2c_algo_bit 6024 1 radeon
serio_raw 4918 0
snd_page_alloc 8500 2 snd_hda_intel,snd_pcm
dell_wmi 2177 0
dcdbas 6886 0
lp 9336 0
parport 37160 2 ppdev,lp
usbhid 41116 0
ohci1394 30260 0
hid 83888 1 usbhid
ieee1394 94771 1 ohci1394
tg3 122382 0
</literallayout>
</para>
</section>
</section> -->
</appendix>
<!--
EXTRA STUFF I MIGHT NEED BUT NOW SURE RIGHT NOW.
In the standard layer structure you have several areas that you need to examine or
modify.
For this example the layer contains four areas:
<itemizedlist>
<listitem><para><emphasis><filename>conf</filename></emphasis> - Contains the
<filename>layer.conf</filename> that identifies the location of the recipe files.
</para></listitem>
<listitem><para><emphasis><filename>images</filename></emphasis> - Contains the
image recipe file.
This recipe includes the base image you will be using and specifies other
packages the image might need.</para></listitem>
<listitem><para><emphasis><filename>recipes-bsp</filename></emphasis> - Contains
recipes specific to the hardware for which you are developing the kernel.
</para></listitem>
<listitem><para><emphasis><filename>recipes-kernel</filename></emphasis> - Contains the
"append" files that add information to the main recipe kernel.
</para></listitem>
</itemizedlist>
</para>
<para>
Let's take a look at the <filename>layer.conf</filename> in the
<filename>conf</filename> directory first.
This configuration file enables the Yocto Project build system to locate and
use the information in your new layer.
</para>
<para>
The variable <filename>BBPATH</filename> needs to include the path to your layer
as follows:
<literallayout class='monospaced'>
BBPATH := "${BBPATH}:${LAYERDIR}"
</literallayout>
And, the variable <filename>BBFILES</filename> needs to be modified to include your
recipe and append files:
<literallayout class='monospaced'>
BBFILES := "${BBFILES} ${LAYERDIR}/images/*.bb \
${LAYERDIR}/images/*.bbappend \
${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
</literallayout>
Finally, you need to be sure to use your layer name in these variables at the
end of the file:
<literallayout class='monospaced'>
BBFILE_COLLECTIONS += "elc"
BBFILE_PATTERN_elc := "^${LAYERDIR}/"
BBFILE_PRIORITY_elc = "9"
</literallayout>
</para>
<para>
The <filename>images</filename> directory contains an append file that helps
further define the image.
In our example, the base image is <filename>core-image-minimal</filename>.
The image does, however, need some additional modules that we are using
for this example.
These modules support the amixer functionality.
Here is the append file:
<literallayout class='monospaced'>
require recipes-core/images/poky-image-minimal.bb
IMAGE_INSTALL += "dropbear alsa-utils-aplay alsa-utils-alsamixer"
IMAGE_INSTALL_append_qemux86 += " kernel-module-snd-ens1370 \
kernel-module-snd-rawmidi kernel-module-loop kernel-module-nls-cp437 \
kernel-module-nls-iso8859-1 qemux86-audio alsa-utils-amixer"
LICENSE = "MIT"
</literallayout>
</para>
<para>
While the focus of this example is not on the BSP, it is worth mentioning that the
<filename>recipes-bsp</filename> directory has the recipes and append files for
features that the hardware requires.
In this example, there is a script and a recipe to support the
<filename>amixer</filename> functionality in QEMU.
It is beyond the scope of this manual to go too deeply into the script.
Suffice it to say that the script tests for the presence of the mixer, sets up
default mixer values, enables the mixer, unmutes master and then
sets the volume to 100.
</para>
<para>
The recipe <filename>qemu86-audio.bb</filename> installs and runs the
<filename>amixer</filename> when the system boots.
Here is the recipe:
<literallayout class='monospaced'>
SUMMARY = "Provide a basic init script to enable audio"
DESCRIPTION = "Set the volume and unmute the Front mixer setting during boot."
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${POKYBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
PR = "r4"
inherit update-rc.d
RDEPENDS = "alsa-utils-amixer"
SRC_URI = "file://qemux86-audio"
INITSCRIPT_NAME = "qemux86-audio"
INITSCRIPT_PARAMS = "defaults 90"
do_install() {
install -d ${D}${sysconfdir} \
${D}${sysconfdir}/init.d
install -m 0755 ${WORKDIR}/qemux86-audio ${D}${sysconfdir}/init.d
cat ${WORKDIR}/${INITSCRIPT_NAME} | \
sed -e 's,/etc,${sysconfdir},g' \
-e 's,/usr/sbin,${sbindir},g' \
-e 's,/var,${localstatedir},g' \
-e 's,/usr/bin,${bindir},g' \
-e 's,/usr,${prefix},g' > ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
chmod 755 ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
}
</literallayout>
</para>
<para>
The last area to look at is <filename>recipes-kernel</filename>.
This area holds configuration fragments and kernel append files.
The append file must have the same name as the kernel recipe, which is
<filename>linux-yocto-2.6.37</filename> in this example.
The file can <filename>SRC_URI</filename> statements to point to configuration
fragments you might have in the layer.
The file can also contain <filename>KERNEL_FEATURES</filename> statements that specify
included kernel configurations that ship with the Yocto Project.
</para>
-->
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -8,32 +8,35 @@
<para>
Many development models exist for which you can use the Yocto Project.
However, for the purposes of this manual we are going to focus on two common models:
System Development and User Application Development.
System Development covers Board Support Package (BSP) development and kernel modification
or configuration.
User Application Development covers development of applications that you intend to run on some
target hardware.
</para>
<para>
This chapter presents overviews of both system and application models.
If you want to examine specific examples of the system development models,
see the "<link linkend='dev-manual-bsp-appendix'>BSP Development Example</link>"
appendix and the
"<link linkend='dev-manual-kernel-appendix'>Kernel Modification Example</link>" appendix.
For a user-space application development example that uses the
<trademark class='trade'>Eclipse</trademark> IDE,
see the
<ulink url='&YOCTO_DOCS_ADT_URL;'>
The Yocto Project Application Development Toolkit (ADT) User's Guide</ulink>.
</para>
<para>
Aside from these two models, this chapter will also briefly introduce and discuss
development using
<ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink>, which is a graphical interface
to the Yocto Project build system.
This chapter overviews the following methods:
<itemizedlist>
<listitem><para><emphasis>System Development:</emphasis>
System Development covers Board Support Package (BSP) development and kernel
modification or configuration.
If you want to examine specific examples of the system development models,
see the "<link linkend='dev-manual-bsp-appendix'>BSP Development Example</link>"
appendix and the
"<link linkend='dev-manual-kernel-appendix'>Kernel Modification Example</link>" appendix.
</para></listitem>
<listitem><para><emphasis>User Application Development:</emphasis>
User Application Development covers development of applications that you intend
to run on some target hardware.
For a user-space application development example that uses the
<trademark class='trade'>Eclipse</trademark> IDE,
see the
<ulink url='&YOCTO_DOCS_ADT_URL;'>
The Yocto Project Application Development Toolkit (ADT) User's Guide</ulink>.
</para></listitem>
<listitem><para><emphasis>Temporary Source Code Modification:</emphasis>
Direct modification of temporary source code is a convenient development model
to quickly iterate and develop towards a solution.
Once the solution has been implemented, you should of course take steps to
get the changes upstream and applied in the affected recipes.</para></listitem>
<listitem><para><emphasis>Image Development using Hob:</emphasis>
You can use the <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> to build
custom operating system images within the build environment.
Hob provides an efficient interface to the OpenEmbedded build system.</para></listitem>
</itemizedlist>
</para>
<section id='system-development-model'>
@@ -58,7 +61,7 @@
<title>Developing a Board Support Package (BSP)</title>
<para>
A BSP is a package of recipes that, when applied, during a build results in
A BSP is a packageof recipes that, when applied, during a build results in
an image that you can run on a particular board.
Thus, the package, when compiled into the new image, supports the operation of the board.
</para>
@@ -91,18 +94,20 @@
and the
"<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the Yocto Project files on your
system</emphasis>: You need to have the Yocto Project files available on your host system.
Having the Yocto Project files on your system gives you access to the build
<listitem><para><emphasis>Establish a local copy of the project files on your
system</emphasis>: You need this <link linkend='source-directory'>source
directory</link> available on your host system.
Having these files on your system gives you access to the build
process and to the tools you need.
For information on how to get these files, see the
For information on how to set up the source directory, see the
"<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the base BSP files</emphasis>: Having
the BSP files on your system gives you access to the build
process and to the tools you need for creating a BSP.
For information on how to get these files, see the
"<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem>
<listitem><para><emphasis>Choose a Yocto Project-supported BSP as your base BSP</emphasis>:
<listitem><para><emphasis>Choose a BSP that is supported by the Yocto Project
as your base BSP</emphasis>:
The Yocto Project ships with several BSPs that support various hardware.
It is best to base your new BSP on an existing BSP rather than create all the
recipes and configuration files from scratch.
@@ -120,30 +125,38 @@
Crown Bay that does not support the <trademark class='registered'>Intel</trademark>
Embedded Media Graphics Driver (EMGD).
The remainder of this example uses that base BSP.</para>
<para>To see the supported BSPs, go to the Yocto Project
<ulink url='&YOCTO_DL_URL;/download'>download page</ulink> and click
on “BSP Downloads.”</para></listitem>
<para>To see the supported BSPs, go to the
<ulink url='&YOCTO_HOME_URL;/download'>Download</ulink> page on the Yocto Project
website and click on “BSP Downloads.”</para></listitem>
<listitem><para><emphasis>Create your own BSP layer</emphasis>: Layers are ideal for
isolating and storing work for a given piece of hardware.
A layer is really just a location or area in which you place the recipes for your BSP.
A layer is really just a location or area in which you place the recipes for your BSP.
In fact, a BSP is, in itself, a special type of layer.
</para>
<para>
Another example that illustrates a layer is an application.
Suppose you are creating an application that has library or other dependencies in
order for it to compile and run.
The layer, in this case, would be where all the recipes that define those dependencies
are kept.
The key point for a layer is that it is an isolated area that contains
all the relevant information for the project that the Yocto Project build
system knows about.</para>
<note>The Yocto Project supports four BSPs that are part of the
all the relevant information for the project that the OpenEmbedded build
system knows about.
For more information on layers, see the
"<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>"
section.
For more information on BSP layers, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the
Yocto Project Board Support Package (BSP) Developer's Guide.</para>
<note>Four BSPs exist that are part of the
Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>,
<filename>mpc8315e</filename>, and <filename>routerstationpro</filename>.
The recipes and configurations for these four BSPs are located and dispersed
within the local Yocto Project files.
Consequently, they are not totally isolated in the spirit of layers unless you think
of <filename>meta-yocto</filename> as a layer itself.
within the <link linkend='source-directory'>source directory</link>.
On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest,
N450, and Sugar Bay are isolated.</note>
N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk,
and Sugar Bay exist in their own separate layers within the larger
<filename>meta-intel</filename> layer.</note>
<para>When you set up a layer for a new BSP, you should follow a standard layout.
This layout is described in the section
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-filelayout'>Example Filesystem Layout</ulink>"
@@ -152,7 +165,7 @@
configuration information.
You can see the standard layout for the Crown Bay BSP in this example by examining the
directory structure of the <filename>meta-crownbay</filename> layer inside the
local Yocto Project files.</para></listitem>
source directory.</para></listitem>
<listitem><para><emphasis>Make configuration changes to your new BSP
layer</emphasis>: The standard BSP layer structure organizes the files you need
to edit in <filename>conf</filename> and several <filename>recipes-*</filename>
@@ -166,15 +179,15 @@
</para></listitem>
<listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
changes to your BSP layer, there remains a few things
you need to do for the Yocto Project build system in order for it to create your image.
you need to do for the OpenEmbedded build system in order for it to create your image.
You need to get the build environment ready by sourcing an environment setup script
and you need to be sure two key configuration files are configured appropriately.</para>
<para>The entire process for building an image is overviewed in the section
"<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>" section
of the Yocto Project Quick Start.
You might want to reference this information.</para></listitem>
<listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake
tool to build images based on the type of image you want to create.
<listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded build system
uses the BitBake tool to build images based on the type of image you want to create.
You can find more information on BitBake
<ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para>
<para>The build process supports several types of images to satisfy different needs.
@@ -201,7 +214,7 @@
<title><anchor id='kernel-spot' />Modifying the Kernel</title>
<para>
Kernel modification involves changing the Linux Yocto kernel, which could involve changing
Kernel modification involves changing the Yocto Project kernel, which could involve changing
configuration options as well as adding new kernel recipes.
Configuration changes can be added in the form of configuration fragments, while recipe
modification comes through the kernel's <filename>recipes-kernel</filename> area
@@ -209,8 +222,8 @@
</para>
<para>
The remainder of this section presents a high-level overview of the Linux Yocto
kernel architecture and the steps to modify the Linux Yocto kernel.
The remainder of this section presents a high-level overview of the Yocto Project
kernel architecture and the steps to modify the kernel.
For a complete discussion of the kernel, see
<ulink url='&YOCTO_DOCS_KERNEL_URL;'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.
@@ -231,22 +244,25 @@
</para>
<para>
You can find a web interface to the Linux Yocto kernel source repositories at
You can find a web interface to the Yocto Project kernel source repositories at
<ulink url='&YOCTO_GIT_URL;'></ulink>.
If you look at the interface, you will see to the left a grouping of
Git repositories titled "Yocto Linux Kernel."
Within this group, you will find the four different kernels supported by
Within this group, you will find several kernels supported by
the Yocto Project:
<itemizedlist>
<listitem><para><emphasis><filename>linux-yocto-2.6.34</filename></emphasis> - The
stable Linux Yocto kernel that is based on the Linux 2.6.34 release.</para></listitem>
stable Yocto Project kernel that is based on the Linux 2.6.34 released kernel.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-2.6.37</filename></emphasis> - The
stable Linux Yocto kernel that is based on the Linux 2.6.37 release.</para></listitem>
stable Yocto Project kernel that is based on the Linux 2.6.37 released kernel.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.0</filename></emphasis> - The stable
Linux Yocto kernel that is based on the Linux 3.0 release.</para></listitem>
Yocto Project kernel that is based on the Linux 3.0 released kernel.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.0-1.1.x</filename></emphasis> - The
stable Linux Yocto kernel to use with the Yocto Project Release 1.1.x. This kernel
is based on the Linux 3.0 release</para></listitem>
stable Yocto Project kernel to use with the Yocto Project Release 1.1.x. This kernel
is based on the Linux 3.0 released kernel.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.2</filename></emphasis> - The
stable Yocto Project kernel to use with the Yocto Project Release 1.2. This kernel
is based on the Linux 3.2 released kernel.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-dev</filename></emphasis> - A development
kernel based on the latest upstream release candidate available.</para></listitem>
</itemizedlist>
@@ -281,15 +297,15 @@
<para>
The overall result is a Git-maintained repository from which all the supported
Yocto Project kernel types can be derived for all the supported Yocto Project devices.
kernel types can be derived for all the supported devices.
A big advantage to this scheme is the sharing of common features by keeping them in
"larger" branches within the tree.
This practice eliminates redundant storage of similar features shared among kernels.
</para>
<note>
Keep in mind the figure does not take into account all four supported Linux Yocto
kernel types, but rather shows a single generic kernel just for conceptual purposes.
Keep in mind the figure does not take into account all the supported Yocto
Project kernel types, but rather shows a single generic kernel just for conceptual purposes.
Also keep in mind that this structure represents the Yocto Project source repositories
that are either pulled from during the build or established on the host development system
prior to the build by either cloning a particular kernel's Git repository or by
@@ -299,7 +315,7 @@
<para>
Storage of all the available kernel source code is one thing, while representing the
code on your host development system is another.
Conceptually, you can think of the Yocto Project kernel source repositories as all the
Conceptually, you can think of the kernel source repositories as all the
source files necessary for all the supported kernels.
As a developer, you are just interested in the source files for the kernel on
on which you are working.
@@ -308,13 +324,13 @@
<para>
You make kernel source code available on your host development system by using
Git to create a bare clone of the Linux Yocto kernel Git repository
Git to create a bare clone of the Yocto Project kernel Git repository
in which you are interested.
Then, you use Git again to clone a copy of that bare clone.
This copy represents the directory structure on your host system that is particular
to the kernel you want.
These are the files you actually modify to change the kernel.
See the <link linkend='local-kernel-files'>Linux Yocto Kernel</link> item earlier
See the <link linkend='local-kernel-files'>Yocto Project Kernel</link> item earlier
in this manual for an example of how to set up the kernel source directory
structure on your host system.
</para>
@@ -325,7 +341,7 @@
</para>
<para>
<imagedata fileref="figures/kernel-overview-3.png"
<imagedata fileref="figures/kernel-overview-3-denzil.png"
width="6in" depth="4in" align="center" scale="100" />
</para>
@@ -344,7 +360,7 @@
<para>
What happens during the build?
When you build the kernel on your development system all files needed for the build
are taken from the Yocto Project source repositories pointed to by the
are taken from the source repositories pointed to by the
<filename>SRC_URI</filename> variable and gathered in a temporary work area
where they are subsequently used to create the unique kernel.
Thus, in a sense, the process constructs a local source tree specific to your
@@ -361,13 +377,13 @@
</para>
<para>
Again, for a complete discussion of the Yocto Project kernel's architcture and its
Again, for a complete discussion of the Yocto Project kernel's architecture and its
branching strategy,
see the <ulink url='&YOCTO_DOCS_KERNEL_URL;'>
see <ulink url='&YOCTO_DOCS_KERNEL_URL;'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.
Also, you can reference
<xref linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source Code</xref>
for a detailed example that modifies the kernel.
You can also reference the
"<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source Code</link>"
section for a detailed example that modifies the kernel.
</para>
</section>
@@ -390,27 +406,28 @@
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the Yocto Project files on your
system</emphasis>: Having the Yocto Project files on your system gives you access to
the build process and tools you need.
<listitem><para><emphasis>Establish a local copy of project files on your
system</emphasis>: Having the <link linkend='source-directory'>source
directory</link> on your system gives you access to the build process and tools
you need.
For information on how to get these files, see the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>" earlier in this manual.
</para></listitem>
<listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git
repository</emphasis>: This repository is the area for your configuration
<listitem><para><emphasis>Set up a local copy of the <filename>poky-extras</filename> Git
repository</emphasis>: This local repository is the area for your configuration
fragments, new kernel recipes, and the kernel <filename>.bbappend</filename>
file used during the build.
It is good practice to set this repository up inside the local Yocto
Project files Git repository.
It is good practice to set this repository up inside your local
source directory.
For information on how to get these files, see the bulleted item
"<link linkend='poky-extras-repo'>The <filename>poky-extras</filename> Git Repository</link>"
earlier in this manual.
<note>While it is certainly possible to modify the kernel without involving
a local Git repository, the suggested workflow for kernel modification
using the Yocto Project does use a Git repository.</note></para></listitem>
<listitem><para><emphasis>Establish a local copy of the Linux Yocto kernel files on your
<listitem><para><emphasis>Establish a local copy of the Yocto Project kernel files on your
system</emphasis>: In order to make modifications to the kernel you need two things:
a bare clone of the Linux Yocto kernel you are modifying and
a bare clone of the Yocto Project kernel you are modifying and
a copy of that bare clone.
The bare clone is required by the build process and is the area to which you
push your kernel source changes (pulling does not work with bare clones).
@@ -418,7 +435,7 @@
source files.
You make your changes to the files in this copy of the bare clone.
For information on how to set these two items up, see the bulleted item
"<link linkend='local-kernel-files'>Linux Yocto Kernel</link>"
"<link linkend='local-kernel-files'>Yocto Project Kernel</link>"
earlier in this manual.</para></listitem>
<listitem><para><emphasis>Make changes to the kernel source code if
applicable</emphasis>: Modifying the kernel does not always mean directly
@@ -439,9 +456,9 @@
<filename>.config</filename>.
Try to resist the temptation of directly editing the <filename>.config</filename>
file found in the
<link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> at
<link linkend='build-directory'>build directory</link> at
<filename>tmp/sysroots/&lt;machine-name&gt;/kernel</filename>.
Doing so, can produce unexpected results when the Yocto Project build system
Doing so, can produce unexpected results when the OpenEmbedded build system
regenerates the configuration file.</para>
<para>Once you are satisfied with the configuration changes made using
<filename>menuconfig</filename>, you can directly examine the
@@ -451,7 +468,7 @@
<listitem><para><emphasis>Add or extend kernel recipes if applicable</emphasis>:
The standard
layer structure organizes recipe files inside the
<filename>meta-kernel-dev</filename> layer that is within the
<filename>meta-kernel-dev</filename> layer that is within the local
<filename>poky-extras</filename> Git repository.
If you need to add new kernel recipes, you add them within this layer.
Also within this area, you will find the <filename>.bbappend</filename>
@@ -461,7 +478,7 @@
<listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
changes to your kernel (configurations, source code changes, recipe additions,
or recipe changes), there remains a few things
you need to do in order for the Yocto Project build system to create your image.
you need to do in order for the build system to create your image.
If you have not done so, you need to get the build environment ready by sourcing
the environment setup script described earlier.
You also need to be sure two key configuration files
@@ -473,8 +490,8 @@
You might want to reference this information.
Also, you should look at the detailed examples found in the appendices at
at the end of this manual.</para></listitem>
<listitem><para><emphasis>Build the image</emphasis>: The Yocto Project
build system Poky uses the BitBake
<listitem><para><emphasis>Build the image</emphasis>: The OpenEmbedded
build system uses the BitBake
tool to build images based on the type of image you want to create.
You can find more information on BitBake
<ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para>
@@ -489,8 +506,8 @@
which allows you to distribute the layer.</para></listitem>
<listitem><para><emphasis>If applicable, share your in-tree changes</emphasis>:
If the changes you made
are suited for all Linux Yocto users, you might want to send them on for inclusion
into the Linux Yocto Git repository.
are suited for all Yocto Project kernel users, you might want to send them on
for inclusion into the upstream kernel's Git repository.
If the changes are accepted, the Yocto Project Maintainer pulls them into
the master branch of the kernel tree.
Doing so makes them available to everyone using the kernel.</para></listitem>
@@ -500,12 +517,12 @@
</section>
</section>
<section id='place-holder-section-two'>
<section id='application-development-workflow'>
<title>Application Development Workflow</title>
<para>
Application development involves creation of an application that you want to be able
to run on your target hardware, which is running a Linux Yocto image.
to run on your target hardware, which is running a Yocto Project kernel image.
The Yocto Project provides an Application Development Toolkit (ADT) that
facilitates quick development and integration of your application into its run-time environment.
Using the ADT you can employ cross-development toolchains designed for your target hardware
@@ -516,7 +533,7 @@
</para>
<para>
While we strongly suggest using the Yocto Project ADT to develop your application, you might
While we strongly suggest using the ADT to develop your application, you might
not want to.
If this is the case, you can still use pieces of the Yocto Project for your development process.
However, because the process can vary greatly, this manual does not provide detail on the process.
@@ -526,8 +543,7 @@
<title>Workflow Using the ADT and <trademark class='trade'>Eclipse</trademark></title>
<para>
To help you understand how application development works in the Yocto Project ADT
environment, this section
To help you understand how application development works using the ADT, this section
provides an overview of the general development process.
If you want to see a detailed example of the process as it is used from within the Eclipse
IDE, see
@@ -536,7 +552,7 @@
</para>
<para>
This illustration and the following list summarizes the application development general workflow.
The following illustration and list summarize the application development general workflow.
</para>
<para>
@@ -551,30 +567,12 @@
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<!--
WRITER NOTE: The areas to get the kernel and root filesystem are located in the Index of
downloads. There are many forms of each. The files that have "rootfs" are just the
target root filesystems. The file that is very small and starts with bzImage is just
the kernel image isolated so that it can be written to a special on-board area of
flash memory. Some systems require this. In the machines directory there are
files that combine the kernel image and the root filesystem. These files are the ISO
and HDDIMG files. ISO images are designed to be deployed on a DVD or CD. The ISO
images are designed to be deployed on a USB stick. There might be some relics in
the machine directory. For example, there is the "emenlow-bernard-5.0.0.tar.bz2"
file. Nobody seems to know what this is. If a developer needs the image and the
root filesystem I think that they want the small kernel image and a matching root
filesystem. Although, Paul Eggleton says that the HDDIMG types could be used to
develop on. I am not sure that we can use one of those in the ADT though as they
want you to point to the kernel image and the target root filesystem. Maybe you
could just point to the same spot. I am not sure.
-->
<listitem><para><emphasis>Secure the Linux Yocto Kernel Target Image</emphasis>:
You must have a target kernel image that has been built using the Yocto Project.</para>
<listitem><para><emphasis>Secure the Yocto Project Kernel Target Image</emphasis>:
You must have a target kernel image that has been built using the OpenEmbeded
build system.</para>
<para>Depending on whether the Yocto Project has a pre-built image that matches your target
architecture and where you are going to run the image while you develop your application
(QEMU or real hardware), the area you get the image from differs.
(QEMU or real hardware), the area from which you get the image differs.
<itemizedlist>
<listitem><para>Download the image from
<ulink url='&YOCTO_MACHINES_DL_URL;'>
@@ -593,7 +591,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
See the
"<link linkend='kernel-modification-workflow'>Kernel Modification Workflow</link>"
section earlier in this manual for information on how to create a modified
Linux Yocto kernel.</para></listitem>
Yocto Project kernel.</para></listitem>
</itemizedlist></para>
<para>For information on pre-built kernel image naming schemes for images
that can run on the QEMU emulator, see the
@@ -602,7 +600,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
<listitem><para><emphasis>Install the ADT</emphasis>:
The ADT provides a target-specific cross-development toolchain, the root filesystem,
the QEMU emulator, and other tools that can help you develop your application.
While it is possible to get these pieces separately, the Yocto Project provides an
While it is possible to get these pieces separately, the ADT Installer provides an
easy method.
You can get these pieces by running an ADT installer script, which is configurable.
For information on how to install the ADT, see the
@@ -689,15 +687,331 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
</section>
</section>
<section id="modifying-temporary-source-code">
<title>Modifying Temporary Source Code</title>
<para>
You might
find it helpful during development to modify the temporary source code used by recipes
to build packages.
For example, suppose you are developing a patch and you need to experiment a bit
to figure out your solution.
After you have initially built the package, you can iteratively tweak the
source code, which is located in the
<link linkend='build-directory'>build directory</link>, and then
you can force a re-compile and quickly test your altered code.
Once you settle on a solution, you can then preserve your changes in the form of
patches.
You can accomplish these steps all within either a
<ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink> or
<link linkend='git'>Git</link> workflow.
</para>
<section id='finding-the-temporary-source-code'>
<title>Finding the Temporary Source Code</title>
<para>
During a build, the unpacked temporary source code used by recipes
to build packages is available in the build directory as
defined by the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink></filename> variable.
Below is the default value for the <filename>S</filename> variable as defined in the
<filename>meta/conf/bitbake.conf</filename> configuration file in the
<link linkend='source-directory'>source directory</link>:
<literallayout class='monospaced'>
S = ${WORKDIR}/${BP}
</literallayout>
You should be aware that many recipes override the <filename>S</filename> variable.
For example, recipes that fetch their source from Git usually set
<filename>S</filename> to <filename>${WORKDIR}/git</filename>.
<note>
<filename>BP</filename> represents the "Base Package", which is the base package
name and the package version:
<literallayout class='monospaced'>
BP = ${BPN}-${PV}
</literallayout>
</note>
</para>
<para>
The path to the work directory for the recipe
(<ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>) depends
on the package name and the architecture of the target device.
For example, here is the work directory for packages whose targets are not device-dependent:
<literallayout class='monospaced'>
${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR}
</literallayout>
Let's look at an example without variables.
Assuming a top-level source directory named <filename>poky</filename>
and a default build directory of <filename>poky/build</filename>,
the following is the work directory for the <filename>acl</filename> package:
<literallayout class='monospaced'>
~/poky/build/tmp/work/i586-poky-linux/acl-2.2.51-r3
</literallayout>
</para>
<para>
If your package is dependent on the target device, the work directory varies slightly:
<literallayout class='monospaced'>
${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR}
</literallayout>
Again, assuming top-level source directory named <filename>poky</filename>
and a default build directory of <filename>poky/build</filename>, the
following is the work directory for the <filename>acl</filename> package that is being
built for a MIPS-based device:
<literallayout class='monospaced'>
~/poky/build/tmp/work/mips-poky-linux/acl-2.2.51-r2
</literallayout>
</para>
<note>
To better understand how the OpenEmbedded build system resolves directories during the
build process, see the glossary entries for the
<ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-TMPDIR'><filename>TMPDIR</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_ARCH'><filename>PACKAGE_ARCH</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-TARGET_OS'><filename>TARGET_OS</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-PV'><filename>PV</filename></ulink>,
and
<ulink url='&YOCTO_DOCS_REF_URL;#var-PR'><filename>PR</filename></ulink>
variables in the Yocto Project Reference Manual.
</note>
<para>
Now that you know where to locate the directory that has the temporary source code, you can use a
Quilt or Git workflow to make your edits, test the changes, and preserve the
changes in the form of patches.
</para>
</section>
<section id="using-a-quilt-workflow">
<title>Using a Quilt Workflow</title>
<para>
<ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink>
is a powerful tool that allows you to capture source code changes without having
a clean source tree.
This section outlines the typical workflow you can use to modify temporary source code,
test changes, and then preserve the changes in the form of a patch all using Quilt.
</para>
<para>
Follow these general steps:
<orderedlist>
<listitem><para><emphasis>Find the Source Code:</emphasis>
The temporary source code used by the OpenEmbedded build system is kept in the
build directory.
See the
"<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>"
section to learn how to locate the directory that has the temporary source code for a
particular package.</para></listitem>
<listitem><para><emphasis>Change Your Working Directory:</emphasis>
You need to be in the directory that has the temporary source code.
That directory is defined by the
<ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink>
variable.</para></listitem>
<listitem><para><emphasis>Create a New Patch:</emphasis>
Before modifying source code, you need to create a new patch.
To create a new patch file, use <filename>quilt new</filename> as below:
<literallayout class='monospaced'>
$ quilt new my_changes.patch
</literallayout></para></listitem>
<listitem><para><emphasis>Notify Quilt and Add Files:</emphasis>
After creating the patch, you need to notify Quilt about the files you will
be changing.
Add the files you will be modifying into the patch you just created:
<literallayout class='monospaced'>
$ quilt add file1.c file2.c file3.c
</literallayout></para></listitem>
<listitem><para><emphasis>Edit the Files:</emphasis>
Make the changes to the temporary source code.</para></listitem>
<listitem><para><emphasis>Test Your Changes:</emphasis>
Once you have modified the source code, the easiest way to test your changes
is by calling the <filename>compile</filename> task as shown in the following example:
<literallayout class='monospaced'>
$ bitbake -c compile -f &lt;name_of_package&gt;
</literallayout>
The <filename>-f</filename> or <filename>--force</filename>
option forces re-execution of the specified task.
If you find problems with your code, you can just keep editing and
re-testing iteratively until things work as expected.
<note>All the modifications you make to the temporary source code
disappear once you <filename>-c clean</filename> or
<filename>-c cleanall</filename> with BitBake for the package.
Modifications will also disappear if you use the <filename>rm_work</filename>
feature as described in the
"<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
section of the Yocto Project Quick Start.
</note></para></listitem>
<listitem><para><emphasis>Generate the Patch:</emphasis>
Once your changes work as expected, you need to use Quilt to generate the final patch that
contains all your modifications.
<literallayout class='monospaced'>
$ quilt refresh
</literallayout>
At this point the <filename>my_changes.patch</filename> file has all your edits made
to the <filename>file1.c</filename>, <filename>file2.c</filename>, and
<filename>file3.c</filename> files.</para>
<para>You can find the resulting patch file in the <filename>patches/</filename>
subdirectory of the source (<filename>S</filename>) directory.</para></listitem>
<listitem><para><emphasis>Copy the Patch File:</emphasis>
For simplicity, copy the patch file into a directory named <filename>files</filename>,
which you can create in the same directory as the recipe.
Placing the patch here guarantees that the OpenEmbedded build system will find
the patch.
Next, add the patch into the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename>
of the recipe.
Here is an example:
<literallayout class='monospaced'>
SRC_URI += "file://my_changes.patch"
</literallayout></para></listitem>
<listitem><para><emphasis>Increment the Package Revision Number:</emphasis>
Finally, don't forget to 'bump' the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PR'>PR</ulink></filename>
value in the same recipe since the resulting packages have changed.</para></listitem>
</orderedlist>
</para> </section>
<section id='using-a-git-workflow'>
<title>Using a Git Workflow</title>
<para>
Git is an even more powerful tool that allows you to capture source code changes without having
a clean source tree.
This section outlines the typical workflow you can use to modify temporary source code,
test changes, and then preserve the changes in the form of a patch all using Git.
For general information on Git as it is used in the Yocto Project, see the
"<link linkend='git'>Git</link>" section.
</para>
<note>
This workflow uses Git only for its ability to manage local changes to the source code
and produce patches independent of any version control system used with the Yocto Project.
</note>
<para>
Follow these general steps:
<orderedlist>
<listitem><para><emphasis>Find the Source Code:</emphasis>
The temporary source code used by the OpenEmbedded build system is kept in the
build directory.
See the
"<link linkend='finding-the-temporary-source-code'>Finding the Temporary Source Code</link>"
section to learn how to locate the directory that has the temporary source code for a
particular package.</para></listitem>
<listitem><para><emphasis>Change Your Working Directory:</emphasis>
You need to be in the directory that has the temporary source code.
That directory is defined by the
<ulink url='&YOCTO_DOCS_REF_URL;#var-S'>S</ulink>
variable.</para></listitem>
<listitem><para><emphasis>Initialize a Git Repository:</emphasis>
Use the <filename>git init</filename> command to initialize a new local repository
that is based on the work directory:
<literallayout class='monospaced'>
$ git init
</literallayout></para></listitem>
<listitem><para><emphasis>Stage all the files:</emphasis>
Use the <filename>git add *</filename> command to stage all the files in the source
code directory so that they can be committed:
<literallayout class='monospaced'>
$ git add *
</literallayout></para></listitem>
<listitem><para><emphasis>Commit the Source Files:</emphasis>
Use the <filename>git commit</filename> command to initially commit all the files in
the work directory:
<literallayout class='monospaced'>
$ git commit
</literallayout>
At this point, your Git repository is aware of all the source code files.
Any edits you now make to files will be tracked by Git.</para></listitem>
<listitem><para><emphasis>Edit the Files:</emphasis>
Make the changes to the temporary source code.</para></listitem>
<listitem><para><emphasis>Test Your Changes:</emphasis>
Once you have modified the source code, the easiest way to test your changes
is by calling the <filename>compile</filename> task as shown in the following example:
<literallayout class='monospaced'>
$ bitbake -c compile -f &lt;name_of_package&gt;
</literallayout>
The <filename>-f</filename> or <filename>--force</filename>
option forces re-execution of the specified task.
If you find problems with your code, you can just keep editing and
re-testing iteratively until things work as expected.
<note>All the modifications you make to the temporary source code
disappear once you <filename>-c clean</filename> or
<filename>-c cleanall</filename> with BitBake for the package.
Modifications will also disappear if you use the <filename>rm_work</filename>
feature as described in the
"<ulink url='&YOCTO_DOCS_QS_URL;#building-image'>Building an Image</ulink>"
section of the Yocto Project Quick Start.
</note></para></listitem>
<listitem><para><emphasis>See the List of Files You Changed:</emphasis>
Use the <filename>git status</filename> command to see what files you have actually edited.
The ability to have Git track the files you have changed is an advantage that this
workflow has over the Quilt workflow.
Here is the Git command to list your changed files:
<literallayout class='monospaced'>
$ git status
</literallayout></para></listitem>
<listitem><para><emphasis>Stage the Modified Files:</emphasis>
Use the <filename>git add</filename> command to stage the changed files so they
can be committed as follows:
<literallayout class='monospaced'>
$ git add file1.c file2.c file3.c
</literallayout></para></listitem>
<listitem><para><emphasis>Commit the Staged Files and View Your Changes:</emphasis>
Use the <filename>git commit</filename> command to commit the changes to the
local repository.
Once you have committed the files, you can use the <filename>git log</filename>
command to see your changes:
<literallayout class='monospaced'>
$ git commit
$ git log
</literallayout></para></listitem>
<listitem><para><emphasis>Generate the Patch:</emphasis>
Once the changes are committed, use the <filename>git format-patch</filename>
command to generate a patch file:
<literallayout class='monospaced'>
$ git format-patch HEAD~1
</literallayout>
The <filename>HEAD~1</filename> part of the command causes Git to generate the
patch file for the most recent commit.</para>
<para>At this point, the patch file has all your edits made
to the <filename>file1.c</filename>, <filename>file2.c</filename>, and
<filename>file3.c</filename> files.
You can find the resulting patch file in the current directory.
The patch file ends with <filename>.patch</filename>.</para></listitem>
<listitem><para><emphasis>Copy the Patch File:</emphasis>
For simplicity, copy the patch file into a directory named <filename>files</filename>,
which you can create in the same directory as the recipe.
Placing the patch here guarantees that the OpenEmbedded build system will find
the patch.
Next, add the patch into the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'>SRC_URI</ulink></filename>
of the recipe.
Here is an example:
<literallayout class='monospaced'>
SRC_URI += "file://my_changes.patch"
</literallayout></para></listitem>
<listitem><para><emphasis>Increment the Package Revision Number:</emphasis>
Finally, don't forget to 'bump' the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PR'>PR</ulink></filename>
value in the same recipe since the resulting packages have changed.</para></listitem>
</orderedlist>
</para>
</section>
</section>
<section id='image-development-using-hob'>
<title>Image Development Using Hob</title>
<para>
The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the Yocto
Project build system based on BitBake.
The <ulink url='&YOCTO_HOME_URL;/projects/hob'>Hob</ulink> is a graphical user interface for the
OpenEmbedded build system, which is based on BitBake.
You can use the Hob to build custom operating system images within the Yocto Project build environment.
Hob simply provides a friendly interface over the build system used during system development.
In other words, building images with the Hob lets you take care of common Yocto Project build tasks more easily.
In other words, building images with the Hob lets you take care of common build tasks more easily.
</para>
<para>
@@ -717,8 +1031,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
<listitem><para>You can modify various policy settings such as the package format used to build with,
the parrallelism BitBake uses, whether or not to build an external toolchain, and which host
to build against.</para></listitem>
<listitem><para>You can manage <link linkend='understanding-and-creating-layers'>Understanding
and Creating layers</link>.</para></listitem>
<listitem><para>You can manage
<link linkend='understanding-and-creating-layers'>layers</link>.</para></listitem>
<listitem><para>You can select a base image and then add extra packages for your custom build.
</para></listitem>
<listitem><para>You can launch and monitor the build from within Hob.</para></listitem>

View File

@@ -23,7 +23,7 @@
Open source philosophy is characterized by software development directed by peer production
and collaboration through an active community of developers.
Contrast this to the more standard centralized development models used by commercial software
companies where a finite set of developers produce a product for sale using a defined set
companies where a finite set of developers produces a product for sale using a defined set
of procedures that ultimately result in an end product whose architecture and source material
are closed to the public.
</para>
@@ -55,7 +55,7 @@
</section>
<section id="usingpoky-changes-collaborate">
<title>Using The Yocto Project in a Team Environment</title>
<title>Using the Yocto Project in a Team Environment</title>
<para>
It might not be immediately clear how you can use the Yocto Project in a team environment,
@@ -97,19 +97,20 @@
<para>
Most teams have many pieces of software undergoing active development at any given time.
You can derive large benefits by putting these pieces under the control of a source
control system that is compatible with the Yocto Project (i.e. Git or Subversion (SVN).
control system that is compatible (i.e. Git or Subversion (SVN)) with the OpenEmbeded
build system that the Yocto Project uses.
You can then set the autobuilder to pull the latest revisions of the packages
and test the latest commits by the builds.
This practice quickly highlights issues.
The Yocto Project easily supports testing configurations that use both a
The build system easily supports testing configurations that use both a
stable known good revision and a floating revision.
The Yocto Project can also take just the changes from specific source control branches.
The build system can also take just the changes from specific source control branches.
This capability allows you to track and test specific changes.
</para>
<para>
Perhaps the hardest part of setting this up is defining the software project or
the Yocto Project metadata policies that surround the different source control systems.
the metadata policies that surround the different source control systems.
Of course circumstances will be different in each case.
However, this situation reveals one of the Yocto Project's advantages -
the system itself does not
@@ -129,7 +130,7 @@
From the interface, you can click on any particular item in the "Name" column and
see the URL at the bottom of the page that you need to set up a Git repository for
that particular item.
Having a local Git repository of the Yocto Project files allows you to
Having a local Git repository of the source directory (poky) allows you to
make changes, contribute to the history, and ultimately enhance the Yocto Project's
tools, Board Support Packages, and so forth.
</para>
@@ -147,8 +148,8 @@
<ulink url='&YOCTO_HOME_URL;/download'>download page</ulink> and get a
tarball of the release.
You can also go to this site to download any supported BSP tarballs.
Unpacking the tarball gives you a hierarchical directory structure of Yocto Project
files that lets you develop using the Yocto Project.
Unpacking the tarball gives you a hierarchical source directory that lets you develop
using the Yocto Project.
</para>
<para>
@@ -157,22 +158,22 @@
</para>
<para>
In summary, here is where you can get the Yocto Project files needed for development:
In summary, here is where you can get the project files needed for development:
<itemizedlist>
<listitem><para id='source-repositories'><emphasis><ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi'>Source Repositories:</ulink></emphasis>
This area contains IDE Plugins, Matchbox, Poky, Poky Support, Tools, Yocto Linux Kernel, and Yocto
Metadata Layers.
You can create Git repositories for each of these areas.</para>
You can create local copies of Git repositories for each of these areas.</para>
<para>
<imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" />
</para></listitem>
<listitem><para><anchor id='index-downloads' /><emphasis><ulink url='&YOCTO_DL_URL;/releases/'>Index of /releases:</ulink></emphasis>
This area contains index releases such as
the <trademark class='trade'>Eclipse</trademark>
Yocto Plug-in, miscellaneous support, Poky, pseudo, cross-development toolchains,
Yocto Plug-in, miscellaneous support, poky, pseudo, cross-development toolchains,
and all released versions of Yocto Project in the form of images or tarballs.
Downloading and extracting these files does not produce a Git repository but rather
a snapshot of a particular release or image.</para>
Downloading and extracting these files does not produce a local copy of the
Git repository but rather a snapshot of a particular release or image.</para>
<para>
<imagedata fileref="figures/index-downloads.png" align="center" width="6in" depth="4in" />
</para></listitem>
@@ -199,7 +200,7 @@
<listitem><para><emphasis>Append Files:</emphasis> Files that append build information to
a recipe file.
Append files are known as BitBake append files and <filename>.bbappend</filename> files.
The Yocto Project build system expects every append file to have a corresponding and
The OpenEmbedded build system expects every append file to have a corresponding and
underlying recipe (<filename>.bb</filename>) file.
Furthermore, the append file and the underlying recipe must have the same root filename.
The filenames can differ only in the file type suffix used (e.g.
@@ -211,140 +212,25 @@
"<link linkend='changing-recipes-kernel'>Changing <filename>recipes-kernel</filename></link>"
sections.</para></listitem>
<listitem><para><emphasis>BitBake:</emphasis> The task executor and scheduler used by
the Yocto Project to build images.
the OpenEmbedded build system to build images.
For more information on BitBake, see the <ulink url='http://bitbake.berlios.de/manual/'>
BitBake documentation</ulink>.</para></listitem>
<listitem><para><emphasis>Classes:</emphasis> Files that provide for logic encapsulation
and inheritance allowing commonly used patterns to be defined once and easily used
in multiple recipes.
Class files end with the <filename>.bbclass</filename> filename extension.
</para></listitem>
<listitem><para><emphasis>Configuration File:</emphasis> Configuration information in various
<filename>.conf</filename> files provides global definitions of variables.
The <filename>conf/local.conf</filename> configuration file in the
<link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>
contains user-defined variables that affect each build.
The <filename>meta-yocto/conf/distro/poky.conf</filename> configuration file
defines Yocto distro configuration
variables used only when building with this policy.
Machine configuration files, which
are located throughout the Yocto Project file structure, define
variables for specific hardware and are only used when building for that target
(e.g. the <filename>machine/beagleboard.conf</filename> configuration file defines
variables for the Texas Instruments ARM Cortex-A8 development board).
Configuration files end with a <filename>.conf</filename> filename extension.
</para></listitem>
<listitem><para><emphasis>Cross-Development Toolchain:</emphasis>
A collection of software development
tools and utilities that allow you to develop software for targeted architectures.
This toolchain contains cross-compilers, linkers, and debuggers that are specific to
an architecture.
You can use the Yocto Project to build cross-development toolchains in tarball form that when
unpacked contain the development tools you need to cross-compile and test your software.
The Yocto Project ships with images that contain toolchains for supported architectures
as well.
Sometimes this toolchain is referred to as the meta-toolchain.</para></listitem>
<listitem><para><emphasis>Image:</emphasis> An image is the result produced when
BitBake processes a given collection of recipes and related metadata.
Images are the binary output that runs on specific hardware and for specific
use cases.
For a list of the supported image types that the Yocto Project provides, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Reference: Images</ulink>"
appendix in The Yocto Project Reference Manual.</para></listitem>
<listitem><para id='layer'><emphasis>Layer:</emphasis> A collection of recipes representing the core,
a BSP, or an application stack.
For a discussion on BSP Layers, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
section in the Yocto Project Board Support Packages (BSP) Developer's Guide.</para></listitem>
<listitem><para id='metadata'><emphasis>Metadata:</emphasis> The files that BitBake parses when
building an image.
Metadata includes recipes, classes, and configuration files.</para></listitem>
<listitem><para><emphasis>OE-Core:</emphasis> A core set of metadata originating
with OpenEmbedded (OE) that is shared between OE and the Yocto Project.
This metadata is found in the <filename>meta</filename> directory of the Yocto Project
files.</para></listitem>
<listitem><para><emphasis>Package:</emphasis> The packaged output from a baked recipe.
A package is generally the compiled binaries produced from the recipe's sources.
You bake something by running it through BitBake.</para></listitem>
<listitem><para><emphasis>Poky:</emphasis> The build tool that the Yocto Project
uses to create images.</para></listitem>
<listitem><para><emphasis>Recipe:</emphasis> A set of instructions for building packages.
A recipe describes where you get source code and which patches to apply.
Recipes describe dependencies for libraries or for other recipes, and they
also contain configuration and compilation options.
Recipes contain the logical unit of execution, the software/images to build, and
use the <filename>.bb</filename> file extension.</para></listitem>
<listitem><para><emphasis>Tasks:</emphasis> Arbitrary groups of software Recipes.
You simply use Tasks to hold recipes that, when built, usually accomplish a single task.
For example, a task could contain the recipes for a companys proprietary or value-add software.
Or, the task could contain the recipes that enable graphics.
A task is really just another recipe.
Because task files are recipes, they end with the <filename>.bb</filename> filename
extension.</para></listitem>
<listitem><para><emphasis>Upstream:</emphasis> A reference to source code or repositories
that are not local to the development system but located in a master area that is controlled
by the maintainer of the source code.
For example, in order for a developer to work on a particular piece of code, they need to
first get a copy of it from an "upstream" source.</para></listitem>
<listitem>
<para id='yocto-project-files'><emphasis>Yocto Project Files:</emphasis>
This term refers to the directory structure created as a result of either downloading
and unpacking a Yocto Project release tarball or setting up a Git repository
by cloning <filename>git://git.yoctoproject.org/poky</filename>.
Sometimes the term "the Yocto Project Files structure" is used as well.</para>
<para>The Yocto Project Files contain BitBake, Documentation, metadata and
other files that all support the development environment.
Consequently, you must have the Yocto Project Files in place on your development
system in order to do any development using the Yocto Project.</para>
<para>The name of the top-level directory of the Yocto Project Files structure
is derived from the Yocto Project release tarball.
For example, downloading and unpacking <filename>&YOCTO_POKY_TARBALL;</filename>
results in a Yocto Project file structure whose Yocto Project source directory is named
<filename>&YOCTO_POKY;</filename>.
If you create a Git repository, then you can name the repository anything you like.
Throughout much of the documentation, the name of the Git repository is used as the
name for the local folder.
So, for example, cloning the <filename>poky</filename> Git repository results in a
local Git repository also named <filename>poky</filename>.</para>
<para>It is important to understand the differences between Yocto Project Files created
by unpacking a release tarball as compared to cloning
<filename>git://git.yoctoproject.org/poky</filename>.
When you unpack a tarball, you have an exact copy of the files based on the time of
release - a fixed release point.
Any changes you make to your local Yocto Project Files are on top of the release.
On the other hand, when you clone the Yocto Project Git repository, you have an
active development repository.
In this case, any local changes you make to the Yocto Project can be later applied
to active development branches of the upstream Yocto Project Git repository.</para>
<para>Finally, if you want to track a set of local changes while starting from the same point
as a release tarball, you can create a local Git branch that
reflects the exact copy of the files at the time of their release.
You do this using Git tags that are part of the repository.</para>
<para>For more information on concepts around Git repositories, branches, and tags,
see the
"<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>"
section.</para></listitem>
<listitem>
<para id='yocto-project-build-directory'><emphasis>Yocto Project Build Directory:</emphasis>
This term refers to the area used by the Yocto Project for builds.
The area is created when you <filename>source</filename> the Yocto Project setup
environment script that is found in the Yocto Project files area
<para id='build-directory'><emphasis>Build Directory:</emphasis>
This term refers to the area used by the OpenEmbedded build system for builds.
The area is created when you <filename>source</filename> the setup
environment script that is found in the source directory
(i.e. <filename>oe-init-build-env</filename>).
The <filename>TOPDIR</filename> variable points to the build directory.</para>
The <ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink>
variable points to the build directory.</para>
<para>You have a lot of flexibility when creating the Yocto Project Build Directory.
<para>You have a lot of flexibility when creating the build directory.
Following are some examples that show how to create the directory:
<itemizedlist>
<listitem><para>Create the build directory in your current working directory
and name it <filename>build</filename>.
This is the default behavior.
<literallayout class='monospaced'>
$ cd ~/poky
$ source oe-init-build-env
</literallayout></para></listitem>
<listitem><para>Provide a directory path and specifically name the build
@@ -363,6 +249,140 @@
</literallayout></para></listitem>
</itemizedlist>
</para></listitem>
<listitem><para><emphasis>Build System:</emphasis> In the context of the Yocto Project
this term refers to the OpenEmbedded build system used by the project.
This build system is based on the project known as "Poky."
For some historical information about Poky, see the
<link linkend='poky'>poky</link> term further along in this section.
</para></listitem>
<listitem><para><emphasis>Classes:</emphasis> Files that provide for logic encapsulation
and inheritance allowing commonly used patterns to be defined once and easily used
in multiple recipes.
Class files end with the <filename>.bbclass</filename> filename extension.
</para></listitem>
<listitem><para><emphasis>Configuration File:</emphasis> Configuration information in various
<filename>.conf</filename> files provides global definitions of variables.
The <filename>conf/local.conf</filename> configuration file in the
<link linkend='build-directory'>build directory</link>
contains user-defined variables that affect each build.
The <filename>meta-yocto/conf/distro/poky.conf</filename> configuration file
defines Yocto distro configuration
variables used only when building with this policy.
Machine configuration files, which
are located throughout the
<link linkend='source-directory'>source directory</link>, define
variables for specific hardware and are only used when building for that target
(e.g. the <filename>machine/beagleboard.conf</filename> configuration file defines
variables for the Texas Instruments ARM Cortex-A8 development board).
Configuration files end with a <filename>.conf</filename> filename extension.
</para></listitem>
<listitem><para><emphasis>Cross-Development Toolchain:</emphasis>
A collection of software development
tools and utilities that allow you to develop software for targeted architectures.
This toolchain contains cross-compilers, linkers, and debuggers that are specific to
an architecture.
You can use the OpenEmbedded build system to build cross-development toolchains in tarball
form that, when
unpacked, contain the development tools you need to cross-compile and test your software.
The Yocto Project ships with images that contain toolchains for supported architectures
as well.
Sometimes this toolchain is referred to as the meta-toolchain.</para></listitem>
<listitem><para><emphasis>Image:</emphasis> An image is the result produced when
BitBake processes a given collection of recipes and related metadata.
Images are the binary output that run on specific hardware and for specific
use cases.
For a list of the supported image types that the Yocto Project provides, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Reference: Images</ulink>"
appendix in The Yocto Project Reference Manual.</para></listitem>
<listitem><para id='layer'><emphasis>Layer:</emphasis> A collection of recipes representing the core,
a BSP, or an application stack.
For a discussion on BSP Layers, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>"
section in the Yocto Project Board Support Packages (BSP) Developer's Guide.</para></listitem>
<listitem><para id='metadata'><emphasis>Metadata:</emphasis> The files that BitBake parses when
building an image.
Metadata includes recipes, classes, and configuration files.</para></listitem>
<listitem><para><emphasis>OE-Core:</emphasis> A core set of metadata originating
with OpenEmbedded (OE) that is shared between OE and the Yocto Project.
This metadata is found in the <filename>meta</filename> directory of the source
directory.</para></listitem>
<listitem><para><emphasis>Package:</emphasis> The packaged output from a baked recipe.
A package is generally the compiled binaries produced from the recipe's sources.
You bake something by running it through BitBake.</para></listitem>
<listitem><para id='poky'><emphasis>Poky:</emphasis> The term "poky" can mean several things.
In its most general sence, it is an open-source project that was initially developed
by OpenedHand. With OpenedHand, poky was developed off of the existing OpenEmbedded
build system becoming a build system for embedded images.
After Intel Corporation aquired OpenedHand, the project poky became the basis for
the Yocto Project's build system.
Within the Yocto Project source repositories, poky exists as a separate Git repository
that can be cloned to yield a local copy on the host system.
Thus, "poky" can refer to the local copy of the source directory used to develop within
the Yocto Project.</para></listitem>
<listitem><para><emphasis>Recipe:</emphasis> A set of instructions for building packages.
A recipe describes where you get source code and which patches to apply.
Recipes describe dependencies for libraries or for other recipes, and they
also contain configuration and compilation options.
Recipes contain the logical unit of execution, the software/images to build, and
use the <filename>.bb</filename> file extension.</para></listitem>
<listitem>
<para id='source-directory'><emphasis>Source Directory:</emphasis>
This term refers to the directory structure created as a result of either downloading
and unpacking a Yocto Project release tarball or creating a local copy of
<filename>poky</filename> Git repository <filename>git://git.yoctoproject.org/poky</filename>.
Sometimes you might here the term "poky directory" used to refer to this
directory structure.</para>
<para>The source directory contains BitBake, Documentation, metadata and
other files that all support the Yocto Project.
Consequently, you must have the source directory in place on your development
system in order to do any development using the Yocto Project.</para>
<para>For tarball expansion, the name of the top-level directory of the source directory
is derived from the Yocto Project release tarball.
For example, downloading and unpacking <filename>&YOCTO_POKY_TARBALL;</filename>
results in a source directory whose top-level folder is named
<filename>&YOCTO_POKY;</filename>.
If you create a local copy of the Git repository, then you can name the repository
anything you like.
Throughout much of the documentation, <filename>poky</filename> is used as the name of
the top-level folder of the local copy of the poky Git repository.
So, for example, cloning the <filename>poky</filename> Git repository results in a
local Git repository whose top-level folder is also named <filename>poky</filename>.</para>
<para>It is important to understand the differences between the source directory created
by unpacking a released tarball as compared to cloning
<filename>git://git.yoctoproject.org/poky</filename>.
When you unpack a tarball, you have an exact copy of the files based on the time of
release - a fixed release point.
Any changes you make to your local files in the source directory are on top of the release.
On the other hand, when you clone the <filename>poky</filename> Git repository, you have an
active development repository.
In this case, any local changes you make to the source directory can be later applied
to active development branches of the upstream <filename>poky</filename> Git
repository.</para>
<para>Finally, if you want to track a set of local changes while starting from the same point
as a release tarball, you can create a local Git branch that
reflects the exact copy of the files at the time of their release.
You do this using Git tags that are part of the repository.</para>
<para>For more information on concepts around Git repositories, branches, and tags,
see the
"<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>"
section.</para></listitem>
<listitem><para><emphasis>Tasks:</emphasis> Arbitrary groups of software Recipes.
You simply use Tasks to hold recipes that, when built, usually accomplish a single task.
For example, a task could contain the recipes for a companys proprietary or value-add software.
Or, the task could contain the recipes that enable graphics.
A task is really just another recipe.
Because task files are recipes, they end with the <filename>.bb</filename> filename
extension.</para></listitem>
<listitem><para><emphasis>Upstream:</emphasis> A reference to source code or repositories
that are not local to the development system but located in a master area that is controlled
by the maintainer of the source code.
For example, in order for a developer to work on a particular piece of code, they need to
first get a copy of it from an "upstream" source.</para></listitem>
</itemizedlist>
</para>
</section>
@@ -402,7 +422,7 @@
<filename>meta/files/common-licenses</filename>.
Once the build completes, the list of all licenses found and used during that build are
kept in the
<link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link> at
<link linkend='build-directory'>build directory</link> at
<filename>tmp/deploy/images/licenses</filename>.
</para>
@@ -494,7 +514,8 @@
Git uses "branches" to organize different development efforts.
For example, the <filename>poky</filename> repository has
<filename>laverne</filename>, <filename>bernard</filename>,
<filename>edison</filename>, and <filename>master</filename> branches among
<filename>edison</filename>, <filename>denzil</filename> and
<filename>master</filename> branches among
others.
You can see all the branches by going to
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/'></ulink> and
@@ -525,12 +546,12 @@
$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout &DISTRO_NAME; -b &DISTRO_NAME;
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
</literallayout>
In this example, the name of the top-level directory of your local Yocto Project
Files Git repository is <filename>poky</filename>.
And, the name of the local working area (or local branch) you have created and checked
out is named <filename>&DISTRO_NAME;</filename>.
Files Git repository is <filename>poky</filename>,
and the name of the local working area (or local branch) you have created and checked
out is <filename>&DISTRO_NAME;</filename>.
The files in your repository now reflect the same files that are in the
<filename>&DISTRO_NAME;</filename> development branch of the Yocto Project's
<filename>poky</filename> repository.
@@ -577,14 +598,14 @@
$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout &DISTRO_NAME;-&POKYVERSION; -b &DISTRO_NAME;-&POKYVERSION;
$ git checkout -b my-&DISTRO_NAME;-&POKYVERSION; &DISTRO_NAME;-&POKYVERSION;
</literallayout>
In this example, the name of the top-level directory of your local Yocto Project
Files Git repository is <filename>poky</filename>.
And, the name of the local branch you have created and checked out is
<filename>&DISTRO_NAME;-&POKYVERSION;</filename>.
<filename>my-&DISTRO_NAME;-&POKYVERSION;</filename>.
The files in your repository now exactly match the Yocto Project &DISTRO;
Release tag (&DISTRO_NAME;).
Release tag (<filename>&DISTRO_NAME;-&POKYVERSION;</filename>).
It is important to understand that when you create and checkout a local
working branch based on a tag, your environment matches a specific point
in time and not a development branch.
@@ -853,54 +874,53 @@
<listitem><para>Submit the bug by clicking the "Submit Bug" button.</para></listitem>
</orderedlist>
</para>
<note>
Bugs in the Yocto Project Bugzilla follow naming convention:
<filename>[YOCTO #&lt;number&gt;]</filename>, where <filename>&lt;number&gt;</filename> is the
assigned defect ID used in Bugzilla.
So, for example, a valid way to refer to a defect would be <filename>[YOCTO #1011]</filename>.
This convention becomes important if you are submitting patches against the Yocto Project
code itself.
</note>
</section>
<section id='how-to-submit-a-change'>
<title>How to Submit a Change</title>
<para>
Contributions to the Yocto Project are very welcome.
Because the Yocto Project is extremely configurable and flexible, we recognize that developers
Contributions to the Yocto Project and OpenEmbedded are very welcome.
Because the system is extremely configurable and flexible, we recognize that developers
will want to extend, configure or optimize it for their specific uses.
You should send patches to the appropriate Yocto Project mailing list to get them
in front of the Yocto Project Maintainer.
For a list of the Yocto Project mailing lists, see the
You should send patches to the appropriate mailing list so that they
can be reviewed and merged by the appropriate maintainer.
For a list of the Yocto Project and related mailing lists, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing lists</ulink>" section in
The Yocto Project Reference Manual.
</para>
<para>
The following is some guidance on which mailing list to use for what type of defect:
The following is some guidance on which mailing list to use for what type of change:
<itemizedlist>
<listitem><para>For defects against the Yocto Project build system Poky, send
your patch to the
<ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink> mailing list.
This mailing list corresponds to issues that are not specific to the Yocto Project but
are part of the OE-core.
For example, a defect against anything in the <filename>meta</filename> layer
or the BitBake Manual could be sent to this mailing list.</para></listitem>
<listitem><para>For defects against Yocto-specific layers, tools, and Yocto Project
documentation use the
<ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink> mailing list.
This mailing list corresponds to Yocto-specific areas such as
<filename>meta-yocto</filename>, <filename>meta-intel</filename>,
<filename>linux-yocto</filename>, and <filename>documentation</filename>.</para></listitem>
<listitem><para>For changes to the core metadata, send your patch to the
<ulink url='&OE_LISTS_URL;/listinfo/openembedded-core'>openembedded-core</ulink> mailing list.
For example, a change to anything under the <filename>meta</filename> or
<filename>scripts</filename> directories
should be sent to this mailing list.</para></listitem>
<listitem><para>For changes to BitBake (anything under the <filename>bitbake</filename>
directory), send your patch to the
<ulink url='&OE_LISTS_URL;/listinfo/bitbake-devel'>bitbake-devel</ulink> mailing list.</para></listitem>
<listitem><para>For changes to <filename>meta-yocto</filename>, send your patch to the
<ulink url='&YOCTO_LISTS_URL;/listinfo/poky'>poky</ulink> mailing list.</para></listitem>
<listitem><para>For changes to other layers hosted on yoctoproject.org (unless the
layer's documentation specifies otherwise), tools, and Yocto Project
documentation, use the
<ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'>yocto</ulink> mailing list.</para></listitem>
<listitem><para>For additional recipes that do not fit into the core metadata,
you should determine which layer the recipe should go into and submit the
change in the manner recommended by the documentation (e.g. README) supplied
with the layer. If in doubt, please ask on the
<ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'>yocto</ulink> or
<ulink url='&OE_LISTS_URL;/listinfo/openembedded-devel'>openembedded-devel</ulink>
mailing lists.</para></listitem>
</itemizedlist>
</para>
<para>
When you send a patch, be sure to include a "Signed-off-by:"
line in the same style as required by the Linux kernel.
Adding this line signifies the developer has agreed to the Developer's Certificate of Origin 1.1
Adding this line signifies that you, the submitter, have agreed to the Developer's Certificate of Origin 1.1
as follows:
<literallayout class='monospaced'>
Developer's Certificate of Origin 1.1
@@ -929,52 +949,52 @@
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
</literallayout>
A Poky contributions tree (<filename>poky-contrib</filename>,
<filename>git://git.yoctoproject.org/poky-contrib.git</filename>)
exists for contributors to stage contributions.
If people desire such access, please ask on the mailing list.
Usually, the Yocto Project team will grant access to anyone with a proven track
record of good patches.
</para>
<para>
In a collaborative environment, it is necessary to have some sort of standard
or method through which you submit changes.
Otherwise, things could get quite chaotic.
One general practice to follow is to make small, controlled changes to the
Yocto Project.
Keeping changes small and isolated lets you best keep pace with future Yocto Project changes.
One general practice to follow is to make small, controlled changes.
Keeping changes small and isolated aids review, makes merging/rebasing easier
and keeps the change history clean when anyone needs to refer to it in future.
</para>
<para>
When you create a commit, you must follow certain standards established by the
Yocto Project development team.
For each commit, you must provide a single-line summary of the change and you
almost always provide a more detailed description of what you did (i.e. the body
of the commit).
When you make a commit, you must follow certain standards established by the
OpenEmbedded and Yocto Project development teams.
For each commit, you must provide a single-line summary of the change and you
should almost always provide a more detailed description of what you did (i.e.
the body of the commit message).
The only exceptions for not providing a detailed description would be if your
change is a simple, self-explanatory change that needs no description.
Here are the Yocto Project commit message guidelines:
Here are the guidelines for composing a commit message:
<itemizedlist>
<listitem><para>Provide a single-line, short summary of the change.
This summary is typically viewable by source control systems.
This summary is typically viewable in the "shortlist" of changes.
Thus, providing something short and descriptive that gives the reader
a summary of the change is useful when viewing a list of many commits.
This should be prefixed by the recipe name (if changing a recipe), or
else the short form path to the file being changed.
</para></listitem>
<listitem><para>For the body of the commit message, provide detailed information
that describes what you changed, why you made the change, and the approach
you used.
you used. It may also be helpful if you mention how you tested the change.
Provide as much detail as you can in the body of the commit message.
</para></listitem>
<listitem><para>If the change addresses a specific bug or issue that is
associated with a bug-tracking ID, prefix your detailed description
with the bug or issue ID.
For example, the Yocto Project tracks bugs using a bug-naming convention.
Any commits that address a bug must start with the bug ID in the description
as follows:
associated with a bug-tracking ID, include a reference to that ID in
your detailed description.
For example, the Yocto Project uses a specific convention for bug
references - any commit that addresses a specific bug should include the
bug ID in the description (typically at the end) as follows:
<literallayout class='monospaced'>
YOCTO #&lt;bug-id&gt;: &lt;Detailed description of commit&gt;
&lt;detailed description of change&gt;
[YOCTO #&lt;bug-id&gt;]
</literallayout></para></listitem>
Where &lt;bug-id&gt; is replaced with the specific bug ID from the
Yocto Project Bugzilla instance.
</itemizedlist>
</para>
@@ -995,11 +1015,11 @@
The basic flow for pushing a change to an upstream "contrib" Git repository is as follows:
<itemizedlist>
<listitem><para>Make your changes in your local Git repository.</para></listitem>
<listitem><para>Stage your commit (or change) by using the <filename>git add</filename>
command.</para></listitem>
<listitem><para>Stage your changes by using the <filename>git add</filename>
command on each file you changed.</para></listitem>
<listitem><para>Commit the change by using the <filename>git commit</filename>
command and push it to the "contrib" repository.
Be sure to provide a commit message that follows the projects commit standards
Be sure to provide a commit message that follows the projects commit message standards
as described earlier.</para></listitem>
<listitem><para>Notify the maintainer that you have pushed a change by making a pull
request.
@@ -1010,10 +1030,10 @@
You can find these scripts in the <filename>scripts</filename> directory of the
Yocto Project file structure.</para>
<para>For help on using these scripts, simply provide the
<filename>--help</filename> argument as follows:
<filename>-h</filename> argument as follows:
<literallayout class='monospaced'>
$ ~/poky/scripts/create-pull-request --help
$ ~/poky/scripts/send-pull-request --help
$ ~/poky/scripts/create-pull-request -h
$ ~/poky/scripts/send-pull-request -h
</literallayout></para></listitem>
</itemizedlist>
</para>
@@ -1028,13 +1048,24 @@
<title>Submitting a Patch Through Email</title>
<para>
If you have a just a few changes, you can commit them and then submit them as an
If you have a just few changes, you can commit them and then submit them as an
email to the maintainer.
Here is a general procedure:
Depending on the components changed, you need to submit the email to a specific
mailing list.
For some guidance on which mailing list to use, see the list in the
"<link linkend='how-to-submit-a-change'>How to Submit a Change</link>" section
earlier in this manual.
For a description of the available mailing lists, see
"<ulink url='&YOCTO_DOCS_REF_URL;#resources-mailinglist'>Mailing Lists</ulink>"
section in the Yocto Project Reference Manual.
</para>
<para>
Here is the general procedure on how to submit a patch through email:
<itemizedlist>
<listitem><para>Make your changes in your local Git repository.</para></listitem>
<listitem><para>Stage your commit (or change) by using the <filename>git add</filename>
command.</para></listitem>
<listitem><para>Stage your changes by using the <filename>git add</filename>
command on each file you changed.</para></listitem>
<listitem><para>Commit the change by using the
<filename>git commit --signoff</filename> command.
Using the <filename>--signoff</filename> option identifies you as the person
@@ -1067,7 +1098,17 @@
the series of patches.
For information on the <filename>git format-patch</filename> command,
see <filename>GIT_FORMAT_PATCH(1)</filename> displayed using the
<filename>man git-format-patch</filename> command.</para></listitem>
<filename>man git-format-patch</filename> command.</para>
<note>If you have many patches to submit, you might consider using the
method described in the "<link linkend='pushing-a-change-upstream'>Pushing
a change Upstream and Requesting a Pull</link>" section described
earlier in the manual.
This method uses the <filename>create-pull-request</filename> and
<filename>send-pull-request</filename> scripts that automate much of the
process.
You might also consider requesting a contrib area and the associated rights
needed if you become a regular contributor to either the Yocto Project or
OpenEmbedded.</note></listitem>
<listitem><para>Import the files into your mail client by using the
<filename>git send-email</filename> command.
<note>In order to use <filename>git send-email</filename>, you must have the

View File

@@ -24,14 +24,16 @@
<para>
The Yocto Project is an open-source collaboration project focused on embedded Linux development.
The project currently provides a build system, which is sometimes referred to as "Poky",
and provides various ancillary tools suitable for the embedded developer.
The Yocto Project also features the Sato reference User Interface, which is optimized for
The project currently provides a build system, which is
referred to as the OpenEmbedded build system in the Yocto Project documentation.
The Yocto Project provides various ancillary tools suitable for the embedded developer
and also features the Sato reference User Interface, which is optimized for
stylus driven, low-resolution screens.
</para>
<para>
You can use the Yocto Project, which uses the BitBake build tool, to develop complete Linux
You can use the OpenEmbedded build system, which uses
<ulink url='http://bitbake.berlios.de/manual/'>BitBake</ulink>, to develop complete Linux
images and associated user-space applications for architectures based on ARM, MIPS, PowerPC,
x86 and x86-64.
While the Yocto Project does not provide a strict testing framework,
@@ -52,56 +54,50 @@
<listitem><para><emphasis>Host System:</emphasis> You should have a reasonably current
Linux-based host system.
You will have the best results with a recent release of Fedora,
OpenSUSE, or Ubuntu as these releases are frequently tested against the Yocto Project
OpenSUSE, Ubuntu, or CentOS as these releases are frequently tested against the Yocto Project
and officially supported.
You should also have about 100 gigabytes of free disk space for building images.
</para></listitem>
<listitem><para><emphasis>Packages:</emphasis> The Yocto Project requires certain packages
exist on your development system (e.g. Python 2.6 or 2.7).
<listitem><para><emphasis>Packages:</emphasis> The OpenEmbedded build system
requires certain packages exist on your development system (e.g. Python 2.6 or 2.7).
See "<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>"
section in the Yocto Project Quick start for the exact package
section in the Yocto Project Quick Start for the exact package
requirements and the installation commands to install them
for the supported distributions.</para></listitem>
<listitem id='local-yp-release'><para><emphasis>Yocto Project Release:</emphasis>
You need a release of the Yocto Project.
You can get set up with local
<link linkend='yocto-project-files'>Yocto Project Files</link> one of two ways
depending on whether you
are going to be contributing back into the Yocto Project source repository or not.
You set up a with local <link linkend='source-directory'>source directory</link>
one of two ways depending on whether you
are going to contribute back into the Yocto Project or not.
<note>
Regardless of the method you use, this manual refers to the resulting
hierarchical set of files as the "Yocto Project Files" or the "Yocto Project File
Structure."
Regardless of the method you use, this manual refers to the resulting local
hierarchical set of files as the "source directory."
</note>
<itemizedlist>
<listitem><para><emphasis>Tarball Extraction:</emphasis> If you are not going to contribute
back into the Yocto Project, you can simply download the Yocto Project release you want
back into the Yocto Project, you can simply download a Yocto Project release you want
from the websites <ulink url='&YOCTO_HOME_URL;/download'>download page</ulink>.
Once you have the tarball, just extract it into a directory of your choice.</para>
<para>For example, the following command extracts the Yocto Project &DISTRO;
release tarball
into the current working directory and sets up the Yocto Project file structure
with a top-level directory named <filename>&YOCTO_POKY;</filename>:
into the current working directory and sets up the local source directory
with a top-level folder named <filename>&YOCTO_POKY;</filename>:
<literallayout class='monospaced'>
$ tar xfj &YOCTO_POKY_TARBALL;
</literallayout></para>
<para>This method does not produce a Git repository.
Instead, you simply end up with a local snapshot of the
Yocto Project files that are based on the particular release in the
tarball.</para></listitem>
<para>This method does not produce a local Git repository.
Instead, you simply end up with a snapshot of the release.</para></listitem>
<listitem><para><emphasis>Git Repository Method:</emphasis> If you are going to be contributing
back into the Yocto Project or you simply want to keep up
with the latest developments, you should use Git commands to set up a local
Git repository of the Yocto Project Files.
Doing so creates a Git repository with a complete history of changes and allows
Git repository of the upstream <filename>poky</filename> source repository.
Doing so creates a repository with a complete history of changes and allows
you to easily submit your changes upstream to the project.
Because you cloned the repository, you have access to all the Yocto Project development
branches and tag names used in the upstream repository.</para>
<para>The following transcript shows how to clone the Yocto Project Files'
<para>The following transcript shows how to clone the <filename>poky</filename>
Git repository into the current working directory.
<note>The name of the Yocto Project Files Git repository in the Yocto Project Files
Source Repositories is <filename>poky</filename>.
You can view the Yocto Project Source Repositories at
<note>You can view the Yocto Project Source Repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink></note>
The command creates the local repository in a directory named <filename>poky</filename>.
For information on Git used within the Yocto Project, see the
@@ -109,52 +105,52 @@
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
Initialized empty Git repository in /home/scottrif/poky/.git/
remote: Counting objects: 116882, done.
remote: Compressing objects: 100% (35987/35987), done.
remote: Total 116882 (delta 80651), reused 113045 (delta 77578)
Receiving objects: 100% (116882/116882), 72.13 MiB | 2.68 MiB/s, done.
Resolving deltas: 100% (80651/80651), done.
remote: Counting objects: 141863, done.
remote: Compressing objects: 100% (38624/38624), done.
remote: Total 141863 (delta 99661), reused 141816 (delta 99614)
Receiving objects: 100% (141863/141863), 76.64 MiB | 126 KiB/s, done.
Resolving deltas: 100% (99661/99661), done.
</literallayout></para>
<para>For another example of how to set up your own local Git repositories, see this
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
wiki page</ulink>, which describes how to create both <filename>poky</filename>
and <filename>meta-intel</filename> Git repositories.</para></listitem>
</itemizedlist></para></listitem>
<listitem id='local-kernel-files'><para><emphasis>Linux Yocto Kernel:</emphasis>
If you are going to be making modifications to a supported Linux Yocto kernel, you
<listitem id='local-kernel-files'><para><emphasis>Yocto Project Kernel:</emphasis>
If you are going to be making modifications to a supported Yocto Project kernel, you
need to establish local copies of the source.
You can find Git repositories of supported Linux Yocto Kernels organized under
"Yocto Linux Kernel" in the Yocto Project Source Repositories at
You can find Git repositories of supported Yocto Project Kernels organized under
"Yocto Project Linux Kernel" in the Yocto Project Source Repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para>
<para>This setup involves creating a bare clone of the Linux Yocto kernel and then
<para>This setup involves creating a bare clone of the Yocto Project kernel and then
copying that cloned repository.
You can create the bare clone and the copy of the bare clone anywhere you like.
For simplicity, it is recommended that you create these structures outside of the
Yocto Project Files Git repository.</para>
source directory (usually <filename>poky</filename>).</para>
<para>As an example, the following transcript shows how to create the bare clone
of the <filename>linux-yocto-3.0-1.1.x</filename> kernel and then create a copy of
of the <filename>linux-yocto-3.2</filename> kernel and then create a copy of
that clone.
<note>When you have a local Linux Yocto kernel Git repository, you can
<note>When you have a local Yocto Project kernel Git repository, you can
reference that repository rather than the upstream Git repository as
part of the <filename>clone</filename> command.
Doing so can speed up the process.</note></para>
<para>In the following example, the bare clone is named
<filename>linux-yocto-3.0-1.1.x.git</filename>, while the
copy is named <filename>my-linux-yocto-3.0-1.1.x-work</filename>:
<filename>linux-yocto-3.2.git</filename>, while the
copy is named <filename>my-linux-yocto-3.2-work</filename>:
<literallayout class='monospaced'>
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.0-1.1.x linux-yocto-3.0-1.1.x.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.0-1.1.x.git/
remote: Counting objects: 2259181, done.
remote: Compressing objects: 100% (373259/373259), done.
remote: Total 2259181 (delta 1892638), reused 2231556 (delta 1865300)
Receiving objects: 100% (2259181/2259181), 482.44 MiB | 580 KiB/s, done.
Resolving deltas: 100% (1892638/1892638), done.
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.2 linux-yocto-3.2.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.2.git/
remote: Counting objects: 2468027, done.
remote: Compressing objects: 100% (392255/392255), done.
remote: Total 2468027 (delta 2071693), reused 2448773 (delta 2052498)
Receiving objects: 100% (2468027/2468027), 530.46 MiB | 129 KiB/s, done.
Resolving deltas: 100% (2071693/2071693), done.
</literallayout></para>
<para>Now create a clone of the bare clone just created:
<literallayout class='monospaced'>
$ git clone linux-yocto-3.0-1.1.x.git my-linux-yocto-3.0-1.1.x-work
Initialized empty Git repository in /home/scottrif/my-linux-yocto-3.0-1.1.x/.git/
Checking out files: 100% (36898/36898), done.
$ git clone linux-yocto-3.2.git my-linux-yocto-3.2-work
Initialized empty Git repository in /home/scottrif/my-linux-yocto-3.2-work/.git/
Checking out files: 100% (37619/37619), done.
</literallayout></para></listitem>
<listitem id='poky-extras-repo'><para><emphasis>
The <filename>poky-extras</filename> Git Repository</emphasis>:
@@ -165,24 +161,22 @@
edit to point to your locally modified kernel source files and to build the kernel
image.
Pointing to these local files is much more efficient than requiring a download of the
source files from upstream each time you make changes to the kernel.</para>
kernel's source files from upstream each time you make changes to the kernel.</para>
<para>You can find the <filename>poky-extras</filename> Git Repository in the
"Yocto Metadata Layers" area of the Yocto Project Source Repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.
It is good practice to create this Git repository inside the Yocto Project
files Git repository.</para>
It is good practice to create this Git repository inside the source directory.</para>
<para>Following is an example that creates the <filename>poky-extras</filename> Git
repository inside the Yocto Project files Git repository, which is named
<filename>poky</filename> in this case:
repository inside the source directory, which is named <filename>poky</filename>
in this case:
<literallayout class='monospaced'>
$ cd ~/poky
$ git clone git://git.yoctoproject.org/poky-extras poky-extras
Initialized empty Git repository in /home/scottrif/poky/poky-extras/.git/
remote: Counting objects: 561, done.
remote: Compressing objects: 100% (501/501), done.
remote: Total 561 (delta 159), reused 306 (delta 39)
Receiving objects: 100% (561/561), 519.96 KiB | 479 KiB/s, done.
Resolving deltas: 100% (159/159), done.
remote: Counting objects: 618, done.
remote: Compressing objects: 100% (558/558), done.
remote: Total 618 (delta 192), reused 307 (delta 39)
Receiving objects: 100% (618/618), 526.26 KiB | 111 KiB/s, done.
Resolving deltas: 100% (192/192), done.
</literallayout></para></listitem>
<listitem><para id='supported-board-support-packages-(bsps)'><emphasis>Supported Board
Support Packages (BSPs):</emphasis>
@@ -194,7 +188,7 @@
layer.
You can get set up for BSP development one of two ways: tarball extraction or
with a local Git repository.
It is a good idea to use the same method used to set up the Yocto Project Files.
It is a good idea to use the same method that you used to set up the source directory.
Regardless of the method you use, the Yocto Project uses the following BSP layer
naming scheme:
<literallayout class='monospaced'>
@@ -220,25 +214,24 @@
Again, this method just produces a snapshot of the BSP layer in the form
of a hierarchical directory structure.</para></listitem>
<listitem><para><emphasis>Git Repository Method:</emphasis> If you are working
with a Yocto Project Files Git repository, you should also use this method
with a local Git repository for your source directory, you should also use this method
to set up the <filename>meta-intel</filename> Git repository.
You can locate the <filename>meta-intel</filename> Git repository in the
"Yocto Metadata Layers" area of the Yocto Project Source Repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink>.</para>
<para>Typically, you set up the <filename>meta-intel</filename> Git repository inside
the Yocto Project Files Git repository.
the source directory.
For example, the following transcript shows the steps to clone the
<filename>meta-intel</filename>
Git repository inside the <filename>poky</filename> Git repository.
Git repository inside the local <filename>poky</filename> Git repository.
<literallayout class='monospaced'>
$ cd poky
$ git clone git://git.yoctoproject.org/meta-intel.git
Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/
remote: Counting objects: 1325, done.
remote: Compressing objects: 100% (1078/1078), done.
remote: Total 1325 (delta 546), reused 85 (delta 27)
Receiving objects: 100% (1325/1325), 1.56 MiB | 330 KiB/s, done.
Resolving deltas: 100% (546/546), done.
remote: Counting objects: 3380, done.
remote: Compressing objects: 100% (2750/2750), done.
remote: Total 3380 (delta 1689), reused 227 (delta 113)
Receiving objects: 100% (3380/3380), 1.77 MiB | 128 KiB/s, done.
Resolving deltas: 100% (1689/1689), done.
</literallayout></para>
<para>The same
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
@@ -269,13 +262,13 @@
<para>
The build process is as follows:
<orderedlist>
<listitem><para>Make sure you have the Yocto Project files as described in the
<listitem><para>Make sure you have set up the source directory described in the
previous section.</para></listitem>
<listitem><para>Initialize the build environment by sourcing a build environment
script.</para></listitem>
<listitem><para>Optionally ensure the <filename>/conf/local.conf</filename> configuration file,
<listitem><para>Optionally ensure the <filename>conf/local.conf</filename> configuration file,
which is found in the
<link linkend='yocto-project-build-directory'>Yocto Project Build Directory</link>,
<link linkend='build-directory'>build directory</link>,
is set up how you want it.
This file defines many aspects of the build environment including
the target machine architecture through the
@@ -298,20 +291,85 @@
<title>Using Pre-Built Binaries and QEMU</title>
<para>
Another option you have to get started is to use pre-built binaries.
This scenario is ideal for developing software applications to run on your target hardware.
To do this, you need to install the stand-alone Yocto Project cross-toolchain tarball and
then download the pre-built kernel that you will boot in the QEMU emulator.
Next, you must download and extract the target root filesystem for your target
machines architecture.
Finally, you set up the environment to emulate the hardware and then start the QEMU emulator.
Another option you have to get started is to use pre-built binaries.
The Yocto Project provides many types of binaries with each release.
See the <ulink url='&YOCTO_DOCS_REF_URL;#ref-images'>Reference: Images</ulink>
section for descriptions of the types of binaries that ship with a Yocto Project
release.
</para>
<para>
Using a pre-built binary is ideal for developing software applications to run on your
target hardware.
To do this, you need to be able to access the appropriate cross-toolchain tarball for
the architecture on which you are developing.
If you are using an SDK type image, the image ships with the complete toolchain native to
the architecture.
If you are not using an SDK type image, you need to separately download and
install the stand-alone Yocto Project cross-toolchain tarball.
</para>
<para>
Regardless of the type of image you are using, you need to download the pre-built kernel
that you will boot in the QEMU emulator and then download and extract the target root
filesystem for your target machines architecture.
You can get architecture-specific binaries and filesystem from
<ulink url='&YOCTO_MACHINES_DL_URL;'>machines</ulink>.
You can get stand-alone toolchains from
<ulink url='&YOCTO_TOOLCHAIN_DL_URL;'>toolchains</ulink>.
Once you have all your files, you set up the environment to emulate the hardware
by sourcing an environment setup script.
Finally, you start the QEMU emulator.
You can find details on all these steps in the
"<ulink url='&YOCTO_DOCS_QS_URL;#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
section of the Yocto Project Quick Start.
</para>
<para>
Using QEMU to emulate your hardware can result in speed issues
depending on the target and host architecture mix.
For example, using the <filename>qemux86</filename> image in the emulator
on an Intel-based 32-bit (x86) host machine is fast because the target and
host architectures match.
On the other hand, using the <filename>qemuarm</filename> image on the same Intel-based
host can be slower.
But, you still achieve faithful emulation of ARM-specific issues.
</para>
<para>
To speed things up, the QEMU images support using <filename>distcc</filename>
to call a cross-compiler outside the emulated system.
If you used <filename>runqemu</filename> to start QEMU, and the
<filename>distccd</filename> application is present on the host system, any
BitBake cross-compiling toolchain available from the build system is automatically
used from within QEMU simply by calling <filename>distcc</filename>.
You can accomplish this by defining the cross-compiler variable
(e.g. <filename>export CC="distcc"</filename>).
Alternatively, if you are using a suitable SDK image or the appropriate
stand-alone toolchain is present in <filename>/opt/poky</filename>,
the toolchain is also automatically used.
</para>
<note>
Several mechanisms exist that let you connect to the system running on the
QEMU emulator:
<itemizedlist>
<listitem><para>QEMU provides a framebuffer interface that makes standard
consoles available.</para></listitem>
<listitem><para>Generally, headless embedded devices have a serial port.
If so, you can configure the operating system of the running image
to use that port to run a console.
The connection uses standard IP networking.</para></listitem>
<listitem><para>The QEMU images have a Dropbear secure shell (ssh) server
that runs with the root password disabled.
This allows you to use standard <filename>ssh</filename> and
<filename>scp</filename> commands.</para></listitem>
<listitem><para>The QEMU images also contain an embedded Network File
System (NFS) server that exports the image's root filesystem.
This allows you to make the filesystem available to the
host.</para></listitem>
</itemizedlist>
</note>
</section>
</chapter>
<!--

View File

@@ -36,8 +36,13 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.3</revnumber>
<date>Sometime in 2012</date>
<revremark>Released with the Yocto Project 1.3 Release.</revremark>
</revision>
</revhistory>

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -9,10 +9,10 @@
<section id='concepts-org'>
<title>Introduction</title>
<para>
This chapter provides conceptual information about the Yocto Project kernel:
This chapter provides conceptual information about the kernel:
<itemizedlist>
<listitem><para>Kernel Goals</para></listitem>
<listitem><para>Yocto Project Kernel Development and Maintenance Overview</para></listitem>
<listitem><para>Kernel Development and Maintenance Overview</para></listitem>
<listitem><para>Kernel Architecture</para></listitem>
<listitem><para>Kernel Tools</para></listitem>
</itemizedlist>
@@ -25,8 +25,8 @@
The complexity of embedded kernel design has increased dramatically.
Whether it is managing multiple implementations of a particular feature or tuning and
optimizing board specific features, flexibility and maintainability are key concerns.
The Yocto Project Linux kernel is presented with the embedded
developer's needs in mind and has evolved to assist in these key concerns.
The Linux kernels available through the Yocto Project are presented with the embedded
developer's needs in mind and have evolved to assist in these key concerns.
For example, prior methods such as applying hundreds of patches to an extracted
tarball have been replaced with proven techniques that allow easy inspection,
bisection and analysis of changes.
@@ -34,7 +34,7 @@
collaboration with the thousands of upstream development projects.
</para>
<para>
With all these considerations in mind, the Yocto Project kernel and development team
With all these considerations in mind, the Yocto Project's kernel and development team
strives to attain these goals:
<itemizedlist>
<listitem><para>Allow the end user to leverage community best practices to seamlessly
@@ -63,12 +63,12 @@
<section id='kernel-big-picture'>
<title>Yocto Project Kernel Development and Maintenance Overview</title>
<para>
The Yocto Project kernel, like other kernels, is based off the Linux kernel release
from <ulink url='http://www.kernel.org'></ulink>.
Kernels available through the Yocto Project, like other kernels, are based off the Linux
kernel releases from <ulink url='http://www.kernel.org'></ulink>.
At the beginning of a major development cycle, the Yocto Project team
chooses its Yocto Project kernel
based on factors like release timing, the anticipated release timing of final
upstream <filename>kernel.org</filename> versions, and Yocto Project feature requirements.
chooses its kernel based on factors such as release timing, the anticipated release
timing of final upstream <filename>kernel.org</filename> versions, and Yocto Project
feature requirements.
Typically, the kernel chosen is in the
final stages of development by the community.
In other words, the kernel is in the release
@@ -80,21 +80,21 @@
<para>
This balance allows the team to deliver the most up-to-date kernel
as possible, while still ensuring that the team has a stable official release for
the baseline kernel version.
the baseline Linux kernel version.
</para>
<para>
The ultimate source for the Yocto Project kernel is a released kernel
The ultimate source for kernels available through the Yocto Project are released kernels
from <filename>kernel.org</filename>.
In addition to a foundational kernel from <filename>kernel.org</filename>, the released
Yocto Project kernel contains a mix of important new mainline
In addition to a foundational kernel from <filename>kernel.org</filename>, the
kernels available through the contain a mix of important new mainline
developments, non-mainline developments (when there is no alternative),
Board Support Package (BSP) developments,
and custom features.
These additions result in a commercially released Yocto Project kernel that caters
These additions result in a commercially released Yocto Project Linux kernel that caters
to specific embedded designer needs for targeted hardware.
</para>
<para>
Once a Yocto Project kernel is officially released, the Yocto Project team goes into
Once a kernel is officially released, the Yocto Project team goes into
their next development cycle, or upward revision (uprev) cycle, while still
continuing maintenance on the released kernel.
It is important to note that the most sustainable and stable way
@@ -127,8 +127,8 @@
These policies result in both a stable and a cutting
edge kernel that mixes forward ports of existing features and significant and critical
new functionality.
Forward porting functionality in the Yocto Project kernel can be thought of as a
"micro uprev."
Forward porting functionality in the kernels available through the Yocto Project kernel
can be thought of as a "micro uprev."
The many “micro uprevs” produce a kernel version with a mix of
important new mainline, non-mainline, BSP developments and feature integrations.
This kernel gives insight into new features and allows focused
@@ -142,7 +142,8 @@
<section id='kernel-architecture'>
<title>Kernel Architecture</title>
<para>
This section describes the architecture of the Yocto Project kernel and provides information
This section describes the architecture of the kernels available through the
Yocto Project and provides information
on the mechanisms used to achieve that architecture.
</para>
@@ -156,7 +157,7 @@
upstream <filename>kernel.org</filename>.
</para>
<para>
You can think of the Yocto Project kernel as consisting of a baseline kernel with
You can think of a Yocto Project kernel as consisting of a baseline Linux kernel with
added features logically structured on top of the baseline.
The features are tagged and organized by way of a branching strategy implemented by the
source code manager (SCM) Git.
@@ -305,9 +306,9 @@
<section id='kernel-configuration'>
<title>Kernel Configuration</title>
<para>
Kernel configuration, along with kernel features, defines how a Linux Yocto
kernel image is built.
Through configuration settings, you can customize a Linux Yocto kernel to be
Kernel configuration, along with kernel features, defines how a kernel
image is built for the Yocto Project.
Through configuration settings, you can customize a Yocto Project kernel to be
specific to particular hardware.
For example, you can specify sound support or networking support.
This section describes basic concepts behind Kernel configuration within the
@@ -316,9 +317,9 @@
</para>
<para>
Conceptually, Linux Yocto kernel configuration occurs similarly to that needed for any
Conceptually, configuration of a Yocto Project kernel occurs similarly to that needed for any
Linux kernel.
The Linux Yocto kernel build process uses a <filename>.config</filename> file, which
The build process for a Yocto Project kernel uses a <filename>.config</filename> file, which
is created through the Linux Kernel Coinfiguration (LKC) tool.
You can directly set various configurations in the
<filename>.config</filename> file by using the <filename>menuconfig</filename>
@@ -352,7 +353,7 @@
list of kernel options just as they would appear syntactically in the
<filename>.config</filename> file.
Configuration fragments are typically logical groupings and are assembled
by the Yocto Project build system to produce input used by the LKC
by the OpenEmbedded build system to produce input used by the LKC
that ultimately generates the <filename>.config</filename> file.</para>
<para>The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'>KERNEL_FEATURES</ulink></filename>
@@ -384,20 +385,6 @@
with the <filename>kernel.org</filename> history and development.</para></listitem>
</itemizedlist>
</para>
<!--<para>
WRITER NOTE: Put this in for post 1.1 if possible:
The tools that construct a kernel tree will be discussed later in this
document. The following tools form the foundation of the Yocto Project
kernel toolkit:
<itemizedlist>
<listitem><para>git : distributed revision control system created by Linus Torvalds</para></listitem>
<listitem><para>guilt: quilt on top of git</para></listitem>
<listitem><para>*cfg : kernel configuration management and classification</para></listitem>
<listitem><para>kgit*: Yocto Project kernel tree creation and management tools</para></listitem>
<listitem><para>scc : series &amp; configuration compiler</para></listitem>
</itemizedlist>
</para> -->
</section>
</chapter>
<!--

View File

@@ -9,26 +9,26 @@
<section id='book-intro'>
<title>Introduction</title>
<para>
The Yocto Project presents the kernel as a fully patched, history-clean Git
repository.
The Git tree represents the selected features, board support,
The Yocto Project presents kernels as a fully patched, history-clean Git
repositories.
Each repository represents selected features, board support,
and configurations extensively tested by the Yocto Project.
The Yocto Project kernel allows the end user to leverage community
Yocto Project kernels allow the end user to leverage community
best practices to seamlessly manage the development, build and debug cycles.
</para>
<para>
This manual describes the Yocto Project kernel by providing information
on its history, organization, benefits, and use.
This manual describes Yocto Project kernels by providing information
on history, organization, benefits, and use.
The manual consists of two sections:
<itemizedlist>
<listitem><para><emphasis>Concepts:</emphasis> Describes concepts behind the kernel.
You will understand how the kernel is organized and why it is organized in
the way it is. You will understand the benefits of the kernel's organization
<listitem><para><emphasis>Concepts:</emphasis> Describes concepts behind a kernel.
You will understand how a kernel is organized and why it is organized in
the way it is. You will understand the benefits of a kernel's organization
and the mechanisms used to work with the kernel and how to apply it in your
design process.</para></listitem>
<listitem><para><emphasis>Using the Kernel:</emphasis> Describes best practices
<listitem><para><emphasis>Using a Kernel:</emphasis> Describes best practices
and "how-to" information
that lets you put the kernel to practical use.
that lets you put a kernel to practical use.
Some examples are how to examine changes in a branch and how to
save kernel modifications.</para></listitem>
</itemizedlist>

View File

@@ -10,7 +10,7 @@
<section id='actions-org'>
<title>Introduction</title>
<para>
This chapter describes how to accomplish tasks involving the kernel's tree structure.
This chapter describes how to accomplish tasks involving a kernel's tree structure.
The information is designed to help the developer that wants to modify the Yocto
Project kernel and contribute changes upstream to the Yocto Project.
The information covers the following:
@@ -25,7 +25,7 @@
<section id='tree-construction'>
<title>Tree Construction</title>
<para>
This section describes construction of the Yocto Project kernel repositories
This section describes construction of the Yocto Project kernel source repositories
as accomplished by the Yocto Project team to create kernel repositories.
These kernel repositories are found at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink>
@@ -34,33 +34,35 @@
compiling and executing the set of feature descriptions for every BSP/feature
in the product.
Those feature descriptions list all necessary patches,
configuration, branching, tagging and feature divisions found in the kernel.
configuration, branching, tagging and feature divisions found in a kernel.
Thus, the Yocto Project kernel repository (or tree) is built.
</para>
<para>
The existence of this tree allows you to access and clone a particular
Linux Yocto kernel repository and use it to build images based on their configurations
Yocto Project kernel repository and use it to build images based on their configurations
and features.
</para>
<para>
You can find the files used to describe all the valid features and BSPs
in the Yocto Project kernel in any clone of the Linux Yocto kernel source repository Git tree.
in the Yocto Project kernel in any clone of the Yocto Project kernel source repository
Git tree.
For example, the following command clones the Yocto Project baseline kernel that
branched off of <filename>linux.org</filename> version 3.0:
branched off of <filename>linux.org</filename> version 3.4:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/linux-yocto-3.0
$ git clone git://git.yoctoproject.org/linux-yocto-3.4
</literallayout>
For another example of how to set up a local Git repository of the Linux Yocto
For another example of how to set up a local Git repository of the Yocto Project
kernel files, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted item in The Yocto Project Development Manual.
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted
item in The Yocto Project Development Manual.
</para>
<para>
Once you have cloned the kernel Git repository on your local machine, you can
switch to the <filename>meta</filename> branch within the repository.
Here is an example that assumes the local Git repository for the kernel is in
a top-level directory named <filename>linux-yocto-3.0</filename>:
a top-level directory named <filename>linux-yocto-3.4</filename>:
<literallayout class='monospaced'>
$ cd ~/linux-yocto-3.0
$ cd ~/linux-yocto-3.4
$ git checkout -b meta origin/meta
</literallayout>
Once you have checked out and switched to the <filename>meta</filename> branch,
@@ -85,7 +87,7 @@
</para>
<para>
The following steps describe what happens when the Yocto Project Team constructs
the Yocto Linux kernel source Git repository (or tree) found at
the Yocto Project kernel source Git repository (or tree) found at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'></ulink> given the
introduction of a new top-level kernel feature or BSP.
These are the actions that effectively create the tree
@@ -130,7 +132,7 @@
</para>
<para>
The kernel tree is now ready for developer consumption to be locally cloned,
configured, and built into a Linux Yocto kernel specific to some target hardware.
configured, and built into a Yocto Project kernel specific to some target hardware.
<note><para>The generated <filename>meta-*</filename> directories add to the kernel
as shipped with the Yocto Project release.
Any add-ons and configuration data are applied to the end of an existing branch.
@@ -149,7 +151,7 @@
<section id='build-strategy'>
<title>Build Strategy</title>
<para>
Once a local Git repository of the Linux Yocto kernel exists on a development system,
Once a local Git repository of the Yocto Project kernel exists on a development system,
you can consider the compilation phase of kernel development - building a kernel image.
Some prerequisites exist that are validated by the build process before compilation
starts:
@@ -166,7 +168,7 @@
</itemizedlist>
<para>
The Yocto Project makes sure these conditions exist before attempting compilation.
The OpenEmbedded build system makes sure these conditions exist before attempting compilation.
Other means, however, do exist, such as as bootstrapping a BSP, see
the "<link linkend='workflow-examples'>Workflow Examples</link>".
</para>
@@ -308,32 +310,35 @@
<title>Show a Particular Feature or Branch Change</title>
<para>
Significant features or branches are tagged in the Yocto Project tree to divide
changes.
Remember to first determine (or add) the tag of interest.
Developers use tags in the Yocto Project kernel tree to divide changes for significant
features or branches.
Once you know a particular tag, you can use Git commands
to show changes associated with the tag and find the branches that contain
the feature.
<note>
Because BSP branch, <filename>kernel.org</filename>, and feature tags are all
present, there could be many tags.
</note>
The <filename>git show &lt;tag&gt;</filename> command shows changes that are tagged by
a feature.
Here is an example that shows changes tagged by the <filename>systemtap</filename>
feature:
<literallayout class='monospaced'>
# show the changes tagged by a feature
&gt; git show &lt;tag&gt;
&gt; eg: git show yaffs2
# determine which branches contain a feature
&gt; git branch --contains &lt;tag&gt;
# show the changes in a kernel type
&gt; git whatchanged yocto/base..&lt;kernel type&gt;
&gt; eg: git whatchanged yocto/base..yocto/standard/base
$ git show systemtap
</literallayout>
You can use the <filename>git branch --contains &lt;tag&gt;</filename> command
to show the branches that contain a particular feature.
This command shows the branches that contain the <filename>systemtap</filename>
feature:
<literallayout class='monospaced'>
$ git branch --contains systemtap
</literallayout>
</para>
<para>
You can use many other comparisons to isolate BSP changes.
You can use many other comparisons to isolate BSP and kernel changes.
For example, you can compare against <filename>kernel.org</filename> tags
(e.g. v2.6.27.18, etc), or
you can compare against subsystems (e.g. <filename>git whatchanged mm</filename>).
such as the <filename>v3.4</filename> tag.
</para>
</section>
</section>
@@ -520,7 +525,7 @@
"permanent" and you should not modify them.
If the commits need to be changed, you can incrementally do so with new commits.
These practices follow standard Git workflow and the <filename>kernel.org</filename> best
practices, which Yocto Project recommends.
practices, which is recommended.
<note>
It is recommended to tag or branch before adding changes to a Yocto Project
BSP or before creating a new one.
@@ -598,9 +603,9 @@
<para>
For example, the following command pushes the changes from your local branch
<filename>yocto/standard/common-pc/base</filename> to the remote branch with the same name
in the master repository <filename>//git.mycompany.com/pub/git/kernel-3.0</filename>.
in the master repository <filename>//git.mycompany.com/pub/git/kernel-3.4</filename>.
<literallayout class='monospaced'>
&gt; git push ssh://git.mycompany.com/pub/git/kernel-3.0 \
&gt; git push ssh://git.mycompany.com/pub/git/kernel-3.4 \
yocto/standard/common-pc/base:yocto/standard/common-pc/base
</literallayout>
</para>
@@ -688,7 +693,7 @@
However, if the patches are manually applied to a secondary tree and then
that tree is checked into the SCM, you can lose change information such as
commit logs.
The Yocto Project does not recommend this process.
This process is not recommended.
</para>
<para>
@@ -705,14 +710,14 @@
<para>
This section describes kernel development in an SCM other than Git,
which is not the same as exporting changes to another SCM described earlier.
For this scenario, you use the Yocto Project build system to
For this scenario, you use the OpenEmbedded build system to
develop the kernel in a different SCM.
The following must be true for you to accomplish this:
<itemizedlist>
<listitem><para>The delivered Yocto Project kernel must be exported into the second
SCM.</para></listitem>
<listitem><para>Development must be exported from that secondary SCM into a
format that can be used by the Yocto Project build system.</para></listitem>
format that can be used by the OpenEmbedded build system.</para></listitem>
</itemizedlist>
</para>
@@ -788,9 +793,10 @@
<para>
The basic steps you need to follow are:
<orderedlist>
<listitem><para><emphasis>Make sure you have the Yocto Project source tree available:</emphasis>
You should either create a Yocto Project Git repository (recommended), or
you should get the Yocto Project release tarball and extract it.</para></listitem>
<listitem><para><emphasis>Make sure you have set up a local source directory:</emphasis>
You must create a local <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source
directory</ulink> by either creating a Git repository (recommended) or
extracting a Yocto Project release tarball.</para></listitem>
<listitem><para><emphasis>Choose an existing BSP available with the Yocto Project:</emphasis>
Try to map your board features as closely to the features of a BSP that is
already supported and exists in the Yocto Project.
@@ -800,12 +806,12 @@
on the Yocto Project's Download page at
<ulink url='&YOCTO_HOME_URL;/download'></ulink>.</para></listitem>
<listitem><para><emphasis>Be sure you have the Base BSP:</emphasis>
You need to either have the Yocto Project Git repository set up or download
the tarball of the base BSP.
You need to either have a local Git repository of the base BSP set up or
have downloaded and extracted the files from a release BSP tarball.
Either method gives you access to the BSP source files.</para></listitem>
<listitem><para><emphasis>Make a copy of the existing BSP, thus isolating your new
BSP work:</emphasis>
Copying the existing BSP structure gives you a new area in which to work.</para></listitem>
Copying the existing BSP file structure gives you a new area in which to work.</para></listitem>
<listitem><para><emphasis>Make configuration and recipe changes to your new BSP:</emphasis>
Configuration changes involve the files in the BSP's <filename>conf</filename>
directory.
@@ -821,7 +827,7 @@
changes to the <filename>local.conf</filename> and <filename>bblayers.conf</filename>
files.</para></listitem>
<listitem><para><emphasis>Build the image:</emphasis>
The Yocto Project uses the BitBake tool to create the image.
The OpenEmbedded build system uses BitBake to create the image.
You need to decide on the type of image you are going to build (e.g. minimal, base,
core, sato, and so forth) and then start the build using the <filename>bitbake</filename>
command.</para></listitem>

View File

@@ -51,8 +51,13 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.3</revnumber>
<date>Sometime in 2012</date>
<revremark>Released with the Yocto Project 1.3 Release.</revremark>
</revision>
</revhistory>

View File

@@ -10,210 +10,11 @@
<para>
The Yocto Project supports several methods of application development through which
you can create user-space software designed to run on an embedded device that uses
a Linux Yocto image developed with the Yocto Project.
a Yocto Project image, which was developed with the OpenEmbedded build system.
This flexibility allows you to choose the method that works best for you.
This chapter describes each development method.
</para>
<section id="platdev-appdev-external-sdk">
<title>External Development Using the Meta-Toolchain</title>
<para>
The Yocto Project provides toolchains that allow you to develop your application
outside of the Yocto Project build system for specific hardware.
These toolchains (called meta-toolchains) contain cross-development tools such as compilers,
linkers, and debuggers that build your application for your target device.
The Yocto Project also provides images that have toolchains for supported
architectures included within the image.
This allows you to compile, debug, or profile applications directly on the target device.
See the
"<link linkend='ref-images'>Reference: Images</link>" appendix for a listing of the image
types that Yocto Project supports.
</para>
<para>
Using the BitBake tool you can build a meta-toolchain or meta-toolchain-sdk target,
which generates a tarball.
Unpacking this tarball into the <filename class="directory">/opt/poky</filename> directory
on your host produces a setup script
(e.g. <filename>/opt/poky/environment-setup-i586-poky-linux</filename>) that
you can <filename>source</filename> to initialize your build environment.
Sourcing this script adds the compiler, QEMU scripts, QEMU binary, a special version of
<filename>pkgconfig</filename> and other
useful utilities to the <filename>PATH</filename> variable used by the Yocto Project
build environment.
Variables to assist <filename>pkgconfig</filename> and
Autotools are also defined so that, for example, <filename>configure</filename>
can find pre-generated test results for tests that need target hardware on which to run.
</para>
<para>
Using the toolchain with Autotool-enabled packages is straightforward - just pass the
appropriate <filename>host</filename> option to <filename>configure</filename>.
Following is an example:
<literallayout class='monospaced'>
$ ./configure --host=arm-poky-linux-gnueabi
</literallayout>
For projects that are not Autotool-enabled, it is usually just a case of ensuring
you point to and use the cross-toolchain.
For example, the following two lines of code in a <filename>Makefile</filename>
that builds your application
specify to use the cross-compiler <filename>arm-poky-linux-gnueabi-gcc</filename>
and linker <filename>arm-poky-linux-gnueabi-ld</filename>, which are part of the
meta-toolchain you would have previously established:
<literallayout class='monospaced'>
CC=arm-poky-linux-gnueabi-gcc;
LD=arm-poky-linux-gnueabi-ld;
</literallayout>
</para>
</section>
<section id="using-the-eclipse-and-anjuta-plug-ins">
<title>External Development Using the Eclipse Plug-in</title>
<para>
The current release of the Yocto Project supports the Eclipse IDE plug-in
to make developing software easier for the application developer.
The plug-in provides capability extensions to the graphical IDE to allow
for cross compilation, deployment and execution of the application within a QEMU
emulation session.
Support of the Eclipse plug-in also allows for cross debugging and
profiling.
Additionally, the Eclipse plug-in provides a suite of tools
that allows the developer to perform remote profiling, tracing, collection of
power consumption data, collection of latency data and collection of performance data.
</para>
<note>
The current release of the Yocto Project no longer supports the Anjuta plug-in.
However, the Poky Anjuta Plug-in is available to download directly from the Poky
Git repository located through the web interface at
<ulink url='&YOCTO_GIT_URL;'></ulink> under IDE Plugins.
The community is free to continue supporting it beyond the Yocto Project 0.9
Release.
</note>
<para>
To use the Eclipse plug-in you need the Eclipse Framework (Helios 3.6.1) along
with other plug-ins installed into the Eclipse IDE.
Once you have your environment setup you need to configure the Eclipse plug-in.
For information on how to install and configure the Eclipse plug-in, see the
"<ulink url='&YOCTO_DOCS_ADT_URL;#adt-eclipse'>Working Within Eclipse</ulink>"
chapter in the Yocto Project Application Development Toolkit (ADT) User's Guide.
</para>
</section>
<section id="platdev-appdev-qemu">
<title>External Development Using the QEMU Emulator</title>
<para>
Running Poky QEMU images is covered in the
"<ulink url='&YOCTO_DOCS_QS_URL;#test-run'>A Quick Test Run</ulink>"
section of the Yocto Project Quick Start.
</para>
<para>
The QEMU images shipped with the Yocto Project contain complete toolchains
native to their target architectures.
This support allows you to develop applications within QEMU similar to the way
you would using a normal host development system.
</para>
<para>
Speed can be an issue depending on the target and host architecture mix.
For example, using the <filename>qemux86</filename> image in the emulator
on an Intel-based 32-bit (x86) host machine is fast because the target and
host architectures match.
On the other hand, using the <filename>qemuarm</filename> image on the same Intel-based
host can be slower.
But, you still achieve faithful emulation of ARM-specific issues.
</para>
<para>
To speed things up, the QEMU images support using <filename>distcc</filename>
to call a cross-compiler outside the emulated system.
If you used <filename>runqemu</filename> to start QEMU, and
<filename>distccd</filename> is present on the host system, any BitBake cross-compiling
toolchain available from the build system is automatically
used from within QEMU simply by calling <filename>distcc</filename>.
You can accomplish this by defining the cross-compiler variable
(e.g. <filename>export CC="distcc"</filename>).
Alternatively, if a suitable SDK/toolchain is present in
<filename>/opt/poky</filename> the toolchain is also automatically used.
</para>
<para>
Several mechanisms exist that let you connect to the system running on the
QEMU emulator:
<itemizedlist>
<listitem><para>QEMU provides a framebuffer interface that makes standard
consoles available.</para></listitem>
<listitem><para>Generally, headless embedded devices have a serial port.
If so, you can configure the operating system of the running image
to use that port to run a console.
The connection uses standard IP networking.</para></listitem>
<listitem><para>The QEMU images have a Dropbear secure shell (ssh) server
that runs with the root password disabled.
This allows you to use standard <filename>ssh</filename> and
<filename>scp</filename> commands.</para></listitem>
<listitem><para>The QEMU images also contain an embedded Network Files
System (NFS) server that exports the image's root filesystem.
This allows you to make the filesystem available to the
host.</para></listitem>
</itemizedlist>
</para>
</section>
<section id="platdev-appdev-insitu">
<title>Development Using Yocto Project Directly</title>
<para>
Working directly with the Yocto Project is a fast and effective development technique.
The idea is that you can directly edit files in a working directory
(<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>)
or the source directory (<filename><link linkend='var-S'>S</link></filename>)
and then force specific tasks to rerun in order to test the changes.
An example session working on the matchbox-desktop package might
look like this:
</para>
<para>
<literallayout class='monospaced'>
$ bitbake matchbox-desktop
$ sh
$ cd tmp/work/armv5te-poky-linux-gnueabi/matchbox-desktop-2.0+svnr1708-r0/
$ cd matchbox-desktop-2
$ vi src/main.c
.
.
[Make your changes]
.
.
$ exit
$ bitbake matchbox-desktop -c compile -f
$ bitbake matchbox-desktop
</literallayout>
</para>
<para>
This example builds the <filename>matchbox-desktop</filename> package,
creates a new terminal, changes into the work directory for the package,
changes a file, exits out of the terminal, and then recompiles the
package.
Instead of using <filename>sh</filename>,
you can also use two different terminals.
However, the risk of using two terminals is that a command like
<filename>unpack</filename> could destroy your changes in the
work directory.
Consequently, you need to work carefully.
</para>
<para>
It is useful when making changes directly to the work directory files to do
so using the Quilt tool as detailed in the
"<ulink url='&YOCTO_DOCS_DEV_URL;#using-a-quilt-workflow'>Using a Quilt Workflow</ulink>" section in the Yocto Project Development Manual.
Using Quilt, you can copy patches into the recipe directory and use the patches directly
through use of the <filename><link linkend='var-SRC_URI'>SRC_URI</link></filename> variable.
</para>
<para>
For a review of the skills used in this section, see the
"<link linkend='usingpoky-components-bitbake'>BitBake</link>" and
"<link linkend='usingpoky-debugging-taskrunning'>Running Specific Tasks</link>" sections.
</para>
</section>
<section id="platdev-appdev-devshell">
<title>Development Within a Development Shell</title>
@@ -224,12 +25,12 @@
section in that when you invoke <filename>devshell</filename> source files are
extracted into your working directory and patches are applied.
Then, a new terminal is opened and you are placed in the working directory.
In the new terminal all the Yocto Project build-related environment variables are
In the new terminal, all the OpenEmbedded build-related environment variables are
still defined so you can use commands such as <filename>configure</filename> and
<filename>make</filename>.
The commands execute just as if the Yocto Project build system were executing them.
The commands execute just as if the OpenEmbedded build system were executing them.
Consequently, working this way can be helpful when debugging a build or preparing
software to be used with the Yocto Project build system.
software to be used with the OpenEmbedded build system.
</para>
<para>
@@ -244,7 +45,7 @@
</para>
<para>
This command opens a terminal with a shell prompt within the Poky
This command opens a terminal with a shell prompt within the Yocto Project
environment.
The following occurs:
<itemizedlist>
@@ -257,7 +58,7 @@
</itemizedlist>
Within this environment, you can run <filename>configure</filename>
or <filename>compile</filename> commands as if they were being run by
the Yocto Project build system itself.
the OpenEmbedded build system itself.
As noted earlier, the working directory also automatically changes to the
source directory (<filename><link linkend='var-S'>S</link></filename>).
</para>
@@ -270,8 +71,8 @@
The default shell used by <filename>devshell</filename> is xterm.
For examples of available options, see the "UI/Interaction Configuration"
section of the
<filename>meta/conf/bitbake.conf</filename> configuration file in the Yocto Project
files.
<filename>meta/conf/bitbake.conf</filename> configuration file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
</para>
<para>
@@ -298,7 +99,7 @@
<para>
If you're working on a recipe that pulls from an external Source Code Manager (SCM), it
is possible to have the Yocto Project build system notice new changes added to the
is possible to have the OpenEmbedded build system notice new changes added to the
SCM and then build the package that depends on them using the latest version.
This only works for SCMs from which it is possible to get a sensible revision number for changes.
Currently, you can do this with Apache Subversion (SVN), Git, and Bazaar (BZR) repositories.
@@ -306,7 +107,8 @@
<para>
To enable this behavior, simply add the following to the <filename>local.conf</filename>
configuration file in the build directory of the Yocto Project files:
configuration file found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>:
<literallayout class='monospaced'>
SRCREV_pn-&lt;PN&gt; = "${AUTOREV}"
</literallayout>
@@ -316,487 +118,6 @@
</para>
</section>
</section>
<section id="platdev-gdb-remotedebug">
<title>Debugging With the GNU Project Debugger (GDB) Remotely</title>
<para>
GDB allows you to examine running programs, which in turn help you to understand and fix problems.
It also allows you to perform post-mortem style analysis of program crashes.
GDB is available as a package within the Yocto Project and by default is
installed in sdk images.
See the "<link linkend='ref-images'>Reference: Images</link>" appendix for a description of these
images.
You can find information on GDB at <ulink url="http://sourceware.org/gdb/"/>.
</para>
<tip>
For best results, install <filename>-dbg</filename> packages for the applications
you are going to debug.
Doing so makes available extra debug symbols that give you more meaningful output.
</tip>
<para>
Sometimes, due to memory or disk space constraints, it is not possible
to use GDB directly on the remote target to debug applications.
These constraints arise because GDB needs to load the debugging information and the
binaries of the process being debugged.
Additionally, GDB needs to perform many computations to locate information such as function
names, variable names and values, stack traces and so forth - even before starting the
debugging process.
These extra computations place more load on the target system and can alter the
characteristics of the program being debugged.
</para>
<para>
To help get past the previously mentioned constraints, you can use Gdbserver.
Gdbserver runs on the remote target and does not load any debugging information
from the debugged process.
Instead, a GDB instance processes the debugging information that is run on a
remote computer - the host GDB.
The host GDB then sends control commands to Gdbserver to make it stop or start the debugged
program, as well as read or write memory regions of that debugged program.
All the debugging information loaded and processed as well
as all the heavy debugging is done by the host GDB.
Offloading these processes gives the Gdbserver running on the target a chance to remain
small and fast.
</para>
<para>
Because the host GDB is responsible for loading the debugging information and
for doing the necessary processing to make actual debugging happen, the
user has to make sure the host can access the unstripped binaries complete
with their debugging information and also be sure the target is compiled with no optimizations.
The host GDB must also have local access to all the libraries used by the
debugged program.
Because Gdbserver does not need any local debugging information, the binaries on
the remote target can remain stripped.
However, the binaries must also be compiled without optimization
so they match the host's binaries.
</para>
<para>
To remain consistent with GDB documentation and terminology, the binary being debugged
on the remote target machine is referred to as the "inferior" binary.
For documentation on GDB see the
<ulink url="http://sourceware.org/gdb/documentation/">GDB site</ulink>.
</para>
<section id="platdev-gdb-remotedebug-launch-gdbserver">
<title>Launching Gdbserver on the Target</title>
<para>
First, make sure Gdbserver is installed on the target.
If it is not, install the package <filename>gdbserver</filename>, which needs the
<filename>libthread-db1</filename> package.
</para>
<para>
As an example, to launch Gdbserver on the target and make it ready to "debug" a
program located at <filename>/path/to/inferior</filename>, connect
to the target and launch:
<literallayout class='monospaced'>
$ gdbserver localhost:2345 /path/to/inferior
</literallayout>
Gdbserver should now be listening on port 2345 for debugging
commands coming from a remote GDB process that is running on the host computer.
Communication between Gdbserver and the host GDB are done using TCP.
To use other communication protocols, please refer to the
<ulink url='http://www.gnu.org/software/gdb/'>Gdbserver documentation</ulink>.
</para>
</section>
<section id="platdev-gdb-remotedebug-launch-gdb">
<title>Launching GDB on the Host Computer</title>
<para>
Running GDB on the host computer takes a number of stages.
This section describes those stages.
</para>
<section id="platdev-gdb-remotedebug-launch-gdb-buildcross">
<title>Building the Cross-GDB Package</title>
<para>
A suitable GDB cross-binary is required that runs on your host computer but
also knows about the the ABI of the remote target.
You can get this binary from the the Yocto Project meta-toolchain.
Here is an example:
<literallayout class='monospaced'>
/usr/local/poky/eabi-glibc/arm/bin/arm-poky-linux-gnueabi-gdb
</literallayout>
where <filename>arm</filename> is the target architecture and
<filename>linux-gnueabi</filename> the target ABI.
</para>
<para>
Alternatively, the Yocto Project can build the <filename>gdb-cross</filename> binary.
Here is an example:
<literallayout class='monospaced'>
$ bitbake gdb-cross
</literallayout>
Once the binary is built, you can find it here:
<literallayout class='monospaced'>
tmp/sysroots/&lt;host-arch&gt;/usr/bin/&lt;target-abi&gt;-gdb
</literallayout>
</para>
</section>
<section id="platdev-gdb-remotedebug-launch-gdb-inferiorbins">
<title>Making the Inferior Binaries Available</title>
<para>
The inferior binary (complete with all debugging symbols) as well as any
libraries (and their debugging symbols) on which the inferior binary depends
need to be available.
There are a number of ways you can make these available.
</para>
<para>
Perhaps the easiest way is to have an 'sdk' image that corresponds to the plain
image installed on the device.
In the case of <filename>core-image-sato</filename>,
<filename>core-image-sdk</filename> would contain suitable symbols.
Because the sdk images already have the debugging symbols installed, it is just a
question of expanding the archive to some location and then informing GDB.
</para>
<para>
Alternatively, Yocto Project can build a custom directory of files for a specific
debugging purpose by reusing its <filename>tmp/rootfs</filename> directory.
This directory contains the contents of the last built image.
This process assumes two things:
<itemizedlist>
<listitem><para>The image running on the target was the last image to
be built by the Yocto Project.</para></listitem>
<listitem><para>The package (<filename>foo</filename> in the following
example) that contains the inferior binary to be debugged has been built
without optimization and has debugging information available.</para></listitem>
</itemizedlist>
</para>
<para>
The following steps show how to build the custom directory of files:
<orderedlist>
<listitem><para>Install the package (<filename>foo</filename> in this case) to
<filename>tmp/rootfs</filename>:
<literallayout class='monospaced'>
$ tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/core-image-sato-1.0-r0/temp/opkg.conf -o \
tmp/rootfs/ update
</literallayout></para></listitem>
<listitem><para>Install the debugging information:
<literallayout class='monospaced'>
$ tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/core-image-sato-1.0-r0/temp/opkg.conf \
-o tmp/rootfs install foo
$ tmp/sysroots/i686-linux/usr/bin/opkg-cl -f \
tmp/work/&lt;target-abi&gt;/core-image-sato-1.0-r0/temp/opkg.conf \
-o tmp/rootfs install foo-dbg
</literallayout></para></listitem>
</orderedlist>
</para>
</section>
<section id="platdev-gdb-remotedebug-launch-gdb-launchhost">
<title>Launch the Host GDB</title>
<para>
To launch the host GDB, you run the <filename>cross-gdb</filename> binary and provide
the inferior binary as part of the command line.
For example, the following command form continues with the example used in
the previous section.
This command form loads the <filename>foo</filename> binary
as well as the debugging information:
<literallayout class='monospaced'>
$ &lt;target-abi&gt;-gdb rootfs/usr/bin/foo
</literallayout>
Once the GDB prompt appears, you must instruct GDB to load all the libraries
of the inferior binary from <filename>tmp/rootfs</filename> as follows:
<literallayout class='monospaced'>
$ set solib-absolute-prefix /path/to/tmp/rootfs
</literallayout>
The pathname <filename>/path/to/tmp/rootfs</filename> must either be
the absolute path to <filename>tmp/rootfs</filename> or the location at which
binaries with debugging information reside.
</para>
<para>
At this point you can have GDB connect to the Gdbserver that is running
on the remote target by using the following command form:
<literallayout class='monospaced'>
$ target remote remote-target-ip-address:2345
</literallayout>
The <filename>remote-target-ip-address</filename> is the IP address of the
remote target where the Gdbserver is running.
Port 2345 is the port on which the GDBSERVER is running.
</para>
</section>
<section id="platdev-gdb-remotedebug-launch-gdb-using">
<title>Using the Debugger</title>
<para>
You can now proceed with debugging as normal - as if you were debugging
on the local machine.
For example, to instruct GDB to break in the "main" function and then
continue with execution of the inferior binary use the following commands
from within GDB:
<literallayout class='monospaced'>
(gdb) break main
(gdb) continue
</literallayout>
</para>
<para>
For more information about using GDB, see the project's online documentation at
<ulink url="http://sourceware.org/gdb/download/onlinedocs/"/>.
</para>
</section>
</section>
</section>
<section id="platdev-oprofile">
<title>Profiling with OProfile</title>
<para>
<ulink url="http://oprofile.sourceforge.net/">OProfile</ulink> is a
statistical profiler well suited for finding performance
bottlenecks in both userspace software and in the kernel.
This profiler provides answers to questions like "Which functions does my application spend
the most time in when doing X?"
Because the Yocto Project is well integrated with OProfile, it makes profiling applications on target
hardware straightforward.
</para>
<para>
To use OProfile, you need an image that has OProfile installed.
The easiest way to do this is with <filename>tools-profile</filename> in the
<filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename> variable.
You also need debugging symbols to be available on the system where the analysis
takes place.
You can gain access to the symbols by using <filename>dbg-pkgs</filename> in the
<filename>IMAGE_FEATURES</filename> variable or by
installing the appropriate <filename>-dbg</filename> packages.
</para>
<para>
For successful call graph analysis, the binaries must preserve the frame
pointer register and should also be compiled with the
<filename>-fno-omit-framepointer</filename> flag.
In the Yocto Project you can achieve this by setting the
<filename><link linkend='var-SELECTED_OPTIMIZATION'>SELECTED_OPTIMIZATION
</link></filename> variable to
<filename>-fexpensive-optimizations -fno-omit-framepointer -frename-registers -O2</filename>.
You can also achieve it by setting the
<filename><link linkend='var-DEBUG_BUILD'>DEBUG_BUILD</link></filename> variable to "1" in
the <filename>local.conf</filename> configuration file.
If you use the <filename>DEBUG_BUILD</filename> variable you will also add extra debug information
that can make the debug packages large.
</para>
<section id="platdev-oprofile-target">
<title>Profiling on the Target</title>
<para>
Using OProfile you can perform all the profiling work on the target device.
A simple OProfile session might look like the following:
</para>
<para>
<literallayout class='monospaced'>
# opcontrol --reset
# opcontrol --start --separate=lib --no-vmlinux -c 5
.
.
[do whatever is being profiled]
.
.
# opcontrol --stop
$ opreport -cl
</literallayout>
</para>
<para>
In this example, the <filename>reset</filename> command clears any previously profiled data.
The next command starts OProfile.
The options used when starting the profiler separate dynamic library data
within applications, disable kernel profiling, and enable callgraphing up to
five levels deep.
<note>
To profile the kernel, you would specify the
<filename>--vmlinux=/path/to/vmlinux</filename> option.
The <filename>vmlinux</filename> file is usually in the Yocto Project file's
<filename>/boot/</filename> directory and must match the running kernel.
</note>
</para>
<para>
After you perform your profiling tasks, the next command stops the profiler.
After that, you can view results with the <filename>opreport</filename> command with options
to see the separate library symbols and callgraph information.
</para>
<para>
Callgraphing logs information about time spent in functions and about a function's
calling function (parent) and called functions (children).
The higher the callgraphing depth, the more accurate the results.
However, higher depths also increase the logging overhead.
Consequently, you should take care when setting the callgraphing depth.
<note>
On ARM, binaries need to have the frame pointer enabled for callgraphing to work.
To accomplish this use the <filename>-fno-omit-framepointer</filename> option
with <filename>gcc</filename>.
</note>
</para>
<para>
For more information on using OProfile, see the OProfile
online documentation at
<ulink url="http://oprofile.sourceforge.net/docs/"/>.
</para>
</section>
<section id="platdev-oprofile-oprofileui">
<title>Using OProfileUI</title>
<para>
A graphical user interface for OProfile is also available.
You can download and build this interface from the Yocto Project at
<ulink url="&YOCTO_GIT_URL;/cgit.cgi/oprofileui/"></ulink>.
If the "tools-profile" image feature is selected, all necessary binaries
are installed onto the target device for OProfileUI interaction.
</para>
<para>
Even though the Yocto Project usually includes all needed patches on the target device, you
might find you need other OProfile patches for recent OProfileUI features.
If so, see the <ulink url='&YOCTO_GIT_URL;/cgit.cgi/oprofileui/tree/README'>
OProfileUI README</ulink> for the most recent information.
</para>
<section id="platdev-oprofile-oprofileui-online">
<title>Online Mode</title>
<para>
Using OProfile in online mode assumes a working network connection with the target
hardware.
With this connection, you just need to run "oprofile-server" on the device.
By default, OProfile listens on port 4224.
<note>
You can change the port using the <filename>--port</filename> command-line
option.
</note>
</para>
<para>
The client program is called <filename>oprofile-viewer</filename> and its UI is relatively
straightforward.
You access key functionality through the buttons on the toolbar, which
are duplicated in the menus.
Here are the buttons:
<itemizedlist>
<listitem><para><emphasis>Connect:</emphasis> Connects to the remote host.
You can also supply the IP address or hostname.</para></listitem>
<listitem><para><emphasis>Disconnect:</emphasis> Disconnects from the target.
</para></listitem>
<listitem><para><emphasis>Start:</emphasis> Starts profiling on the device.
</para></listitem>
<listitem><para><emphasis>Stop:</emphasis> Stops profiling on the device and
downloads the data to the local host.
Stopping the profiler generates the profile and displays it in the viewer.
</para></listitem>
<listitem><para><emphasis>Download:</emphasis> Downloads the data from the
target and generates the profile, which appears in the viewer.</para></listitem>
<listitem><para><emphasis>Reset:</emphasis> Resets the sample data on the device.
Resetting the data removes sample information collected from previous
sampling runs.
Be sure you reset the data if you do not want to include old sample information.
</para></listitem>
<listitem><para><emphasis>Save:</emphasis> Saves the data downloaded from the
target to another directory for later examination.</para></listitem>
<listitem><para><emphasis>Open:</emphasis> Loads previously saved data.
</para></listitem>
</itemizedlist>
</para>
<para>
The client downloads the complete 'profile archive' from
the target to the host for processing.
This archive is a directory that contains the sample data, the object files,
and the debug information for the object files.
The archive is then converted using the <filename>oparchconv</filename> script, which is
included in this distribution.
The script uses <filename>opimport</filename> to convert the archive from
the target to something that can be processed on the host.
</para>
<para>
Downloaded archives reside in the Yocto Project's build directory in
<filename>/tmp</filename> and are cleared up when they are no longer in use.
</para>
<para>
If you wish to perform kernel profiling, you need to be sure
a <filename>vmlinux</filename> file that matches the running kernel is available.
In the Yocto Project, that file is usually located in
<filename>/boot/vmlinux-KERNELVERSION</filename>, where
<filename>KERNEL-version</filename> is the version of the kernel.
The Yocto Project generates separate <filename>vmlinux</filename> packages for each kernel
it builds.
Thus, it should just be a question of making sure a matching package is
installed (e.g. <filename>opkg install kernel-vmlinux</filename>.
The files are automatically installed into development and profiling images
alongside OProfile.
A configuration option exists within the OProfileUI settings page that you can use to
enter the location of the <filename>vmlinux</filename> file.
</para>
<para>
Waiting for debug symbols to transfer from the device can be slow, and it
is not always necessary to actually have them on the device for OProfile use.
All that is needed is a copy of the filesystem with the debug symbols present
on the viewer system.
The "<link linkend='platdev-gdb-remotedebug-launch-gdb'>Launching GDB on the Host Computer</link>"
section covers how to create such a directory with
the Yocto Project and how to use the OProfileUI Settings dialog to specify the location.
If you specify the directory, it will be used when the file checksums
match those on the system you are profiling.
</para>
</section>
<section id="platdev-oprofile-oprofileui-offline">
<title>Offline Mode</title>
<para>
If network access to the target is unavailable, you can generate
an archive for processing in <filename>oprofile-viewer</filename> as follows:
<literallayout class='monospaced'>
# opcontrol --reset
# opcontrol --start --separate=lib --no-vmlinux -c 5
.
.
[do whatever is being profiled]
.
.
# opcontrol --stop
# oparchive -o my_archive
</literallayout>
</para>
<para>
In the above example, <filename>my_archive</filename> is the name of the
archive directory where you would like the profile archive to be kept.
After the directory is created, you can copy it to another host and load it
using <filename>oprofile-viewer</filename> open functionality.
If necessary, the archive is converted.
</para>
</section>
</section>
</section>
</chapter>
<!--
vim: expandtab tw=80 ts=4

View File

@@ -13,11 +13,17 @@
</question>
<answer>
<para>
Poky is the Yocto Project build system that was derived from <ulink
The term "Poky" is sometimes used to refer to the build system that the
Yocto Project uses.
The build system used in the Yocto project is referred to as the
OpenEmbedded build system because "Poky" was derived from <ulink
url='&OE_HOME_URL;'>OpenEmbedded</ulink>.
Poky is a stable, smaller subset focused on the mobile environment.
Development in the Yocto Project using Poky is closely tied to OpenEmbedded with
features being merged regularly between the two for mutual benefit.
For a fuller description of the term "Poky", see the
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>poky</ulink> term in the Yocto Project
Development Manual.
</para>
</answer>
</qandaentry>
@@ -64,7 +70,8 @@
<para>
There are three areas that help with stability;
<itemizedlist>
<listitem><para>The Yocto Project team keeps Poky small and focused.
<listitem><para>The Yocto Project team keeps
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> small and focused.
It contains around 650 packages as compared to over 5000 for full
OpenEmbedded.</para></listitem>
<listitem><para>The Yocto Project only supports hardware that the
@@ -100,16 +107,17 @@
<qandaentry>
<question>
<para>
Are there any products using Poky?
Are there any products using the OpenEmbedded build system (poky)?
</para>
</question>
<answer>
<para>
The <ulink url='http://vernier.com/labquest/'>Vernier LabQuest</ulink> is using
the Yocto Project build system Poky.
the OpenEmbedded build system.
See the <ulink url='http://www.vernier.com/products/interfaces/labq/'>Vernier LabQuest</ulink>
for more information.
There are a number of pre-production devices using Poky and the Yocto Project team
There are a number of pre-production devices using the OpenEmbedded build system
and the Yocto Project team
announces them as soon as they are released.
</para>
</answer>
@@ -118,13 +126,13 @@
<qandaentry>
<question>
<para>
What does the Yocto Project build system Poky produce as output?
What does the OpenEmbedded build system produce as output?
</para>
</question>
<answer>
<para>
Because the same set of recipes can be used to create output of various formats, the
output of a Yocto Project build depends on how it was started.
output of an OpenEmbedded build depends on how it was started.
Usually, the output is a flashable image ready for the target device.
</para>
</answer>
@@ -155,7 +163,7 @@
</question>
<answer>
<para>
The Yocto Project can build packages in various formats such as
The OpenEmbedded build system can build packages in various formats such as
<filename>ipk</filename> for <filename>ipkg</filename>/<filename>opkg</filename>,
Debian package (<filename>.deb</filename>), or RPM.
The packages can then be upgraded using the package tools on the device, much like
@@ -223,8 +231,8 @@
</para>
<para>
Once these packages are installed, the Yocto Project will be able to build standard
images.
Once these packages are installed, the OpenEmbedded build system will be able
to build standard images.
However, there might be a problem with the QEMU emulator segfaulting.
You can either disable the generation of binary locales by setting
<filename><link linkend='var-ENABLE_BINARY_LOCALE_GENERATION'>ENABLE_BINARY_LOCALE_GENERATION</link>
@@ -244,14 +252,14 @@
<answer>
<para>
Nothing is wrong.
The Yocto Project checks any configured source mirrors before downloading
The OpenEmbedded build system checks any configured source mirrors before downloading
from the upstream sources.
The Yocto Project does this searching for both source archives and
The build system does this searching for both source archives and
pre-checked out versions of SCM managed software.
These checks help in large installations because it can reduce load on the SCM servers
themselves.
The address above is one of the default mirrors configured into the
Yocto Project.
build system.
Consequently, if an upstream source disappears, the team
can place sources there so builds continue to work.
</para>
@@ -284,7 +292,7 @@
</question>
<answer>
<para>
Most source fetching by the Yocto Project is done by <filename>wget</filename>
Most source fetching by the OpenEmbedded build system is done by <filename>wget</filename>
and you therefore need to specify the proxy settings in a
<filename>.wgetrc</filename> file in your home directory.
Example settings in that file would be
@@ -350,7 +358,7 @@
the most likely explanation is that either the hardware you're running the
build on has some problem, or, if you are running the build under virtualisation,
the virtualisation probably has bugs.
The Yocto Project processes a massive amount of data causing lots of network, disk and
The OpenEmbedded build system processes a massive amount of data causing lots of network, disk and
CPU activity and is sensitive to even single bit failures in any of these areas.
True random failures have always been traced back to hardware or virtualisation issues.
</para>
@@ -449,7 +457,7 @@
<answer>
<para>
The Yocto Project team has tried to do this before but too many of the tools
the Yocto Project depends on such as <filename>autoconf</filename>
the OpenEmbedded build system depends on such as <filename>autoconf</filename>
break when they find spaces in pathnames.
Until that situation changes, the team will not support spaces in pathnames.
</para>
@@ -467,14 +475,16 @@
The toolchain configuration is very flexible and customizable.
It is primarily controlled with the
<filename><link linkend='var-TCMODE'>TCMODE</link></filename> variable.
This variable controls which file to include
(<filename>conf/distro/include/tcmode-*.inc</filename>).
This variable controls which <filename>tcmode-*.inc</filename> file to include
from the <filename>meta/conf/distro/include</filename> directory within the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink>.
</para>
<para>
The default value of <filename>TCMODE</filename> is "default".
The default value of <filename>TCMODE</filename> is "default"
(i.e. <filename>tcmode-default.inc</filename>.
However, other patterns are accepted.
In particular, "external-*" refers to external toolchains of which there are some basic examples
included with the core.
In particular, "external-*" refers to external toolchains of which there are some
basic examples included with the core.
A user can use their own custom toolchain definition in their own layer
(or as defined in the <filename>local.conf</filename> file) at the location
<filename>conf/distro/include/tcmode-*.inc</filename>.
@@ -493,14 +503,14 @@
<qandaentry>
<question>
<para id='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>
How does the Yocto Project build system obtain source code and will it work behind my
How does the OpenEmbedded build system obtain source code and will it work behind my
firewall or proxy server?
</para>
</question>
<answer>
<para>
The way the Yocto Project obtains source code is highly configurable.
You can setup the Yocto Project to get source code in most environments if
The way the build system obtains source code is highly configurable.
You can setup the build system to get source code in most environments if
HTTP transport is available.
</para>
<para>
@@ -509,7 +519,8 @@
and then MIRRORS in that order.
</para>
<para>
By default, Poky uses the Yocto Project source PREMIRRORS for SCM-based sources,
By default, the OpenEmbedded build system uses the Yocto Project source PREMIRRORS
for SCM-based sources,
upstreams for normal tarballs, and then falls back to a number of other mirrors
including the Yocto Project source mirror if those fail.
</para>
@@ -572,13 +583,40 @@
any network accesses to anything other than the PREMIRROR would fail.
</para>
<para>
Poky also honors the standard shell environment variables
The build system also honors the standard shell environment variables
<filename>http_proxy</filename>, <filename>ftp_proxy</filename>,
<filename>https_proxy</filename>, and <filename>all_proxy</filename>
to redirect requests through proxy servers.
</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>
Can I get rid of build output so I can start over?
</para>
</question>
<answer>
<para>
Yes - you can easily do this.
When you use BitBake to build an image, all the build output goes into the
directory created when you source the <filename>oe-init-build-env</filename>
setup file.
By default, this <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
is named <filename>build</filename> but can be named
anything you want.
</para>
<para>
Within the build directory is the <filename>tmp</filename> directory.
To remove all the build output yet preserve any source code or downloaded files
from previous builds, simply remove the <filename>tmp</filename> directory.
</para>
</answer>
</qandaentry>
</qandaset>
</appendix>
<!--

View File

@@ -12,8 +12,8 @@
This manual provides reference information for the current release of the Yocto Project.
The Yocto Project is an open-source collaboration project focused on embedded Linux
developers.
Amongst other things, the Yocto Project uses the Poky build tool to
construct complete Linux images.
Amongst other things, the Yocto Project uses the OpenEmbedded build system, which
is based on the Poky project, to construct complete Linux images.
You can find complete introductory and getting started information on the Yocto Project
by reading the
<ulink url='&YOCTO_DOCS_QS_URL;'>
@@ -51,9 +51,13 @@
the Yocto Project.</para></listitem>
<listitem><para><emphasis>
<link linkend='ref-structure'>Reference: Directory Structure</link>:</emphasis>
This appendix describes the directory structure of the Yocto Project files.
The Yocto Project files represent the file structure or Git repository created
as a result of setting up the Yocto Project on your host development system.
This appendix describes the directory structure of the
Yocto Project files, referred to as the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
The source directory represents the local file structure created
as a result from either cloning the upstream
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository or unpacking a
released Yocto Project tarball on your host development system.
</para></listitem>
<listitem><para><emphasis>
<link linkend='ref-bitbake'>Reference: BitBake</link>:</emphasis>
@@ -69,7 +73,7 @@
<listitem><para><emphasis>
<link linkend='ref-features'>Reference: Features</link>:</emphasis>
This appendix describes mechanisms for creating distribution, machine, and image
features during the build process using the Yocto Project.</para></listitem>
features during the build process using the OpenEmbedded build system.</para></listitem>
<listitem><para><emphasis>
<link linkend='ref-variables-glos'>Reference: Variables Glossary</link>:</emphasis>
This appendix presents most Yocto Project variables.
@@ -124,9 +128,11 @@
<section id='intro-getit-dev'>
<title>Development Checkouts</title>
<para>
Development using the Yocto Project requires a local copy of the Yocto Project files.
You can get these files by downloading a Yocto Project release tarball and unpacking it,
or by establishing a Git repository of the files.
Development using the Yocto Project requires a local copy of the Yocto Project files
referred to as the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
You can set source directory up by downloading a Yocto Project release tarball and unpacking it,
or by cloning a copy of the upstream
<ulink url='&YOCTO_DOCS_DEV_URL;#poky'>Poky</ulink> Git repository.
For information on both these methods, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Setup</ulink>"
section in The Yocto Project Development Manual.

View File

@@ -27,19 +27,6 @@
<email>richard.purdie@linuxfoundation.org</email>
</author>
<!-- <author>
<firstname>Tomas</firstname> <surname>Frydrych</surname>
<affiliation>
<orgname>Intel Corporation</orgname>
</affiliation>
</author>
<author>
<firstname>Marcin</firstname> <surname>Juszkiewicz</surname>
</author>
<author>
<firstname>Dodji</firstname> <surname>Seketeli</surname>
</author> -->
</authorgroup>
<revhistory>
@@ -65,8 +52,13 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.3</revnumber>
<date>Sometime in 2012</date>
<revremark>Released with the Yocto Project 1.3 Release.</revremark>
</revision>
</revhistory>

View File

@@ -7,7 +7,8 @@
<title>Reference: BitBake</title>
<para>
BitBake is a program written in Python that interprets the metadata that makes up the Yocto Project.
BitBake is a program written in Python that interprets the metadata used by the Yocto Project.
The OpenEmbedded build system uses BitBake.
At some point, developers wonder what actually happens when you enter:
<literallayout class='monospaced'>
$ bitbake core-image-sato
@@ -34,20 +35,22 @@
<para>
The first thing BitBake does is look for the <filename>bitbake.conf</filename> file.
The Yocto Project keeps this file in the Yocto Project file's <filename>meta/conf/</filename>
directory.
BitBake finds it by examining its <filename>BBPATH</filename> environment
This file resides in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
within the <filename>meta/conf/</filename> directory.
BitBake finds it by examining its
<link linkend='var-BBPATH'><filename>BBPATH</filename></link> environment
variable and looking for the <filename>meta/conf/</filename>
directory.
</para>
<para>
In the Yocto Project, <filename>bitbake.conf</filename> lists other configuration
The <filename>bitbake.conf</filename> file lists other configuration
files to include from a <filename>conf/</filename>
directory below the directories listed in <filename>BBPATH</filename>.
In general, the most important configuration file from a user's perspective
is <filename>local.conf</filename>, which contains a user's customized
settings for the Yocto Project build environment.
settings for the OpenEmbedded build environment.
Other notable configuration files are the distribution
configuration file (set by the
<filename><link linkend='var-DISTRO'>DISTRO</link></filename> variable)

View File

@@ -12,10 +12,11 @@
file.
Class files are identified by the extension <filename>.bbclass</filename> and are usually placed
in a <filename>classes/</filename> directory beneath the
<filename>meta*/</filename> directory found in the Yocto Project file's area
<filename>meta*/</filename> directory found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
Class files can also be pointed to by BUILDDIR (e.g. <filename>build/</filename>)in the same way as
<filename>.conf</filename> files in the <filename>conf</filename> directory.
Class files are searched for in <filename>BBPATH</filename>
Class files are searched for in <link linkend='var-BBPATH'><filename>BBPATH</filename></link>
using the same method by which <filename>.conf</filename> files are searched.
</para>
@@ -111,7 +112,7 @@
</para>
<para>
Currently, the Yocto Project supports only one binary per package.
Currently, the OpenEmbedded build system supports only one binary per package.
</para>
</section>
@@ -121,7 +122,7 @@
<para>
This class uses <filename>update-rc.d</filename> to safely install an
initialization script on behalf of the package.
The Yocto Project takes care of details such as making sure the script is stopped before
The OpenEmbedded build system takes care of details such as making sure the script is stopped before
a package is removed and started when the package is installed.
Three variables control this class:
<filename><link linkend='var-INITSCRIPT_PACKAGES'>INITSCRIPT_PACKAGES</link></filename>,
@@ -254,7 +255,7 @@
<para>
This class adds the <filename>devshell</filename> task.
Distribution policy dictates whether to include this class as the Yocto Project does.
Distribution policy dictates whether to include this class.
See the
"<link linkend='platdev-appdev-devshell'>Development Within a Development Shell</link>" section
for more information about using devshell.
@@ -277,8 +278,9 @@
<para>
You can control the list of resulting package formats by using the
<filename><link linkend='var-PACKAGE_CLASSES'>PACKAGE_CLASSES</link></filename>
variable defined in the <filename>local.conf</filename> configuration file
found in the Yocto Project file's <filename>conf</filename> directory.
variable defined in the <filename>local.conf</filename> configuration file,
which is located in the <filename>conf</filename> folder of the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
When defining the variable, you can specify one or more package types.
Since images are generated from packages, a packaging class is
needed to enable image generation.
@@ -380,7 +382,7 @@
The class also performs basic user configuration checks from
the <filename>local.conf</filename> configuration file to
prevent common mistakes that cause build failures.
Distribution policy usually whether to include this class as the Yocto Project does.
Distribution policy usually determines whether to include this class.
</para>
</section>
@@ -389,10 +391,10 @@
<para>
This class adds a step to the package generation process that sanity checks the
packages generated by the Yocto Project.
packages generated by the OpenEmbedded build system.
A range of checks are performed that check the build's output
for common problems that show up during runtime.
Distribution policy usually dictates whether to include this class as the Yocto Project does.
Distribution policy usually dictates whether to include this class.
</para>
<para>
@@ -514,7 +516,8 @@
you can use this class to specify those packages and associate the users and groups
with those packages.
The <filename>meta-skeleton/recipes-skeleton/useradd/useradd-example.bb</filename>
recipe in the Yocto Project Files provides a simple exmample that shows how to add three
recipe in the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
provides a simple exmample that shows how to add three
users and groups to two packages.
See the <filename>useradd-example.bb</filename> for more information on how to
use this class.
@@ -526,7 +529,7 @@
<para>
You can use this class to build software from source code that is external to the
Yocto Project build system.
OpenEmbedded build system.
In other words, your source code resides in an external tree outside of the Yocto Project.
Building software from an external source tree means that the normal fetch, unpack, and
patch process is not used.
@@ -541,7 +544,7 @@
<para>
This class expects the source code to support recipe builds that use the
<link linkend='var-B'><filename>B</filename></link> variable to point to the directory in
which the Yocto Project build system places the generated objects built from the recipes.
which the OpenEmbedded build system places the generated objects built from the recipes.
By default, the <filename>B</filename> directory is set to the following, which is separate from the
source directory (<filename>S</filename>):
<literallayout class='monospaced'>
@@ -570,7 +573,7 @@
When you do, the <link linkend='var-B'><filename>B</filename></link> variable must support the
recipe's ability to build variants in different working directories.
Most autotools-based recipes support separating these directories.
The Yocto Project defaults to using separate directories for <filename>gcc</filename>
The OpenEmbedded build system defaults to using separate directories for <filename>gcc</filename>
and some kernel recipes.
Alternatively, you can make sure that separate recipes exist that each
use the <filename>BBCLASSEXTEND</filename> variable to build each variant.
@@ -591,7 +594,7 @@
Thus far, this appendix has discussed only the most useful and important
classes.
However, other classes exist within the <filename>meta/classes</filename> directory
in the Yocto Project file's directory structure.
in the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
You can examine the <filename>.bbclass</filename> files directly for more
information.
</para>

View File

@@ -115,7 +115,7 @@
<title>Reference: Images</title>
<para>
The contents of images generated by the Yocto Project can be controlled by the
The contents of images generated by the OpenEmbedded build system can be controlled by the
<filename><link linkend='var-IMAGE_FEATURES'>IMAGE_FEATURES</link></filename>
and <filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename>
variables that you typically configure in your image recipes.

View File

@@ -6,7 +6,7 @@
<title>Reference: Images</title>
<para>
The Yocto Project build process supports several types of images to satisfy different needs.
The OpenEmbedded build process supports several types of images to satisfy different needs.
When you issue the <filename>bitbake</filename> command you provide a “top-level” recipe
that essentially begins the build for the type of image you want.
</para>
@@ -32,8 +32,8 @@
These recipes reside in the <filename>meta/recipes-core/images</filename>,
<filename>meta/recipes-extended/images</filename>,
<filename>meta/recipes-graphics/images</filename>, and
<filename>meta/recipes-sato/images</filename> directories of your local Yocto Project
file structure (Git repository or extracted release tarball).
<filename>meta/recipes-sato/images</filename> directories
within the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
Although the recipe names are somewhat explanatory, here is a list that describes them:
</para>
@@ -46,7 +46,10 @@
<listitem><para><emphasis><filename>core-image-minimal</filename>:</emphasis>
A small image just capable of allowing a device to boot.</para></listitem>
<listitem><para><emphasis><filename>core-image-minimal-dev</filename>:</emphasis>
A <filename>core-image-minimal</filename> image suitable for development work.
A <filename>core-image-minimal</filename> image suitable for development work
using the host.
The image includes headers and libraries you can use in a host development
environment.
</para></listitem>
<listitem><para><emphasis><filename>core-image-minimal-initramfs</filename>:</emphasis>
A <filename>core-image-minimal</filename> image that has the Minimal RAM-based
@@ -65,13 +68,15 @@
A <filename>core-image-basic</filename> image suitable for implementations
that conform to Linux Standard Base (LSB).</para></listitem>
<listitem><para><emphasis><filename>core-image-lsb-dev</filename>:</emphasis>
A <filename>core-image-lsb</filename> image that is suitable for development work.
A <filename>core-image-lsb</filename> image that is suitable for development work
using the host.
The image includes headers and libraries you can use in a host development
environment.
</para></listitem>
<listitem><para><emphasis><filename>core-image-lsb-sdk</filename>:</emphasis>
A <filename>core-image-lsb</filename> that includes everything in meta-toolchain
but also includes development headers and libraries to form a complete standalone SDK.
See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>"
section for more information.</para></listitem>
but also includes development headers and libraries to form a complete standalone SDK.
This image is suitable for development using the target.</para></listitem>
<listitem><para><emphasis><filename>core-image-clutter</filename>:</emphasis>
An image with support for the Open GL-based toolkit Clutter, which enables development of
rich and animated graphical user interfaces.</para></listitem>
@@ -81,16 +86,15 @@
The image supports X11 with a Sato theme and Pimlico applications and also
contains terminal, editor, and file manager.</para></listitem>
<listitem><para><emphasis><filename>core-image-sato-dev</filename>:</emphasis>
A <filename>core-image-sato</filename> image suitable for development
that also includes a native toolchain and libraries needed to build applications on
the device itself.
The image also includes testing and profiling tools as well as debug symbols.
A <filename>core-image-sato</filename> image suitable for development
using the host.
The image includes libraries needed to build applications on the device itself,
testing and profiling tools, and debug symbols.
This image was formerly <filename>core-image-sdk</filename>.</para></listitem>
<listitem><para><emphasis><filename>core-image-sato-sdk</filename>:</emphasis>
A <filename>core-image-sato</filename> image that includes everything in meta-toolchain.
The image also includes development headers and libraries to form a complete standalone SDK.
See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>"
section for more information.</para></listitem>
The image also includes development headers and libraries to form a complete standalone SDK
and is suitable for development using the target.</para></listitem>
<listitem><para><emphasis><filename>core-image-rt</filename>:</emphasis>
A <filename>core-image-minimal</filename> image plus a real-time test suite and
tools appropriate for real-time use.</para></listitem>
@@ -98,14 +102,19 @@
A <filename>core-image-rt</filename> image that includes everything in
<filename>meta-toolchain</filename>.
The image also includes development headers and libraries to form a complete
stand-alone SDK.
See the "<link linkend='platdev-appdev-external-sdk'>External Development Using the Meta-Toolchain</link>"
section for more information.</para></listitem>
stand-alone SDK and is suitable for development using the target.</para></listitem>
<listitem><para><emphasis><filename>core-image-gtk-directfb</filename>:</emphasis>
An image that uses <filename>gtk+</filename> over <filename>directfb</filename>
instead of X11.
In order to build, this image requires specific distro configuration that enables
<filename>gtk</filename> over <filename>directfb</filename>.</para></listitem>
<listitem><para><emphasis><filename>build-appliance-image</filename>:</emphasis>
An image you can boot and run using either the
<ulink url='http://www.vmware.com/products/player/overview.html'>VMware Player</ulink>
or <ulink url='http://www.vmware.com/products/workstation/overview.html'>VMware Workstation</ulink>.
For more information on this image, see the
<ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>Build Appliance</ulink> page on
the Yocto Project website.</para></listitem>
</itemizedlist>
<tip>

View File

@@ -9,12 +9,12 @@
<para>
The Yocto Project consists of several components.
Understanding them and knowing where they are located is key to using the Yocto Project well.
This appendix describes the Yocto Project file's directory structure and gives information about the various
files and directories.
This appendix describes the <ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
and gives information about the various files and directories.
</para>
<para>
For information on how to establish the Yocto Project files on your local development system, see the
For information on how to establish a local source directory on your development system, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#getting-setup'>Getting Set Up</ulink>"
section in the Yocto Project Development Manual.
</para>
@@ -30,17 +30,23 @@
The copy usually matches the current stable BitBake release from the BitBake project.
BitBake, a metadata interpreter, reads the Yocto Project metadata and runs the tasks
defined by that data.
Failures are usually from the metadata and not
from BitBake itself.
Failures are usually from the metadata and not from BitBake itself.
Consequently, most users do not need to worry about BitBake.
The <filename>bitbake/bin/</filename> directory is placed
into the shell's <filename>PATH</filename> environment variable by the
<link linkend="structure-core-script">oe-init-build-env</link> script.
</para>
<para>
When you run the <filename>bitbake</filename> command, the wrapper script in
<filename>scripts/</filename> is executed to run the main BitBake executable,
which resides in the <filename>bitbake/bin/</filename> directory.
Sourcing the <link linkend="structure-core-script">oe-init-build-env</link>
script places the <filename>scripts</filename> and <filename>bitbake/bin</filename>
directories (in that order) into the shell's <filename>PATH</filename> environment
variable.
</para>
<para>
For more information on BitBake, see the BitBake on-line manual at
<ulink url="http://bitbake.berlios.de/manual/"/>.
<ulink url="http://docs.openembedded.org/bitbake/html/"/>.
</para>
</section>
@@ -49,18 +55,20 @@
<para>
This directory contains user configuration files and the output
generated by the Yocto Project in its standard configuration where the source tree is
combined with the output.
The build directory is created initially when you <filename>source</filename>
generated by the OpenEmbedded build system in its standard configuration where
the source tree is combined with the output.
The <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
is created initially when you <filename>source</filename>
the Yocto Project environment setup script <filename>oe-init-build-env</filename>.
</para>
<para>
It is also possible to place output and configuration
files in a directory separate from the Yocto Project files
files in a directory separate from the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>
by providing a directory name when you <filename>source</filename>
the setup script.
For information on separating output from the Yocto Project files, see <link
For information on separating output from your local source directory files, see <link
linkend='structure-core-script'>oe-init-build-env</link>.
</para>
</section>
@@ -147,9 +155,11 @@
By default, running this script without a build directory argument creates the
<filename>build</filename> directory.
If you provide a build directory argument when you <filename>source</filename>
the script, you direct the Yocto Project to create a build directory of your choice.
the script, you direct OpenEmbedded build system to create a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink> of your choice.
For example, the following command creates a build directory named
<filename>mybuilds</filename> that is outside of the Yocto Project files:
<filename>mybuilds</filename> that is outside of the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>:
<literallayout class='monospaced'>
$ source oe-init-build-env ~/mybuilds
</literallayout>
@@ -181,12 +191,12 @@
<title><filename>build/conf/local.conf</filename></title>
<para>
This file contains all the local user configuration of the Yocto Project.
This file contains all the local user configuration for your build environment.
If there is no <filename>local.conf</filename> present, it is created from
<filename>local.conf.sample</filename>.
The <filename>local.conf</filename> file contains documentation on the various configuration options.
Any variable set here overrides any variable set elsewhere within the Yocto Project unless
that variable is hard-coded within the Yocto Project (e.g. by using '=' instead of '?=').
Any variable set here overrides any variable set elsewhere within the environment unless
that variable is hard-coded within a file (e.g. by using '=' instead of '?=').
Some variables are hard-coded for various reasons but these variables are
relatively rare.
</para>
@@ -244,10 +254,11 @@
<title><filename>build/tmp/</filename></title>
<para>
This directory receives all the Yocto Project output.
This directory receives all the OpenEmbedded build system's output.
BitBake creates this directory if it does not exist.
As a last resort, to clean the Yocto Project and start a build from scratch (other than downloads),
you can remove everything in this directory or get rid of the directory completely.
As a last resort, to clean up a build and start it from scratch (other than the downloads),
you can remove everything in the <filename>tmp</filename> directory or get rid of the
directory completely.
If you do, you should also completely remove the <filename>build/sstate-cache</filename>
directory as well.
</para>
@@ -275,7 +286,7 @@
<title><filename>build/tmp/deploy/</filename></title>
<para>
This directory contains any 'end result' output from the Yocto Project build process.
This directory contains any 'end result' output from the OpenEmbedded build process.
</para>
</section>
@@ -283,7 +294,8 @@
<title><filename>build/tmp/deploy/deb/</filename></title>
<para>
This directory receives any <filename>.deb</filename> packages produced by the Yocto Project.
This directory receives any <filename>.deb</filename> packages produced by
the build process.
The packages are sorted into feeds for different architecture types.
</para>
</section>
@@ -292,11 +304,23 @@
<title><filename>build/tmp/deploy/rpm/</filename></title>
<para>
This directory receives any <filename>.rpm</filename> packages produced by the Yocto Project.
This directory receives any <filename>.rpm</filename> packages produced by
the build process.
The packages are sorted into feeds for different architecture types.
</para>
</section>
<section id='structure-build-tmp-deploy-licenses'>
<title><filename>build/tmp/deploy/licenses/</filename></title>
<para>
This directory receives package licensing information.
For example, the directory contains sub-directories for <filename>bash</filename>,
<filename>busybox</filename>, and <filename>eglibc</filename> (among others) that in turn
contain appropriate <filename>COPYING</filename> license files with other licensing information.
</para>
</section>
<section id='structure-build-tmp-deploy-images'>
<title><filename>build/tmp/deploy/images/</filename></title>
@@ -319,7 +343,9 @@
<section id='structure-build-tmp-deploy-ipk'>
<title><filename>build/tmp/deploy/ipk/</filename></title>
<para>This directory receives <filename>.ipk</filename> packages produced by the Yocto Project.</para>
<para>
This directory receives <filename>.ipk</filename> packages produced by
the build process.</para>
</section>
<section id='structure-build-tmp-sysroots'>
@@ -354,6 +380,7 @@
package's <filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>.
Examples of logs are the output from the <filename>check_pkg</filename> or
<filename>distro_check</filename> tasks.
Running a build does not necessarily mean this directory is created.
</para>
</section>
@@ -380,7 +407,8 @@
<para>
It is worth considering the structure of a typical work directory.
As an example, consider the linux-yocto kernel 3.0 on the machine <filename>qemux86</filename>
As an example, consider the <filename>linux-yocto-kernel-3.0</filename>
on the machine <filename>qemux86</filename>
built within the Yocto Project.
For this package, a work directory of
<filename>tmp/work/qemux86-poky-linux/linux-yocto-3.0+git1+&lt;.....&gt;</filename>,
@@ -455,7 +483,7 @@
<para>
This directory contains all the machine configuration files.
If you set <filename>MACHINE="qemux86"</filename>,
Yocto Project looks for a <filename>qemux86.conf</filename> file in this
the OpenEmbedded build system looks for a <filename>qemux86.conf</filename> file in this
directory.
The <filename>include</filename> directory contains various data common to multiple machines.
If you want to add support for a new machine to the Yocto Project, look in this directory.
@@ -467,12 +495,11 @@
<para>
Any distribution-specific configuration is controlled from this directory.
The Yocto Project only contains the Yocto Project distribution so
<filename>defaultsetup.conf</filename> is the main file here.
For the Yocto Project, the <filename>defaultsetup.conf</filename> is the main file here.
This directory includes the versions and the
<filename>SRCDATE</filename> definitions for applications that are configured here.
An example of an alternative configuration is <filename>poky-bleeding.conf</filename>
although this file mainly inherits its configuration from the Yocto Project itself.
An example of an alternative configuration might be <filename>poky-bleeding.conf</filename>.
Although this file mainly inherits its configuration from Poky.
</para>
</section>
@@ -563,6 +590,15 @@
</para>
</section>
<section id='structure-meta-recipes-rt'>
<title><filename>meta/recipes-rt/</filename></title>
<para>
This directory contains package and image recipes for using and testing
the <filename>PREEMPT_RT</filename> kernel.
</para>
</section>
<section id='structure-meta-recipes-sato'>
<title><filename>meta/recipes-sato/</filename></title>
@@ -593,7 +629,7 @@
</section>
<section id='structure-meta-recipes-txt'>
<title><filename>meta/recipes.txt/</filename></title>
<title><filename>meta/recipes.txt</filename></title>
<para>
This file is a description of the contents of <filename>recipes-*</filename>.

View File

@@ -8,7 +8,7 @@
<title>Reference: Variables Glossary</title>
<para>
This section lists common variables used in the Yocto Project and gives an overview
This section lists common variables used in the OpenEmbedded build system and gives an overview
of their function and contents.
</para>
@@ -89,7 +89,7 @@
<glossentry id='var-B'><glossterm>B</glossterm>
<glossdef>
<para>
The directory in which the Yocto Project build system places
The directory in which the OpenEmbedded build system places
generated objects during a recipe's build process.
By default, this directory is the same as the <link linkend='var-S'><filename>S</filename></link>
directory:
@@ -99,7 +99,7 @@
You can separate the source directory (<filename>S</filename>) and the directory pointed to
by the <filename>B</filename> variable.
Most autotools-based recipes support separating these directories.
The Yocto Project defaults to using separate directories for <filename>gcc</filename>
The build system defaults to using separate directories for <filename>gcc</filename>
and some kernel recipes.
</para>
</glossdef>
@@ -160,7 +160,7 @@
</literallayout></para>
<para>Use the <filename>BBMASK</filename> variable from within the
<filename>conf/local.conf</filename> file found
in the Yocto Project build directory.</para>
in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.</para>
</glossdef>
</glossentry>
@@ -243,9 +243,9 @@
<glossentry id='var-BBLAYERS'><glossterm>BBLAYERS</glossterm>
<glossdef>
<para>Lists the layers to enable during the Yocto Project build.
<para>Lists the layers to enable during the build.
This variable is defined in the <filename>bblayers.conf</filename> configuration
file in the Yocto Project build directory.
file in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
Here is an example:
<literallayout class='monospaced'>
BBLAYERS = " \
@@ -335,8 +335,8 @@
<filename>/etc</filename> or <filename>${bindir}</filename> rather
than <filename>/usr/bin</filename>.
You can find a list of these variables at the top of the
<filename>/meta/conf/bitbake.conf</filename> file in the Yocto Project
files directory.
<filename>/meta/conf/bitbake.conf</filename> file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
</note>
</glossdef>
</glossentry>
@@ -358,7 +358,7 @@
Specifies the list of packages to be added to the image.
This variable should only be set in the <filename>local.conf</filename>
configuration file found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>Yocto Project Build Directory</ulink>.
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
</para>
<para>
@@ -479,7 +479,7 @@
This directory is self-maintaining and you should not have
to touch it.
By default, the directory is <filename>downloads</filename> in the
Yocto Project build directory.
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
<literallayout class='monospaced'>
#DL_DIR ?= "${TOPDIR}/downloads"
</literallayout>
@@ -635,8 +635,8 @@
<filename>/etc</filename> or <filename>${bindir}</filename> rather
than <filename>/usr/bin</filename>.
You can find a list of these variables at the top of the
<filename>/meta/conf/bitbake.conf</filename> file in the Yocto Project
files directory.
<filename>/meta/conf/bitbake.conf</filename> file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
</note>
<para>
@@ -655,7 +655,7 @@
<glossentry id='var-FILESEXTRAPATHS'><glossterm>FILESEXTRAPATHS</glossterm>
<glossdef>
<para>
Extends the search path the Yocto Project build system uses when
Extends the search path the OpenEmbedded build system uses when
looking for files and patches as it processes recipes.
The directories BitBake uses when it processes recipes is defined by the
<link linkend='var-FILESPATH'><filename>FILESPATH</filename></link> variable.
@@ -691,7 +691,7 @@
<glossentry id='var-FILESPATH'><glossterm>FILESPATH</glossterm>
<glossdef>
<para>
The default set of directories the Yocto Project build system uses
The default set of directories the OpenEmbedded build system uses
when searching for patches and files.
During the build process, BitBake searches each directory in
<filename>FILESPATH</filename> in the specified order when looking for
@@ -702,7 +702,7 @@
The default value for the <filename>FILESPATH</filename> variable is defined
in the <filename>base.bbclass</filename> class found in
<filename>meta/classes</filename> in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project Files</ulink>:
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>:
<literallayout class='monospaced'>
FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
"${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", \
@@ -727,16 +727,17 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
possible.
</para>
<para>
By default, the Yocto Project uses the <filename>fs-perms.txt</filename>, which
is located in the <filename>meta/files</filename> directory of the Yocto Project
files directory.
By default, the OpenEmbedded build system uses the <filename>fs-perms.txt</filename>, which
is located in the <filename>meta/files</filename> folder in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>.
If you create your own file permissions setting table, you should place it in your
layer or the distros layer.
</para>
<para>
You define the <filename>FILESYSTEM_PERMS_TABLES</filename> variable in the
<filename>conf/local.conf</filename> file, which is found in the Yocto Project's
build directory, to point to your custom <filename>fs-perms.txt</filename>.
<filename>conf/local.conf</filename> file, which is found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>, to
point to your custom <filename>fs-perms.txt</filename>.
You can specify more than a single file permissions setting table.
The paths you specify to these files must be defined within the
<filename>BBPATH</filename> variable.
@@ -785,7 +786,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
Note that you can add extra features to the image by using the
<filename><link linkend='var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</link></filename> variable.
See the "<link linkend="ref-features-image">Reference: Images</link>" section for the
list of features present in images built by the Yocto Project.</para>
list of features present in images built by the OpenEmbedded build system.</para>
</glossdef>
</glossentry>
@@ -908,7 +909,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossdef>
<para>
Defines the size in Kbytes for the generated image.
The Yocto Project build system determines the final size for the generated
The OpenEmbedded build system determines the final size for the generated
image using an algorithm that takes into account the initial disk space used
for the generated image, a requested size for the image, and requested
additional free disk space to be added to the image.
@@ -948,19 +949,20 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossdef>
<para>Defines the Package revision.
You manually combine values for <filename>INC_PR</filename> into the
<filename>PR</filename> field of the parent recipe.
<link linkend='var-PR'><filename>PR</filename></link> field of the parent recipe.
When you change this variable, you change the <filename>PR</filename>
value for every person that includes the file.</para>
<para>
The following example shows how to use the <filename>INC_PR</filename> variable
given a common <filename>.inc</filename> file that defines the variable.
Once defined, you can use the variable to set the <filename>PR</filename> value:
Once defined, you can use the variable to set the
<filename>PR</filename> value:
</para>
<literallayout class='monospaced'>
recipes-graphics/xorg-font/font-util_1.1.1.bb:PR - "$(INC_PR).1"
recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR - "r1"
recipes-graphics/xorg-font/encondings_1.0.3.bb:PR - "$(INC_PR).1"
recipes-graphics/xorg-font/fiont-alias_1.0.2.bb:PR - "$(INC_PR).0"
recipes-graphics/xorg-font/encodings_1.0.4.bb:PR = "${INC_PR}.1"
recipes-graphics/xorg-font/font-util_1.3.0.bb:PR = "${INC_PR}.0"
recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
recipes-graphics/xorg-font/xorg-font-common.inc:INC_PR = "r2"
</literallayout>
</glossdef>
</glossentry>
@@ -1035,8 +1037,8 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-KERNEL_FEATURES'><glossterm>KERNEL_FEATURES</glossterm>
<glossdef>
<para>Includes additional metadata from the Linux Yocto kernel Git repository.
In the Yocto Project build system, the default Board Support Packages (BSPs)
<para>Includes additional metadata from the Yocto Project kernel Git repository.
In the OpenEmbedded build system, the default Board Support Packages (BSPs)
metadata is provided through
the <filename>KMACHINE</filename> and <filename>KBRANCH</filename> variables.
You can use the <filename>KERNEL_FEATURES</filename> variable to further
@@ -1049,7 +1051,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
In this way, you can provide validated, but optional, sets of kernel
configurations and features.</para>
<para>For example, the following adds <filename>netfilter</filename> to all
the Linux Yocto kernels and adds sound support to the <filename>qemux86</filename>
the Yocto Project kernels and adds sound support to the <filename>qemux86</filename>
machine:
<literallayout class='monospaced'>
# Add netfilter to all linux-yocto kernels
@@ -1137,7 +1139,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-LICENSE_DIR'><glossterm>LICENSE_DIR</glossterm>
<glossdef>
<para>Path to additional licenses used during the build.
By default, the Yocto Project uses <filename>COMMON_LICENSE_DIR</filename>
By default, the OpenEmbedded build system uses <filename>COMMON_LICENSE_DIR</filename>
to define the directory that holds common license text used during the build.
The <filename>LICENSE_DIR</filename> variable allows you to extend that
location to other areas that have additional licenses:
@@ -1341,7 +1343,8 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-PACKAGE_CLASSES'><glossterm>PACKAGE_CLASSES</glossterm>
<glossdef>
<para>This variable, which is set in the <filename>local.conf</filename> configuration
file found in the Yocto Project file's <filename>conf</filename> directory,
file found in the <filename>conf</filename> folder of the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>,
specifies the package manager to use when packaging data.
You can provide one or more arguments for the variable with the first
argument being the package manager used to create images:
@@ -1534,7 +1537,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename> variable.
</para>
<para>
The Yocto Project build process automatically installs the list of packages
The OpenEmbedded build process automatically installs the list of packages
as part of the built package.
However, you can remove them later if you want.
If, during the build, a package from the list cannot be found, the build
@@ -1572,8 +1575,8 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-S'><glossterm>S</glossterm>
<glossdef>
<para>
The location in the <ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>
Yocto Project Build Directory</ulink> where unpacked package source code resides.
The location in the <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
where unpacked package source code resides.
This location is within the working directory
(<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>), which
is not static.
@@ -1585,9 +1588,10 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
${WORKDIR}/${PN}-${PV}
</literallayout>
As an example, assume a
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>
Yocto Project Files</ulink> top-level directory named <filename>poky</filename>
and a default Yocto Project Build Directory of <filename>poky/build</filename>.
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> top-level
folder named <filename>poky</filename>
and a default <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
at <filename>poky/build</filename>.
In this case, the working directory the build system uses to build
the <filename>db</filename> package is the following:
<literallayout class='monospaced'>
@@ -1661,10 +1665,10 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossdef>
<para></para>
<para>
By default, the Yocto Project automatically detects whether
By default, the OpenEmbedded build system automatically detects whether
<filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>
contains files that are machine-specific.
If so, the Yocto Project automatically changes
If so, the build system automatically changes
<filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>.
Setting this variable to "0" disables this behavior.
</para>
@@ -1728,7 +1732,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-TARGET_ARCH'><glossterm>TARGET_ARCH</glossterm>
<glossdef>
<para>The architecture of the device being built.
While a number of values are possible, the Yocto Project primarily supports
While a number of values are possible, the OpenEmbedded build system primarily supports
<filename>arm</filename> and <filename>i586</filename>.</para>
</glossdef>
</glossentry>
@@ -1790,15 +1794,18 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
</para>
<para>
The <filename>TCMODE</filename> variable selects the external toolchain
built from the Yocto Project or a few supported combinations of
built using the OpenEmbedded build system or a few supported combinations of
the upstream GCC or CodeSourcery Labs toolchain.
The variable determines which of the files in
<filename>meta/conf/distro/include/tcmode-*</filename> is used.
The variable determines which of the <filename>tcmode-*</filename> files in
the <filename>meta/conf/distro/include</filename> directory, which is found in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>,
is used.
</para>
<para>
By default, <filename>TCMODE</filename> is set to "default", which
chooses <filename>tcmode-default.inc</filename>.
The variable is similar to <filename>TCLIBC</filename>, which controls
chooses the <filename>tcmode-default.inc</filename> file.
The variable is similar to
<link linkend='var-TCLIBC'><filename>TCLIBC</filename></link>, which controls
the variant of the GNU standard C library (<filename>libc</filename>)
used during the build process: <filename>eglibc</filename> or <filename>uclibc</filename>.
</para>
@@ -1808,20 +1815,18 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-TMPDIR'><glossterm>TMPDIR</glossterm>
<glossdef>
<para>
This variable is the temporary directory the Yocto Project build system
This variable is the temporary directory the OpenEmbedded build system
uses when it does its work building images.
By default, the <filename>TMPDIR</filename> variable is named
<filename>tmp</filename> within the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>
Yocto Project Build Directory</ulink>.
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
</para>
<para>
If you want to establish this directory in a location other than the
default, you can uncomment the following statement in the
<filename>conf/local.conf</filename> file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>
Yocto Project Files</ulink>:
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink>:
<literallayout class='monospaced'>
#TMPDIR = "${TOPDIR}/tmp"
</literallayout>
@@ -1833,10 +1838,9 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossdef>
<para>
This variable is the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>
Yocto Project Build Directory</ulink>.
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>.
BitBake automatically sets this variable.
The Yocto Project build system uses the build directory when building images.
The OpenEmbedded build system uses the build directory when building images.
</para>
</glossdef>
</glossentry>
@@ -1854,7 +1858,7 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<glossentry id='var-WORKDIR'><glossterm>WORKDIR</glossterm>
<glossdef>
<para>
The pathname of the working directory in which the Yocto Project build system
The pathname of the working directory in which the OpenEmbedded build system
builds packages.
This directory is located within the
<link linkend='var-TMPDIR'><filename>TMPDIR</filename></link> directory structure and changes
@@ -1881,11 +1885,10 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
${TMPDIR}/work/${PACKAGE_ARCH}-poky-${TARGET_OS}/${PN}-${PV}-${PR}
</literallayout>
As an example, assume a
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>
Yocto Project Files</ulink> top-level directory named <filename>poky</filename>
and a default
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>
Yocto Project Build Directory</ulink> of <filename>poky/build</filename>.
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>source directory</ulink> top-level
folder name <filename>poky</filename> and a default
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>build directory</ulink>
at <filename>poky/build</filename>.
In this case, the working directory the build system uses to build
the <filename>v86d</filename> package is the following:
<literallayout class='monospaced'>
@@ -1899,9 +1902,9 @@ FILESPATH = "${@base_set_filespath([ "${FILE_DIRNAME}/${PF}", \
<literallayout class='monospaced'>
${TMPDIR}/work/${MACHINE}-poky-${TARGET_OS}/${PN}-${PV}-${PR}
</literallayout>
As an example, again assume a Yocto Project Files top-level directory
named <filename>poky</filename> and a default Yocto Project build directory
of <filename>poky/build</filename>.
As an example, again assume a source directory top-level folder
named <filename>poky</filename> and a default build directory
at <filename>poky/build</filename>.
In this case, the working directory the build system uses to build
the <filename>acl</filename> package, which is dependent on a
MIPS-based device, is the following:

View File

@@ -29,18 +29,24 @@
<title>Mailing lists</title>
<para>
To subscribe to the Yocto Project mailing lists, click on the following URLs and follow the instructions:
There are a number of mailing lists maintained by the Yocto Project as well as
related OpenEmbedded mailing lists for discussion, patch submission and announcements.
To subscribe to one of the following mailing lists, click on the appropriate URL
in the following list and follow the instructions:
<itemizedlist>
<listitem><para><emphasis>
<ulink url='&YOCTO_LISTS_URL;/listinfo/yocto-announce'></ulink></emphasis>:
Use this list to receive offical Yocto Project announcements for developments and
to learn about Yocto Project milestones.</para></listitem>
<listitem><para><emphasis><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink></emphasis>:
Use this list to monitor Yocto Project development discussions, ask questions, and
get help.</para></listitem>
<listitem><para><emphasis><ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink></emphasis>:
Use this list to monitor discussions about the Yocto Project build system Poky,
ask questions, and get help.</para></listitem>
<listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto'></ulink> -
General Yocto Project discussion mailing list. </para></listitem>
<listitem><para><ulink url='&OE_LISTS_URL;/listinfo/openembedded-core'></ulink> -
Discussion mailing list about OpenEmbedded-Core (the core metadata).</para></listitem>
<listitem><para><ulink url='&OE_LISTS_URL;/listinfo/openembedded-devel'></ulink> -
Discussion mailing list about OpenEmbedded.</para></listitem>
<listitem><para><ulink url='&OE_LISTS_URL;/listinfo/bitbake-devel'></ulink> -
Discussion mailing list about the BitBake build tool.</para></listitem>
<listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/poky'></ulink> -
Discussion mailing list about Poky.</para></listitem>
<listitem><para><ulink url='&YOCTO_LISTS_URL;/listinfo/yocto-announce'></ulink> -
Mailing list to receive official Yocto Project release and milestone
announcements.</para></listitem>
</itemizedlist>
</para>
</section>
@@ -65,15 +71,16 @@
<itemizedlist>
<listitem><para><emphasis><ulink url='&YOCTO_HOME_URL;'>The Yocto Project website</ulink>:
</emphasis> The home site for the Yocto Project.</para></listitem>
<listitem><para><emphasis><ulink url='&OH_HOME_URL;'>OpenedHand</ulink>:</emphasis>
<!-- <listitem><para><emphasis><ulink url='&OH_HOME_URL;'>OpenedHand</ulink>:</emphasis>
The company where the Yocto Project build system Poky was first developed.
OpenedHand has since been acquired by Intel Corporation.</para></listitem>
OpenedHand has since been acquired by Intel Corporation.</para></listitem> -->
<listitem><para><emphasis><ulink url='http://www.intel.com/'>Intel Corporation</ulink>:</emphasis>
The company who acquired OpenedHand in 2008 and continues development on the
The company who acquired OpenedHand in 2008 and began development on the
Yocto Project.</para></listitem>
<listitem><para><emphasis><ulink url='&OE_HOME_URL;'>OpenEmbedded</ulink>:</emphasis>
The upstream, generic, embedded distribution the Yocto Project build system (Poky) derives
from and to which it contributes.</para></listitem>
The upstream, generic, embedded distribution used as the basis for the build system in the
Yocto Project.
Poky derives from and contributes back to the OpenEmbedded project.</para></listitem>
<listitem><para><emphasis><ulink url='http://developer.berlios.de/projects/bitbake/'>
BitBake</ulink>:</emphasis> The tool used to process Yocto Project metadata.</para></listitem>
<listitem><para><emphasis><ulink url='http://bitbake.berlios.de/manual/'>

Some files were not shown because too many files have changed in this diff Show More