Compare commits

...

604 Commits

Author SHA1 Message Date
Richard Purdie
7d22ef28e6 bitbake: Revert "fetch2: Adapt encode/decode url to use URI class"
This reverts commit 21fe2683aefde10e847e66c11c26d4f4c1e07cfd
since bitbake-selftest doesn't pass when this is applied and
we're seeing multiple build failures from this change.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 23:07:23 -08:00
Ross Burton
6bf55c6e67 rootfs_ipkg: fix BAD_RECOMMENDATIONS handling
If multiple versions of the same package are in the package feed then the
generate status file would only contains a "deinstall" status for the last one,
which meant that BAD_RECOMMENDATIONS wouldn't actually work.

Use awk instead of grep and stop reading when we reach a newline, so we only
ever output a single stanza.

(From OE-Core rev: a5362de60c0051f16b88a40bd9cb41915bee0b0f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 14:37:51 -08:00
Laurentiu Palcu
db0a02492c toolchain-scripts.bbclass: add PYTHONHOME variable to environment-setup
When relocating the SDK, applications using python will search for
python modules in the default location and will fail to start.
The below errors are thrown by gdb, for example:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site

In order to overcome this, add the PYTHONHOME variable to the
environment-setup script for both standalone toolchain and
adt-installer. No need to do that for meta-ide-support environment
script since this toolchain does not get relocated.

[YOCTO #3839]

(From OE-Core rev: e7a21cd69a326ab7e2d0e410db28f24956f61208)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 14:37:51 -08:00
Richard Purdie
c78cc0556f bitbake: utils: Improve remove funciton to handle whitespace
Improve the remove function to better handle cases where path contains
special shell chars like whitespaces, '$', ';' or'\'.

Thanks to Enrico Scholz for the fix.

(Bitbake rev: 617511c9f86cc4ef52457653c8adff582d94bce3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 14:33:05 -08:00
Matthew McClintock
72ebe0c34f bitbake: bitbake/fetch2: workaround urlparse in older python not support git
(Bitbake rev: 7e479dc6a574a8f3bd9f24d2ed1c3ceef91f3828)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 14:33:05 -08:00
Richard Purdie
9a2a321bab bitbake: wget: Improve mkdir handling
If there there isn't a subdirectory to the downloadfilename, this was
failing. This patch avoids that issue.

(Bitbake rev: 58bfd8d88495d4cae808e23b7af40e65ad05450f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 14:00:32 -08:00
Ross Burton
7ca6e975e2 distro: remove web and gtkhtml2 from distro tracking
(From meta-yocto rev: 92dd130f179dfe2f0fbc663055bf1ee99e2d101a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:36 -08:00
Christopher Larson
325410e2b2 bitbake: cooker: parse using bb.compat.Pool
(Bitbake rev: 8af519a49a3374bd9004864ef31ca8aa328e9f34)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:36 -08:00
Otavio Salvador
dde7a48135 libsdl: Use 'virtual/nativesdk-libx11' instead of hardcoding nativesdk-libx11
(From OE-Core rev: bb7a913e4a0da450cc85edfe0d8f80bdf4065fad)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:36 -08:00
Otavio Salvador
0f8d6f8143 dbus: Drop x11 support from nativesdk
This avoid a libx11 dependency for nativesdk as it is not intended to
be run in the toolchain. We also remove the dbus-launch as without x11
support it might case trouble for user

(From OE-Core rev: 2dcb6bf9205a5b2144ccb7f2912bf3e13211ae88)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:36 -08:00
Richard Purdie
1dc9e9c3c5 devshell.bbclass: Allow running devshell and fakeroot together
Currently its hard to run a devshell complete with fakeroot context. This
patch allows the fakeroot flag on the task to do this, as with any other
task. Since we may need to start X terminal applications, we need to
only start the fakeroot session on the final command, hence the hoops
this code jumps through.

As always with fakeroot, you can break out and run a command without
the fake permissions with syntax like "PSEUDO_UNLOAD=1 <command>"

[YOCTO #3374]

(From OE-Core rev: 0a2662a48eaf0487db043c348e2834bb9cdd0466)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:36 -08:00
Laurentiu Palcu
c723d1a38f populate_sdk_base.bbclass: fix SDKTARGETSYSROOT value
Currently, SDKTARGETSYSROOT points to PACKAGE_ARCH which, sometimes, can
be set to MACHINE_ARCH. When this happens, the default target sysroot
passed to the cross-canadian toolchain, which points to TUNE_PKGARCH,
will be different from the directory where the target sysroot has been
deployed.

In order to fix this, use REAL_MULTIMACH_TARGET_SYS variable instead of
MULTIMACH_TARGET_SYS.

[YOCTO #3784]

(From OE-Core rev: 41437aaac0cfc6f931d3b2974d380f20ec01f6e8)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:35 -08:00
Martin Jansa
d10a2f9199 sanity: check_path_length: replace tab with 8 spaces
(From OE-Core rev: de3f2367c46a213d07d834c7e874d2a4a0697026)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:35 -08:00
Peter Seebach
ec4c1ee435 pseudo.inc: pseudo 1.5 uprev, support extra config flags
The pseudo 1.5 update is a moderately experimental set of changes
which ought to improve performance. With these changes, pseudo
uses an in-memory sqlite database which is lushed on exit,
the protocol is changed to reduce waiting for server responses,
and pseudo can suppress any and all fsync/fdatasync type operations.

This last feature is optional, and not on by default, so we need
to pass in an extra configure argument, but that argument wouldn't
be known to an older configure, so... Enter PSEUDO_EXTRA_OPTS which
is passed to configure, and which pseudo_1.5.bb sets by default to
"--enable-force-async". (I haven't added it in pseudo_git.bb, but
maybe it should be changed; I'm not quite as sure there.)

The justification for these changes is that, for most of the real-world
build cases I deal with, they produce a 25% or more reduction in the
build time of a project. This increases when a system is heavily
loaded.

(From OE-Core rev: 79ddb0c33401da442dbaa8e0d73ebacf297d9185)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:35 -08:00
Otavio Salvador
3b9636a0a9 meta-toolchain-qt.inc: Use CXX when linking
We should use CXX compiler when linking objects as done in regular
builds inside of OE-Core. This fixes issues we've been seeing in field
where we needed to change it byhand so the toolchain could work.

(From OE-Core rev: 4ade9c60acea0ac92d0a08f3078361b6f54c85e2)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-19 08:47:35 -08:00
Constantin Musca
c7b23ab68a maintainers.inc: update ownership of recipes
- I am the new maintainer for: groff, apt, js, augeas, gnutls and
libtasn1

(From meta-yocto rev: 7e6b567dc00e71ee42af93980f63d17f6db5d135)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:33:30 +00:00
Olof Johansson
7b59a34360 bitbake: fetch2: Add SFTP fetcher
This fetcher differs from the SSH fetcher in that it adheres more
strictly to the SECSH URI internet draft --- it uses the sftp://
instead of the ssh:// scheme, and it uses sftp instead of scp.

(Bitbake rev: d240baeb7a4107d2eba3f08c411c0f086674d8e2)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:05 +00:00
Olof Johansson
96f0a39e7c bitbake: fetch2: Add editor modelines for bb.tests.*
(Bitbake rev: 230e00948ba093958e8e89e9ee380444b3dad307)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:05 +00:00
Olof Johansson
dc9d989a5c bitbake: fetch2: Adapt encode/decode url to use URI class
(Bitbake rev: 21fe2683aefde10e847e66c11c26d4f4c1e07cfd)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:05 +00:00
Olof Johansson
f860059a4c bitbake: fetch2: unittests for bb.fetch2.URI class
(Bitbake rev: a71e7d4137d2c5268b406f69992d09c00772a040)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:05 +00:00
Olof Johansson
7feca4e11e bitbake: fetch2: Add a class representing a generic URI
A class representing a generic URI, with methods for accessing the URI
components, and stringifies to the URI. This class should be a bit more
flexible than the existing {encode,decode}_url functions in that it
supports more components (e.g. port) and that it does not rely on a
specific order on the return values. This makes it easy to add new
properties without affecting the API.

(Bitbake rev: bd824da8a7eafe27310e410807319628378caeca)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:04 +00:00
Olof Johansson
46bd4fd9f0 bitbake: fetch2: Remove unused code in wget fetcher
(Bitbake rev: 6d88fcee16ced3a8c1ab1daf8e88d36f70f13346)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:04 +00:00
Richard Purdie
e13755a542 package_tar: Fix so it actually works
This tells us how long the code hasn't been used for :/

(From OE-Core rev: cd503c7f7fec6d177209832f73cec9c5d490be6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:04 +00:00
Richard Purdie
8fb417a67c package_tar: Remove completely pointless code
Remove/simply overcomplicated code. No functionality change.

(From OE-Core rev: e3b21455e4ecc5b4961cf52e035a2d6d541faf69)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:04 +00:00
Richard Purdie
7e629a36c9 package_tar: bb.mkdirhier -> bb.utils.mkdirhier
Fix deprecated function reference.

(From OE-Core rev: 9e7a6492010aa2de65310d6fa13290068e7cadb1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:04 +00:00
Richard Purdie
398a6dcc84 package_tar: Fix whitespace
(From OE-Core rev: fead6005b56f53535967476cc752691316e02183)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:03 +00:00
Richard Purdie
ba110d3b69 package_rpm/dev/ipk/tar: Drop unused functions
The package_xxx_install functions date from a different era and are not used by
anything. In the rpm case, they're simply unimplemented, in the tar case they're
using broken whitespace and deprecated functions. We might as well clean
out the old broken unused code.

(From OE-Core rev: 3684036213c9b1c27389260b7a1e3441c6bd659d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:03 +00:00
Richard Purdie
74938e387c package_rpm/deb/ipk: Error if we don't find packages when creating the package index
If for whatever reason the package directory is empty of packages, it
makes sense to error early rather than later in what become much
more obtuse errors. This adds in a sanity check to each of the packaging
backends. It also removes the duplicate createrepo call since the
core index creation function now uses this directly after the switch
to smart.

(From OE-Core rev: 721ef058b37604e100021ec7a90ad2f745d83916)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:03 +00:00
Richard Purdie
069a332d1c classes: Drop none package specific packaging variable accesses
(From OE-Core rev: 24cbe88429ba021d7c461e0271b67106d11d5eb2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 22:32:03 +00:00
Holger Hans Peter Freyther
68ceb02e98 conf: Remove unused ROOT_FLASH_SIZE variable from the config
This variable is set but never used in OE-core and meta-oe. It
was historically used for the Opie collection but seems to be
unused now.

(From OE-Core rev: 323ef78e377525e2214f4700c30305c493137853)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 09:07:40 +00:00
Otavio Salvador
00bbd21724 perl: Add auto/XS/Typemap in perl-doc package
(From OE-Core rev: 8b8e471b4e6d90e36320fc608b6eec908fd43fe6)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-17 09:07:40 +00:00
Richard Purdie
55d17578d6 bitbake: fetch2: Ensure directory for stampfile exists before trying to create it
(Bitbake rev: cf510e3da36e53f98ca86501747364bf4699ecc1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 16:17:48 +00:00
Richard Purdie
f7836b1299 bitbake: utils: Use rm -rf in remove()
Whilst shutils.rmtree() is pythonic, its also slow. Its faster to
use rm -rf which makes optimial use of the right syscalls.

(Bitbake rev: 96088ebdec08e49ba9e8dbcac437bfcdc21f5983)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 15:53:41 +00:00
Roman I Khimov
5da2485717 dropbear: use pidfile for daemon start/stop/restart
Old init script killed all dropbear processes when doing stop/restart
including open SSH sessions which is very annoying.

(From OE-Core rev: 97aa5ac2df7593e343d82f5e64a422bb951eacf9)

Signed-off-by: Roman I Khimov <khimov@altell.ru>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 13:05:27 +00:00
Richard Purdie
c677b7c5c3 tzcode-native: Fix SRC_URI checksum typo
(From OE-Core rev: dac9290b20819bb7f74fa27b87b8077d8856c551)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 13:05:27 +00:00
Richard Purdie
21efb53608 local.conf.sample: Enhance the SSTATE_MIRRORS example
By using downloadfilename in the url, symlinks in the download
directory can be avoided and hence directories with large numbers
of files are less likely.

[YOCTO #3220]

(From meta-yocto rev: 1aac2282fe3416a59fe93bba0c54c4b8cf068a53)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:31:24 +00:00
Khem Raj
3b909b369a systemd.bbclass: Dont use libdir and base_libdir for units
systemd always uses /lib and /usr/lib to store unit files
so using libdir and base_libdir is incorrect. It will work
where libdir is usr/lib and base_libdir is /lib but wont work
when say its /lib64

Add a check to make sure that SYSTEMD_PACKAGES are part of PACKAGES
too, otherwise error out

(From OE-Core rev: 22e16f44b58ae6bbf719b9074d39aac065a402f1)

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>
2013-02-15 12:18:30 +00:00
Saul Wold
c4d16fce2e gnupg: fix CVE-2012-6085
Code taken from Redhat

[YOCTO #3813]

(From OE-Core rev: 17f8e03ace51df6b94fdcb7e410acf79c7b046ce)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Cristiana Voicu
2cbefb8387 sanity.bbclass: when bblayers.conf is updated, it invokes a reparse
When bblayers.conf is updated(when sanity check is running), it should
tell to bitbake to reparse configuration files. I will send a patch to
bitbake-devel, with the actions needed in bitbake and hob.

[YOCTO #3213]
(From OE-Core rev: 5db1ff93f7204b43b7242fc7ef415216eb632ed8)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Ross Burton
70b731c6f0 package_ipk: check CONFFILES exist before adding them to metadata
opkg-build verifies that conffiles exist, so verify that the specified files
actually exist before writing them to conffiles.

This mirrors the behaviour of FILES and package_rpm's CONFFILES handling.

(From OE-Core rev: fb87edc881009cf4d582cd95c248884551fe07fe)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Franklin S. Cooper Jr
a9608dd3e5 scripts/bitbake: Remove all instances of paths to a layer's scripts directory.
* Currently the assumption is made that only oe-core can include a scripts
  directory.

* However, when other layers create a scripts directory the bitbake script
  freaks out causing a infinite recursive loop until it crashes.

* Simply changing the regular expression to remove all instances of scripts path
  instead of just the first one fixes this problem.

 [Yocto Bug 3872]

(From OE-Core rev: 9b445cc39604223b0cfb21d28f748a86ff4cdf68)

Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Cristian Iorga
a3ca3ecb93 alsa-lib: upgrade to 1.0.26
(From OE-Core rev: 759191ee0b11231e1719bd5c66ac0afbd02e2a80)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Ross Burton
c96768b240 systemd: add udev-extraconf and USB/PCI IDs to RRECOMMENDS
The standalone udev has these dependencies and extraconf is required to have
working automount amongst other things.

(From OE-Core rev: 3d72ba9d25a02cac2c0a63ab32c5483be5c6ea3f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Marko Lindqvist
4eca6f43d0 libpng: update to upstream version 1.5.14
obsolete_automake_macros.patch removed as it's not part of upstream.
The only changes to license texts are latest libpng version number
and release dates.

(From OE-Core rev: d68e9660327db2dd4f2ae7bcea9925146b94eb77)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:35 +00:00
Marko Lindqvist
3a154fa0ad harfbuzz: update to upstream version 0.9.12
Fixed license declaration to have AND between all the licenses
instead of OR.

(From OE-Core rev: 0a90fb2faebbb7848dbd5a23b37490866b397f5f)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Marko Lindqvist
822552d417 gtk+: update to upstream version 2.24.15
- configure-nm.patch updated to apply
- hardcoded_libtool.patch updated to apply
- obsolete_automake_macros.patch removes as it's now part of upstream

(From OE-Core rev: a4ed7da18d8622fc0b6e3d32ac8ce9456b912322)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Marko Lindqvist
01dab75215 webkit-gtk: update to upstream version 1.8.3
(From OE-Core rev: 570e5e20623031ad03cce470fc3d94d9a5b05827)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
e9a2c04940 xev: upgrade to 1.2.1
Licence didn't change, the end line for computing the licence md5sum was
inside the actual code which, eventually changed. Adjust it to the right
line.

(From OE-Core rev: 96d9e102067471018acfa9651b810f0d33a363fa)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
b47e7b803a xf86-video-vmware: upgrade to 13.0.0
Removed backported patch.

(From OE-Core rev: f264bf699a42dfe2616386d03524642890308e80)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
685e9c4a45 xf86-input-synaptics: upgrade to 1.6.3
(From OE-Core rev: a1eef756921d66138ef233c451a99b2ee1356cfb)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
15da1e1bde xkeyboard-config: upgrade to 2.8
(From OE-Core rev: 40083ca6decd05f480b0a8cd5923e68884c3b307)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
3d1fb4c91e libdrm: upgrade to 2.4.42
(From OE-Core rev: dd53452b1cf2ccec44f465ac420d134a17332c7b)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
5628ab14d8 xf86-input-vmmouse: upgrade to 13.0.0
(From OE-Core rev: e8f5f341256430cf45ee186435bccf593793b661)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:34 +00:00
Laurentiu Palcu
001fce2096 xf86-video-intel: upgrade to 2.21.0
(From OE-Core rev: 7bdc27511c9129e35caf1bdc0df37b382f1b5b98)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:33 +00:00
Constantin Musca
b803007b22 qemu: upgrade to 1.3.1
(From OE-Core rev: ca3ce0886df01936d5ad309de1d39520b5278a80)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:17:33 +00:00
Cristiana Voicu
07803d58e0 bitbake: hob: remove save/load template functionality
The Hob templates functionality, in its current incarnation,
is confusing and has no clear utility.

[YOCTO #3696]
(Bitbake rev: 4eb3b6bb9f936808ddf085624078f6479c522c48)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:38 +00:00
Robert Yang
e36994f69a bitbake: knotty.py: fix unknown event bb.event.DiskFull
There is an error:

ERROR: No new tasks can be excuted since the disk space monitor action
is "STOPTASKS"!
ERROR: Unknown event: <bb.event.DiskFull object at 0x2ab6310>

This is because we don't handle the event bb.event.DiskFull in
knotty.py, we don't want the knotty to do anything here since we have
done everything in monitordisk.py, so just ignore this event would fix
the problem.

[YOCTO #3523]

(Bitbake rev: 0fa874dbe0532bbe88ade405f514a237e6cd2488)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:37 +00:00
Robert Yang
86ac3b53b5 bitbake: bitbake-layers: make show-cross-depends avoid long path
The "bitbake-layers show-cross-depends" print the absolute path in the
past, now it will print the relative path (relative to the layer dir) by
default, and add the "-f" option to make it print the absolute path.

For example:

$ bitbake-layers show-cross-depends
[snip]
meta-intel/meta-jasperforest/conf/machine/jasperforest.conf requires meta/conf/machine/include/ia32-base.inc
[snip]

$ bitbake-layers show-cross-depends -f
[snip]
/path/to/poky/meta-intel/meta-jasperforest/conf/machine/jasperforest.conf requires /path/to/poky/meta/conf/machine/include/ia32-base.inc
[snip]

[YOCTO #3824]

(Bitbake rev: df217701318d60559be0b10214b883b8ce4f5d2a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:37 +00:00
Cristiana Voicu
2c5ad4059e bitbake: hob: remove parsing warnings when machine is changed
When the machine is changed, the warnings list is emptied and the warnings
bar is hidden.

[YOCTO #3830]
(Bitbake rev: 8e43da7798a98988f7da3f7c424e8f9e5eac2010)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:37 +00:00
Cristiana Voicu
0e2ee5bd45 bitbake: hob: no sanity checks re-run
Hob was hanging when the user tried a rebuild a new image, because
of sanity checks. It should not re-run sanity checks.

[YOCTO #3829]
(Bitbake rev: f7ff550f53cf3e5b166940db83f27ec733f3ef72)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:37 +00:00
Robert Yang
b0587077a4 bitbake: monitordisk.py: disable the inode checking for some fs
There is an error when use disk monitor on btrfs:
WARNING: The free inode of rootfs is running low (0.000K left)
ERROR: Immediately abort since the disk space monitor action is "ABORT"!

This is beucase some fs formats' statvfs.f_files (inodes) is zero, thus
the statvfs.f_favail (free inodes) is zero, too, this a feature of the
fs, we disable the inode checking for such a fs.

[YOCTO #3609]

(Bitbake rev: b2ada3ad5f7aefff107f013e0c9decea481c7ef6)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:36 +00:00
Richard Purdie
804d1d57a2 bitbake: fetch2: Improve lock/done stamp file paths for local files
Currently stamps end up at the top level of DL_DIR even if the files
themselves are in a directory structure. This patch preserves path
components allowing the top level directory to be less populated
which is an advantage for large sstate caches.

(Bitbake rev: 59921ce3ed7a4c0b7f8ef1a101ad9127469bf1fd)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:36 +00:00
Cristiana Voicu
95e7dae968 bitbake: bitbake & hob: reparse config files, when sanity check updates bblayers.conf
I've sent a patch to poky, with some changes in sanity.bbclass. When bblayers.conf
is updated, it updates also a variable to know when to reparse configuration files.
This patch contains the changes to reparse conf files, after a sanity check which
changes bblayers.conf.

[YOCTO #3213]
(Bitbake rev: 966e3e59ceb1c8b33b5881f291c148ea6513eda0)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:36 +00:00
Richard Purdie
d5ef2e5cc0 bitbake: fetch2: Ensure expansions happen in URL parameters in uri_replace
For example, this allows us to specify downloadfilename=PATH in sstate
mirror urls to improve directory structures in DL_DIR when using sstate.

(Bitbake rev: 7850a1364b6b37c58664d84f9c14806b4479b45c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:36 +00:00
Olof Johansson
423dd2f7cd bitbake: ConfHandler: Use re.X to make long regexp more readable
The __config_regexp__ in ConfHandler is quite long, and using re.X to
break the expression onto several lines make it a bit easier to read.

(Bitbake rev: 54dce9e14ab0657d76f0d0ae22eef7fab8e8950d)

Signed-off-by: Olof Johansson <olof.johansson@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:36 +00:00
Richard Purdie
bc7c8fa99a bitbake: tests/codeparser: Hack around circular inclusion problem
There is a circular dependency issue where bb.data can't directly depend on
bb.parse. The tests were failing due to this issue which is misleading. This
patch hacks around it for now. I'd rather that than not running tests at all.

(Bitbake rev: a206ae0d7769a41ff3666d0f53ff9cf422dfa518)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:35 +00:00
Richard Purdie
07dcffe7ec bitbake: wget: Only use -O option when not spidering
If we pass the -O option whilst spidering, empty files are created which is not
desired. We also need to ensure any subdirectories are created when using the
downloadfilename parameter.

(Bitbake rev: d5f78e98d5aba36c95288fbaac267c2d54537b02)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:35 +00:00
Richard Purdie
f966c544aa bitbake: codeparser: Track bb.utils.contains usage
The bb.utils.contains function usage is getting increasingly used in the metadata
but isn't handled automatically by the python dependency tracking code. This patch
changes that and also adds the "OE" names for the functions.

Whilst there are reasons this is a bad idea, its likely outweighed by the
shear number of these references and the current holes in dependency information
which we're now relying heavily upon.

(Bitbake rev: 0b9d117631ce909312d53b93289e61defc6be01c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:35 +00:00
Richard Purdie
7e6f9baae1 bitbake: codeparser: Track appendVar and prependVar calls as we do for getVar
We need to track appendVar and prependVar calls just as we do for getVar in order
to ensure we're not missing variable dependencies.

(Bitbake rev: 767b4751232f4ee3979deb4d3f733fcf9ee2bd44)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-15 12:12:35 +00:00
Khem Raj
5a4ea383c3 poky.conf: Add Ubuntu 12.04.2 to sanity tested distros
I have been running poky master on this distro for some time
now, this fix will avoid the warning about validated distros
during bitbake parse phase.

(From meta-yocto rev: 09bb10c11c00ed802ec6947add93efe25b001bb9)

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>
2013-02-14 23:18:00 +00:00
Emilia Ciobanu
a02d56689e Solved package namespace errors in PRS
Removed some beta versioning the system reported
for the socat package and the development version
reported by PRS for foomatic-filters.

(From meta-yocto rev: 8a9bf7963df1bc001458341106b36af5df146e16)

Signed-off-by: Emilia Ciobanu <emilia.maria.silvia.ciobanu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:18:00 +00:00
Saul Wold
82f2c855d5 tzcode/tzdata: Update to 2012j
Readme update to indicate status of project and authorship

(From OE-Core rev: 6c6568e47d6b3b0edaba569bfa4e38f9d72b5122)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:17:59 +00:00
Otavio Salvador
e4ae93a662 tzdata: Simplify code removing not used cases
We shouldn't have an use-case where we'd use 'FUBAR' timezone so
instead of adding postinst handling for this use case we handle it at
install time and keep the Universal as fallback if user did something
wrong.

This also ensure the /etc/localtime file is kept as a symbolic link.
This will make timezone not available when /usr is in separated
partition (and not mounted) however the applications ought to fallback
to GMT timezone in this case and when /usr is made availble timezone
will work fine.

Change-Id: I9a4f05db7a0bdc06511deb5693d1d16569d2fc63
(From OE-Core rev: 4b5e1757224085deac54b2583853fc779dc70614)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:17:59 +00:00
Otavio Salvador
789d5772a2 tzdata: We shouldn't override the localtime if it is valid
The code where mistakenly replacing the localtime file setting so we
end with a copy of file instead of a symbolic link. This fixes it so
now, we'll only do that in case the link is pointing to invalid data.

Change-Id: I16dfa5ea4f293c48bb396f4e23a2ea53e6c9e745
(From OE-Core rev: a9b42c8e85332a65788b1434f926186d4887b287)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:17:59 +00:00
Emilia Ciobanu
444b6e1cd8 Solved package namespace errors in PRS
For some packages PRS reported incorrect upstream version
as it was either the raw string or it mismatched some
alternative groups.

(From OE-Core rev: 6f3ace8ba75eed891aa4844a6830bedca3d8b70e)

Signed-off-by: Emilia Ciobanu <emilia.maria.silvia.ciobanu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:14:47 +00:00
Ross Burton
5dab6274b1 insane: remove unused variable
(From OE-Core rev: 1165a0b161ffc32258b0726e6ef3082d97dfb32a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:08:35 +00:00
Saul Wold
8c8b70c2ed remake: do not create po files
The 'make update' was using wget to get the gmo and other gnu files from
upstream, since need to work cleanly in a non-networked or proxy environment
this does not so well.  Remove the list of languages from the LINGUAS file.

[YOCTO #3745]

(From OE-Core rev: 9987f210e3faf31bfeab35ae56606c8a577b3aa0)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 23:08:35 +00:00
Richard Purdie
72fdc8ed09 yocto-docs: Fixup a couple of merge issues
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:30:09 +00:00
Scott Rifenbark
e57f8627be dev-manual: Revision of "Team Environment" section.
Fixes YOCTO #3274

First draft of a re-written section that describes best
practices for scaling the YP over a large development
effort.  this draft is based on Richard Purdie's text
he sent to me.

(From yocto-docs rev: e5135f76946997a0a060dd16c0b62308be4f6048)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:45 +00:00
Scott Rifenbark
a005cdaaed dev-manual, ref-manual: Cross-references between PR Service and cache
Fixes YOCTO #3684

These changes help tie in the relationship between how the OE
build system uses checksums and such and the PR Service that
can track revision.

(From yocto-docs rev: 39a3010a3bb4b2c1d37aef60984ac16e85b56aac)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:45 +00:00
Scott Rifenbark
ee180d1475 template: Changed the font color for footers and headers
Fixes YOCTO #3728

The poky-db-pdf.xsl file has code that controls the font color
for the headers, footers, and separating lines for each when
the PDF version of a manual is made.  I changed the values
from #cccccc to #999999 to darken these up so they can be
seen a little better.

(From yocto-docs rev: c9c83028a5f13dc672414b6ca395290f05019f8e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:45 +00:00
Scott Rifenbark
cd474b08f6 dev-manual, bsp-guide: Added some links
Fixes YOCTO #3552

Added some links to the FILESEXTRAPATHS and SRC_URI variables.
These links connect appropriate sections to a newly improved
section on FILESEXTRAPATHS glossary description.

(From yocto-docs rev: a58e7c6f013393c87381411f918e16a8f04d55d1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:44 +00:00
Scott Rifenbark
b8761468d3 dev-manual: Updated PR Service section with comments
Fixes YOCTO #2684

Applied some review comments to the section from Richard
Purdie.

(From yocto-docs rev: 772617a45df10e5e42364854fe03d8aad7cb46b6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:44 +00:00
Scott Rifenbark
ba9fc8aaf3 dev-manual: First draft of the PR Service section.
Fixes YOCTO #2684

Completed first draft.

(From yocto-docs rev: c8b81e372578b1964bca4aa26d1085162115a2b0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:44 +00:00
Scott Rifenbark
717c56caff ref-manual: Created "Development Host System Issues" section
Fixes YOCTO #2790

Created a new section in the "Debugging Build Failures"
section to deal with host issues that cause a build to
fail.

(From yocto-docs rev: 9efc00146764086646b0c558d12168ab9813d683)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:44 +00:00
Scott Rifenbark
dc7221b2fc dev-manual: Fixed <ulink> to be on a single line.
These types of links must not span multiple lines in order for
mega-manual to process them.

(From yocto-docs rev: bcea042cd796a51d866f82399b2fd0cc89ec9e2b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:43 +00:00
Timo Mueller
4e13ad941a documentation: Removed three figures from poky-ref-manual
three PNG files go away from the eclipse folder due to the
renaming of the poky-ref-manual to ref-manual.

(From yocto-docs rev: 29907784ecb509b3d4fba633b2c4970e4105bea2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:43 +00:00
Timo Mueller
5d5800ef6f documentation: Part 2 of 2 for YP doc integration into Eclipse.
This commit adds the three *.customization.xsl files.  I
(Scott Rifenbark).  Split the commit because after applying the
18 patches, the list of stuff to stage was huge and I did not
want to add them one-by-one.  So I staged them using git add -u.

Here is the general cover letter information from Timo included
with the 18 patches:

-----------------

Hi,

the generation of eclipse help files has been merged from the timo
branch to the master. Since the creation of the timo branch there have
been some changes to the master branch (e.g. new documentation,
renamed documentation).

This patch set does some cleanup for the renamed documentation and
adds eclipse help generation support to the new documentation.

01: Removes the 'the' from the document titles
02..04: Cleanup obsolete artifacts resulting from the merge
05..08: Add eclipse help generation for ref-manual
09..13: Add eclipse help generation for kernel-dev
14..18: Add eclipse help generation for profile-manual

Best regards,
Timo

(From yocto-docs rev: eff391a17d0a2403634adfb2f4cd2ff50ad0b771)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:43 +00:00
Timo Mueller
a41a805500 documentation: Part 1 of 2 updates to integrating docs to Eclipse help.
Hi,

the generation of eclipse help files has been merged from the timo
branch to the master. Since the creation of the timo branch there have
been some changes to the master branch (e.g. new documentation,
renamed documentation).

This patch set does some cleanup for the renamed documentation and
adds eclipse help generation support to the new documentation.

01: Removes the 'the' from the document titles
02..04: Cleanup obsolete artifacts resulting from the merge
05..08: Add eclipse help generation for ref-manual
09..13: Add eclipse help generation for kernel-dev
14..18: Add eclipse help generation for profile-manual

Best regards,
Timo

This patch set originally contained 18 patches. I (Scott Rifenbark)
had to push these changes as two parts.  This is the first part.
It does not include creation of the three cusomization files.

(From yocto-docs rev: 9b1889f6e31ee70dae704fa08763fb9196616dad)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:25:35 +00:00
Scott Rifenbark
7681523408 adt-manual: Added cross-reference link for Cross-dev toolchain.
I placed a link on the term "Cross-Development Toolchain" in the
section of the same name.  This is to help the user see the
recipes related to the toolchain.  The link resolves back into
the "Terms" section of the dev-manual.

(From yocto-docs rev: c77ec0212bcf3b1c5f8079ccf08129ecbefea0aa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:04 +00:00
Scott Rifenbark
0ad26c66e0 dev-manual: Updates to expose cross-toolchain recipes.
Added a bulleted list to the "Terms" section to help define
some toolchain recipes such as gcc-cross-initial,
gcc-cross-intermediate, and so forth.

Added a cross-reference link to the term
"Cross-Development Toolchain" in the the "Working Using
Stand-alone Cross-development Toolchains" section.
This gives the reader a way to see more on the toolchain
recipes.

(From yocto-docs rev: 2cb612424c0cf6addfd8bce8a0ef77665c35bd9a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:04 +00:00
Scott Rifenbark
3c984fdbc6 kernel-dev: Added note for YP release requirements.
The user needs to have YP 1.2.2 release or forward for the
examples in the book to work.  I have added a note indicating
such.

(From yocto-docs rev: 6fcbd3f526a13ef632c7ce5b9b4774d166b61895)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:03 +00:00
Scott Rifenbark
1263e58475 ref-manual: edits to update-alternatives.bbclass description.
Fixes YOCTO #3838

First draft of edits for this class.  Removed specific variable
definitions as they are now deprecated.  Added a general
explanation of the variable functions.  Pointed user to the
commented code in the actual class for details.  Removed
statement saying that the build system supports only one
binary per package.

(From yocto-docs rev: bd574f2c8a95470c5a44500b70743a6e039522b7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:03 +00:00
Scott Rifenbark
40fde06345 ref-manual: Edits to the question on how source code is fetched.
Updated the question that asks "How doe the OpenEmbedded build
system obtain source code and will it work behind my firewall
or proxy server?".  Some of the variables did not have links
or proper font type.

(From yocto-docs rev: be1f665b480a47483595381c9a837892100007e8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:03 +00:00
Scott Rifenbark
7183fe85ec ref-manual: Updated SSTATE_MIRRORS glossary entry.
added links for the PREMIRRORS and MIRRORS variables used in
the description.

(From yocto-docs rev: 1ec0f9cbeebeaeaadee8cc8b3631e6194c013a2f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:02 +00:00
Scott Rifenbark
846a33ee75 yocto-project-qs: Updates to how to use local directories for source
The section that describes an efficient way to set up the
build system to look in local areas for tarballs needed updated
so that PREMIRRORS was not the focus.  The example used does
not even employ PREMIRRORS.  So I changed wording to support
the example.  I also added a mention of the PREMIRRORS variable
and a linked reference to it for more information.

(From yocto-docs rev: 7966942e2dfad85c2eb9480d7f706355871c40ab)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:02 +00:00
Scott Rifenbark
c6f133f50e ref-manual: added MIRRORS glossary definition.
(From yocto-docs rev: 3dfc95974cdaf345d36a51e8f581602242c38148)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:02 +00:00
Scott Rifenbark
38670f4719 ref-manual: Added PREMIRRORS glossary entry.
(From yocto-docs rev: a91e562db5c1581cb88f0254f8d5a170296f3e41)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:02 +00:00
Scott Rifenbark
c28948d9c3 dev-manual: Various typos fixed
Received a patch from Robert P. J. Day but deleted it from
my Thunderbird account so could not apply it directly.
I applied most of his corrections.  A couple I left alone.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:01 +00:00
Scott Rifenbark
05e2c479d9 dev-manual: Updates to "Using .bbappend Files" section
Fixes YOCTO #3664

Added some information in the note to point out that not all
append files add files into the mix.  Some just exist to add
build options.  And, in this case the _prepend part of the
FILESEXTRAPATHS statement is not necessary.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:01 +00:00
Scott Rifenbark
cf10be36c1 dev-manual: three typos fixed.
Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: 3272f0d51e3d09f4ffd96b7322f66ffd878d3714)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:01 +00:00
Scott Rifenbark
093b0079ce dev-manual, ref-manual: Updates for BBPATH.
Two things fixed:

1. A couple examples for setting up a layer.conf file were
   using the meta-yocto configuration file as an example.
   Turns out this is a bad example because the BBPATH variable
   is appended to the LAYERDIR when setting BBPATH rather
   than the other way around.  That is because meta-yocto
   is a distro layer.  BSP layers, however, are not distro
   layers and are the norm here.  So I switched up the way
   BBPATH was set and actually called out meta-yocto-bsp
   config file as a template.

2. Added a link for the BBPATH variable in the
   FILESYSTEM_PERMS_TABLES variable description in the
   glossary.  Just happened to notice this so I fixed it

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:01 +00:00
Scott Rifenbark
718e3b4984 ref-manual, dev-manual: Updates to BBMASK variable.
Fixes YOCTO #3662

I added more information to the variable desription in the
glossary for BBMASK.  The information included a bit more
syntax information as well as some more complex examples.

I added more reference information to the "Excluding Recipes
From the Build" section to help better describe how the
BBMASK variable works.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:00 +00:00
Scott Rifenbark
6a926df682 ref-manual: Updates to the FILESEXTRAPATHS variable.
Fixed YOCTO #3662

Updates to the description so _prepend is used to add paths
to the front of the search order and use of the variable
without _prepend just adds paths to the end of the
FILESPATH order.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:00 +00:00
Scott Rifenbark
58f61cf79e ref-manual: new BB_DANGLINGAPPENDS_WARNONLY variable added to glossary.
Fixes YOCTO #3662

New entry added.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:24:00 +00:00
Timo Mueller
78f10655cd documentation: Add chunk.quietly option to eclipse processing
The chunk.quietly option disables the output of the docbook
chunker. Creation of a new html file is now longer printed to the
console. This provides a much cleaner output of the eclipse makefile
target.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:22:42 +00:00
Timo Mueller
e29a40c98b documentation/tools/eclipse-help.sed: Fix whitespace
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:22:41 +00:00
Timo Mueller
fcb3952ef6 documentation/Makefile: Fix copying of figures folder
When calling the eclipse target twice without calling clean in between
the figures folder was copied as a subfolder of the existing figures
folder. This patch fixes the copy command to correctly copy the
figures folder.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:22:41 +00:00
Timo Mueller
6c057d0841 documentation/Makefile: Clean up eclipse target and update help.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:22:38 +00:00
Timo Mueller
239b469820 documentation/Makefile: Added conversion of links to other documentation parts.
The script tools/eclipse-help.sed is used to convert links that
point to other documentation parts. This avoids having to leave
the eclipse help center when clicking these links.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:29 +00:00
Timo Mueller
a11f23b4bc documentation/tools/eclipse-help.sed: Processes external links for eclipse html files
The file is used when creating eclipse help html files. It processes
all html files and converts links so that the user can navigate
between different docuementation parts without leaving the eclipse
help center.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:29 +00:00
Timo Mueller
108ffcf310 documentation/Makefile: logic to make all for yocto-project-qs and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the yocto-project-qs. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:29 +00:00
Timo Mueller
0f49fe1792 documentation/yocto-project-qs/yocto-project-qs.xml: Convert fake-title section into articleinfo
The fake title section is converted into a docbook
article.articleinfo. If used with a custom title page this will lead
to the excapt same output. But I will enable the creation of metadata
from this title information.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:28 +00:00
Timo Mueller
72639b4a58 documentation/Makefile: Support for making Eclipse HTML yocto project qs manual
This target will generate eclipse help for the yocto-project-qs using
the yocto-project-qs-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:28 +00:00
Timo Mueller
ea2e921e39 documentation/yocto-project-qs/yocto-project-qs-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:28 +00:00
Timo Mueller
941d5e268b documentation/yocto-project-qs: Added custom title page
The quick start guide is currently not using a title information to
set the title of the document (e.g. article.title or
article.articleinfo.title).
As other output formats may use the title information to create
metadata this information has to be added to the document. To preserve
current style of the document a custom title page has to be used. With
this for instance 'article.title' can be used instead of the
fake-title section currently used, leaving the style intact.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:28 +00:00
Timo Mueller
bbe7cb4770 documentation: Move yocto-project-qs global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:27 +00:00
Timo Mueller
f4bcee695c documentation/Makefile: logic to make all for poky-ref-manual and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the poky-ref-manual. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:21:24 +00:00
Timo Mueller
ac3d99071d documentation/poky-ref-manual/poky-ref-manual.xml: Added Title tag
The title of the document used to create metadata for output formats
such as eclipse help.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:15:50 +00:00
Timo Mueller
c6af0b969c documentation/Makefile: Support for making Eclipse HTML poky ref manual
This target will generate eclipse help for the poky-ref-manual using
the  poky-ref-manual-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:15:08 +00:00
Timo Mueller
990fb57a65 documentation/poky-ref-manual/poky-ref-manual-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:15:08 +00:00
Timo Mueller
e3980c4938 documentation: Move poky-ref-manual global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 17:14:58 +00:00
Timo Mueller
d90e93b21e documentation/Makefile: logic to make all for kernel-manual and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the kernel-manual. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 16:32:30 +00:00
Timo Mueller
367d699718 documentation/kernel-manual/kernel-manual.xml: Added Title tag
The title of the document used to create metadata for output formats
such as eclipse help.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 16:29:22 +00:00
Timo Mueller
ea7905c1ff documentation/Makefile: Support for making Eclipse HTML kernel manual
This target will generate eclipse help for the kernel-manual using
the  kernel-manual-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:36:36 +00:00
Timo Mueller
deac1787bd documentation/kernel-manual/kernel-manual-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:36:36 +00:00
Timo Mueller
da8cdf63b4 documentation: Move kernel-manual global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:36:09 +00:00
Timo Mueller
8d54920dd0 documentation/Makefile: logic to make all for bsp guide and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the bsp-guide. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:31:34 +00:00
Timo Mueller
6485078889 documentation/bsp-guide/bsp-guide.xml: Added Title tag
The title of the document used to create metadata for output formats
such as eclipse help.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:30:48 +00:00
Timo Mueller
b73e6cb010 documentation/Makefile: Support for making Eclipse HTML bsp guide
This target will generate eclipse help for the bsp-guide using
the  bsp-guide-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:29:54 +00:00
Timo Mueller
d37c418cf4 documentation/bsp-guide/bsp-guide-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:29:53 +00:00
Timo Mueller
81d2bcfadd documentation: Move bsp-guide global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:29:53 +00:00
Timo Mueller
42b9f2cafe documentation/Makefile: logic to make all for dev manual and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the dev-manual. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:29:51 +00:00
Timo Mueller
c94fd49bfc documentation/dev-manual/dev-manual.xml: Added Title tag
The title of the document used to create metadata for output formats
such as eclipse help.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:27:21 +00:00
Timo Mueller
964db71ad0 documentation/Makefile: Support for making Eclipse HTML dev manual
This target will generate eclipse help for the dev-manual using
the dev-manual-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:26:05 +00:00
Timo Mueller
e90dab9d22 documentation/dev-manual/dev-manual-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:26:05 +00:00
Timo Mueller
b3f1c60b7b documentation: Move dev-manual global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:26:04 +00:00
Timo Mueller
9ab3c018a2 documentation/Makefile: logic to make all for adt manual and cleanup
Eclipse help documents are now created when calling the 'make all'
target on the adt-manual. Resulting files are archived into
the tarball as well. When calling 'make clean' artefacts of
the eclipse documentation build are deleted.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:25:23 +00:00
Timo Mueller
c2c3b53430 documentation/adt-manual/adt-manual.xml: Added Title tag
The title of the document used to create metadata for output formats
such as eclipse help.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:22:42 +00:00
Timo Mueller
733a44d048 documentation/Makefile: Support for making Eclipse HTML adt manual
This target will generate eclipse help for the adt-manual using
the adt-manual-eclipse-customization.xsl stylesheet.

The output will be generated to a separate directory which can be used
for integrating the documentation into eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:21:49 +00:00
Timo Mueller
2586bd854c documentation/adt-manual/adt-manual-eclipse-customization.xsl: new file
This stylesheet uses the eclipse stylesheets of docbook to create
eclipse help from this documentation. In addition to simple html
files these stylesheets will also create xml files which are
needed to integrate the documentation into eclipse (e.g. toc.xml).

Additional parameters are required so resolve links between different
documentation parts inside eclipse.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:21:48 +00:00
Timo Mueller
551a5eec9f documentation: Move adt-manual global parameters to customization file
Standard stylesheet parameters were moved to the docbook customization
file tying them to the docbook stylesheet used. Removing these
parameters simplifies the Makefile.

Furthermore supporting new output formats can now be achieved by
creating a new customization file containing its corresponding
parameters. Parameters that are used across different stylesheets with
different values will then be separated through different
customization files.

Global parameters can still be set through the XSLTOPTS variable since
this precedes the parameters in the customization file.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:21:48 +00:00
Timo Mueller
ff553c4b2d documentation/template/titlepage.templates.xml: Remove title info
The title of a pdf document is part of the image used on the title
page. Thus the title defined (e.g. bookinfo.title) in a document
should never be used when creating title pages for pdf documents. As
other output formats may use the title information to create metadata
the title has been removed from the template.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 15:21:48 +00:00
Richard Purdie
b15730caf0 mulitilib_header: Avoid sstate checksum issues for -native recipes
The use of arch specific variables like MIPSPKGSFX_ABI was creeping
into the -native sstate checksums of package like ncurses-native.

This is pointless and undesireable. We could add specific variable
exclusions but we might as well just brute force the code to be disabled
in the -native case since we don't use multilibs in the native case.

[YOCTO #3827]

(From OE-Core rev: cc7352ed990b1bdd26203a4d3b21286280ac26c5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 12:36:08 +00:00
Richard Purdie
77a4497cf4 kconfig-frontends: Depend on pkgconfig-native
We were seeing errors like:

| autoreconf: running: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly/build/build/tmp/sysroots/x86_64-linux/usr/bin/autoconf --force
| configure.ac:27: error: possibly undefined macro: AS_IF
|       If this token and others are legitimate, please use m4_pattern_allow.
|       See the Autoconf documentation.
| configure.ac💯 error: possibly undefined macro: AC_MSG_ERROR
| autoreconf: /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly/build/build/tmp/sysroots/x86_64-linux/usr/bin/autoconf failed with exit status: 1
| ERROR: autoreconf execution failed.

which turns out to mean the pkgconfig macros were unavailable (thanks for clear
error messages autoconf).

This patch adds in the missing dependency.

(From OE-Core rev: 26431ffda8886412147ff347c000a0ecc2671db5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 12:36:08 +00:00
Christopher Larson
34571f4c10 bitbake: Remove whitelisted vars from non-task deps
Though the value of variables in the BB_BASEHASH_WHITELIST is kept out of the
checksums, dependency on them is not, at least for variables and non-task
functions. In the code, the whitelist is removed from the overall task dep
list, but not the individual variable deps. The result of this is that
functions like sysroot_stage_all and oe_runmake end up with whitelisted
variables like TERM listed in their dependencies, which means that doing
a 'unset TERM' before building will result in all checksums for tasks that
depend on those changing, and shared state reuse not behaving correctly.

This is only really a potential issue for variables from the environment, as
it's the existance/removal of the variable that's an issue, not its value, and
the other whitelisted variables are set in our metadata. This which means in
practical terms the only cases where this is likely to be an issue are in
environments where one of the following are unset: TERM, LOGNAME, HOME, USER,
PWD, SHELL. This may seem like an unlikely circumstance, but is in fact a real
issue for those of us using autobuilders. Jenkins does not set TERM when
executing shell, which means shared state archives produced by your jenkins
server would not be fully reused by an actual user.

Fixed by removing the whitelisted elements from the individual variable deps,
not just the accumulated result.

(Bitbake rev: dac12560ac8431ee24609f8de25cb1645572d350)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 11:14:06 +00:00
Richard Purdie
83e1015684 bitbake: ConfHandler: Improve regexp to fix mis-parsing of += and no whitespace
If you have:

FOO = "a"
FOO += "b"
FOO+= "c"

The expected result is "a b c" however we were seeing "a b" with the FOO+
variable being assigned the value "c". This isn't the expected result.

We need to make the name part of the variale non-greedy so that any + character
becomes part of the operator. This patch does that. I compared the configuration
in OE-Core before and after the change and only the test case changed.

[YOCTO #3834]

(Bitbake rev: 2cd8d7fd12a646e6516e2c985e6a54121d19eb59)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 10:46:26 +00:00
Khem Raj
56b8bb79de util-linux: Remove -systemd package
unit files are added to util-linux itself when selected

(From OE-Core rev: dbabe19d4ee5cc291b5d996e9b828eed3e4484d8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 10:46:26 +00:00
MiLo
0be6d35d46 Python: Add missing dependency "textutils" to "io" package
Modify the include file and script to generate a missing RDEPENDS.

Install python on target with python-io. Import ssl:

Python 2.7.3 (default, Feb  9 2013, 16:04:35)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/ssl.py", line 58, in <module>
ImportError: No module named textwrap

Installing python-textutils solves the issue.

(From OE-Core rev: 900ae881c3483eea36aa0be456b93f92980f4924)

Signed-off-by: MiLo <milo-software@users.sourceforge.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 10:46:25 +00:00
Richard Purdie
e3f5d7dee0 multilib: Fix an OVERRIDES expansion order issue
There were problems where a SRC_URI with:

SRC_URI_append_powerpc = " xxx"
SRC_URI_append_powerpc64 = " xxx2"

would end up with *both* xxx and xxx2 being added when using a multilib
which is clearly incorrect and undesirable.

The issue is that OVERRIDES has virtclass-multilib-xxxx added to it,
this eventually changed DEFAULTTUNE which then changes
TRANSLATED_TARGET_ARCH which is in OVERRIDES meaning we then need to
re-evaluate the overides and the TRANSLATED_TARGET_ARCH gets applied
twice since once you apply an override, it doesn't get undone.

Expanding DEFAULTTUNE to the correct value in advance avoids the issue
and means only the correct overrides get applied.

[YOCTO #3874]

(From OE-Core rev: 920c9024f5a47ad14670067f910450983bae2aa7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-14 10:06:30 +00:00
Peter Seebach
3ec4df5754 pseudo_1.4.5.bb: Finish fixing linkat()
The 1.4.4 fix replaced possible double-prepending of chroot paths
with possible non-prepending of chroot paths. After significant
evaluation, have settled on a single prepending of the chroot
path as a workable compromise.

(From OE-Core rev: a79597994e3f680e34a1a45fb37d76977903ded5)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 21:31:37 +00:00
Chen Qi
56dc1720ca busybox: add config fragments
Add config fragments to busybox.

The implementation makes use of merge_config.sh script in kern-tools-native.
The use case is similar to the yocto kernel's configuration fragments.

We also add kern-tools-native to busybox's DEPENDS variable to ensure
that merge_config.sh is available when required.

[YOCTO #3379]

(From OE-Core rev: bbcd8b344598850ea2c8d3ad375c519713581fde)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:31 +00:00
Ross Burton
a2339986d1 gtkhtml2: remove, nothing depends on it
(From OE-Core rev: 1c3ed8c109f46e7e38649d6914693ed4c18f45a5)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:31 +00:00
Ross Burton
e9dd4824a5 web: remove gtkhtml2 version
The gtkhtml2 version of Web is even older than the webkitgtk port, remove it.

(From OE-Core rev: 7ee3c35ca51e358e1d5a710922acb52c0724086e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:31 +00:00
Peter Seebach
600dff4f2c pseudo_git.bb: Bump to pseudo 1.4.4.
The pseudo 1.4.2 linkat() implementation had a broken edge case
in which you could end up with chroot paths being doubled when
using plain link() calls instead of linkat() calls.

(From OE-Core rev: c70443ef21713d805012ef839e3fac04de8eadd2)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Jason Wessel
80d0081d42 libtool-native_2.4.2.bb: Always use /bin/sed for SED
If you never use sstate and always build everything from scratch you
will never see this problem.  However, if you use sstate and build
directories that last a long time eventually you can end up with the
scenario where libtool gets a hard coded path in it for sed, and sed
may not exist.  The reason you don't see this problem to often if you
generally build from scratch is that libtool builds before sed and
will pickup the host's /bin/sed.

The way to reproduce the issue is:

bitbake some_image
bitbake -c cleansstate libtool-native
bitbake sed-native
bitbake libtool-native
bitbake -c clean sed-native
bitbake ANY_PACKAGE_THAT_USES_LIBTOOL_NATIVE

In my case I used modphp, which doesn't exist in the oe-core. You will
end up with a strange looking error like:

| make[1]: *** [buckets/apr_buckets_alloc.lo] Error 1
| /opt/build/bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/x86_64-linux-libtool: line 981: /opt/build/bitbake_build/tmp/sysroots/x86_64-linux//bin/sed: No such file or directory

The solution is to always use /bin/sed for libtool-native.

(From OE-Core rev: 605e4484840e70c64acddb4aa1a3c9fec4078d9d)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Richard Purdie
4c548f17b0 site/x32-linux: Specify double alignment
Double alignment is 8 bytes on x32 but it is defaulting to 4 currently.
This leads to various issues and fontconfig fails to build due to the
mismatch triggering assert failures.

(From OE-Core rev: f2a0784f368fa8a766aae4242a0c187759b35393)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Michael Halstead
7ed7eae878 scripts/qemuimage-testlib: Use wide option to ps calls
Forcing ps to display unlimited column width allows the qemu IP address to
be discovered during sanity testing when the command line is extremely long.

This seems to fix the sanity testing problem on AB05 which was recently updated
to OpenSUSE 12.2. I'm not sure what about qemu or process listing is different
on that distribution but this simpile fix seems to work and my help on other
distro's as well.

(From OE-Core rev: 4cea35cc4e4ed8e68cd117825b1dd4ef1be768c2)

Signed-off-by: Michael Halstead <michael@yoctoproject.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Laurentiu Palcu
f3df2542dd gtk+: use gtk-immodules-cache class
In order to have the proper postinst/postrm scriptlets generated for
gtk+ immodules packages, use the already existing class.

[YOCTO #3853]

(From OE-Core rev: 1c5646dde09008662f064ce7e7400c4d68775278)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Laurentiu Palcu
6cec82faf6 gtk-immodules-cache: add weak asignment for GTKIMMODULES_PACKAGES
This is needed if the GTKIMMODULES_PACKAGES is changed later, in
do_populate_packages for example. This way, we don't have to add another
dumb asignment in the recipe inheriting this.

[YOCTO #3853]

(From OE-Core rev: e9e80eac6ab4982cb42fa2c5403630926351efed)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Laurentiu Palcu
73c1f09373 gnome-keyring: compile schemas on host
gsettings.bbclass offers just that.

[YOCTO #3854]

(From OE-Core rev: 2d5a935b70218335af4859f409b81769c9238db3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:30 +00:00
Laurentiu Palcu
6e0a057f0c librsvg: use the new pixbufcache class
Also, fix the GDK_PIXBUF_QUERYLOADERS path.

[YOCTO #3582]

(From OE-Core rev: 801ca93cbd3e8fd8ce08f72432b6d4c80ed51261)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
c70d167451 gdk-pixbuf: use the new pixbufcache class
[YOCTO #3582]

(From OE-Core rev: f6dce5376894d4ac91f01a85cffc828678695b04)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
2b2416098e Add pixbufcache class
All packages exporting pixbuf loaders should inherit this class in order
to generate the correct postinst/postrm scriptlets.

[YOCTO #3852]

(From OE-Core rev: 61afa98f96f5c62473cb2db383b48d3d23c5d7ac)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
b4c89bdae3 fontcache.bbclass: use the postinst_intercept script
"Link" the package to the postinstall hook by running the
postinst_intercept script.

(From OE-Core rev: a14faa3b9c55574a096d517431393e4ac3c86823)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
ceabaf6265 gtk-icon-cache.bbclass: use postinst_intercept script
Since the hook has been made a standalone script, use postinst_intercept
script in order to "link" the package to the hook.

(From OE-Core rev: d7ddae84165b5b84dc6ac640fd492ade891ddd4e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
5bb362a0ba rootfs_(ipk|deb|rpm).bbclass: check package installation status after ROOTFS_POSTPROCESS_COMMAND
Since the intercept fall-back procedure will change the package
installation status, do the checking after ROOTFS_POSTPROCESS_COMMAND
ends.

(From OE-Core rev: 414c3918baccc2166bba536c956eebaeb49aace3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:29 +00:00
Laurentiu Palcu
6cca7efa6f image.bbclass: add fall-back functionality when running intercepts
If an intercept script fails, it would be helpful to fall-back to
running the postinstall on target's first boot. In order to achieve
that, the postinstalls that install a host intercept hook will have to
return 1, so that the postinstall is marked as unpacked only. If the
intercept hook fails, then we're ok, the postinstalls will be run on
target anyway. If it succeeds, then mark the packages as installed.

This logic was chosen mainly because of rpm backend which saves the
failed postinstalls in /etc/rpm-postinsts. Hence, in order to mark the
packages as installed, all we have to do is delete the scriptlets from
there.

(From OE-Core rev: ed8ac4ee43132ae974794038821f7ca5465ae556)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:28 +00:00
Laurentiu Palcu
7306dbea6d Add separate directory for postinstall intercepts
The scripts/postinst-intercepts will contain all postinstall hooks that
we need to run after all packages have been installed.

If one wants to install such a postinst hook, all it needs to do is put
the hook in this directory and, from the package postinstall scriptlet,
call:
	postinst_intercept <hook_name> <package_name> <var1=...> ...

This will, practically, add the package_name in the list of packages
that need the hook to run and, also, set any variables that would be
needed in the hook. For example, variables like ${libdir}, ${bindir},
etc. that might depend on distribution can be passed on to the script in
this way.

(From OE-Core rev: 0ef538d75c2f3921a2fcbe6ca1deed5525b276cc)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-13 16:52:28 +00:00
emilia.maria.silvia.ciobanu@intel.com
c77e1f4e14 Cleanup of upstream_tracking.inc file
The upstream_tracking.inc file should keep only the names of the packages
that need to be manually checked for upstream versions by the maintainers.
Removed the packages that were moved into other layers and the ones that
are currently reported by the PRS.

(From meta-yocto rev: 3c382b0f13848d363b3589f2023685d240d0cc4e)

Signed-off-by: emilia.maria.silvia.ciobanu@intel.com <eciobanu@yoctoproject.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 16:43:57 +00:00
Anders Roxell
02d2a5e68c distro_check: Remove creation of empty Meego filelist.
This fixes permissions errors when running distrodata.

(From OE-Core rev: c58e6cf352774e147038e6543ac95ab0060f2327)

Signed-off-by: Anders Roxell <anders.roxell@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:44 +00:00
Constantin Musca
604568ca8e mesa: upgrade to 9.0.2
(From OE-Core rev: 7a0eca4379b72981a378ffe62f4e8e3428ee791a)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:44 +00:00
Constantin Musca
656891d019 pixman: upgrade to 0.29.2
obsolete_automake_macros.patch: removed
- included in the new version

(From OE-Core rev: 31fc8a621fbeb4f5bec7c6b6fd03043bb382c34d)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:44 +00:00
Constantin Musca
7d8a50eecc cairo: upgrade to 1.12.12
(From OE-Core rev: d5cd3638d339e2154696792160f93b155cb7b086)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
1c5702f7ab gamin: replace obsolete automake macros with working ones
Add obsolete_automake_macros.patch that replaces automake macros
no longer supported by automake-1.13 with modern constructs.
Removed AM_PROG_CC_STDC. AC_PROG_CC to replace it was already
present.

(From OE-Core rev: 84f083ac3a218513411e7c28edada7a80af8ad8c)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
628fc90d7b diffutils: replace obsolete automake macros with working ones
Add obsolete_automake_macros.patch that replaces automake macros
no longer supported by automake-1.13 with modern constructs.
Removed AM_PROG_CC_STDC. AC_PROG_CC to replace it was already
present.

(From OE-Core rev: 5e1a567872d6967ac4d5b78e9d226161d9651ded)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
311924f506 systemtap: replace obsolete automake macros with working ones
Add obsolete_automake_macros.patch that replaces automake macros
no longer supported by automake-1.13 with modern constructs.
Removed AM_PROG_CC_STDC. AC_PROG_CC to replace it was already
present.

(From OE-Core rev: 3a335af7da5a94249d2f0d49d89cf0c8f180776e)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
41042073b0 libidn: remove help2man dependency
Remove manpage creation. It wasn't working because of help2man
missing when libidn is being built. This attempt to create
manpages without help2man turns from no-op to hard error with
automake-1.13.

(From OE-Core rev: 46a4a696eec4d92beac1072fe6c64da1089c7cf8)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
15b0bdc861 texinfo: remove help2man dependency
Remove manpage creation. It wasn't working because of help2man
missing when texinfo is being built. This attempt to create
manpages without help2man turns from no-op to hard error with
automake-1.13.

(From OE-Core rev: 2c8cebdfd8102d4386b5d42a7fc30cc81e8e2ef2)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Marko Lindqvist
17541bee4f libevent: fix build with automake-1.13
- Add obsolete_automake_macros.patch that replaces automake macros
  no longer supported by automake-1.13 with modern constructs.

- Use of $(top_srcdir) in TESTS is an error causing automake-1.13
  to abort. Disable the tests completely.

(From OE-Core rev: 751b5e76768d9fa4e40405a12ad008aa9af1561d)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:43 +00:00
Stefan Eichenberger
40962b8a48 Write DPKG_ARCH to /etc/apt/apt.conf
Apt does not recognize the architecture if a different one is set with
DPKG_ARCH (e.g. armel). This patch writes the correct architecture to
/etc/apt/apt.conf.

(From OE-Core rev: 81b8c36641994dc7a4e025f2d43f9ce57d04b6f0)

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@netmodule.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:22:42 +00:00
Jason Wessel
c160a98255 relocate_sdk.py: allow relocate_sdk.py to work with python 2.4.x
Avoid the chicken / egg problem of an SDK that provides a working
python but requires that version of python to extract itself.  The
RHEL 5.x systems and some other enterprise Linux systems ship with
python 2.4.x as the default python.  We need to at least be able to
extract work executables even if we never use the the host provided
python again.

(From OE-Core rev: e1d42db8749b0b965ddc6cfba4f3b93ee96ed4f4)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:11:22 +00:00
Jason Wessel
7d023f3b5f populate_sdk_base.bbclass: Improve debugging capabilities for SDK installer
After having to debug the SDK installer a few times in
addition to the relocation code the following patch was created
to improve the capabilities around debugging the SDK installer.

1) Add a verbose mode -D which set a set -x to see what
   the SDK installer is doing.

2) Add a mode -S to save the relocation scripts for the purpose
   of debugging them in conjunction with -D

3) Add a mode -R to not execute the relocation scripts for the
   purpose of debugging the relocations.

(From OE-Core rev: 0e6dd19b9736d2a8ae7c0f0ab124337d579b8f06)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:11:21 +00:00
Jason Wessel
3eb70c067c relocate_sdk.py: Fix corruption of sdk binaries
There are two cases of corruption that the relocate_sdk.py was not correctly
dealing with.

1) SDK Extras should be left alone
   Extra external binaries included in an SDK that were linked against the
   host's version of /usr/lib/ld-so.so should not get a relocation applied.
   In the case that was discovered these were LSB compliant binaries that
   already worked on many hosts.

2) If the interp section is too small generate an error
   In the case of the qemu user code, it was using its own .ld file
   to link the executables which overrides the default in the nativesdk
   binutils.  This generated host executables which had a interp section
   that was too small to relocate.

   Now the relocate_sdk.py will print an error and continue on such that
   the error can be fixed by a developer without having to do the
   difficult task of debugging why it is crashing or not loading correctly.

(From OE-Core rev: 3752a9c6d772b39bbe04d62ef4d3527b4c7198c1)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-12 13:11:21 +00:00
Darren Hart
54728735d6 meta-yocto: Document new oe-git-proxy in site.conf.sample
The new oe-git-proxy.sh should address all git proxying needs. Document
its usage in meta-yocto/conf/site.conf.sample and remove references to
the old mechanisms.

V2: Separate out the meta-yocto changes from the oe-core changes

(From meta-yocto rev: 4be5040a4d0b0fee0118ce31b233c666b8708b6a)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:04 +00:00
Darren Hart
2df83a53ba oe-git-proxy*: Remove previous git proxy solutions
The new oe-git-proxy should address all git proxying needs, remove
the previous scripts.

V2: Separate the removal of the old scripts into their own patch

(From OE-Core rev: 75738ac47b9ca11daa94820c9c5f829937397da7)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:04 +00:00
Darren Hart
9902eb341a oe-git-proxy: Use socat instead of BSD nc
BSD nc was commonly available on the current distros until Fedora 18
appears to have dropped it. socat appears to be a reasonable replacement
with availability on Fedora and Ubuntu and going back some time as well.

Update the script to use the socat syntax.
Simplify the logic a bit by using exec for the no-proxy-needed cases.

(From OE-Core rev: 795b1ea370b8a1d9152c171a50e80bd0b4b8dc60)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:04 +00:00
Darren Hart
0c988bfbb2 oe-git-proxy: Add a new comprehensive git proxy script
oe-git-proxy.sh is a simple tool to be used via GIT_PROXY_COMMAND. It
uses BSD netcat to make SOCKS5 or HTTPS proxy connections. It uses
ALL_PROXY to determine the proxy server, protocol, and port. It uses
NO_PROXY to skip using the proxy for a comma delimited list of hosts,
host globs (*.example.com), IPs, or CIDR masks (192.168.1.0/24). It is
known to work with both bash and dash shells.

V2: Implement recommendations by Enrico Scholz:
    o Use exec for the nc calls
    o Use "$@" instead of $* to avoid quoting issues inherent with $*
    o Use bash explicitly and simplify some of the string manipulations
    Also:
    o Drop the .sh in the name per Otavio Salvador
    o Remove a stray debug statement

V3: Implement recommendations by Otavio Salvador
    o GPL license blurb
    o Fix minor typo in comment block

(From OE-Core rev: 62867f56da0e0904f0108f113324c2432659fbac)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Cc: Otavio Salvador <otavio@ossystems.com.br>

git-proxy cleanup

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:04 +00:00
Darren Hart
c7c9f6c1fc base.bbclass: Remove generate_git_config()
git no longer supports the use of GIT_CONFIG which defeats the purpose of
GIT_CORE_CONFIG and the generate_git_config() function. Remove it.

(From OE-Core rev: c485322fa2b89eb90efd88969d0c73575f128af7)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:03 +00:00
Darren Hart
ebc4a61b2c oe-buildenv-internal: Add upper and lower case proxy vars to BB_ENV_EXTRAWHITE
Applications are inconsistent in their use of upper and lower case proxy
variables. Curl, for example, specifies NO_PROXY (not no_proxy) in the
man page (changed in 2009 [1]). Avoid proxy issues by ensuring both the
upper and lower case versions of each proxy variable are available in
the environment for the fetcher commands.

Add FTPS_PROXY and ftps_proxy to the list as well.

1. http://curl.haxx.se/mail/tracker-2009-04/0012.html

(From OE-Core rev: 684c6512850ceb108e52af634be98eaacb8351e1)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:03 +00:00
Darren Hart
e1fb5a9022 oe-buildenv-internal: Remove GIT variables from BB_ENV_EXTRAWHITE
The following variables perform no function outside of bitbake:

    GIT_CONFIG
    GIT_PROXY_HOST
    GIT_PROXY_PORT
    GIT_PROXY_IGNORE

GIT_CONFIG only affects the git-config command which is not relevant to
the fetcher. This was previously used with the OE GIT_CORE_CONFIG
variable which would provide a basic git config to use instead of the
user's config. This usage was deprecated by git for over a year now:

http://git.661346.n2.nabble.com/Overriding-gitconfig-using-GIT-CONFIG-td6680977

GIT_PROXY_HOST and GIT_PROXY_PORT are not used by git.

GIT_PROXY_IGNORE was an OE construct used to create the custom git
config and had no meaning outside of the OE environment. It is not used
by git.

Remove these variables from the fetcher environment.

Users wishing to configure git to work with a proxy should define the
GIT_PROXY_COMMAND environment variable to use an external script.
NO_PROXY can be used within this script to skip the proxy for certain
hosts.

(From OE-Core rev: ea0284a8cc1b531e115b7fdbfa18852f55573f00)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:54:03 +00:00
Paul Eggleton
e6053e55f4 qt4: use system SQLite
We've always been depending on external SQLite, however by default Qt
builds using its own internal copy of SQLite. Add the configure option
to actually use the external SQLite library and make it clearer which
version is in use.

Fixes [YOCTO #2514].

(From OE-Core rev: 33e0afd2fffdef4dccfce6383bc646f975972b1e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:49:49 +00:00
Constantin Musca
5f05604cdf gcc-cross-canadian: enable multilib support
(From OE-Core rev: ee7331e3e7d0b38f3e19ccf7e394537f5f653a22)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:49:27 +00:00
Constantin Musca
e9aa4c22d6 multilib.bbclass: save multilib variables before executing the gcc-cross-canadian statements
(From OE-Core rev: 45528026c190c7c3b121e9fb65747d050b2bb21a)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:49:26 +00:00
Ross Burton
2c87657be9 systemd.bbclass: use PACKAGESPLITFUNCS instead of populate_packages_prepend
This is cleaner and leads to more accurate profiles.

(From OE-Core rev: eed7294ba9aedf47af5c64ff11777015e59f48ef)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:48:50 +00:00
Ross Burton
ce3d50899d fontconfig: rename the patches directory
Rename the patches directory to files as we only have one version of fontconfig,
so the hassle of moving these files every upgrade can be avoided.

(From OE-Core rev: 67a279f517fc43e418482cc104458875264141f6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:48:50 +00:00
Ross Burton
e767a2f74d fontconfig: drop explicit -native recipe
Instead, use BBCLASSEXTEND=native in fontconfig.

We can drop the installation of fc-lang/fc-glyphname, they are not used by
fontconfig's build anymore as it ships the generated files in the tarball.

(From OE-Core rev: d5ccc6cbbbdc7502d35ddcbbc2bfc2d4657cbe78)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:48:50 +00:00
Ross Burton
556217d482 fontconfig: remove unexplainable and broken build tweaking
The build flag twiddling in do_configure_append was unexplainable and clearly
wrong (native flags for a cross build), remove it all.

Parallel make appears to be working now, so enable it.

The tarball doesn't contain read only sources, remove the unpack hacking.

The pkgconfig doesn't need patching as the freetype link lines are the same.

Don't need to specify where freetype is, it's found automatically.

Merge fontconfig-util-dbg into fontconfig-dbg.

Don't export HASDOCBOOK, --disable-docs is sufficient to turn off documentation
building.

(From OE-Core rev: ba3db5f5e7055d597b21d8b5f8e60bc3c4f12bd2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:48:50 +00:00
Enrico Scholz
8c22531e49 lib/oe/path.py: support missing directory components in realpath()
Some use cases in OE operate on symlinks which dangling path components.
Assume that these are directories instead of raising ENOENT.

(From OE-Core rev: a96e2c84f24c15b77ee1fbc1f998b8b4796b8664)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:45:25 +00:00
Enrico Scholz
d518019d6c package.bbclass: support dangling path components
Commit ec2aab09769f4b6817d74d2175afa2b7c7598750 introduced a regression
on packages which contain symlinks with unresolvable path components
(e.g. lsof-dbg).  While assigning a variable, an exception was raised
and the exception handler accessed this variable.

Patch deals both with the dangling path components by assuming them as
valid directories and by avoiding the broken assignment.

(From OE-Core rev: 579369b0fb27fad6d628746a50b9b798078500f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 22:45:25 +00:00
Björn Stenberg
00a2411470 libiconv: Remove RPATH from binaries
Modify libtool to not add RPATH.
This solves https://bugzilla.yoctoproject.org/show_bug.cgi?id=2669

(From OE-Core rev: 273c437813b19577d68fa49ec04ea42154ad70c9)

Signed-off-by: Björn Stenberg <bjst@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 15:41:20 +00:00
Björn Stenberg
f9b894eaba glib-2.0: Fix ptest to build with uclibc.
Only install eglibc-specific dependencies when building for eglibc.
Tweak a test case that won't build with uclibc.

(From OE-Core rev: e28e04e26893416d577ee54e03019c03865e1bf6)

Signed-off-by: Björn Stenberg <bjst@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 15:41:20 +00:00
Enrico Scholz
21b6ff9bc3 lib: implemented oe.path.realpath()
Various parts of the buildsystem have to work with symlinks. Resolving
them is not trivial because they are always relative to a sysroot
directory.

Patch adds a function which returns the destination of a symlink by
assuming a given path as the / toplevel directory.  A testsuite was
added too.

(From OE-Core rev: 76e0bd7f8e3a3bd052a6e329f88e2d8099e899c4)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Enrico Scholz
f2e16c6552 package.bbclass: use oe.path.realpath()
oe.path.realpath() provides are common and more correct implementation
for resolving symlinks within sysroot. Use it.

Old implementation suffered from lot of problems; e.g.

* redundant code

* calls 'os.stat()' which references files on host; this can give wrong
  results about existing/non-existing and can cause EPERM (instead of
  the catched ENONENT) exceptions

* does not deal with special cases like '..' leaving the sysroot.

(From OE-Core rev: ec2aab09769f4b6817d74d2175afa2b7c7598750)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Enrico Scholz
a09c5d6673 update-alternatives.bblcass: use oe.path.realpath()
oe.path.realpath() provides are common and more correct implementation
for resolving symlinks within sysroot. Use it.

(From OE-Core rev: 2fa5cc0d08e855e24a4497601d7cc73b9f2aa550)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Jason Wessel
1a80329b3f ncurses.inc: Fix display corruption and add fallback for sstate compiled paths
CQID: WIND00402979

Display corruption was occurring on 64 bit hosts using menuconfig for
the kernel and busybox with the ncurses-native or ncurses-nativesdk
because the configure arguments were not sufficient vs the expected
use from the upstream source.

Also changed in this commit is to provide a fallback to the hard
compiled paths for the terminfo and termcap.  Eventually this needs to
be fixed another way if we want a truly portable SDK because any SDK
that is relocated or native binaries pulled out of the sstate can end
up referencing terminfo files that no longer are in the same location.
Because the host system has terminfo files that ncurses will happily
use we might as well have a fall back to buy some time for a better
fix, vs having thing just not work occasionally when using sstate.

(From OE-Core rev: c820ae11ce369002063bad8b11ee95e1882c99bb)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Radu Moisan
de160bc792 wpa-supplicant: Enabling with systemd
(From OE-Core rev: bd1e384017954e883f56379560afc2f9947ebbd6)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Radu Moisan
7c8160ccbe connman: Enabling with systemd
(From OE-Core rev: 352b3e3663fc4ccab2d8240176f4b085db726e82)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Sander van Grieken <sander@outrightsolutions.nl>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:11 +00:00
Ross Burton
3936cef145 update-rc.d: don't do anything if systemd.bbclass is inherited
We need the update-rc.d class to work when systemd is being used so that
packages that only have SysV init scripts still work.  However if a recipe
supports both we don't want to install SysV and systemd files under systemd.

To solve this, before doing real work in update-rc.d check if the systemd class
has been inherited and don't do anything if it has.

(From OE-Core rev: 0273a22fec3c9360df2510b759c5bf9af610551f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Radu Moisan
aaa915bf12 avahi: Enabling with systemd
(From OE-Core rev: 6d89c6744a98dce1fee6a21f1dad1305f6bf6fb5)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Sander van Grieken <sander@outrightsolutions.nl>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Ross Burton
66af82eab3 systemd.bbclass: helper class for recipes with systemd units
This class adds postinst/prerm scripts to start/stop/enable/disable the services
as relevant, and some magic to ensure the service files are installed.

Based on (but not the same as) the systemd.bbclass in meta-systemd, so thanks to
the following for their work there:

Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Khem Raj <raj.khem@gmail.com>
Martin Jansa <Martin.Jansa@gmail.com>
Andreas Müller <schnitzeltony@googlemail.com>
Koen Kooi <koen@dominion.thruhere.net>

(From OE-Core rev: f4bf51612f8be1d3dd340fc456f3fa08fcfa34ef)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Khem Raj
05ee8bc4d5 nfs-utils: Create the default statdpath
packaging these extra directories is needed
Otherwise rpcbind wont start as it
expects /var/lib/nfs/statd to exist.

This fixes the issue where automounter fails
to mount since rpcbind did not start correctly

Failed to open directory sm: No such file or directory

(From OE-Core rev: edd7b7f9f1cea921bdc9480c2a120f6abc6b0c9c)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Paul Eggleton
f7273d122b buildhistory: record more R* variables
Add RPROVIDES, RREPLACES, RCONFLICTS and RSUGGESTS to the list of
tracked variables. Of these, RPROVIDES is always output, whereas the
others are only output if they have a value (since it is more common
that they don't).

Implements [YOCTO #3391].

(From OE-Core rev: 564d76bed7b96d381d6438df81c0d5b4f5a7b2b0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Paul Eggleton
98755bd799 buildhistory_analysis: handle more R* variables
Report changes to RPROVIDES, RREPLACES, and RCONFLICTS. As RSUGGESTS
isn't widely used and isn't of huge concern if it changes, it is not
reported by default.

Implements [YOCTO #3391].

(From OE-Core rev: d20011571db96da79a8a0e056c6cef8e4c083608)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Paul Eggleton
0d85fa531b python-smartpm: show friendly error if YAML output requested without PyYAML
Instead of a python backtrace, tell the user they need to install PyYAML
if they wish to use the --yaml output options.

Fixes [YOCTO #3768].

(From OE-Core rev: 69caf24112c11609eb351bea09817029bca0ff2e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:10 +00:00
Ross Burton
06e245303c runqemu: add option to make the VNC server publically available
If the qemu is running on a headless machine, a VNC server that only allows
connections from localhost isn't too useful.

Add a "vncpublic" option to bind a VNC server to 0.0.0.0, so it's publically
available.

(From OE-Core rev: 883666821ec46483bbfb9b3cb84c5afa8118a553)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:09 +00:00
Colin Walters
42f221f297 make-3.82: Add patch from git to fix parallel make race
See: http://savannah.gnu.org/bugs/?30653

This only shows up for projects which have a number of intermediate
targets.  For me, systemd fails to build without this patch, and does
build consistently with it.

WebKitGtk+ is another known affected project.

(From OE-Core rev: 1747a70f95ead49985eeaf16c28e818ed5b109cd)

Signed-off-by: Colin Walters <walters@verbum.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:46:09 +00:00
Andrei Gherzan
cf8d4f7cc8 udev: Cleanup .inc file
* udev-acl and udev-concolekit have no files so remove these packages
* there's nothing in sbindir so remove useless sbindir = "${base_sbindir}"
* there is no udevinfo or udevtest so remove these from udev-utils
* udevadm is installed in bindir so modify it's path in FILES_udev-utils

(From OE-Core rev: 25e01e11586f422f3659318796cb847cb701b03e)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:32:18 +00:00
Andrei Gherzan
aac88707fe udev: PR bump
(From OE-Core rev: 098134533650ba16ec5eb03e7c604af43652e7bc)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:32:18 +00:00
Andrei Gherzan
bee0b38726 udev: Modify init script to use the correct path of udevadm
udevadm is installed in /usr/bin not in /usr/sbin. Init script modified
accordingly.

(From OE-Core rev: b8ba1e3db44d2443e0071d4923101280151ccd03)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 14:32:18 +00:00
Ross Burton
3085f02835 distro: remove orinoco-conf
(From meta-yocto rev: 711aac2c293b4d3c53a1d1b34639645118133744)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 11:11:27 +00:00
Ross Burton
78a1de8e56 distro: remove clutter-box2d
(From meta-yocto rev: 217d76f2a308642c81367355d25ff812f88ea59e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 11:11:27 +00:00
Ross Burton
13bc04a179 distro: remove matchbox-stroke
(From meta-yocto rev: e80b0169e26bb84c95374e2d065f774c027da289)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 11:11:26 +00:00
Richard Purdie
b6d8f96ee5 bitbake: bitbake/utils: Improve environment handling to allow UIs access to original environment
We need to empty out the environment whilst we build the cooker but
we need the environment for the UIs since hob uses DISPLAY and other
session variables.

This patch adapts the utils functions to return removed environment
components so we can reinject them for use by the UI, allowing hob
to work again.

(Bitbake rev: fc330d810099c57fefd4e706159a73ad8401d97c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-11 11:11:26 +00:00
Richard Purdie
20b4dcace2 dbus-native: Don't install dbus-launch
dbus-launch from dbus-native has no X support so lets not install it in
case the host has a more featured and useful version. It can interfere
with running X utils with STAGING_BINDIR_NATIVE is in PATH and we don'
use it anywhere.

(From OE-Core rev: adfa83bfa1ccb52b1a5d086aff36fe27271d0e59)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:38 +00:00
Richard Purdie
decf46bd78 dbus: Drop old 1.5.12 version
We have a newer default version...

(From OE-Core rev: 1ffa1b1b23cbd7fbcfe95abc6c045eef93f96f2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:38 +00:00
Jesse Zhang
a38e4d91cf udev: Add start/stop/status/restart support to init script
[ CQID: WIND00388860 ]

Add the ability to use "stop", "start", "restart" and "status"
with the udev initscript.

(From OE-Core rev: bc6193824ec3eb1f3c590a93ccb79c8588b74412)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:38 +00:00
Jesse Zhang
2e913bc62a initscripts: Add status function to /etc/init.d/functions
[ CQID: WIND00388860 ]

Many initscripts want a simple way to display status information.
Add the 'status' function to the functions file.

(From OE-Core rev: adcb39845b6d3af9472fa5051a1d918344eb6bda)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:38 +00:00
Xin Ouyang
9a7b076176 libcgroup: fix failure for absolute path
[ CQID: WIND00401091 ]

While using sstate or some other conditions, there may be no image
directory in the builddir, so the absolute path of libcgroup.so.1
will cause build failures.

(From OE-Core rev: 0b58d98567a1c0531ad8396c4464402da21a9665)

Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:38 +00:00
Jim Somerville
20d88ff7e2 rt-tests: fix cyclictest reported 1 sec latencies
[ CQID: WIND00391769 ]

Huge latencies reported close to 1 second when certain options
are used in cyclictest.

Extend the original commit to remove the 1 second hardcoded
timer values from the RELTIME and ITIMER options.  Use the
the actual interval instead.

(From OE-Core rev: d1a3f3e2a6a74ba9b7ad5554648faebaf1b73c9f)

Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jesse Zhang
0ad5e67537 coreutils: remove dependency on coreutils-native
[ CQID: WIND00397793 ]

It's not reasonable to build such a low-level package. Remove the
dependency so that we always use the host version.

The 8.14 recipe doesn't have such dependency so needs no change.

(From OE-Core rev: 194c902c28291d564cef71bdd9588afa5b72d9f5)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jason Wessel
eef73b4489 eglibc-nativesdk: Fix buffer overrun with a relocated SDK
When ld-linux-*.so.2 is relocated to a path that is longer than the
original fixed location, the dynamic loader will crash in open_path
because it implicitly assumes that max_dirnamelen is a fixed size that
never changes.

The allocated buffer will not be large enough to contain the directory
path string which is larger than the fixed location provided at build
time.

(From OE-Core rev: 8ebd85d29eb1a9c0c0d3cd79e7dda8b857c27bbb)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jesse Zhang
981bd3a297 ghostscript: fix endianness detection
[ CQID: WIND00394747 ]

The original patch removes endianness detection completely, causing lcms
to be built against the wrong endian. Instead, pass the correct endian
through the recipe using SITEINFO_ENDIANNESS.

(From OE-Core rev: 0a07ec7d13becc7ce87c502e75a006300a7090a5)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Randy MacLeod
858646c7bd openssl: Add mips64 configure support.
Add mips64 configure support but assume mips(32) userspace.

(From OE-Core rev: 7d775b071b902ee0de6391b2c30d36e3003643e1)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jesse Zhang
b320c22ee6 libart-lgpl: add art_config for mips64/mips64el
[ CQID: WIND00389505 ]

Generated by gen_art_config.sh

(From OE-Core rev: e900b4a37a12f15a2e734d86984fc613540890f7)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jesse Zhang
3fd9c5636a ghostscript: add pregenerated objarch for mipsel/mips64/mips64el
[ CQID: WIND00389504 ]

Generated by building and running base/genarch.c.

(From OE-Core rev: 78a13ba170c1de6d7ef077854e3e34e18d17099f)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:37 +00:00
Jackie Huang
fa6c12da8c populate_sdk_base.bbclass: add execution permission for self-extracting archive
[ CQID: WIND00392947 ]

It is not good user experience that the self-extracting archive (.sh file)
has no execution permission by default.

(From OE-Core rev: 3d6537f6ab1ce98075461b9a5d49885c2454417f)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
David Nyström
82b2679d2c scripts/create-recipe: Bugfixes for create-recipe easy_install handling.
1. Tell easy_install to always download, regardless of python
   install content.
2. Support https/ftp et.c. URLs provided by easy_install

(From OE-Core rev: 18e3654894175af0f51049cf2dcf42295bfbc905)

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Martin Jansa
9ea8828fe4 qemu: disable smartcard support
* sometimes it's autodetected and fails to build:
  | /usr/bin/ld: libcacard/.libs/cac.o: Relocations in generic ELF (EM:40)
  | libcacard/.libs/cac.o: could not read symbols: File in wrong format
  | collect2: ld returned 1 exit status
  | make[1]: *** [libcacard.la] Error 1

(From OE-Core rev: acb0e56d79cfaa606ccd0a075a7c78ede172da86)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Saul Wold
d69d193a96 Revert: update-rc.d: disable update-rc.d.bbclass when systemd enabled
This was just wrong - when systemd is being used there'll still be packages that
use SysV-style init scripts, which systemd supports fine.

This reverts commit b94227f729.

(From OE-Core rev: 3f50b61c77406f87d36437cca53573f86f314641)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Holger Hans Peter Freyther
2d35828af0 systemd_197.bb: Point to the place where we keep the /etc/rcN.d files
By default /etc/rc.d is searched by systemd but we will keep rcN.d directories
inside /etc.

(From OE-Core rev: 659b146ef51c4873c67f227bd39f2368c28a022b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Peter Seebach
7ee057911f pseudo.inc: Fix sqlite libdir again, pseudo 1.4.3
This updates to pseudo 1.4.3. Changes:

1. A couple of minor tweaks to reduce difficulties using SDKs built
   on slightly more recent machines on older machines; specifically,
   avoiding getting @GLIBC_2.7 symbol references for sscanf(), fscanf(),
   and open2().
2. Revision of the logic determining the library directory to use for
   sqlite's library files.

The latter is a source of difficulty because it's come up a few times
that we may want pseudo to use lib64 for libpseudo.so, but bitbake's
usual setup would have libsqlite3.a in lib regardless of bit width.
Cleaned up previous design a bit by providing a distinct setting for
sqlite-lib, which defaults to the same library directory used for other
things. Adjusted build to use this new setting. (This ends up being
${baselib}; on targets, that might not be lib, but for native builds
it generally is, and for SDK builds it appears to do the right thing.)

Testing: Successful build of meta-toolchain for both 64-bit and 32-bit
SDKMACHINE, and builds with NO32LIBS = "0" also succeeded. Also builds
for multilib targets.

(From OE-Core rev: ae8811bb26fba2e71d7280f6d6c4f5cec6a2871b)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Bernhard Reutner-Fischer
dab4662822 create-pull-request: Error message on missing -u
The script was erroring out without a hint on what failed.

(From OE-Core rev: 72266cfa3a12a19a94d9176ecca9d080658dbf2e)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:36 +00:00
Bernhard Reutner-Fischer
81117fd2fa base.bbclass: remove redundant setting of MAKE
oe_runmake() tried to set MAKE a second time, remove it since this is
(nowadays?) redundant WRT the normal export MAKE= in the generated
scripts.

(From OE-Core rev: b9c83b22b555349314191ba60346b01a9252a812)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:35 +00:00
Bernhard Reutner-Fischer
2e5b6a6b2f uclibc: turn on kernel module support
(From OE-Core rev: 14c08a97949b3a05221a556902fd7fb868d1f843)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:35 +00:00
Bernhard Reutner-Fischer
b22852135e uclibc: add c6x arch
(From OE-Core rev: 4f6f4a621a16d79830ba3b417f66c9aa44c89d55)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:35 +00:00
Bernhard Reutner-Fischer
736383a6be base.bbclass: Commentary typo fix
(From OE-Core rev: 3f0c1f6f001bbe958a0589da7db52f96a2d9d369)

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-08 14:50:35 +00:00
Tom Zanussi
b07759a202 yocto-bsp: prepend includes in machine.scc files with machine
The names of the -user files were changed to have the machine
prepended, but the includes weren't - fix the includes.

(From meta-yocto rev: c430d6a0d126df7a51c0f585665de6aebbeac028)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 22:59:47 +00:00
Laurentiu Palcu
8c263420ed qemu.bbclass: fix segfaults when running through pseudo
qemu user binaries sometimes segfault when running them through pseudo.
So, set PSEUDO_UNLOAD to 1 before running any qemu binary.

[YOCTO #3788]

(From OE-Core rev: 688e9485980de0f29aa00e24ce53a3efd3a3a7cc)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 16:50:47 +00:00
Richard Purdie
9f5a6f89d9 qemu.bbclass: Use the correct qemu binary in multilib cases
For example with a lib32 multilib, we need to still use the 64 bit
qemu binary in case we do encounter a 64 bit binary.

(From OE-Core rev: e8ec13a26217bf473504ae4aab22b134dd9dffff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 15:25:07 +00:00
Richard Purdie
c920f1a7cc image.bbclass: Add MLPREFIX to DEPENDS
Add MLPREFIX to DEPENDS to ensure the correct qemuwrapper is dependended upon. Its searched
for in PATH so we need to do this to ensure the correct version is present.

(From OE-Core rev: 41163fc5e6662251ec264fd5194a649342d11de1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 15:25:06 +00:00
Richard Purdie
14fa964bbf qemuwrapper: Don't use STAGING_BINDIR_CROSS directly
We need the files to be tracked by sstate so we need to jump through
some hoops to ensure this happens. The cross bindir directory
isn't staged automatically so we need to handle this outselves.

(From OE-Core rev: 743d5233747d0a107490b31ea3da151ea1ace3ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 12:59:15 +00:00
Richard Purdie
5db5904614 sanity.bbclass: Check for DISPLAY for qemutests in BB_ORIGENV now
(From OE-Core rev: e43f8f917e4069d74b467dfd6aa29ff762e83a5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 09:17:44 +00:00
Richard Purdie
a0ef94d3ae directfb: Really disable mesa
Mesa was disabled in the .inc but not in the main recipe where a separate
EXTRA_OECONF is used. Fix disabling mesa there too to avoid build failures.

(From OE-Core rev: 722a5eaa6bed6ab8c8a1caa066cd2eba7acda5ee)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 09:11:12 +00:00
Richard Purdie
8f476a75dc poky: Enable pkgvarcheck warnings
(From meta-yocto rev: 06578505d53ecfc072228a882abcd390fc86410b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-07 00:55:48 +00:00
Richard Purdie
1ef926cf78 bitbake: prserv/serv.py: Fix logging in daemon mode
In deamon mode we need to ensure the logging module is sending log data to the
log file. These changes ensure this happens correctly.

(Bitbake rev: bb53b47710ca4579e20284668cb354f734c3d502)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:45:36 +00:00
Richard Purdie
bdfc5207a0 bitbake: bitbake: Always use separate process for PR Service
Using the threading module interacts badly with multiprocessing used elsewhere
in bitbake under certain machine loads. This was leading to bitbake hanging on
Ctrl+C when the PR Server was being used.

This patch converts it to always use the daemonize code which
then means the threading code isn't required.

[YOCTO #3742]

(Bitbake rev: 2d0bbd9398ab839bd2d1e29e50b25d52efb1ce2a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:45:36 +00:00
Richard Purdie
afd24faa00 imagetest-qemu: Adapt to bitbake environment changes
Load environment variables like DISPLAY from BB_ORIGENV after recent
bitbake changes.

(From OE-Core rev: 8ad8b34b5ac36d805bb10c120f3388e7dce83b98)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:41:20 +00:00
Richard Purdie
fef84540e3 terminal.bbclass: Use BB_ORIGENV to restore user environmental variables
(From OE-Core rev: 131643695d7ba9d0c32bf8e192e7e3942f50f318)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:41:20 +00:00
Richard Purdie
bc2b60c021 bitbake.conf: Update hashconfig after BB_ORIGENV changes
We should ignore BB_ORIGENV from the hash for the config data. There
are also a number of variables which no longer make it into the data
store so we can drop these from the hash whitelist.

(From OE-Core rev: cb21af00f9321ea48e533089dbffbb1a9665cb92)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:37:10 +00:00
Khem Raj
43bc21462b package.bbclass: Replace undefined 'src' with valid variable
After rewrite of split_and_strip_files src var is no longer
available here where it is used so we should replace it with
a valid value

(From OE-Core rev: b07e79ea049d341a5a0a7e4bb72151f49336c5bc)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 23:37:10 +00:00
Richard Purdie
7980773d90 package.bbclass: Ensure package_get_auto_pr is run at the correct point
This needs to run before PKGR and other variables using PRAUTO are used,
including the expansion optimisations.

(From OE-Core rev: eb09ebc9680eb50e23778dcc1c2697d13cf073ae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 16:52:20 +00:00
Martin Jansa
3b39e5307c bitbake-prserv-tool: show error when export file does not exist
* otherwise it shows error about failing import

(From OE-Core rev: 65b2f068719f4cd6e1bd438e8714c2977bd93535)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 16:52:19 +00:00
Richard Purdie
2180cc32b9 initiscripts: Fix populate-volatiles.sh whitespace
(From OE-Core rev: d69935fbef2b5a8b187e58ac5ade0ffb9f95f803)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 14:44:49 +00:00
Martin Jansa
56bc2bb95a insane.bbclass: Add missing R* variables to pkgvarcheck
* check also RSUGGESTS, RCONFLICTS, RPROVIDES, RREPLACES

(From OE-Core rev: 63d9926dde562fd2447fc26482745c3b6f232c12)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 14:44:49 +00:00
Martin Jansa
8868530933 libxscrnsaver: improve RREPLACES to add libxss only for PN
(From OE-Core rev: 0bb5572536a39fabd29c307004e76202afd5b6b4)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 14:44:49 +00:00
Ross Burton
20dc0fcd76 connman: be explicit when enabling ofono
(From OE-Core rev: 9c5fa8da28f86e88327356e784f2bb8281da2cca)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 14:44:48 +00:00
Martin Jansa
451f2d083d package.bbclass: return list of packages created in do_split_packages
* sometimes it's useful to do something with packages created
  by do_split_packages later in do_package_prepend, e.g. in:
  http://lists.linuxtogo.org/pipermail/openembedded-devel/2013-February/043824.html
  I have .bbclass which adds some postinst, postrm and RDEPENDS,
  but ttf-mplus is using do_split_packages to create those packages

(From OE-Core rev: 5aa52c6882d2929b2e530c4fa297c6d3e97d4f9f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:16:51 +00:00
Richard Purdie
ccde53bfa7 sanity.conf: Update minimum bitbake version
We need this for the multiprocessing pool issues in python < 2.7.3 whic
we now use in do_package.

(From OE-Core rev: 027dc0ec80b570c79f4adb0deabb63bcf3c49b78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:14:31 +00:00
Richard Purdie
945cd710cb bitbake: Update version to 1.17.0
(Bitbake rev: d96ef9398356b2a61f7cff765821616bf1e55492)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Darren Hart
fe84fe0209 bitbake: fetch2: Remove broken git variables from the environment
The following variables perform no function outside of bitbake:

    GIT_CONFIG
    GIT_PROXY_HOST
    GIT_PROXY_PORT
    GIT_PROXY_IGNORE

GIT_CONFIG only affects the git-config command which is not relevant to
the fetcher. This was previously used with the OE GIT_CORE_CONFIG
variable which would provide a basic git config to use instead of the
user's config. This usage was deprecated by git for over a year now:

http://git.661346.n2.nabble.com/Overriding-gitconfig-using-GIT-CONFIG-td6680977.html

GIT_PROXY_HOST and GIT_PROXY_PORT are not used by git.

GIT_PROXY_IGNORE was an OE construct used to create the custom git
config and had no meaning outside of the OE environment. It is not used
by git.

Remove these variables from the fetcher environment.

Users wishing to configure git to work with a proxy should define the
GIT_PROXY_COMMAND environment variable to use an external script.
NO_PROXY can be used within this script to skip the proxy for certain
hosts.

(Bitbake rev: e60270bdce6b8c2f8da1a4838aa374da9db3c86a)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Darren Hart
3863dfce62 bitbake: fetch2: Export upper and lower case environment variables
Applications are inconsistent in their use of upper and lower case proxy
variables. Curl, for example, specifies NO_PROXY (not no_proxy) in the
man page (changed in 2009 [1]). Avoid proxy issues by ensuring both the
upper and lower case versions of each proxy variable is available in the
environment for the fetcher commands.

Add FTPS_PROXY and ftps_proxy to the list as well.

1. http://curl.haxx.se/mail/tracker-2009-04/0012.html

(Bitbake rev: c3e6b2c5ec81d5ad7dcf606fff16fd5552bd267c)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Richard Purdie
6fecb1a3e0 bitbake: cooker/utils: Drop custom 'interactive' variables list and store environment in BB_ORIGENV instead
Maintining hardcoded lists of user environmental variables is hacky,
replace these with the savedenv datastore. Allow access to that
through the BB_ORIGENV variable.

(Bitbake rev: 0a99563a4ea270594fd9a61da46f9387fb79dc66)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Richard Purdie
1f192a7ade bitbake: compat/utils: Add copy of python multiprocessing pool for pre 2.7.3 issues
python 2.7 shows hangs with issues in its pool implmenetation. Rather than
try and hack around these, add a copy of the working pool implementation
to the compat module from 2.7.3.

(Bitbake rev: c9eb742637131e8dbd526d2ad9b458abea0a2d87)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
David Nyström
bc8150d9d4 scripts/create-recipe: Python improvements for create-recipe.
1. Added ability to parse .zip files.
2. Added optional automatic dependency resolving for python
   recipes(easy_install wrapper).
3. Fixed a few name/version bugs.

Give it a whirl by:
create-recipe -r https://launchpad.net/nova/folsom/2012.2.3/+download/nova-2012.2.3.tar.gz

Saves me some time unwinding python dependencies, and creating template recipes.

(From OE-Core rev: 1a491a4dde0d3618f8815182d12c21f76b64de5a)

Signed-off-by: David Nyström <david.nystrom@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Richard Purdie
5b7c822609 package.bbclass: Pre-expand some variables to save time
(From OE-Core rev: fc5bff0145d8f5db1c09be61f5de209ac4016ed1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Richard Purdie
78955b837c package.bbclass: Better document the different phases of operation
Add headers to document the different phases of do_package and
make the steps clearer.

(From OE-Core rev: b6438c94035a014902ec89af63ff3787cd8c67f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:01 +00:00
Richard Purdie
4cae28e309 package.bbclass: Add PACKAGESPLITFUNCS variable
Prepending to populate_packages is rather ugly and means its hard to trace
errors and also profiling informaiton is summed together in one function.

This patch starts to split out the prepends to become separate functions
to avoid these issues. This is generally a neater way to write functions
than prepending to where there can sometimes be variable scope issues
and we've been bitten by whitespace issues in the past.

(From OE-Core rev: 4f9963d1d82ee896fe9491d6a8b32be42cd06f14)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
1c906e7643 package.bbclass: Simplify empty directory removal
Rather than an exec() per directory, we might as well exec one command and
be done with it.

(From OE-Core rev: 82ae9cfb09ee5c0aa6402c972d71e2b64d1ce8bc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
48f8eece27 package.bbclass: Various minor performance tweaks
* Call getVar outside the loop
* Drop unneeded PATH export (bitbake does this already)
* Drop unused variable
* Simplify if statement nesting
* Simplify variable expandion to a getVar call (expand would just call getVar)

(From OE-Core rev: 52b506145bcddc133ca93a8c9f7343de69d10907)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
ee5e443dba package.bbclass: Make use of cleandirs and dirs function flags
We can use the cleandirs and dirs flags for the fuctions to handle
directory cleaning and creation at the bitbake level rather than
using these calls within the functions

(From OE-Core rev: 4b31d6f6f0a2a6b9e504ffae0d3b2099cbd7dddc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
88badcf7eb kernel.bbclass: Improve populate_packages_prepend
Small performance tweaks for populate_packages_prepend:

* Compile the regexps once at the start
* Don't keep importing a module which is already imported
* No need to check PKG is set, we'd have failed long before now if it wasn't
* Don't export PATH, bitbake takes care of this at the task level

(From OE-Core rev: e9d43d7b4d2cfb22b21f3814c2401a699c78b025)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
85b4891a1c package.bbclass: Rewrite split_and_strip_files
The split_and_strip_files funciton was hard to follow and its usage of prefixes
to strings was unusual. This rewrites it to use a list of hardlinks, symlinks and
elffiles where each list is iterated over at the correct point.

This means we can avoid creating dandling symlinks for example so we can simply
delete the cleanup code for this.

The isfile() check is also removed which gives a significant improvement in speed.
Its uneeded since os.walk will have already checked things in files are files.

(From OE-Core rev: 0cd295d8cdc8cc39d6b6c7d26ea8a2a10a979d7c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
f2ee5b48d9 package.bbclass: Fix up bb.mkdirhier/bb.copyfile usage
These are in bb.utils so lets the correct function and avoid the overhead
of the fixup/warning for the deprecated usage.

(From OE-Core rev: d17329db4842c50af1a3d7f5f20e692c89913fba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
f0bda89e9b update-rc.d: Drop OVERRIDES code
The data store copy and overrides is overkill given the small number
of accesses that are being made. This simplifies the code.

(From OE-Core rev: 72c1fd72d3b479c728e249eaa763116d352e945b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
f8ea6a8eed staging.bbclass: Drop unused/legacy function
(From OE-Core rev: 9120c88085236e1be9854376e43a7b14f937ba03)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:13:00 +00:00
Richard Purdie
1e593e92d2 staging/insane.bbclass: Move legacy do_stage check iinto insane.bbclass
We might as well put all the sanity checks in one place.

(From OE-Core rev: 05be11c7508984cc4aa757becb7a8f47c5b7e919)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
9244e4471d insane.bbclass: Add documentation headers for logical code blocks
(From OE-Core rev: ac24487a05834cc9c02a95bbd281927d98c5886e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
61c51a1a49 insane.bbclass: Add pkgvarcheck to check for suboptimal usages of variables
Check through the variables:
'RDEPENDS', 'RRECOMMENDS', 'FILES', 'pkg_preinst', 'pkg_postinst', 'pkg_prerm', 'pkg_postrm'
and if there is a variable set which isn't package specific, inform the user
of this.

Using these variables without a package suffix is bad practise and complicates
dependencies of packages unnecessarily as well as complicates the code. Lets
convert the remaining issues and then we can take the small performance gain.

(From OE-Core rev: 316228948e65f376f6c5be13ccd0c964ea630edf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
bf25dd25c2 package.bbclass: use the multiprocess pool from bitbake
(From OE-Core rev: 7e880a95840db82f4035959b03630ba2a96c0311)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
b34fd60d8f package: Process package stripping in parallel
(From OE-Core rev: 981fed49ee80560fb067b3f47aeada1fdee792ca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
e45db24bbe package: Don't export PATH
PATH is already exported, we don't need to do this each time we run
something, its just noise and overhead.

(From OE-Core rev: 060f617cea4ea0a5af28d31ea19c0387e9773fce)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
d81aa06ece package.bbclass: Multithread per file dependency generation code
(From OE-Core rev: b659eb0f2070149d9516c129b3853b41fbbd1033)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
6c6f6b7ffd sstate.bbclass: Ensure build directory is cleaned to start with
This directory is cleaned upon completion however if a previous build
crashes, it can lead to corrpution, hence ensure its clean at the start
too.

(From OE-Core rev: 8ef0e59d5a7da3671d1ad9a54fe068ed78f928d5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Richard Purdie
dd61d22584 sstate/path.py: Add copyhardlinktree() function and use for performance optimisation
Add a function which copys a tree as a set of hardlinks to the original
files, then use this in sstate to reduce some of the overhead of sstate
package creation since the file isn't actually copied.

(From OE-Core rev: 8e373e69acac853213a62afb8bbdf0adc0c5045a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 13:12:59 +00:00
Laurentiu Palcu
6c7d6d6c8a systemd: remove /var/cache from volatiles
(From OE-Core rev: ef45d35c1d534770f0e0e6d3e897d3f6062147a2)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:29 +00:00
Laurentiu Palcu
2a9dcc49aa rpm: remove /var/volatiles/cache/rpm from the FILEs list
Since /var/cache is not in volatiles anymore, this entry has to go.

(From OE-Core rev: ed31c6442309eb2816e96d8565b52cf7cc28c803)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:29 +00:00
Laurentiu Palcu
ebe0730946 initscripts: remove /var/cache from volatiles
(From OE-Core rev: 961376bf34dbc65e649c3fe6f2d9e1838d987aef)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:29 +00:00
Laurentiu Palcu
0bb55777ba fs-perms: remove /var/cache from volatiles
(From OE-Core rev: a3b84a3a3d94252060eae076f6dd54e6bf12dfb1)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:29 +00:00
Laurentiu Palcu
e380838902 base-files: remove /var/cache from volatiles
Having the cache in tmpfs implies cache regeneration after every reboot.
For an embedded device this might not be very efficient. So, it is
better for the cache to be persistent between reboots.

(From OE-Core rev: 7152ba27026265ba108caf4437638093f5897ec8)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:28 +00:00
Eric Bénard
4832cd2a4a qt4: fix CVE-2013-0254
fix "POSIX shared memory segments created world-writeable"

more details :
http://lists.qt-project.org/pipermail/announce/2013-February/000023.html

(From OE-Core rev: e7d8746c32d1ef08327ca4774812af9a8e75a0c4)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:28 +00:00
Constantin Musca
4cb7c9a7ca netbase: split up in netbase and init-ifupdown
- netbase should only include etc-rpc, etc-protocols, etc-services
and the hosts file
- the init script/configuration files should be in another package
(init-ifupdown)

[YOCTO #2486]

(From OE-Core rev: 5ce5c3d1226d4a8a4997c63acc1b1b125770d005)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:28 +00:00
Chen Qi
7c106a3bb8 initscripts: add read-only-rootfs-hook.sh script
Add read-only-rootfs-hook.sh script to support a read-only rootfs.
This script makes a union mount of /var/lib and /var/volatile/lib,
making /var/lib directory writable.

[YOCTO #3406]

(From OE-Core rev: a9591158962eee1f8ae04168d6256032ecd7bc6b)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:28 +00:00
Chen Qi
db5847dd41 initscripts: let populate-volatile.sh create the /tmp link
Previously, the /tmp link (/tmp -> /var/tmp) was created by the
bootmisc.sh script. So in case of a read-only rootfs, this symlink
would not be created correctly.

The populate-volatile.sh script is intended to handle all directories
and files related to volatile storage, so we should let it create
the /tmp link.

In addition, because of the improments of populate-volatile.sh, the data
loss problem of bug#3404 is also resolved by this patch.

[YOCTO #3406]
[YOCTO #3404]

(From OE-Core rev: 12c4acd7ac5a27cf3676065b60f1c8395c96854c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:27 +00:00
Chen Qi
f7bb0a97f8 sysvinit: add ROOTFS_READ_ONLY variable to rcS-default
This variable indicates whether the rootfs is intended to be read-only
or not. Changing this value from 'no' to 'yes' on a currently running
system with read-write rootfs and rebooting will give the user a working
system with read-only rootfs.

However, it is not suggested to change its value. Normally, if a read-only
rootfs is required, we should build an image with 'read-only-rootfs' image
feature.

[YOCTO #3406]

(From OE-Core rev: 0b4af5f3e6c92ae8194447b027202c1933f47dd9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:27 +00:00
Bruce Ashfield
ac2671a2cb linux-yocto: KERNEL_FEATURES should reference full scc files
Some existing KERNEL_FEATURE references use a shorcut notation, but mapping
these shortcuts to actual .scc files in the tree are not obvious. So we clarify
where they are found by referencing the full .scc filename in the KERNEL_FEATURE
addtions.

(From OE-Core rev: 26c71c895e1d56d2f3576de833a576137e970fcc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:27 +00:00
Bruce Ashfield
c5fe8bc2ab linux-yocto/3.4: update to v3.4.28, 3.4.28-rt40
Updating the linux-yocto_3.4 SRCREVs to pick up the 3.4.28 -stable update
as well as the 3.4.28-rt40 refresh.

(From OE-Core rev: f8619d777e734f3886b02bf87157761a6f78029b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:27 +00:00
Bruce Ashfield
fe4af0ac68 linux-yocto/dev: linux-yocto development tree tracking recipe
The linux-yocto-dev recipe uses the upstream tracking linux-yocto-dev repository.
Since this tree is frequently updated, and periodically rebuilt, AUTOREV is used
to track its contents.

This recipe is just like other linux-yocto variants, with the only difference
being that to avoid network access during initial parsing, static SRCREVs are
provided and overridden if the preferred kernel provider is linux-yocto-dev.

(From OE-Core rev: 378f99eeab070e2fcea84fb47f37cd7cb15caa90)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:26 +00:00
Bogdan Marinescu
b2d06ba929 intltool: updated to 0.50.2
(From OE-Core rev: f0f5507f30b5d8d919e93cb6af6b724981e9cfef)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:26 +00:00
Constantin Musca
10f05d5b58 classextend.py: use explode_dep_versions2 in order to preserve versions too
(From OE-Core rev: a5136a9bf70f3a6d7d0b599678cb901c8e45c7f7)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:26 +00:00
Matthew McClintock
f1dc17dc32 oprofile: fix cross compile on powerpc and add libpfm4 dep
Fixes [YOCTO #3717]

(From OE-Core rev: 88959e42411a40b15fe8907da00a97a7732a9cc1)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:26 +00:00
Matthew McClintock
44f5f3f128 libpfm4_4.3.0.bb: add libpfm4 recipe needed by oprofile for ppc
(From OE-Core rev: 52c94978992d9084d685d4999064a8cee35220d1)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:25 +00:00
Matthew McClintock
0a1fa46861 quota_4.01.bb: add e2fsprogs in DEPENDS
Fixes:

| /local/home/mattsm/git/poky/build-master/tmp/sysroots/x86_64-linux/usr/libexec/ppce300c3-poky-linux/gcc/powerpc-poky-linux/4.7.2/ld: cannot find -lext2fs

(From OE-Core rev: 514c479816da79bb2f71602c3bf3c4805a4416e6)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:25 +00:00
Matthew McClintock
946e856000 glib: disable selinux for native builds
This improves reusabiliy of sstate-cache across different hosts

(From OE-Core rev: 4c223e2b2ba552b832b51c9071f003de67493c27)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:25 +00:00
Laurentiu Palcu
df4f0c296d pulseaudio: do not postpone postinstall
Since populate-volatile.sh will run everytime the device boots, no
need to postpone the postinstall when the rootfs is created.

[YOCTO #3840]

(From OE-Core rev: c237103096530a06fd0991b4335936e509dea76e)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:25 +00:00
Laurentiu Palcu
e52c8b833e package_ipk, rootfs_ipk: remove the "set -x"
Comment the "set -x" lines since these will add a lot of extra, not
always necessary, debug messages in the log.do_rootfs.

[YOCTO #2599]

(From OE-Core rev: 5d8119f3d749073e355351e0e15f2703fad738f2)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:24 +00:00
Laurentiu Palcu
be82ae98ef liberation-fonts: use the new fontcache.bbclass
This will add the proper postinst/postrm scriptlets.

[YOCTO #2599]

(From OE-Core rev: 94b53e5f996a09b9f1f73d0f90b65261a76c0cbe)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:24 +00:00
Laurentiu Palcu
e46f33688c fontconfig: add sysroot option to fc-cache and fc-cat
This is needed in order to be able to generate the cache on host.

Additionally, remove the volatile config file, as /var/cache was moved
out of tmpfs.

[YOCTO #2599]

(From OE-Core rev: b675e9917b0a1e774c95ee7a946f515c5a996b59)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:24 +00:00
Laurentiu Palcu
5479aa4869 image.bbclass: add a proper error message if hook script fails
(From OE-Core rev: 5e737d3c6e6546c1368e804f4c45ab25d8791ea3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:24 +00:00
Laurentiu Palcu
f33014f607 qemu.bbclass: return qemuwrapper instead of qemu-allarch
When qemu bbclass is inherited from a recipe that is not architecture
dependent, qemu_run_binary will return "qemu-allarch". However this
binary does not exist. Instead, return "qemuwrapper" which will, in
turn, execute the right binary for the target the image was built for.

[YOCTO #2599]

(From OE-Core rev: 149a564bba7d3e1c2054ae6d908835ebd95b9084)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:23 +00:00
Laurentiu Palcu
49f5daf9b7 add qemuwrapper-cross recipe
This will just install a wrapper script in STAGING_BINDIR_CROSS that
will execute the proper qemu user binary for the current target.

[YOCTO #2599]

(From OE-Core rev: faaa5e7fd4353b73289f163d9f601cf0869698f3)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:23 +00:00
Laurentiu Palcu
c31bf6514b add fontcache.bbclass
All font packages should inherit this class in order to generate the
proper postinst/postrm scriptlets.

The scriptlets will actually create a host intercept hook that will be
executed at the end, at do_rootfs time, after all packages have been
installed. This is good when there are many font packages.

[YOCTO #2923]

(From OE-Core rev: 0c12f7fb3c2c42e5b633682bb1277b943ac19ea6)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:23 +00:00
Roy.Li
8f262e8b7e tcp-wrappers: remove size_t.patch
1. it introduces bug in 64bit big endian process with __GLIBC__, At that
condition, size_t is 8byte, and the third parameter of getpeername is
socklen_t which is 4 byte. As a result, getpeername sees third parameter
is always 0, and can not return right value.

The similar program is below, the output is 0, not 9 on PPC64 cpu
	main()
	{
		long aa=9;
		printf("%d \n", *((int *)&aa));
	}

2. The correct fix is to change getpeername/getsockopt/recvfrom.. last
parameter type from int to socklen_t, but to simplify, we can remove
size_t.patch, since the size of int is same as socklen_t in 32bit/64bit
cpu. and size_t.patch only change three places, there are other places
which uses int, and work well.

2. Fedora, redhat el4 do not use this patch, but Debian uses it, does not
find why this patch is written, maybe it is gcc legency issue which does
not exist.

(From OE-Core rev: 6c418ec278335c93692c2e19ec0b7b84b471e2b9)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:23 +00:00
Marko Lindqvist
7f484df0ea rpcbind: replace obsolete automake macros with working ones
Add obsolete_automake_macros.patch that replaces automake macros
no longer supported by automake-1.13 with modern constructs.

(From OE-Core rev: 0f8583e6fe729f8cacc8fec8c66a5c7f7c944947)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:23 +00:00
Marko Lindqvist
30996a17f1 matchbox-wm: update to git master head
The one new commit from matchbox-wm git this gets fixes
build with automake-1.13

(From OE-Core rev: 50d7135c3f5530e0852294183cdba60fae67e040)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:22 +00:00
Marko Lindqvist
5549af4f83 opkg: replace obsolete automake macros with working ones
Add obsolete_automake_macros.patch that replaces automake macros
no longer supported by automake-1.13 with modern constructs.

(From OE-Core rev: 495bea3911be164225c91b696389fc16dab356fd)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:22 +00:00
Martin Jansa
52b1b6c98b send-pull-request: add extra CC argument
* useful e.g. when sending pull-request to release branch with extra CC
  for release maintainer

(From OE-Core rev: 52bc47756eb8a81ea07ef4bc06345ef335b30ceb)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:22 +00:00
Martin Jansa
77b1409522 ipk: use OPKGLIBDIR in all places
* it's not recommended to change this value, because it breaks upgrade path on target
  (all old u-a alternatives are forgot in old OPKGLIBDIR value
* but make it consistent, so if someone really want to change that, then
  setting OPKGLIBDIR_distro in distro.conf would be enough
* without this there were at least 4 places to change:
  rootfs_ipk: opkglibdir variable (notice that I've removed /opkg from it to correspond
              with EXTRA_OECONF option used in opkg recipes
  package_ipk: ${target_rootfs}${localstatedir}/lib/opkg/ hardcoded in
               package_install_internal_ipk
  opkg-collateral: value in lists file
  opkg: EXTRA_OECONF for all 3 classes, FILES_libopkg, do_install
* validated with buildhistory that without OPKGLIBDIR explicitly set the
  output is the same and that after setting
  OPKGLIBDIR_forcevariable := "${libdir}"
  everything including empty directory from package_ipk is moved to
  libdir

(From OE-Core rev: cf0aa9c4fdae8855803e96b1922d54a2431795d3)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:22 +00:00
Cristian Iorga
626dc8b989 net-tools: upgrade to v1.60-24.2
(From OE-Core rev: 8abcf2c3541d7fe96d7717cb161812784dca6c66)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:21 +00:00
Paul Eggleton
4296d65a68 qmmp: update to 0.6.6 and fix
* Update to 0.6.6
* Fix compilation failure due to unconditional call to
  QApplication::commitData()
* Disable /usr/local host paths to avoid compilation warnings
* Force use of the cmake configure instead of qmake as the latter is not
  dynamic with Qmmp and doesn't let you disable certain dependencies
  (e.g. enca)
* Add libsndfile1, libsamplerate0 and curl to DEPENDS since their use
  will be non-deterministic otherwise
* Explicitly disable library-requiring options that we don't have
  available in OE-Core so that they don't get used if they happen to be
  in the sysroot
* Update LIC_FILES_CHKSUM since there were cosmetic changes to the
  license file (mostly reformatting and change of references to LGPL
  from "Library" to "Lesser".)

Fixes [YOCTO #3822].

(From OE-Core rev: 12484dca3bf09dd9a03442a223885deb7472a6cd)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:37:21 +00:00
Denys Dmytriyenko
e2ade5e836 nativesdk-qt4-tools: fix DEPENDS, as nativesdk is now prefixed
(From OE-Core rev: 871549996cfcaf860083d867eb6a9522f4407cd4)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-06 09:17:41 +00:00
Darren Hart
ee1f126ad5 bitbake: bitbake: fetch2: Print the complete SRCREV variable name when INVALID
If a particular SRCREV (say for a particular branch) is missing, the
fetcher will currently just report an obtuse error about the "SRCREV"
being invalid. If there is more information is to be had (say from name,
i.e. branch, and pn) then display that as well.

The new error looks something like this:

ERROR: ExpansionError during parsing /home/dvhart/source/poky/meta/recipes-kernel/linux/linux-yocto_3.4.bb: Failure expanding variable do_patch: ExpansionError: Failure expanding variable SRCPV, expression was ${@bb.fetch2.get_srcrev(d)} which triggered exception FetchError: Fetcher failure for URL: 'git://otcgit.jf.intel.com/dvhart/linux-yocto-minnow-3.4.git;protocol=git;nocheckout=1;branch=standard/minnow,meta,emgd-1.14;name=machine,meta,emgd'. Please set SRCREV_emgd_pn-linux-yocto to a valid value

Note the variable listed as invalid is
"SRCREV_emgd_pn-linux-yocto", making it explicit what is wrong.

(Bitbake rev: 63774f5b4edb999300bddd891233f6050f4af877)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: bitbake-devel@lists.openembedded.org
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-05 15:22:45 +00:00
Tom Zanussi
97b7e4f46e crosstap: handle hyphenated x86_64 target arch
systemtap_target_arch() should also translate x86-64 (hyphenated) into
x86_64 for the -a param.  Failing to do that causes systemtap to see
an architecture mismatch and create a cloned session with a bogusly
synthesized build directory path, and fails to compile the probe.

 Fixes [YOCTO #3756]

(From OE-Core rev: 98cae0544884cb5700d42409ec4a9584a17dc9a4)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-05 15:22:45 +00:00
Khem Raj
898a8094b1 libgcc: Disable multilib install for nativesdk
Fixes errors when building SDK for multilibbed enabled
architectures.

[YOCTO #3832]

(From OE-Core rev: 09934f38df057e12af7d14791f7ab752e81093db)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-05 15:22:45 +00:00
Martin Jansa
7e9cb437b1 dropbear: fix RPROVIDES
(From OE-Core rev: 3b1beb8b15b8e3e397b3aa8320490103d4f29bac)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 23:31:02 +00:00
Martin Jansa
04361bc8f2 openssh: fix RPROVIDES
(From OE-Core rev: 43ddc955727361458fec92731775a1fc7f29917c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 23:31:02 +00:00
Martin Jansa
36dd58a58f sip.bbclass: improve RDEPENDS to add python-sip only for PN
(From OE-Core rev: 9aeb36d452154a766c0ada6d4594dcabc226752f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 23:31:02 +00:00
Saul Wold
c6d843f52f v86d: Use BP instead of P
P is expanded to it's multi and other prefix / suffix name,
so use BP instead which is the BaseName and Version.

(From OE-Core rev: 4e475a66c23cd2e4e109ff1fcfa2975d595537c5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 23:31:02 +00:00
Constantin Musca
f7ed94cd83 blktool: fix SRC_URI typo
(From OE-Core rev: 393c673964493f9dcc15dd6dc394b0e0f6994afd)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:50 +00:00
Constantin Musca
f4b0cc562e gcc: target: fix libiberty removal
- use ${libdir} instead of ${exec_prefix}/lib

Fix the following warning:
WARNING: QA Issue: gcc: Files/directories were installed but not shipped
  /usr/lib64/libiberty.a

(From OE-Core rev: b3643415ad91dc77880cc5b95e9ad8cd9aef5c44)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:50 +00:00
Constantin Musca
bf6c100ff3 consolekit: add arch independent unpackaged files
Fix the following warning:

WARNING: QA Issue: consolekit: Files/directories were installed but not shipped
  /usr/lib
  /usr/lib/ConsoleKit
  /usr/lib/ConsoleKit/run-seat.d
  /usr/lib/ConsoleKit/scripts
  /usr/lib/ConsoleKit/run-session.d
  /usr/lib/ConsoleKit/scripts/ck-system-restart
  /usr/lib/ConsoleKit/scripts/ck-system-stop

(From OE-Core rev: 98ef35b319320ac9530e31926ad18d5f5ecd87db)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:50 +00:00
Constantin Musca
c85c6ca5e6 run-postinsts: use BPN instead of PN
Fix the following warning:
WARNING: QA Issue: lib32-run-postinsts: Files/directories were installed but not shipped
  /usr/share/lib32-run-postinsts
  /usr/share/lib32-run-postinsts/run-postinsts.awk

[YOCTO #3438]

(From OE-Core rev: fb42fae0f6eb9821b5f1fedfaebf4307dc6590fe)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:49 +00:00
Constantin Musca
7cf289b39f taglib: use LIB_SUFFIX in order to determine the correct baselib
WARNING: QA Issue: taglib: Files/directories were installed but not shipped
  /usr/lib
  /usr/lib/libtag.so
  /usr/lib/libtag.so.1.12.0
  /usr/lib/libtag.so.1
  /usr/lib/libtag_c.so.0.0.0
  /usr/lib/libtag_c.so
  /usr/lib/libtag_c.so.0
  ...

(From OE-Core rev: ebc3e1f43a558165d16f663be796d731ca4b2a74)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:49 +00:00
Constantin Musca
8572f07f65 foomatic-filters: fix CUPS directory config
- use CUPS_SERVERBIN to configure the CUPS directory
- the removed variables are not used anymore

Fix the following warning:
WARNING: QA Issue: foomatic-filters: Files/directories were installed but not shipped
  /usr/lib64
  /usr/lib64/cups
  /usr/lib64/cups/filter
  /usr/lib64/cups/backend
  /usr/lib64/cups/filter/foomatic-rip
  /usr/lib64/cups/backend/beh

(From OE-Core rev: 141621d956ea66a026b3571c3e0d30f1ab43961e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:49 +00:00
Constantin Musca
70114d9ee8 syslinux: use BPN instead of PN
Fix the following warning:
WARNING: QA Issue: lib32-syslinux: Files/directories were installed but not shipped
  /usr/lib
  /usr/share/syslinux
  /usr/share/syslinux/com32
  /usr/share/syslinux/com32/libcom32gpl.a
  /usr/share/syslinux/com32/libcom32.a
  ...

[YOCTO #3438]

(From OE-Core rev: 0d014d0f42de4af76226799b04c8a2daa52f787e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:49 +00:00
Constantin Musca
ece7f0b8a4 sgml-common: use ${PN} instead of sgml-common
Fix the following warning:
WARNING: QA Issue: lib32-sgml-common: Files/directories were installed but not shipped
  /etc
  /etc/sgml
  /etc/sgml/sgml.conf
  /usr/bin
  /usr/bin/install-catalog
  /usr/bin/sgmlwhich

[YOCTO #3438]

(From OE-Core rev: 1a43fba81749618f9f1c18b99cb74ae1399bdc35)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:48 +00:00
Constantin Musca
8834ca79ba console-tools: fix linking when using the multilib compiler
fix-libconsole-link.patch: add patch for fixing libconsole
linking problems when using multilib gcc

(From OE-Core rev: f70371a7c2da892a480a73d8571497dd7b367c7b)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:48 +00:00
Constantin Musca
685da74485 enchant: use BPN instead of PN
- use BPN (PN includes mlprefix) to package all files
when building with multilib options

[YOCTO #3438]

(From OE-Core rev: 6039e0048d324569620868ec774cd88aa191eeaf)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:48 +00:00
Richard Purdie
0ce97e5cba cpan-base.bbclass: Improve RDEPENDS to be package specific
(From OE-Core rev: 3300d5fdcc60b14e184e0c6c40ba25d8c4d5ed46)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:48 +00:00
Richard Purdie
2f497d0952 initramfsframework: Improve RDEPENDS to be package specific
(From OE-Core rev: 8c9a604d3ef33d47a48000d6c38159a64204e81e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:48 +00:00
Richard Purdie
8a2d97ebf4 dbus-ptest: Improve RDEPENDS to be package specific
(From OE-Core rev: 962dc38c78ce539c74f90811a022995d15d76ffc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:47 +00:00
Richard Purdie
0514ec9aaa hwlatdetect: Improve RDEPENDS to be package specific
(From OE-Core rev: 1207bb402adfbe6a0600e4540fc35a53282a857c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:47 +00:00
Richard Purdie
d5be19371a libxml-sax-base-perl: Improve RDEPENDS to be package specific
(From OE-Core rev: b72f277a8952649f23a3e476a10bf1e1706918be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:47 +00:00
Richard Purdie
b6bade27b8 initramfs-live-boot: Set RDEPENDS on the specific package that needs it
Set the RDEPENDS on the specific package that has the dependency and stop it
being applied to for example ${PN}-doc (and others).

(From OE-Core rev: 7437a864f03ff56a4fba9d8ce9baf845b945ed9e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:47 +00:00
Richard Purdie
121e9284cc gdb-cross-canadian: Set RDEPENDS on the specific package that needs it
Set the RDEPENDS on the specific package that has the dependency and stop it
being applied to for example ${PN}-doc (and others).

(From OE-Core rev: 51257c8665282e2b7f647adb4bdf8d07e2b40e1c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:47 +00:00
Richard Purdie
3b543d6732 qemu: Set RDEPENDS on the specific package that needs it
Set the RDEPENDS on the specific package that has the dependency and stop it
being applied to for example ${PN}-doc (and others).

(From OE-Core rev: 3c57a755ff1aec3806770443b73dc899d981c678)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:42:46 +00:00
Andy Dalton
3ed00772bf v86d: Update SRC_URI to point to new file location.
The existing SRC_URI pointed to a Gentoo developer's private web
space.  It appears that that developer has retired and that his web
space is no longer active.  I've updated the SRC_URI to point to a
location where the file can now be found.

(From OE-Core rev: 2046c2a0922c4d67408578d4bf8549435fec8cd6)

Signed-off-by: Andy Dalton <a.spam.filter@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:23:01 +00:00
Richard Purdie
be7cabb8c2 dpkg: Add missing pkgconfig dependency
configure touches pkg-config for various tests so we need the DEPENDS
which we can gain from the class inherit

(From OE-Core rev: 2602575108a39723f9975391e83290573cbd2ec9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 16:04:23 +00:00
Ross Burton
ca976824bf scripts/wipe-sysroot: add script to safely wipe the sysroots
Add a script to wipe the sysroots and all of the relevant stamps, so that it
will be correctly re-populated.

(From OE-Core rev: ef98ff5ba562eb710b5a6fbd181fb1c4380010b2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:28 +00:00
Peter Seebach
4872ba3ee4 package.bbclass: Allow per-package SKIP_FILEDEPS
The existing check for SKIP_FILEDEPS can be overridden per recipe
using SKIP_FILEDEPS_pn-${PN}. However, there's no mechanism for
letting a single package within a recipe use SKIP_FILEDEPS.

This patch adds SKIP_FILEDEPS_<pkg>, by analogy to FILES_<pkg>.
Note that it only works one way; if the recipe has SKIP_FILEDEPS = 1,
the checks for individual packages will never be reached.

(From OE-Core rev: 94557b500ad38a49aec40629015ed0b24e167f76)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:28 +00:00
Bruce Ashfield
aa653b9354 kernel-yocto/linux-yocto-custom: support low bandwidth options
To support configurations where active development is not being done within
the oe/bitbake build environment and restricted bandwidth situations, this
commit allows the SRC_URI to point to a kernel tgz instead of a full git
repository.

Outside of the upstream tgz instead of a kernel git repository, the
restrictions, config and patch process is the same as any linux-yocto-custom
recipe.

An example linux-yocto-custom based recipe would have a configuration like
this to build the 3.7 kernel, using an externally supplied config, from the
3.7 tgz:

  SRC_URI = "http://kernel.org/pub/linux/kernel/v3.0/linux-3.7.tar.bz2"
  PV = "3.7"
  S = "${WORKDIR}/linux-3.7"
  SRC_URI[md5sum] = "5323f3faadd051e83af605a63be5ea2e"
  SRC_URI[sha256sum] = "dc08d87a579fe2918362e6666e503a95a76296419195cb499aa9dd4dbe171a9e"

[YOCTO #2686]

(From OE-Core rev: 08b3a282ce75a9972694f0c4379179505b9ec91f)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:28 +00:00
Bruce Ashfield
de2211133f kernel-yocto: allow multiple / shared kernel feature directories
To promote the reuse and sharing of configuration fragments this change
allows any kernel-yocto based recipe to have multiple alternate git repositories
which provide kernel feature directory trees listed on the SRC_URI.

These feature directories are in addition to any in-tree kernel meta data branches
that may be available (described via the KMETA variable in linux-yocto recipes).

Features found within these directories can be used from recipes via the
KERNEL_FEATURES variable. Features found within a feature directory are free
to include any other features that are available in any directories. In both
cases the path to a feature description (a .scc file) is relative to the
root of a given feature directory (which is how existing .scc files work)

The search order for features is determined by the order that repositories
appear on the SRC_URI.

Normal SRC_URI rules apply to any repository that is added as a kernel
feature container. A SRCREV must be supplied and it must be unpacked to
a unique directory, which is controlled via the "destsuffic" url parameter.

In addition to these standard requirements, any kernel feature repository
reference should identify itself via the "type=kmeta" url parameter. If
type=kmeta is not supplied, the repository will not be processed for
kernel features.

As an example, the following in a linux-yocto bbappend makes two additional
feature directories available to KERNEL_FEATURES and fragments.

 SRC_URI += "git://git.yoctoproject.org/yocto-kernel-cache;protocol=git;branch=master;type=kmeta;name=feat1;destsuffix=kernel-cache/"
 SRC_URI += "git://${KSRC_linux_yocto_3_4};protocol=file;branch=meta;name=feat2;type=kmeta;destsuffix=kernel-features-experimental/"

 SRCREV_feat1 = "${AUTOREV}"
 SRCREV_feat2 = "${AUTOREV}"

(From OE-Core rev: 02ad603a104b70ab74548c8018e738bfbb3c59db)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:28 +00:00
Bruce Ashfield
167e470099 kernel-yocto: fix .scc and .cfg matching
SRC_URIs that contained git repositories or other constructs that resulted
in an extension of "." or a substring of "scc" or "cfg" were matching the
tests for patches and configs. This was due to a python tuple being used
instead of an array. Switching to an array makes the match exact and the
behaviour we want.

(From OE-Core rev: 22aa5d040604b37ba984bae9e800e56ba6e4956d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:27 +00:00
Bruce Ashfield
996c3f80ba kernel-yocto: make configuration audit details debug only
The details of the kernel configuration audit are typically a
debug action, so should be moved to bb.debug(). But in order
to maintain visibility of the results, a reference to the log
file is provided in the standard message.

(From OE-Core rev: 9ab80ad88d34622a81670cdc45cc3275fc3ebabe)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:27 +00:00
Bruce Ashfield
8d4b82e716 guilt: remove GIT_EXEC_BASE export
git-core provides the following routines (among others): git-sh-setup,
cd_to_toplevel, die, and more.  But it is not always in the same location
relative to the guilt binary if git is not part of a 'host tools'
sysroot. Modern git versions don't need this, so commenting it out (until it
breaks again) is the solution to the problem of it not existing, and the
library routines will sourced and provided by git itself.

Since bitbake.conf has git-native as ASSUME_PROVIDED, this means that
when the system git binary is used, errors such as this can be seen in
failed patch logs:

| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 717: cd_to_toplevel: command not found
| error: patch failed: Makefile:2
| error: Makefile: patch does not apply
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt-push: line 137: die: command not found
| [ERROR] unable to complete push
| pending patches are:
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/guilt: line 29: /opt/poky/build/tmp/sysroots/x86_64-linux/usr/bin/../libexec/git-core/git-sh-setup: No such file or directory
| links/linux-yocto-custom/0001-linux-version-tweak.patch
| ERROR. could not update git tree

With the export removed, we have a normal "clean" failure message when
the sysroot or system git is used.

(From OE-Core rev: 9ca697a7f83957205bc418acfd7f45fe4cbddbee)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:27 +00:00
Radu Moisan
b624b06c23 polkit: Enable systemd support
By default the polkit will autodetect if systemd is available
and setup the configuraton accordingly, potentially
contaminating sstate.
In this patch systemd is explicitly enabled/disabled.
When enabled, polkit will use systemd for session tarcking,
otherwise it will use ConsoleKit.

(From OE-Core rev: 67c13656343d55ae9d1c79dcace5c79004c4c186)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:27 +00:00
Ross Burton
d43cb494c1 matchbox-stroke: remove
matchbox-stroke was never more than a proof of concept, so remove it.

(From OE-Core rev: f9491f2ed276d591b7a2c6eff2a7241f627db50c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:27 +00:00
Ross Burton
da8c8276b9 clutter-box2d: remove
This is a specialised physics engine for Clutter, and isn't suitable for
oe-core.

(From OE-Core rev: 9eec14d658c12525cb81d0ef3227b55e65d1c69b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:26 +00:00
Ross Burton
a233b048eb packagegroup-core-tools-testapps: remove clutter-box2d
(From OE-Core rev: 175af7282fc423f1f473b686b43a0d413adff5a3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:26 +00:00
Andrei Dinu
1b3aad957f pax-utils : upgrade to 0.6
- changed the archive extension because it changed
 on the repository.

(From OE-Core rev: 7eb31a99925af3cc4ca9c322d1c988124cc812db)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:26 +00:00
Ross Burton
8a5fc57c0b orinoco-conf: remove
This is only used by old hardware, anything that still needs it can put it in
their BSP layer directly.

(From OE-Core rev: b8dc4fc76e3a179d2712ce76e19b664236260724)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:26 +00:00
Ross Burton
87cd4fc2fd packagegroup-core-x11-sato: remove matchbox-stroke
matchbox-stroke was never more than a proof of concept, so let's not pretend
it's a serious gesture input method and remove it.

(From OE-Core rev: 465958f2fc6a633d697277aa06dd1c67d485f0d0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:25 +00:00
Bogdan Marinescu
691a9908f5 distcc: updated to version 3.1
Added two new flags to the configure script:

--disable-Werror: don't treat all warnings all errors (which breaks compilation).

PYTHON=/dev/null: this prevents distcc from detecting the host Python and trying
to build its include server using the host Python. This disables the include
server completely. If the include server is needed, that should be the object of
another patch (and would introduce a dependency on python for distcc).

The 'distcc-avahi' and 'makefile-param-order' patches are not needed anymore, as
they were merged upstream.

(From OE-Core rev: 3f33a6ecd9f1703381e175d688bdfce291ffdc8a)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:25 +00:00
Ian Reinhart Geiser
57bbb7d6f4 initramds-framework: add shutdown hook for udev
In cases where other initramfs modules need to rely on
udev running (ie in my case I have to load firmware on
a device that is slow to start) there needs to be a way
to keep it running during the lifecycle of the initramfs
but still be shut down before swith_root is called.  I
added a  module_pre_hook that will shut down udev before
the finish module is called.

(From OE-Core rev: ce690659ef797bd26dc2be59167aa01744841510)

Signed-off-by: Ian Reinhart Geiser <igeiser@devonit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 13:18:25 +00:00
Laurentiu Palcu
60f9aae469 (distro_alias|maintainers|recipe_color).inc: remove update-modules
Remove update-modules references since recipe has been removed.

(From meta-yocto rev: 99789b1b8b16e445f9fa13185e0ea82317bc7702)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:58 +00:00
Paul Eggleton
ed523e1f55 Remove zypper from distro tracking files
We no longer have zypper/libzypp/sat-solver, so remove references to
them.

(From meta-yocto rev: 3a30ea7b938d5d9931adc96bc698a0f25cf1c320)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:58 +00:00
yanjun.zhu
1d376f9f18 pulseaudio_2.1: Remove the dependence of fftw.
(From OE-Core rev: ddbd713293929d361a7ec7f8f1eb2986b7adc729)

Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:57 +00:00
Ross Burton
3c1b1312a6 cmake: reset B from autotools, as this class doesnt like it
(From OE-Core rev: f8eae815186976f6111f30ae88ac33e723863982)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:57 +00:00
Ross Burton
e3b778a3a9 gdk-pixbuf: use correct build path when installing
The native install was invoking a binary in $S, but it's been built into $B.

(From OE-Core rev: b6ffded282d2b4aeb924db443169a9263aade014)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:57 +00:00
Ross Burton
01bf14719a libpcap: fix relative path references
do_configure was using relative paths in do_configure with the assumption that
$S is the same as $B.  This isn't always true, so explicitly use $S.

(From OE-Core rev: a01c103f54d2f588d78756d19f879eb82d0e5ae4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:57 +00:00
Ross Burton
43e613199b gtk+: add missing $S references in do_install
When $B != $S the relative paths are wrong, so add an explict $S.

(From OE-Core rev: 68838f1d61f91229ee489889ad2c7f4b61a1f95c)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:56 +00:00
Ross Burton
4c01786ff3 avahi: fix relative path in do_configure
do_configure was assuming that $B is $S, so the relative path was wrong. Add a
missing $S.

(From OE-Core rev: 9c947cf76235624f3661341154575688cf528bed)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:56 +00:00
Laurentiu Palcu
285471c312 update-modules: remove recipe from oe-core
update-modules is not used anymore. Any references to it have been
removed, some time ago, from all recipes/bbclasses. It stayed in oe-core
in case anybody still wanted to use it. Time for it to go.

(From OE-Core rev: b8c5f1facd9f9878e137f803b45e99d4e7214d20)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-04 12:41:56 +00:00
Saul Wold
75f470cd18 qt4: Add space for _appends
With out the space we get -x11-no-neon concatanted incorrectly

(From OE-Core rev: 82602d2c55f5d233bd8351e95a84a65b792786e5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 22:49:47 +00:00
Saul Wold
7a3d352ab8 gtk-icon-cache: Fix rdepends construction
The rdepends getVar is returning NoneType and the string constuction fails
this occurs with the hicolor-icon-theme recipe.

(From OE-Core rev: a718cf3179540e049fd0d750ce11a97f84addf40)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Darren Hart
e6149ec6c4 qemux86-64: Disable paravirt guest, causes test failure on older kernels
The 2.6.37 kernel on the AB occasionally fails dmesg and shutdown
tests with general protection faults.

(From OE-Core rev: 64749308fadabb4aa7c39f360c6395827bc5eb3a)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Andrei Dinu
920ddb4262 e2fsprogs : upgrade to 1.42.6
- removed the usage of the patches already contained in the new version
 - adapted patch remove.ldconfig.call.patch so that it applies on new version

(From OE-Core rev: 7ceba1eb102b3f855f561764833f8a7a407b7785)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Andrei Dinu
20822dedfe icu : upgrade to 50.1.2
(From OE-Core rev: 1ce0a0b56e37eb4807f5d7e44e0afaba8a05c278)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Bogdan Marinescu
947e95b67c eglibc: don't list the same path twice in RTLDLIST
Before modifying RTLDLIST in ldd, make sure that it doesn't already
contain the right path, thus avoiding duplicate entries in RTLDLIST.

[YOCTO #2655]

(From OE-Core rev: 3cef117439aea2d724e92dcb0f862f1cc8e8bfa5)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Constantin Musca
703b70c98a gcc: enable multilib for target gcc
- add a task to setup multilib configuration for target gcc
- this commit adapts Nitin Kamble's work to gcc 4.7
- use a hash for storing arch-dependent multilib options
- patch gcc in order to use the multilib config files from the
build directory

Tests:
root@qemux86-64:~# gcc -m64 t.c -o t
root@qemux86-64:~# file t
t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !
root@qemux86-64:~# gcc -m32 t.c -o t
root@qemux86-64:~# file t
t: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
root@qemux86-64:~# ./t
Hello World !

[YOCTO #1369]

(From OE-Core rev: b26819c85881e82ee1b5c68840011e78c321f18e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Khem Raj
62285873e2 module-base.bbclass: Call make instead of oe_runmake in do_make_scripts
This makes the external module compilation a bit more robust for
cases where external module recipes may be passing extra params
to make via EXTRA_OEMAKE, and more than often one needs to pass
M=$(PWD) when building external modules and if we use EXTRA_OEMAKE
that would mean that it would appear in do_make_scripts as well
and since we are only changing the reference kernel src tree here
it will not run the make scripts in desired directory.

It is also well explained in top makefile in kernel tree around
line# 1335 in 3.4

|else # KBUILD_EXTMOD
|
|###
|# External module support.
|# When building external modules the kernel used as basis is considered
|# read-only, and no consistency checks are made and the make
|# system is not used on the basis kernel. If updates are required
|# in the basis kernel ordinary make commands (without M=...) must
|# be used.

Therefore passing  M=... will not do the updates in the basis
kernel as expected with 'make scripts' so we have to bypass EXTRA_OEMAKE

[Yocto #3787]

(From OE-Core rev: 0e0a5ee405bab478f35690e95219a1e5f2ac7aa6)

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>
2013-02-01 15:54:31 +00:00
Martin Jansa
912ecffc3e libfm: add dependency on libexif
* it's autodetected from sysroot

(From OE-Core rev: 945953ed40dafb88d0b559f056fc49f63a84d6de)

(From OE-Core rev: 58a6a61b076b7ad4c2c3aba0336ae91bc7869394)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:31 +00:00
Saul Wold
966aa9ec62 module.bbclass: Allow for modules to be packaged seperate from ${PN}
This patch will allow recipes that provide kernel modules to package
the module or modules in specific packages. That list is contained in
MODULE_PACKAGES, this defaults to  to preserve the current behavior.
The package can also define MODULE_FILES to specify files.

[YOCTO #3803]

(From OE-Core rev: c1ff0467bf03a3342846f0d9dde74e34b740798f)

(From OE-Core rev: 977aee43868499ab87a098f3798e90d6978836b9)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Ross Burton
497ec60bf8 gst-plugins-bad: remove musicbrainz build-dependency
This plugin only works with an old version of the musicbrainz API, so it hasn't
been built for some time now.

So, remove the libmusicbrainz dependency as it isn't used.

(From OE-Core rev: 993b4fd2a63939359ea1833374912c15fccf6120)

(From OE-Core rev: 775621d65b5b72169913c817ed9de7973b2d5dcf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Bogdan Marinescu
f63db21f40 git: updated to 1.8.1.2
(From OE-Core rev: 81942e454e4c5aadf640dd3b2431f5726330c52d)

(From OE-Core rev: f07be36a5f699d08d0c018fb7ec327d6a509d76d)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Saul Wold
973e85c40d dhcp: Fix unshipped WARNINGS
This fixes:
WARNING: QA Issue: dhcp: Files/directories were installed but not shipped
  /etc/dhcpd.conf.example
  /etc/dhclient.conf.example

(From OE-Core rev: 209c7a31ff62291a1aa21dfa4062c7fd3d1a6155)

(From OE-Core rev: d3c6125001516955faf8fa52032cb18681238916)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Martin Jansa
da57e6bff8 license: fix LICENSE_CREATE_PACKAGE to stay disabled by default
* as reported by Enrico on #oe
  11:06:50 < ensc|w> JaMa: might this be caused by dc78ef91a2bf01efb8028c9afbe69e506e016265
  which checks for 'd.getVar('LICENSE_CREATE_PACKAGE', True)' evaluating to 'True' for every
  string (including the default 0)

(From OE-Core rev: bc42585ad9ca3a9891459ec3234893dff420b95b)

(From OE-Core rev: 0ab56ad52937823dc66b541dd4eda09fb6a34407)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Constantin Musca
c0f419528f multilib.conf: add TARGET_ARCH & TARGET_SYS to MULTILIB_SAVE_VARNAME
(From OE-Core rev: 81f3dd49693a7ad2e98c182896c98fc71b01592f)

(From OE-Core rev: 92e74eb2f501b10a513e043d3d62007d8ab5f468)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Constantin Musca
4873366bfc autotools.bbclass: add EXTRACONFFUNCS variable
- add EXTRACONFFUNCS variable in order to make it possible
to inject tasks after autotools_preconfigure

(From OE-Core rev: eafaeee58ab7a8f0613f54b8411f41ccefdf94c3)

(From OE-Core rev: d7950a25eda96a271aa6d541e03177d47e533f3f)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Andreas Müller
b11f1bf6e1 systemd: systemd-analyze remove python runtime dependencies
systemd-analyze was rewritten in C

(From OE-Core rev: d0682242fb44042497764ecc821b19c3f89054a0)

(From OE-Core rev: 83b0af0aa50e1b0259ae13ea723289a3edb7d9e2)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:30 +00:00
Andreas Müller
6ff6b79a97 systemd: systemd-analyse has moved to base_bindir
(From OE-Core rev: e24a5a72b73017c59fa0503b9745cb58444ea121)

(From OE-Core rev: 3c14a1f79097f471d5897bea11d55ab4ac17b17e)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Khem Raj
9926eb5996 systemd: Drop ppc build breakage patch for test-unit-file
its been fixed differently upstream in 197

(From OE-Core rev: 50a8bc8cf32f0cf38f0a910b0ae6bba03a2d58d7)

(From OE-Core rev: 97b8958b194add71f281651be1ab1a825029977d)

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>
2013-02-01 15:54:29 +00:00
Martin Jansa
f95bbe35b2 systemd: bump PE to provide upgrade path from meta-systemd recipe
* 197 sorts lower then v196.*, 22 ERRORs are shown when buildhistory is
  used:
ERROR: Package version for package udev-dbg went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package udev went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package udev-consolekit went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package udev-utils went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package udev-systemd went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-gui went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-vconsole-setup went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-initramfs went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-analyze went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-dbg went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-staticdev went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-dev went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-doc went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd-locale went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package systemd went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libgudev-1.0 went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libsystemd-daemon went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libsystemd-id128 went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libsystemd-journal went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libsystemd-login went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)
ERROR: Package version for package libudev went backwards which would break package feeds from (0:v196-105-gdecd634-r20.0 to 0:197-r1.0)

(From OE-Core rev: a58238aec13dc7a0fe350c65502860a9045d151d)

(From OE-Core rev: 71ae1992ee79672556b0fb1e066d317044a214cc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Roy.Li
9ab151a95f xinetd: enable tcp-wrappers support
(From OE-Core rev: 5890c691510797613b8418456ef5f7b6152c3410)

(From OE-Core rev: 722caaa6783e0a5796f11b77503121d9c0c7f391)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Andrei Dinu
9f2784f5cd Sudo : upgrade to 1.8.6p4
(From OE-Core rev: 115b1a703c26e11c631d77901104605d64f51f82)

(From OE-Core rev: 5f93bb7e783c23a5da344a9fc2f856f9b973d54c)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Enrico Scholz
b5392a43ee systemd: honor ROOT_HOME
Use ${ROOT_HOME} which was added in commit
a78cd0b3a69b829327cea035321051ab11cba70f.

(From OE-Core rev: b783b0fe2ac7d6733eaaa4ba9f078ed67d0de944)

(From OE-Core rev: 6ad2b3e18358a075b5a93edc2e620ac0ce9a15c8)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Tom Zanussi
8b8caef629 oprofile: remove AX_KERNEL_VERSION from acinclude.m4
The version of this macro in acinclude.m4 is preventing the correct
version in the package's kernelversion.m4 from being used.

Since the version in acinclude.m4 includes the obsolete config.h, any
test that uses it with newer (> 2.6.19) kernels fails.  In the case of
oprofile it means that perf_events support is never detected and thus
'legacy oprofile' is always built.

Fixing this allows the new perf_events 'operf' support to be built.

Fixes [YOCTO #3447]

(From OE-Core rev: 3f7f17894c097ebaa81055c8449c543b734df541)

(From OE-Core rev: 6fac31c7930e228efe5fed978964885e37a4da80)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Tom Zanussi
e771031453 oprofile: add kernel dependency
oprofile-0.9.8 adds 'operf' which depends on the kernel's perf_events
subsystem to be present when building, which adds the kernel
dependency that we specify in a new DEPENDS for oprofile-0.9.8.

(From OE-Core rev: d4dd1eaf75ef3d494d16ed2561e3ff4f5928a428)

(From OE-Core rev: 16bc366877a2e02d96adb91b90e30710777e6f09)

Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Kang Kai
8f63fefa56 busybox: update test case du-k-works
busybox test case du-k-work fails on ext3/4 image whose size less than
512M. Add patch testsuite-du-du-k-works-fix-false-positive.patch to fix
it and it has been merged by upstream.

[Yocto 2896]

(From OE-Core rev: ffe4f8a859d5e71e3e33363d61f0470a32c48d66)

(From OE-Core rev: 19eb2971c6e8c4a2847897919ec7a2cd9b1697b1)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:29 +00:00
Bogdan Marinescu
9a9848d215 python-smartpm: multilib fixes
To fix some multilib issues, change the way the RPM backend decides
if two packages can coexist: if they have a different architecture,
automatically assume that they can coexist (which is fundamental for
multilib).

[YOCTO #3681]

(From OE-Core rev: 05fd850f09c58dba8f64f3fe1de28ed9f21890a2)

(From OE-Core rev: 03c892a02568fa8a5765d9fb569a55f17ea05f96)

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:03 +00:00
Ross Burton
bbc374a69b metacity: remove, migrated to meta-gnome
(From OE-Core rev: 30b4dcdd3a4f78f3e7c7b94ffb9e0f94e56568ad)

(From OE-Core rev: d5314f90747a09967fcbcccec8d86b1e2f48980d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:03 +00:00
Ross Burton
f938ef0a8e libcanberra: remove, migrated to meta-gnome
(From OE-Core rev: 30b2d9d61965c02cc62bce8d295dc0da7e8ab71f)

(From OE-Core rev: df2bb0fd9f5921a430eb2f7435b69c901f01ac91)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:03 +00:00
Marcin Juszkiewicz
0516e9a31a Flex: use proper m4 binary on target
flex tries to execute:

/data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/m4

As workaround you can:

mkdir -p /data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/
ln -s /usr/bin/m4 /data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/

So this is a bug how OE builds flex.

flex tries to execute:

/data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/m4

As workaround you can:

mkdir -p /data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/
ln -s /usr/bin/m4 /data/oe/build/tmp-eglibc/sysroots/x86_64-linux/usr/bin/

So this is a bug how OE builds flex.

https://bugs.launchpad.net/linaro-aarch64/+bug/1106865

(From OE-Core rev: 215bcc780d9bc4a7d96d1c706db80abe4ef659dd)

(From OE-Core rev: 7bdb617f2f0e246feb4dc32931fdb87258fd1207)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:03 +00:00
Khem Raj
385854d1b9 rpcbind: Dont use nss with uclibc
Add defines which otherwise are missing in uclibc nss

(From OE-Core rev: 649c72a9aba96a609f699970933f4fa60e3cb5bc)

(From OE-Core rev: a8514d619830c976ae66cb582b8050908a85a7b5)

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>
2013-02-01 15:54:02 +00:00
Andrei Dinu
a3525ea617 libevent : upgrade to 4.0.21
- removed libevent-2.0.16_fix_for_x32.patch because the newer version
 contained the changes done by the patch.

 - LICENSE file new checksum caused by :

  old : Copyright (c) 2007-2011 Niels Provos and Nick Mathewson

  new : Copyright (c) 2007-2012 Niels Provos and Nick Mathewson

(From OE-Core rev: eda67a8cb2b2669c12ecda2cf9b00e1001b8c598)

(From OE-Core rev: 830eeee2da5bdea2420a1eac8814e4a51eacbd7a)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Andrei Dinu
e71a62240f blktool : upgrade to 4-6.1
(From OE-Core rev: d41cb0b5a727d6fda639d39b273e3352ab069a66)

(From OE-Core rev: f4baf5e123974135eea5a9f88bcaf3794895fde7)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Saul Wold
1e03821254 libnl: Update to 3.2.21
(From OE-Core rev: cdcf64866448fcbeaf6ddeff88ef7261c0cf7cae)

(From OE-Core rev: 62958c5af0b838007244b8b139912d5a8dc8507a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Saul Wold
6ff77d2847 sqlite3: Update to 3.7.15.2
(From OE-Core rev: bacdb06ed7795400ea08b25946dc94b956b7578b)

(From OE-Core rev: 9a419a38f6d5beb5c174204910878370d92258d8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
26ea367852 package.bbclass: Use expanded RDEPENDS in read_shlibdeps
We may as well expand the RDEPENDS when reading and writing as this function does.
if we don't do this, we could accidentally duplicate data and it also turns out
to be much less efficient.

(From OE-Core rev: d62a3151e7b252911c172a605b3089de355663c5)

(From OE-Core rev: 8f602e84e6ae4e346acef7cf5473343039fa352a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
244f107c1f package: Create global package file list and use throughout PACKAGEFUNCS
Currently we do a signficant amount of tree traversal in many different places
which in inefficient. We can assume that the files don't change and cache the
file list which gives an efficiency improvement which this patch does using
a global variable.

(From OE-Core rev: 2d7608842d2dab07065e60aab729a5c8fd6b7907)

(From OE-Core rev: 5c7c8347eb1bc25d194be6f4be142ba0924e2600)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
ed931d0314 package.bbclass: Improve package_fixsymlinks
Improve package_fixsymlinks so we don't handle RDEPENDS for every single package
in PACKAGES.

(From OE-Core rev: 20ff8feb95d54e4db646f8c0cb006ce187e288af)

(From OE-Core rev: ca2ee871f82dd0ba4122a8373e4efd21cec5722b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
398d62fd74 package.bbclass: Tweak PACKAGEFUNCS
Move package_rename_hook call into PACKAGEFUNCS and also move package_get_auto_pr
to a more appropriate execution point, grouping package metadata handling
functions together.

(From OE-Core rev: a3f41cfbc8923e54198d10db292a11ef2edda4d7)

(From OE-Core rev: 96d268166ab0d4640767bf3a0886358dcb663d0f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
b369a3619e package.bbclass: Split out package_fixsymlinks function
The symlink handling code doesn't need to being part of populate_packages
and is logically separate so split it out into a separate function,
package_fixsymlinks.

(From OE-Core rev: fc964ed2b558b08327e2bc8c93ada80ca9d97337)

(From OE-Core rev: 08a194c13857b02a2febf9b1484b3cdd67a18160)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:02 +00:00
Richard Purdie
f955e4e482 package.bbclass: Move PKG handling code to emit_pkgdata
We only use the PKG variable in emit_pkgdata so we might as well move the
fallback code there, allowing restructuring of other parts of the metadata.

(From OE-Core rev: 0136ae9a5f719f0e7ba6e00bfd366c0e61b3b3f2)

(From OE-Core rev: df38695f0fbea10289e85fdcb7c2bdf566990577)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
8a0b4578ec package.bbclass: Avoid copying the datastore for FILES handling
There is no real point in adjusting overrides and creating a copy of the datastore,
just to access a single variable. We can do this just as easily with a slightly
more complicated getVar call. This improves performance.

(From OE-Core rev: 69f4351809359a0c7c38e8f233f3e3f7680ed2e2)

(From OE-Core rev: b5d65f5d5e5b26d3a2c673e899114c90bcaf6bc8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
b0a2f55ccc package.bbclass: Check FILES once, not once per loop iteration
There is no need to check FILES in each loop iteration, we can just check it once
at the start when we read the variable.

(From OE-Core rev: 1bcc5cba12cbb1b846b433719d1b0820f5a97105)

(From OE-Core rev: 40542f7a46bfb8431e31eca9af06adb4b343d810)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
ae8586c952 package.bbclass: Add a shortcut exit from the mkdir function
The mkdir function iterates over strings with many different operations,
even if ultimately the target already exists. This adds a check to the start
of the function so we don't waste time when the target already exists.

(From OE-Core rev: 06e188e673313f1eb9ae7d85ae64467c8d2a94b3)

(From OE-Core rev: 9509627e06ab4cf18c5bbf3f405ecf19a9f40287)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
afb1b3fac8 package.bbclass: Improve kernel module handling
Currently the kernel module handling consists of several special cases
and has its own path walking. This refactors the code to handle them in
a more standardised way which is also a bit more efficient.

(From OE-Core rev: ad51b54f0afe8c56033137b7cf9ba398877b2651)

(From OE-Core rev: cb24a72e97afb43de5e1e79ff807fd9e184df6a2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
fed8dfff1f package: Rename splitfile functions to something more descriptive
The splitfile and splitfile2 function names are confusing and the comments
are also misleading, hard to understand or plain incorrect. This tries to
improve things.

(From OE-Core rev: 46f3050a1f46f814e2d031e7e71600b2932d631c)

(From OE-Core rev: bc6f7085b42d8137957795e800e8b46d2f1eddac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
8e5d8ed550 multilib.conf: Use BASELIB to set baselib, not hardcode the value
(From OE-Core rev: 1a97cab9d4856e8948025ce6f406c76a2732ec36)

(From OE-Core rev: b157ac5590a06405fd5622c7cf7c51c0a2d3cc5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Richard Purdie
e984aeef9b sqlite3: Ensure MLPREFIX is applied to AUTO_LIBNAME_PKGS
(From OE-Core rev: c09777a99281e22f006b3e8bdc90b469ba12d9fe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Roy.Li
8eab3f5e7a QT4: use '-no-neon' if cpu does not support neon
Some armv7a cpu does not support neon, like SPEAr1310,
so we should check against "neon" in TUNE_FEATURES.

(From OE-Core rev: 173d430ab2a06fb86f1c5bb0ca60376dd2fdbdfb)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:01 +00:00
Hongxu Jia
19ac10a86d dpkg-native:fix dpkg-scanpackages error at deb image creation time on Fedora 17
Invoking dpkg-scanpackages on Fedora 17 to build deb image meets such an error:

Can't locate Dpkg.pm in @INC  (@INC contains: /usr/local/lib64/perl5 /usr/loc
al/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr
/lib64/perl5 /usr/share/perl5.) at tmp/sysroots/x86_64-linux/usr/bin/dpkg-sca
npackages line 27.

1. The dpkg-scanpackages is invoked at deb image creation time and it is built
by dpkg-native. The dpkg-scanpackages is a perl script and import module `Dpkg'.

2. The Dpkg.pm has been installed in perl's staging dir at dpkg-native compiling
time. Such as `tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/Dpkg.pm'

3. The dpkg-native uses create_wrapper to relocate to perl-native if perl-native
has been built. If perl-native isn't built, it will use the host Dpkg as default.

4. If dpkg-native is built on a new build envionment which means perl-native doesn't
exist before, and the build system doesn't install dpkg (such as Fedora 17), the
dpkg-scanpackages could not work correctly.

5. Modify dpkg-native's depends, change `perl-native-runtime' to `perl-native', Let
perl-native automatically be built before building dpkg-native.

[YOCTO #3817]

(From OE-Core rev: 7d194e72ee12cb6690bf07a8423cb461dd210719)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Otavio Salvador
982eefe22d mini-x-session: Fix runtime when using without session contents
The script where behaving badly when the session directory does not
exist and also lacking a dependency to 'sudo'. Instead of adding a
dependency on 'sudo' we use 'su' as done in xserver-common.

(From OE-Core rev: 84b58ed421fd14796ddcbc4cc7fc13a5a098d6cc)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Ming Liu
3ca9ff71dd connman-gnome: Add DEPENDS on intltool-native
When 'bitbake -c configure connman-gnome' is executed from scratch, it fails
with syntax error parsing `IT_PROG_INTLTOOL(0.35.0)' in configure.in. This
is caused by its definition is not included into aclocal.m4

Adding intltool-native to DEPENDS is gonna fix it.

[YOCTO #3815]
[ CQID: WIND00401118 ]

(From OE-Core rev: 283dd547b5ed657f871b9330ff4d8d5b3afd1e32)

Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Phil Staub
9a9586c230 libaio: Fix MIPS system call interface
The io_syscallX wrappers in syscall-mips.h discard error return status
by overwriting the value returned in v0 from the system call with -1.

Modify this behavior by returning the negative of the return value on
error (as identified by a3 != 0). This convention is consistent with
the behavior observed in syscall-ppc.h.

For a description of the MIPS system call interface, see:

http://www.linux-mips.org/wiki/Syscall

(From OE-Core rev: 0d8f50c33e5ff71dc17121b5c293718a8ad602bd)

Signed-off-by: Phil Staub <Phil.Staub@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Bruce Ashfield
12e76e123f multilib: skip packages that provide virtual/kernel
Rather than keying on recipes that inherit kernel.bbclass, we should
be checking for providers of virtual/kernel when skipping kernel
recipes in multlib builds.

Not all providers of virtual/kernel inherit kernel.bbclass (notably
linux-dummy), so checking on the provider is a more complete check.

We need to be sure to check for inheritance of module-base as well, this
allows for packages that provides modules to avoid the multilib renaming.

(From OE-Core rev: dc7d181ab03ceab87a24d932130109003334dbf8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Mark Asselstine
dbfa6f9563 kernel: avoid copying unnecessary files during do_install
kernel_do_install() populates $kerneldir with files needed to build
external modules. To accomplish this there are several copy commands
to get source from the kernel source tree and build trees after which
a 'clean' is performed. Since we are copying from the build tree we
get about 1G of .o and .cmd files copied over only to have them
removed when we clean. This adds additional IO overhead as well as
overhead caused by pseudo. By avoiding copying these files in the
first place we get multiple gains:
  * avoid initial copy
  * avoid file deletes during clean
  * reduce pseudo overhead

Additionally we are making use of cpio vs cp which tends to be
significantly faster at performing copies.

With these changes I observe a 15-30% decrease in the time to complete
the do_install() operation on the kernel.

[YOCTO #3517]

(From OE-Core rev: c753f9d59f4d0a5af4ea5deb6e2b9609e05314e2)

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Ian Reinhart Geiser
4a4049b2fb mesa-dri: add extra dri drivers
* By default enable only swrast.  This needs to
   be here or for some reason qemuarm tries to
   detect the intel dri libraries and fails.
 * For x86 and x86-64 explicitly set all of
   the supported drm drivers.

 builds properly with qemux86 qemuarm and qemux86-64

(From OE-Core rev: 3efcfa7e75dc0fe98b75ae1b7be8db5549182ff9)

Signed-off-by: Ian Reinhart Geiser <igeiser@devonit.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Lukas Bulwahn
3f1280da0a insane.bbclass: removing outdated comment
This commit removes an outdated comment that recorded an issue that has been
resolved in the commits 1c75a5df68 and
d2d5456cd3. Probably, the comment was missed
when changing the behavior in those commits.

(From OE-Core rev: fb1b51e902186b6a7d05e511fe3c3f03c10e3444)

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:54:00 +00:00
Ting Liu
f651a84abb oprofile: avoid processing files under .pc
Fix the below issue:
| DEBUG: Executing shell function do_configure
| sed: can't read ./.pc/opstart.patch/doc/opstop.1.in: Permission denied
| sed: can't read ./.pc/opstart.patch/doc/opstart.1.in: Permission
denied
| sed: can't read ./.pc/opstart.patch/utils/opstart.c: Permission denied
| ERROR: Function failed: do_configure

(From OE-Core rev: d1003ea86543ce5d09c163db95e9e723aa1adc10)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-02-01 15:53:59 +00:00
Robert Yang
8d80483e2f bitbake: bitbake-layers: print the recipe's depends that crosses a layer boundary
Figure out the dependency between recipes that crosses a layer boundary

* Introduction:
  - For the .bb file, we need check the following depends:
    > Check the DEPENDS, RDEPENDS and inherits according to the
      cooker_data.
    > The cooker_data doesn't have the info about "require/include xxx",
      so we need check them manually.

  - For the .bbclass, .inc and .conf file, we can't get their file
    depends from the cooker_data, we need check them manually.

* Usage:
  $ bitbake-layer show-cross-depends

  I don't like the name "show-cross-depends", figure-out-cross-depends
  might be better, but most of the commands are "show-xxx" for bitbake-layers.

* Output: (snipped)
/work/poky/meta/recipes-support/libusb/libusb-compat_0.1.4.bb inherits /work/poky/meta-yocto/classes/poky-sanity.bbclass
/work/poky/meta-intel/meta-cedartrail/recipes-cdv-media/images/core-image-cdv-media.bb requires /work/poky/meta/recipes-sato/images/core-image-sato.bb
/work/poky/meta-yocto/recipes-core/tiny-init/tiny-init.bb RDEPENDS /work/poky/meta/recipes-core/busybox/busybox_1.20.2.bb
/work/poky/meta-intel/common/recipes-bsp/amt/lms_7.1.20.bb DEPENDS /work/poky/meta/recipes-devtools/autoconf/autoconf_2.69.bb
/work/poky/meta/classes/distrodata.bbclass includes /work/poky/meta-yocto/conf/distro/include/package_regex.inc
/work/poky/meta-intel/meta-sys940x/conf/machine/sys940x.conf requires /work/poky/meta/conf/machine/include/tune-atom.inc

[YOCTO #3387]

(Bitbake rev: 100502ef722bf19b6c125a5e017f31686ad18421)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 14:00:03 +00:00
Martin Jansa
d82eac8041 bitbake: ssh.py: add example SRC_URI
(Bitbake rev: f838af8e7afebf279ffb00a3afa6592f061b703f)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:21 +00:00
Martin Jansa
9df0588ab4 bitbake: ssh.py: throw ParameterError when someone tries ssh://foo; protocol=git
* taken from SFTP fetcher:
  http://patchwork.openembedded.org/patch/43027/

(Bitbake rev: 88e565855b52e905156d85c3f45b341cddfe2f55)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:21 +00:00
Martin Jansa
e863851045 bitbake: ssh: fix fetcher
* set localpath in urldata_init
  otherwise localpath and basename were None, when fetcher was trying to
  define .lock and .done paths
  basepath = d.expand("${DL_DIR}/%s" % os.path.basename(self.localpath or self.basename))
* remove "host" from localpath
  .done and .lock files are always using just basename, so if someone
  has 2 recipes with:
  SRC_URI = "ssh://foo/file.txt"
  SRC_URI = "ssh://bar/file.txt"
  then there will be only one file.txt.done in downloads anyway (and
  only first file.txt from first server will be returned on do_fetch

(Bitbake rev: 41208760d70a657297f9ecfb48b74e2c3b594e70)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:20 +00:00
Cristiana Voicu
c30ef8886d bitbake: hob: eliminate the "by recipe" grouping in the packages table
We have agreed to change how we show the packages. Now they are not grouped by
recipe. Until now, it was implemented using  TreeStore and I've changed it to
extend a ListStore. I have modified all the function in according to this.

[YOCTO #2180]
(Bitbake rev: 311e7ba8b2c88fbf6f16b6ffb1400226b155ddd4)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:20 +00:00
Cristiana Voicu
b2ab771447 bitbake: hob: Use a GtkTreeView to present and configure the sstate mirrors
After some discussions about the design of the Shared State Settings tab in Hob,
we have decided that using a GtkTreeView to present and configure the sstate
mirrors is probably the best solution.

[YOCTO #3569]
(Bitbake rev: 2ff636910b9cf3099e8d961f4bbe71512c015ecc)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:20 +00:00
Christopher Larson
785e1ba012 bitbake: tinfoil: support other fds, enable color support
Rather than only handling sys.stdout, also support any arbitrary file object,
and enable color for the formatter if that file is a tty.

(Bitbake rev: c46db4be4cc4dc53376ed3f574b2f1c868730f2a)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:20 +00:00
Cristiana Voicu
5deae14080 bitbake: hob: small fixes to parsing warnings dialog
Set the labels selectable; reset the warnings list when another machine is selected;
changed a label name

[YOCTO #3215]
(Bitbake rev: a4463d7b51828c32e55dea3c0dd51966d387abac)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:20 +00:00
Cristiana Voicu
f0aef9953d bitbake: bitbake & hob: implement functions to assure consistency for configuration files
Added a new command in bitbake to save a variable in a file; added a function
in cooker which is called by this command.

Added new command in bitbake to enable/disable data tracking.

The function saveConfigurationVar from cooker.py saves a variable in the file that
is received by argument. It checks all the operations made on that variable, using the history.
If it's the first time when it does some changes on a variable,it comments the lines where
an operation is made on it, and it sets it in a line to the end of file. If it's not
the first time(it has a comment before), it replaces the line.

Made some changes in hob to save the variables from bblayers.conf and local.conf
using the bitbake command.

[YOCTO #2934]
(Bitbake rev: 55b814ccfa413d461d12956896364ab63eed70a8)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:46:19 +00:00
Marko Lindqvist
33c6c411ea harfbuzz: fix install of version.h
version.h is listed both in pkginclude_HEADERS (via $HBHEADERS) and
nodist_pkginclude_HEADERS. This double listing is likely cause of
the make install error:
/usr/bin/install: cannot create regular file `.../harfbuzz/0.9.10-r0/image/usr/include/harfbuzz/hb-version.h': File exists
Just remove the nodist_pkginclude_HEADERS entry. We're not creating
the tarball, and listing version.h here wouldn't prevent the other
listing from including it to tarball anyway.

(From OE-Core rev: 1489a69cecb1dcc3502a4c24beaea81e6ca6dacc)

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-31 12:29:52 +00:00
Richard Purdie
9a26b9c69c rpm: Ensure native binaries are correctly wrapped
(From OE-Core rev: 1cdeff2c50a13c7238543ee1e4e1eb60753120e2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:47:30 +00:00
Scott Rifenbark
df70804654 dev-manual: Added text explaining "meta" is not required for layer name
Updated a couple spots in the manual to be clear on meta
not being a strict requirement for a layer name.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:05 +00:00
Scott Rifenbark
eddb8174c8 ref-manual: Updated FILESPATH glossary entry
Fixes YOCTO #3661

The value for FILESPATH was incorrect.  I have replaced it with
the value found in base.bbclass.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:04 +00:00
Scott Rifenbark
bdc130bb35 dev-manual: Qualified the use of meta-intel in the BSP workflow
Fixes YOCTO #3663

I added wordings to indicate that meta-intel is not required
to create a BSP layer.  But, the example presented uses
meta-intel.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:04 +00:00
Kevin Strasser
90a183b9c5 dev-manual: clarify what source is being archived
Part of section 5.15.1 incorrectly implies that only copyleft
source will be archived to the specified directory, when in fact
copyleft filtering is disabled by default.

(From yocto-docs rev: 8eacef8acc398bc3d881d657d27c8827f05e3227)

Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:04 +00:00
Kevin Strasser
e13a2ee08b dev-manual: fix gpl source release example
The example doesn't account for an extra level of directories
that organise the sources by machine type.

(From yocto-docs rev: 844e8b8f28ab765e59fdbee40e00c973b1b00d89)

Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:04 +00:00
Kevin Strasser
9a7bd85ea2 dev-manual: use path independent bblayers.conf example
(From yocto-docs rev: 1189fddd801beaabdd8df6923f6a8d3491b1afb4)

Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:04 +00:00
Scott Rifenbark
23737926d2 ref-manual: Changed the default BB Signature Handler
Fixes YOCTO #3684

Updated the section that declares what the default BB
Signature Handler is.

(From yocto-docs rev: e4c64add4a54e5583bf88fc71f00c90f7a1f6440)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
d70e93caf4 mega-manual: Removed support for old kernel-manual.
No longer including the Yocto Project Kernel Architecture
and Use Manual.  I removed the lines that included this
manual as part of the mega-manual.

(From yocto-docs rev: 69fa3cc4a07fc471fc869a81ff2545d62b63286e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
eddb116f35 Makefile: Removed bits that support kernel-manual
I took out the logic that built the old YP Kernel Architecture
and Use Manual.  This manual can no longer be build.  It is
being retired.

(From yocto-docs rev: 8d5b179995e561deb94572150e904da5cd4dec19)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
5174240361 kernel-dev: Added "-dirty String" section.
The "-dirty" String section from the old YP Kernel Architecture
and Use Manual was moved to section 2.3 of the manual.  It needs
to find the right area to be put in (AR for Darren).  I added the
AR text to the top of the section so it would not fall through
the cracks.

(From yocto-docs rev: eaa5b86643572a6c74028dc3330625a0bfbca50e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
46dcd9fd73 kernel-dev: Added "Inspecting Changes and Commits" section
A Section about seeing what has changed in a kernel tree
was moved from the old YP Kernel Architecture and Use Manual
to this new manual.  The section moved was "Change Inspection:
Changes/Commits".  In addition to moving the sections, I
shortened them up by removing verbose parts of the section.

(From yocto-docs rev: 2c620ea2bed0844b70b497dfa461c0b364312e39)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
d36e4792e7 kernel-dev: Added "Maintenance" appendix.
New appendix required adding the kernel-dev-maint-appx.xml
file.  The contents are sections 3.2 and 3.3 from the old
YP Kernel Architecture and Use Manual, which is "Tree
Construction" and "Build Strategy."  According to Darren Hart,
this information should be retained for the few people on
the planet that might ever need it.  In addition to adding
the new file, I had to add the bits to the kernel-dev.xml
manual to support including the appendix when making the
manual.

(From yocto-docs rev: b25e40308080c59c6700e1dce8ebf6a9a2dafbcc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:03 +00:00
Scott Rifenbark
805a36cd58 ref-manual: Fixed broken link to "Build Directory" term.
(From yocto-docs rev: 311edd13da00f6849094346aaa9509f27d60b2c4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:02 +00:00
Scott Rifenbark
a24cb73f39 kernel-dev: Added "Kernel Architecture" section.
Moved the "Kernel Architecture" section from the YP Kernel
Architecture and Use Manual to this manual.  The section
included the kernel-architecture-overview.png figure.  So,
I added that PNG file to the "figures" folder.  Finally, I
had to also add the PNG file to the Makefile tarfile list
for kernel-dev.  Note that because the figure was part of
the old YP Kernel Architecture and Use Manual, I did not have
to add the figure to the mega-manual tarfile list.

(From yocto-docs rev: fbc5508ce162ea7915fd5dce74338b6a5bfd7ce1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:02 +00:00
Scott Rifenbark
36b5f97e26 kernel-dev: Changed the FAQ to be an appendix.
(From yocto-docs rev: 0439024c603fbc190741ea0cc807923bb41028a8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:02 +00:00
Scott Rifenbark
9ba5e61b7a kernel-dev: Updates to support new concepts appendix
Added bits to support building the new kernel concepts
appendix.

(From yocto-docs rev: 6d372bd12288142b09c729f877c1e894f11c7c27)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:02 +00:00
Scott Rifenbark
d029e786b5 kernel-dev: Added new appendix for kernel concepts.
(From yocto-docs rev: e25465c6d177a27d3dee742ebc958ae30f968ffa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:02 +00:00
Scott Rifenbark
b80e983620 kernel-dev: Added an AR to the beginning for Darren
The concepts in three bulleted items in the old kernel manual
need to be present in this new manual.  I put in a bit of text
right at the beginning of the manual in the form of an AR for
Darren.  This will eventually be removed, but for now it is there
so that it won't slip through the cracks.

(From yocto-docs rev: 85b7300df30837f72d936f8ec1af0b2a4a9c1a88)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:10:01 +00:00
Richard Purdie
c9ea3c27e1 package_ipk/deb/rpm: Ensure deploy staging directory is empty before rerunning task
If we don't do this, stale files can build up, particularly with the PR
server.

(From OE-Core rev: c30ae39229b35d72e2205040d76754b5120fa878)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:09:09 +00:00
Richard Purdie
fb2de94105 directfb: Explictly disable mesa
Without this, directfb might build with mesa enabled if present.

(From OE-Core rev: 1531adb8d2230646e03f31ea30faa916d846ccfc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:09:09 +00:00
Richard Purdie
643bac1e97 insane.bbclass: Fix incorrect getVar call
On a trace I was a bit puzzled why getVar was making 180 calls to len(d).
This is an expensive operation that should be very rarely called and
certainly not by getVar. In perl's do_package it was resulting in
~1.5 million function calls from those 180 cases.

Ultimately this typo was why. Lets fix it and save the CPU cyles.

(From OE-Core rev: a8ba821d0002e4395fc5c80649fe14f93a7971fe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:09:09 +00:00
Richard Purdie
b01b1a704b sstate: Move debug comment to more logical place
The same log message gets output multiple times in the log which look
confusing and is rather pointless. Move the log message to the correct
level.

(From OE-Core rev: 3917409004a830e7ad0646f05ad7421385cbd1de)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:09:09 +00:00
Richard Purdie
53dec01483 bitbake: cache.py: Drop support for BROKEN variable
All it now does is function in a similar way to EXCLUDE_FROM_WORLD and
since we have a better named variable for this, lets just drop the
usage of BROKEN at the bitbake level.

(Bitbake rev: 8f4dcf794545273417d78ba18f51aa2b81606ae4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:06:00 +00:00
Cristian Iorga
b4f407c84a alsa-tools: upgrade to 1.0.26.1
Removed the following tools:
- all related to hdsp (required gtk+ and fltk-config)
- ld10k1, qlo10k1 (required QT)
- hdajackretask

Fixed the automake issue for cross-compilation

(From OE-Core rev: 9a148e6b100fe8bc3e162d79630552df5eb78fc0)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 14:03:58 +00:00
Saul Wold
27c8af1e3a module.bbclass: Don't add pkg_postinst/pkg_prerm to all packages in recipe
The code in module.bbclass was appending the pkg_postinst and
pkg_prerm to all packages that are part of a given recipe, meaning
that the -lic, -dev, -doc, ... packages all got the scriptlet
This change uses  only which macthes with the RDEPENDS and FILES
already used in module.bbclass.

The failure was that rootfs creation would fail due to the -lic package
being installed before the kernel and the script would fail.

[YOCTO #3803]

(From OE-Core rev: cf05c4578c99c0cb885cf2706f7f2b39b100aeb8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 00:03:01 +00:00
Saul Wold
96180955d0 rootfs_rpm: Escape the backtick to ensure the ls runs on the target
This change ensures that the ls /etc/rpm-postinsts runs in the target
at first boot time, rather than at the creation time of the script on
the host.

This was causing the following error in the rootfs log:

+ install -d /srv/ssd/sgw/machines/fri2/tmp/work/fri2-poky-linux/core-image-minimal/1.0-r0/rootfs//etc/rcS.d
+ i=
+ ls /etc/rpm-postinsts/
ls: cannot access /etc/rpm-postinsts/: No such file or directory

(From OE-Core rev: e893cf0b3843701e80f5c9f47be04d1a88e5ed68)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-30 00:03:01 +00:00
Richard Purdie
cfb082961a bitbake: build.py: Dump out performance data of individual tasks
(Bitbake rev: 32aa49519e4f015e3c21466a7e5dc939f6369851)

Signed-off-by: Richard  Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 14:49:05 +00:00
Richard Purdie
dd335b0908 bitbake: utils.py: Add function for processing profile output
(Bitbake rev: 0df64810e8d40e7761cfd5059c0617dda31a6641)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 14:49:05 +00:00
Andrei Dinu
469bf3c58e mtools : upgrade to 4.0.18
(From OE-Core rev: e11fdc145255c8b97c6c7ac6c5f7ce8aa50bdf0d)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 14:49:05 +00:00
Andrei Dinu
f3dfb7c200 openssh : upgrade to 6.1p1
(From OE-Core rev: 5534deb69b0a2835fbbf149a00d1f6ba61cc8160)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 14:49:04 +00:00
Constantin Musca
3ba2ce25bd migrate_localcount.bbclass: use PRAUTOINX instead of PN & PV
- we need to use PRAUTOINX (it covers all cases)
- it addresses bumped PE issues

[YOCTO #3071]

(From OE-Core rev: ec81b985bb29a8562366f5343171e68a1f9cc4e9)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 14:49:04 +00:00
Saul Wold
30ec3110d9 libcgroup: Update to 0.38
(From OE-Core rev: daf1298f6c34ce7efe4084ebbb1015b55c248383)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
e1b9645d00 resolvconf: Update to 1.69
(From OE-Core rev: 990ac9be82b1657293a6bef89fd55bfdce3ad802)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
8d81257ceb util-linux: Update to 2.22.2
(From OE-Core rev: b4ec72a5efe7a22a00aa3ced7eeb2213233b848c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
98a54331e1 dhcp: Update to 4.2.5
(From OE-Core rev: fb1a7cf8ac1b5ab8047f47ace28775685ba28804)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
7fed40399c file: Update to 5.12
Remove the backported automake patch, now fixed upstream

(From OE-Core rev: a7d06efe4856ea76b1ffa15ed398099cc963d14a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
6c11a8d8b2 cracklib: Update to 2.8.22
(From OE-Core rev: e21c57c204024be06ac5ac0c56a065b271b9ba5c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
a495cc6a34 libidn: Update to 1.26
(From OE-Core rev: ba9bf2b01f8166860e724b416f413153de14a750)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
fffd4d6893 man-pages: Update to 3.45
(From OE-Core rev: 61efbc44d5d49a56323cf2c018713b0cd7204eae)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
0b94ce4698 mc: Update to 4.8.7
(From OE-Core rev: 5a3b6f5213e6fced8c6162d4fae40ed0bc8f3f65)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
5640021225 sysstat: Update to 10.1.3
(From OE-Core rev: a9a39d944046d29e4870b4449921095c797b55fa)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:32 +00:00
Saul Wold
9f45ab7f8b rgb: Update to 1.0.5
Remove the backported automake patch, now fixed upstream

(From OE-Core rev: 2356ce3b58b44551d51b3de0eddb81e32e907c45)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:31 +00:00
Saul Wold
a4fbcfbb72 libnl: Update to 3.2.19
(From OE-Core rev: 7ccb2e6463a745e90aa40c7e4163f9ef3495f866)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:31 +00:00
Khem Raj
de51b42596 systemd: Upgrade to 197
LGPL-2.1 licensce is updated to reflect the new FSF address
Drop patches to disable argparse and dbus-python

analyser has been implemented in C lets use that patch
and get rid of the python version

disable hostname detection for uclibc bases systems
since uclibc lacks NSS

(From OE-Core rev: af17e816dd4ee0c2a7401f26a148129ad8f8e1fa)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>

Conflicts:
	meta/recipes-core/systemd/systemd_197.bb
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:31 +00:00
Khem Raj
f366fd3f4a icu: Fix build on uclibc
_timezone is not implemented in uclibc therefore
bypass it.

(From OE-Core rev: 8fb1e3b74b01095cbc626497f1a7c71145343af3)

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>
2013-01-28 12:29:31 +00:00
Khem Raj
bf41d31185 quota: inherit gettext
Othereise it does not honor USE_NLS variable
and does not have proper dependencies. Which leads
to compile errors like missing liintl.h on uclibc

(From OE-Core rev: 606d1245cfa23bd51240af5112dc2e5257efbed1)

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>
2013-01-28 12:29:31 +00:00
Khem Raj
af6d093fb3 eglibc: Backport upstream 2.17 patches
These two patches has been applied to eglibc 2.17 branch
since we created our snapshot.

(From OE-Core rev: 4fdec58c979bb9715a8ab92344ad05110aa57cc6)

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>
2013-01-28 12:29:31 +00:00
Khem Raj
482a933ac9 eglibc_2.17: Fix Tibetian locale generation error
This is fallout of BZ #13950 fix to glibc

(From OE-Core rev: 4b39d90c84b1c1577b6744e7117502069c5bf719)

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>
2013-01-28 12:29:31 +00:00
Khem Raj
d7b8ad5c29 eglibc: Upgrade recipes 2.16 -> 2.17
Drop patches that are applied upstream

Fix the license checksums for changes in LICENSES file
the new changes add more copyright notices that were missing earlier

Moving ports is no longer needed since ports is now part of libc proper

Refresh tzselect-sh.patch to accomodate upstream changes

C++ headers discovery relative to target sysroot is fixed differently
upstream hence we drop use-sysroot-cxx-headers.patch

aarch64 support is already available in 2.17 hence drop the local
patches

(From OE-Core rev: 83b6fe6d91b924be5a7676e6ee973ce26b5eefc5)

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>
2013-01-28 12:29:31 +00:00
Andreas Müller
b71a16e8ac package.bbclass: remove RRECOMMENDS on base packages for locale packages
As long as we support only one locale package per recipe this leads to unwanted
packages in images. This patch was motivated by samba (meta-oe): only wanting
libsmbclient one gets full samba server into the image. For my standard image
the follwing package were removed by this patch:

-acl_2.2.51-r3_armv7a-vfp-neon.ipk
-alsa-states_0.2.0-r3_armv7a-vfp-neon.ipk
-alsa-utils_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-aconnect_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-alsaconf_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-alsactl_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-alsaloop_1.0.25-r3_armv7a-vfp-neon.ipk
 alsa-utils-alsamixer_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-alsaucm_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-amixer_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-aplay_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-aseqdump_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-aseqnet_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-iecset_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-midi_1.0.25-r3_armv7a-vfp-neon.ipk
-alsa-utils-speakertest_1.0.25-r3_armv7a-vfp-neon.ipk
-attr_2.4.46-r4_armv7a-vfp-neon.ipk
-avahi_0.6.31-r7.1_armv7a-vfp-neon.ipk
-gtk-engines_2.20.2-r3_armv7a-vfp-neon.ipk
-pulseaudio_2.1-r15_armv7a-vfp-neon.ipk
-samba_3.6.8-r6_armv7a-vfp-neon.ipk
-vte_0.28.2-r5_armv7a-vfp-neon.ipk
-xz_5.1.2alpha-r0_armv7a-vfp-neon.ipk

Strange effect: For samba buildhistory's depends.dot says:
-samba -> libc6;
-samba -> libgcc1;
-samba -> libreadline6;
-samba -> libtalloc2;
-samba -> libtdb1;
-samba -> libwbclient0;
-samba -> libz1;
-samba -> update_rc_d;
-samba_locale_de -> samba [style=dotted];
 samba_locale_de -> virtual_locale_de [style=dotted];
-samba_locale_fr -> samba [style=dotted];
-samba_locale_fr -> samba [style=dotted];

This is conflicts to buildhistory's result on samba package not mentioning
any changes for samba package.

(From OE-Core rev: 50354ebece43a6c13f9ca592e7d230765a26fdf8)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Andreas Müller
52268c7599 buildhistory.bbclass: track also complementary package information
(From OE-Core rev: ffdb003590d5c1d49d6c6a6710adf71397e4fb9b)

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Xin Ouyang
e6cdf99929 libcgroup: fix the QA issue for pam_cgroup.so*
PAM modules in ${base_libdir}/security/ should be binary .so files,
not symlinks, so fix this. Since pam_cgroup.so is installed into
${base_libdir}/security, move libcgroup.so.* to ${base_libdir} to
avoid "unsafe-references-in-binaries" QA issue.

(From OE-Core rev: 35567eed06ebd12f7c8ee0a04b6cb28530cf85d7)

Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Chen Qi
43c2c5b426 sysvinit & initscripts: use update-rc.d
Update-rc.d provides a cleaner interface for creating links for init scripts.
So we use update-rc.d to replace the redundant 'ln -sf xxx' statements.

[YOCTO #3708]

(From OE-Core rev: 66f3e3c15faedc9ee78532b4c59fa5d7148ddace)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Radu Moisan
77eaad86d1 valgrind: update to 3.8.1
Changed license copyright notice 2011->2012
remove unnecessary patches
built for x86, 86-64, ppc

(From OE-Core rev: df0d23c2bedafd534c5909a65afaf3373d7bc33e)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Riku Voipio
a921ed0bc0 libaio: add aarch64 support
Picking up a patch from gentoo and adding aarch64 defines
is enough to fix libaio and pass the harness testsuite

(From OE-Core rev: 7255c43b6e545a4c15c3cd57f6c240668a77786a)

Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Frans Meulenbroeks
f876c13499 mtd-utils: split into multiple packages
This allows one not to install rarely used or fs specific files
As discussed in http://thread.gmane.org/gmane.comp.handhelds.openembedded.core/31744/focus=31804

(From OE-Core rev: ca9d10543f22b60ba32fd78130970591782b880c)

Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Cristian Iorga
336d70c0ad alsa-utils: upgrade to 1.0.26
ncursesfix.patch is no longer necessary,
build system fixed upstream.
ncursesfix.patch removed.

(From OE-Core rev: 1dccd16e29186e7baad6ebcf189b7ea2463c2275)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Marcin Juszkiewicz
98bee847ac xorg-minimal-fonts: depend on font-alias instead of shipping fonts.alias
| Collected errors:
|  * check_data_file_clashes: Package font-alias wants to install file /home/hrw/HDD/devel/canonical/aarch64/openembedded/build/tmp-eglibc/work/genericarmv8-oe-linux/core-image-lsb-dev/1.0-r0/rootfs/usr/share/fonts/X11/misc/fonts.alias
|       But that file is already provided by package  * xorg-minimal-fonts
|  * opkg_install_cmd: Cannot install package packagegroup-core-lsb-dev.
| ERROR: Function failed: do_rootfs (see /home/hrw/HDD/devel/canonical/aarch64/openembedded/build/tmp-eglibc/work/genericarmv8-oe-linux/core-image-lsb-dev/1.0-r0/temp/log.do_rootfs.7564 for further information)

(From OE-Core rev: e3d5cb2033245ecb6e25f90d9d71296a018c4342)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:30 +00:00
Hongxu Jia
44f232f6f8 gtk-immodules-cache.bbclass:fix support postrm at image creation time
Let postrm use the same logic as the postinst to run on both build machine
and target

[YOCTO #3633]

(From OE-Core rev: dc1bb7a5532411bc9cb7e8678bc540c44fd2cd63)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:29 +00:00
Hongxu Jia
92209ae0cb gtk-icon-cache.bbclass:fix support postrm at image creation time
When use postrm on the build machine, it installs the hook in intercept-scripts
directory and exit 0, the hook will be later invoked and it will properly call
gtk-update-icon-cache.

[YOCTO #3633]

(From OE-Core rev: 6ae0b8339134300d0c179bd47dc3062e0e1f2f0b)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:29 +00:00
Martin Jansa
15aa713482 license.bbclass: package license texts to PN-lic when LICENSE_CREATE_PACKAGE is enabled
[YOCTO #3743]

(From OE-Core rev: dc78ef91a2bf01efb8028c9afbe69e506e016265)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:29 +00:00
Martin Jansa
2daab0b3a2 license.bbclass: extract functionality to find license files to separate function
* move it from do_populate_lic to find_license_files so we can reuse it
  to populate license in package itself

[YOCTO #3743]

(From OE-Core rev: 833f8c239aa475b3e0cacbd448a90079ac287468)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-28 12:29:29 +00:00
Scott Rifenbark
b2869b6810 ref-manual: Added a general reference and link to kernel-dev
Put in a cross-link to the new YP Linux Kernel Development
Manual up in the introduction.

(From yocto-docs rev: ba00acb1a0db9494b0d0ff1335f2532b5e2a7994)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:06 +00:00
Scott Rifenbark
347e99427f dev-manual: Scrub for correct YP manual cross-references.
I went through and got rid of all references to the old
YP Kernel Architecture and Use Manual and replaced with
appropriate references to the new YP Linux Kernel
Development Manual.

I also laced in appropriate references into various sections
of the new YP Profiling and Tracing Manual.

Also, updated the list of resource manuals to reflect the
new manual set (addition of kernel-dev and profile-dev and
removal of kernel-manual).

(From yocto-docs rev: ef531ad65c9b749dad5e8e39b060bf1641e4fa38)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
9713fdcebe adt-manual: Added cross-references to profile-manual.
I added some cross-references to the section that overviews
the user-space tools.  Three tools (perf, oprofile, and
systemtap) are in the list.  I added appropriate cross
references to the respective tool sections in the YP
Profiling and Tracing Manual.

(From yocto-docs rev: 9b1ee95fa9dd4110f5b4f9e7aeaba63c6ef8b148)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
79d192fb2c ref-manual: Added new KFEATURE_DESCRIPTION glossary entry.
(From yocto-docs rev: 34060ca253a4434cd61c61fbefd0fe58ecd5fb36)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
5053b65416 kernel-dev: General edits and links added.
Many links added to the glossary variables that were introduced
in the manual.

Also provided general edits as I found them.

(From yocto-docs rev: 1c004144669306e87ad783df766b5245e474f549)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
dd46994f45 ref-manual: Added new variable KBRANCH_DEFAULT.
(From yocto-docs rev: d97c04fd6e818e7b78971f8c459a9778fb4e69f4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
eb576addf5 kernel-dev: Links and edits to the Common Tasks chapter.
(From yocto-docs rev: 46cd5eabe2343897eb9b4822064735bf335beb47)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
64933666a6 ref-manual: New KERNEL_PATH variable added to the glossary.
Also put in a cross-reference in the existing KERNEL_SRC
variable.

(From yocto-docs rev: 705074a16490155cd64469af3b2ea12a0780281c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
ce6ed21ee7 ref-manual: New KERNEL_SRC variable added to glossary.
(From yocto-docs rev: d8f7b32a9be1834f7835262f58c577b1f40a3edc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
e6310f6310 kernel-dev: Minor edits to the overview section.
(From yocto-docs rev: 42c9b33d38150672d1ea177f98a86c71806caa3a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
a24c555641 ref-manual: Set KARCH as the top "K" entry for the glossary.
(From yocto-docs rev: 1fceec975f9e6b40c64d55050e257c2239340d65)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:05 +00:00
Scott Rifenbark
8c58a9cca2 dev-manual: Edits to "Metadata" term.
In the "Terms" section, I enhanced the "Metadata" term to include
a bit about Metadata in the context of the kernel.  This type of
metadata is discussed at length in the YP Linux Kernel Development
Manual.

(From yocto-docs rev: c6f48bc4c33850eaa1dbf5867759a19d373766ce)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
4f3fdc33af ref-manual: New variable descriptions for KTYPE and KARCH.
(From yocto-docs rev: 35b7baa5653cffbb5e1dd1759643135c08b15bf7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
f37037f26f ref-manual: Edits to a couple variables in the glossary
1. LINUX_VERSION_EXTENSION: Added a link on the
   LINUX_KERNEL_TYPE variable.

2. Added a new variable description for the
   LINUX_KERNEL_TYPE variable.

(From yocto-docs rev: f4ace3c64838044e2eb700af4b024a96ab1e2315)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
afb26ddaad ref-manual: Edits to the LINUX_VERSION_EXTENSION variable.
Applied Darren Hart's review comments.  Namely, use the
example from the linux-yocto recipes and not the custom
recipe.

(From yocto-docs rev: 4a537a02bbf6fca4ff1a3beddd03d8115099cddd)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
4648e34300 ref-manual: Edits to the LINUX_VERSION variable.
Added a bit about the variable being used to define PV for the
recipe.

Also, fixed a couple indentation problems with some nearby
variables.

(From yocto-docs rev: bec65049218c9c549fe8cd4d5c16e9d917e87866)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
b4b1dc1dd6 profile-manual: Fixed the "Tying it Together" side-lights.
Took them out of the colored Note format and replaced with
a simple line box to set them apart.

(From yocto-docs rev: 5efb84d3860d87f64371b718967ab33f47a3a4db)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
f3cb977699 profile-manual: Fixed typo in last section
Changed "Line" to "Live" in the section heading.

(From yocto-docs rev: 73ea1f5a01891aa51c872363a60d2e0eefdf2f64)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
7e091de56b profile-manual: Fixed "short" figures to remove space.
(From yocto-docs rev: 5f4cfbef0689b5c84d8fa14c413f8a4c5a9521c3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
5cd5cb2b26 profile-manual: Added links for literall http:// strings.
(From yocto-docs rev: a30bc0c5e1c752ea3c6f73acd203e80a398d5368)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
34f0fc3728 mega-manual: Added support to build profile-manual.
(From yocto-docs rev: fe59bccc799daf03d4dc8ccbbb842529dc41d3ea)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:04 +00:00
Scott Rifenbark
37b290f0a8 Makefile: Updated to support mega-manual build with profile-manual
Added the list of 32 profile-manual figures to the tarfile
variable for mega-manual.

(From yocto-docs rev: ffe0586990c7659c28001038d6ba55cd42f5ecd0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
0c43dbbe4f mega-manual: Added the profile-manual figures
The figures from the profile-manual/figures folder must be
added to the mega-manual/figures folder in order for the
mega-manual to make correctly.

(From yocto-docs rev: f64459330b472dbade936f9d964b4792fb6364bc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
842e3b83c2 profile-manual: Added blktrace section.
No re-writing at all.

(From yocto-docs rev: c18bd94ac0e6fc3a23139ec8d1ef7b04518746de)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
e4746a55e4 profile-manual: Added LTTng section to usage chapter.
No re-writing at all.

(From yocto-docs rev: 6ed32ad5daa1f16c414da665a2fea498baefbe4a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
697b9ec4f7 profile-manual: Added Sysprof section to usage chapter.
No re-writing.

(From yocto-docs rev: e3fd833c4bf7cdc50138ac940af8a2b35c37c52b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
acb86de34e profile-manual: Added oprofile usage section.
No re-writing at all.

(From yocto-docs rev: f42230e3665903a7603212696949241244555f8b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
fcf615546f profile-manual: Systemtap section added.
No re-writing at all.

(From yocto-docs rev: 4ca472f8200f9d927a8d37c88c1ff75b017fcfc1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:03 +00:00
Scott Rifenbark
44e838c612 profile-manual: Substituted real title image in.
(From yocto-docs rev: 7492d719e59fdc023da06554b7b65af63d76a6df)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
82928e228b profile-manual: Added ftrace section to the manual.
No re-writing, no clean up what-so-ever.  It is simply in the
DocBook form.

(From yocto-docs rev: 3d2c17c076b67c3e2ab094d0562038e422b63d44)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
41fe45977c profile-manual: Corrected bad literallayout statement.
(From yocto-docs rev: fc3aa3815bfdfac11e93167dda8e52457b42c4c6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
803ccdb93a profile-manual: Added profile-title.png to stylesheet
(From yocto-docs rev: ad0222226cf4e29673e859cc95496c53875202cf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
86478ff948 profile-manual: Updated indentation and sectioning
Had the sectioning off and it was preventing the manual from
making.  I also added more indentation as needed throughout
most of the manual up to the error.

(From yocto-docs rev: 5de3544593a63e96b349babc177970d8605e0098)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
487a76f7c7 profile-manual: Correctly named "figures" folder.
This adds in the figures under the correct spelling for the
"figures" folder.

(From yocto-docs rev: 83d7896623a9a88538dd1da45429f47777123338)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
1fbdf5035d profile-manual: Rename of figures folder.
Initially the 'figures' folder was mis-named as 'Figures'.
this is not in line with the other manuals.  I had to rename
the folder and thus delete all these files from the Git repo
since they had been committed.

(From yocto-docs rev: 4452e790e8ddb8c80a5f0c6faf4a1f86fd3fb8d7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:56:02 +00:00
Scott Rifenbark
43f565aa4e poky.ent: Added new YOCTO_DOCS_PROF_URL variable.
(From yocto-docs rev: cc6082ee1fb33fa7a91c1a6e8aa92b568e1c8fee)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:55:58 +00:00
Scott Rifenbark
9bd5435f6f Makefile: Added support for the new profile-manual.
(From yocto-docs rev: 09183423d3049b954b0f0a5d882bf85218b5aff9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:09 +00:00
Scott Rifenbark
33b7996446 profile-manual: Converted root XML file for profile-manual
Edits to change this file to work for the profile-manual.

(From yocto-docs rev: 60a52fb31f2d15709afa29e83aa5d50bf8d90c58)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:09 +00:00
Scott Rifenbark
7f64ad2423 profile-manual: Second half of perf raw text entered.
Finished entering the rest of the "perf" section.

(From yocto-docs rev: 3df34a299ef9656362bf5b851b575528c646c02b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:09 +00:00
Scott Rifenbark
89dbdec992 profile-manual: Adding raw text.
Started to put in the usage chapter.  Adding text and
sectioning off by paragraph and formatting for literal
sections.

(From yocto-docs rev: c2d328d19023cd6fac6dcaeb8449e2203b5a17b7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:09 +00:00
Scott Rifenbark
cdacd8764b profile-manual: Copied in raw "Examples" chapter.
I put the raw text is for chapter 4.  No editing.

(From yocto-docs rev: e4a017624595394f86f469e15c1c8ad13e82206d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:09 +00:00
Scott Rifenbark
982637f27a profile-manual: Copied in this raw text.
This is the raw text from Tom for the architecture chapter.
No editing at all.

(From yocto-docs rev: f402cc14ac7fef30460e130cc5bdfca731886aa3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:08 +00:00
Scott Rifenbark
0ac8eba578 profile-manual: Raw text for introduction chapter.
this text is straight from Tom's wiki.  no formatting
no nuthin'

(From yocto-docs rev: 95f5341169c3e8d3bd7a97740320d0d27cbee020)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:08 +00:00
Scott Rifenbark
6b7ae32946 profile-manual: Added basic XML files and updated the .gitignore
Added four chapters to the directory.  I based these chapters off
of an existing YP manual.  I also updated the .gitignore file
so that it will support ingnoring profile-manual make operations.

(From yocto-docs rev: f9658f627fe9d8d6868ce74e9550ea16d23c4156)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:08 +00:00
Scott Rifenbark
bc8c416585 profile-manual: Created directory structure and loaded figures.
(From yocto-docs rev: c9966f4fe0174489941ab728d6b840f565b906c5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:54:08 +00:00
Khem Raj
dfc8421c9b gettext: Fix build with uclibc remove upstreamed patches
uclibc specific patches are not needed now as they are
available in 0.18.2 gettext now

(From OE-Core rev: ab692ed618f83df2ce452769165314e70b867345)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Marcin Juszkiewicz
0380c0f57b eglibc: fix evacuate_scripts for external toolchains
Not every external toolchain has mtrace/sotruss/xtrace scripts so check
their existance first.

(From OE-Core rev: 06ea50973a4446053d1ecac5b8e4cf425c8df5b1)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Martin Jansa
1ae72ff809 eglibc-scripts: don't package mtrace, RDEPEND on eglibc-mtrace instead, fix RDEPENDS
* eglibc-mtrace and eglibc-scripts provide the same mtrace script
* remove mtrace from eglibc-scripts and replace it with RDEPENDS
* mtrace also needs perl (eglibc-mtrace has correct RDEPENDS), bash is
  for sotruss and xtrace
* remove invalid RDEPENDS_ldd, ldd is now using /bin/sh and is not
  packaged by eglibc-scripts
* fixes error in world-image build:
  * check_data_file_clashes: Package eglibc-mtrace wants to install file
    rootfs/usr/bin/mtrace
    But that file is already provided by package  * eglibc-scripts

(From OE-Core rev: a3599db48576043d7c335aff677471fc1afed8ab)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Martin Jansa
584e7ce3ab eglibc-package: remove infodir/dir if it exists
* fixes error in world-image build:
 * check_data_file_clashes: Package eglibc-doc wants to install file
   rootfs/usr/share/info/dir
   But that file is already provided by package  * gcc-doc

(From OE-Core rev: f6e0875e35b9149f38f3bbfab6bd7a26048dd689)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Martin Jansa
5298d6f6ff gcc-configure-runtime: always remove info/dir
* move libgomp.info removal also outside that for cycle, can be removed outside if exists
* also use infodir variable instead of ${datadir}/info

(From OE-Core rev: 0b8fe539928c7a61ca01a4a0a0f54df47164ac6c)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:34 +00:00
Martin Jansa
e1c56ee972 automake: use autotools_do_install
* autotools_do_install removes /info/dir when it exists, overwritting whole
  do_install prevented that, use do_install_append instead.

(From OE-Core rev: 5c2efbaad15a8430b4a02f3fcffd92578e1bb1a3)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-27 13:53:33 +00:00
Paul Eggleton
a1ac22a73c valgrind: explicitly disable MPI2 support
We don't have support for this in OE-Core, so ensure we don't pick this
up from the build host if e.g. openmpi development files happen to be
installed there.

Fixes [YOCTO #3726].

(From OE-Core rev: cc490d76aba0a778409ca1a3d0e1f2c308684c9b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 16:46:22 +00:00
Khem Raj
1af44d18cc gawk: Add missing dependency on readline
building from shared state often ends up with

|
/b/kraj/angstrom/build/tmp-angstrom_next-uclibc/work/i586-angstrom-linux-uclibc/gawk/4.0.1-r1/gawk-4
.0.1/debug.c:4135: undefined reference to `rl_reset_terminal'
|
/b/kraj/angstrom/build/tmp-angstrom_next-uclibc/work/i586-angstrom-linux-uclibc/gawk/4.0.1-r1/gawk-4
.0.1/debug.c:4138: undefined reference to `rl_get_screen_size'
| debug.o: In function `unserialize':

Adding the missing readline dependency to fix such cases
where readline has not been populated in sysroot via some
other dependency and gawk would then use it or bail out.

(From OE-Core rev: 9a43a67993c21cedf6cf71138e3da9c691ebf4a7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:37:22 +00:00
Khem Raj
2a314eb41b libpcap: Turn canusb support into PACKAGECONFIG
libpcap notices libusb in its configure if its sysrooted
and ignores it if its not. But this causes problems since
there is no explicit dependency on libusb. Rebuild from shared
state sometimes fails when libusb has not been yet populated
in sysroot and libpcap has. And do_configure of consumers of libpcap e.g. tcpdump
are probing for features on libpcap. All the tests fail since
none of link steps succeed and it sees as if libpcap does
not have required features and configure of tcpdump bails out.

turn canusb into PACKAGECONFIG and let it be disabled
by default.

Backport additional patches needed for disable-canusb to work

(From OE-Core rev: a7cfc0ce9885c51ccefcaba001e6672d7b3e36e5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:16 +00:00
Khem Raj
5916dcc1f3 libtirpc: Disable DES functions on uclibc
uclibc does not provide these functions so dont expect them

/usr/lib/libtirpc.so: undefined reference to `key_encryptsession_pk'
/usr/lib/libtirpc.so: undefined reference to `getnetname'
/usr/lib/libtirpc.so: undefined reference to `cbc_crypt'
/usr/lib/libtirpc.so: undefined reference to `ecb_crypt'
/usr/lib/libtirpc.so: undefined reference to `getpublickey'
/usr/lib/libtirpc.so: undefined reference to `key_gendes'

(From OE-Core rev: c66a269f6f68d670ca3bf9e7b22a5dce4bb95cd0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:16 +00:00
Khem Raj
16cd29ba1f tcmode-default.inc: Switch to git version of uclibc by default
systemd related functionality is tested in latest git of uclibc
therefore lets use it as default provider for uclibc as its the
most tested version on master

(From OE-Core rev: db93f49c676f84d6d5ad54a9f1ed9be7ba6d5364)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:16 +00:00
Khem Raj
1406f08771 uclibc-git/uClibc.distro: Enable UCLIBC_HAS_REENTRANT_RPC
The renterant functions are needed by quota

(From OE-Core rev: 406aaccfd115ef189e4372f581bf19e5b0906a15)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:15 +00:00
Constantin Musca
461dc8d6a8 wpa-supplicant: upgrade to 2.0
- as of February 11, 2012, the project has chosen to use only
the BSD license option for future distribution
- wpa-supplicant-1.0 dir was not version specific,
as such it is generic now

(From OE-Core rev: 0f83cb8ca629fbf1af448781f28912bbc75e0d80)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:15 +00:00
Jack Mitchell
bbd280b491 systemd: remove usbutils dependancy
V2:

Dependancy was removed in version 196 according to following systemd commit.

http://cgit.freedesktop.org/systemd/systemd/commit/configure.ac?id=796b06c21b62d13c9021e2fbd9c58a5c6edb2764

V1:

No where in the systemd readme does it specify that usbutils
is a dependancy of systemd. I can only guess that it was added
due to an issue elsewhere in the chain or it was brought in
when udev was merged and the dependancies never checked.

I have build tested this with no issues.

(From OE-Core rev: 251627cdfc5a9aa69e469f3c9072264fd0bda73b)

Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:36:15 +00:00
Brian A. Lloyd
ffff37f8f9 yocto-bsp: qualify user files with machine name
The bblayer abstraction makes it where multiple layers can be
configured and used at the same time.  Some layers make changes to
support a specific machine, and should not have any affect when other
machines are in use.

For linux-yocto, all bsps are created with a user-config.cfg and
user-config.cfg and user-patches.scc.  This means that those files
will be pulled from the first location found, which might correspond
to files customized for a different machine.

Instead of using the names user-config.cfg and user-patches.scc, I
propose a machine specific name be used such as
{{=machine}}user-patches.scc and {{=machine}}user-config.cfg.  This
would necessitate that all references changed to these new names,
which would affect the yocto-bsp and yocto-kernel scripts.

With this change, it would be possible to have multiple machine BSPs
searched at the same time and to select which to build against by
using a command like MACHINE=qmeux86 bitbake core-image-sato to
override the default.

Note many of the standard BSPs do not seem to suffer this problem as
they do not use the common files user-config.cfg and user-patches.scc
that the yocto-* scripts depend upon.

Additions by Tom Zanussi:
 - renamed user-config.cfg to {{=machine}}-user-config.cfg everywhere
 - renamed user-patches.scc to {{=machine}}-user-patches.scc everywhere
 - added the user-config/patches SRC_URI items to the qemu -rt kernel recipes
 - fixed conflicts due to the new open_user_file() helper function
 - updated user filename conflicts caused by directory renaming
 - updated custom kernel files to match

Fixes [YOCTO #3731]

(From meta-yocto rev: c20bef60aa8d52971fb061d4b8d473ad19c03180)

Signed-off-by: Brian A. Lloyd <brian.lloyd@familyhonor.net>
Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:12:36 +00:00
Martin Jansa
2f1aba504c prservice.py: fix NameError: global name 'host' is not defined
* http://git.openembedded.org/openembedded-core/commit/?id=e00f49de8b1f79c3e07b887d257bd75a46052fa0
  removed host and port variables

(From OE-Core rev: 494439c95d33b2ad457cc205413680b0bf176560)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 14:12:36 +00:00
Richard Purdie
ff72823d40 bitbake: bitbake-diffigs: Don't pull in tinfoil unless we really need/plan to use it
This means we can run in parallel with other bitbake processed we're not in
task mode.

(Bitbake rev: 20222f2f16130e91eed5e68286188ee0e8f8f3bf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:58:35 +00:00
Richard Purdie
34b415842d staging: Drop obsolete comments
(From OE-Core rev: 44a2374dcfd68c8e158e0c901d75dbd7327652a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:58:35 +00:00
Wenzong Fan
b77d5679c4 git: remove unpackaged perl-native files
${libdir} is not applicable for the install path of perl-native files,
files are always installed to /usr/lib no matter the target is 32/64
bits. After installing, remove unpackaged and unneeded perl-native
files to prevent warnings.

Fix warning:
    WARNING: For recipe git, the following files/directories were \
        installed but not shipped in any package:
    ...
    WARNING:   /usr/lib/perl-native/perl/5.14.2/Git.pm
    WARNING:   /usr/lib/perl-native/perl/5.14.2/perllocal.pod
    WARNING:   /usr/lib/perl-native/perl/5.14.2/Error.pm
    WARNING:   /usr/lib/perl-native/perl/5.14.2/auto

[YOCTO#3780]

(From OE-Core rev: cc6b8261fa47a049e501882e9bfc40f61e603b6f)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:49 +00:00
Constantin Musca
7f08315ee5 puzzles: upgrade to r9751
(From OE-Core rev: cf97241a18284180ff3b8dd880f219d09155bf09)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:49 +00:00
Constantin Musca
929ef59abb cairo: upgrade to 1.12.10
(From OE-Core rev: 5910cf254635545040df62d9db898abcf17e00d4)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:48 +00:00
Kang Kai
5264982826 perl: update to 5.14.3
There is a securty issue:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5195
Update perl to 5.14.3 to resolve this problem.

Patches hurd-ccflags.diff, h2ph-multiarch.diff, index-tainting.diff and
hurd-hints.diff have been merged, so remove them from SRC_URI.
Update patches config.sh and Makefile.SH.patch with new PV.

[Yocto 3701]

(From OE-Core rev: b1fd25e05308cabb56afe1d4276470bf7380ea59)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:48 +00:00
Kang Kai
e80f02a93b perl-native: update to 5.14.3:
There is a securty issue:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5195
Update perl to 5.14.3 could resolve this problem. And update perl-native
first.

(From OE-Core rev: 360401af6e7729a373d0a6d13995714aff121064)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:48 +00:00
Ross Burton
4a7a476785 meta: remove all mention of PCMCIA_MANAGER
Nothing appears to use this anymore, and it's been a very long time since there
was anyone expressing an interest in the alternatives.

(From OE-Core rev: f6f289c13b9da9c2793d1fd30456216db8afad64)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:48 +00:00
Richard Purdie
0d2a301bca sstate: Add optimisation for useradd injected dependencies
useradd.bbclass adds sstate dependencies on base-passwd, shadow-native and
shadow-sysroot. Due to the way these are injected, they interact badly with
the other dependency validation logic and end up pulling in dependencies we
don't actually need. This patch adds code to optimise those cases out.

(From OE-Core rev: 784ca68fcca4ffb34390d55d9343570cfdf0305f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:48 +00:00
Richard Purdie
3247292683 Split do_packagedata task from do_package
Currently, do_rootfs has a dependency on all the do_package output being present
due to its usage of the pkgdata directories. This means that if you run:

bitbake xxxx-image -c rootfs

you end up having to fetch and unpack all the do_package data which is usually
large and inefficient. It also means rm_work has to leave all the do_package
data lying around so rootfs works.

This patch splits the actual creation of the pkgdata directory off into a separate
task, "packagedata" which happens immediately after do_package. We can then remap
the dependencies so this task is depended upon, not do_package. Sstate can then be
programmed not to require do_package at the appropriate times.

Whilst this patch doesn't do so, it opens the possibility of rm_work wiping
out the do_package output from WORKDIR as long as it also removed the do_package
stamp (both normal and setscene variants) and allowing more space savings
with rm_work which has been regularly requested.

(From OE-Core rev: 6107ee294afde395e39d084c33e8e94013c625a9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:47 +00:00
Constantin Musca
c13e458b22 cairo: use directfb instead of gtk-directfb
- we now have directfb as DISTRO_FEATURE
- DirectFB is not supported by gtk versions >= 2.18

(From OE-Core rev: 6223aa118ed7a2726ed73c06246423795d53af5e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:47 +00:00
Constantin Musca
d3773dabb3 gtk+: remove directfb support
- DirectFB is not supported by gtk versions >= 2.18

[YOCTO #3642]

(From OE-Core rev: 87dc338bf631577d947a9c172ec5711b9f306530)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:47 +00:00
Constantin Musca
411129818c core-image-gtk-directfb: rename to core-image-directfb
- DirectFB is not supported by gtk versions >= 2.18
- use packagegroup-core-directfb instead of packagegroup-core-gtk-directfb

[YOCTO #3642]

(From OE-Core rev: f4724b132de09d0c3db3755214ca83bb5acf5550)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:47 +00:00
Constantin Musca
07ab6f118e packagegroup-core-gtk-directfb: rename to packagegroup-core-directfb
- DirectFB is not supported by gtk versions >= 2.18
- remove the backwards compatibility statements (packagegroup-core-directfb
is an independent packagegroup)
- remove all gtk dependencies

[YOCTO #3642]

(From OE-Core rev: 423a397b2bf1a32519761ae3f0b048e0595c59e8)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:46 +00:00
Chen Qi
f8a4a74c8c init-live.sh: move /media/xxx over to the real root filesystem
Previously, the /media/xxx which contains the root image was not
moved to be under the real root filesystem. Because of this, the
output of the 'mount' command is somewhat confusing, that is, it
has some mount point that is not even in the filesystem.

Besides, on some machine, it caused the recovery procedure when we
booted it next time.

This patches fixes this issue by moving the /media/xxx over to be
under the real root filesystem.

[YOCTO #2064]
[YOCTO #3705]

(From OE-Core rev: 261d21d36298bb7822ee7370c30441f42ef2b093)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:46 +00:00
Constantin Musca
8aa508970a prserv: change PRSERV_HOST semantics
- remove PRSERV_PORT variable
- use 'hostname:port' as PRSERV_HOST format
- remove USE_PR_SERV variable
- one can activate PRS by setting PRSERV_HOST

[YOCTO #3744]

(From OE-Core rev: e00f49de8b1f79c3e07b887d257bd75a46052fa0)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:43 +00:00
Philip Balister
a25f99bc9b base.bblass : Add support for cmake to PACKAGECONFIG.
The cmake class uses EXTRA_OECMAKE to adjust the cmake configuration. This
patch adds support for this, if the cmake class is used by the recipe.

(From OE-Core rev: d8c0ce5a4a27c8aa1d07fc15d6e000af725a51e6)

Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:43 +00:00
Khem Raj
8adcafc239 nfs-utils: Upgrade 1.2.3 -> 1.2.8-rc3
Disable nfsv4l since it needs LVM2 which
is not available in OE-Core

Disable nfsdcltrack since its configure time check
for sqlite3 is not cross compiling safe

It can support ipv6 but thats disabled since
we disable libtirpc which is needed for ipv6
support in nfs-utils

Patches imported from fedora to take us to 1.2.8-rc3

(From OE-Core rev: 658bfe4690005d0a68dc4e3ca2bc741ff4c89f28)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:43 +00:00
MiLo
3991c5520e gcc: Enable OpenMP compiling and library
Multicore embedded systems are getting more and more common.

Remove "--disable-openmp" from the GCC configuration options and
always build libgomp. This only creates a "bigger" compiler but
has no effect on the compiled binaries that don't use openmp.

Tested a clean build on mips32el and arm7a, no problems encountered.

Autoconf will not detect OpenMP after this change, because it will
build and run a target binary on the build system. In order to use
OpenMP, the variable ac_cv_prog_c_openmp=-fopenmp must be set.

(From OE-Core rev: fdf37b792c13a1fc3f63faf471f0403396414a35)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:43 +00:00
Richard Purdie
dbb0083c71 perl-rprovides: Fix perl-module-config anf perl-module-build providers
The rearrangement of various file contents left these empty modules which
don't get packaged and hence lead to image creation errors on anything using
them. This patch ensures the dependencies are attached to the packages
which contain the config files or the build module infrastructure as
appropriate. It also resolves some confusion over whether the name is
perl-module-build or perl-module-module-build, the latter being the
autogenerated dependency which previously couldn't be found.

(From OE-Core rev: 442f161ecd498513b72e7f1ca2668325c9389d24)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:42 +00:00
Richard Purdie
749e67d40a perl: Add dyanloader build hack
Patch perl to allow builds to work where a native perl running against target modules
attempts to load a dynamic binary module. We assume that a native version of the
module exists as it would for the target and perform an appropriate path
substitution.

(From OE-Core rev: b5ea12fec329fe419bc3672ed1e1d5733ff2a9d3)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:42 +00:00
Richard Purdie
ad17b18fce perl-native: Add errno_ver.diff patch to native perl
Apply the errno_ver.diff patch to the native perl version. This ensures that when
we're building target modules, running the native perl binary but in a target
configuration we don't see error messages.

libencode-detect-perl is a module which tests this.

(From OE-Core rev: 52354c863a1a2e467ea1b55168bf4273f31bbba4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:42 +00:00
Richard Purdie
240c55275e cpan_build: Fix cmaker Build.PL module builds
Certain cpan Build.PL based modules were failing to build due to
the host's config information being used instead of the targets.

This patch sets the appropriate variables to ensure the modules
get the correct configuration from the target config_heavy.pl script.

It also ensures the linker is CCLD, not LD since the LDFLAGS contain
-Wl,XXX options and build failures result if LD is used.

libencode-detect-perl is a module which tests this class extensively.

(From OE-Core rev: 7fac8bffcd250aec90c0b675aeb2bbe7896d0ae1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:42 +00:00
Andrei Dinu
a6d462b150 Maintainers.inc file update
Updated the maintainers.inc file replacing the maintainer Scott Garman
with Andrei Dinu.

(From meta-yocto rev: a15cdd80e8a9674070150f54dd34fc7c1d78dfdc)

Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:09 +00:00
Constantin Musca
9150594641 prserv: change PRSERV_HOST format
- the new PRSERV_HOST format is 'host:port'
- PRSERV_PORT has been removed

(From meta-yocto rev: 67585e11f1e75e380de3ead4bb36de5129df2c4e)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:09 +00:00
Robert Yang
4a09c91ce4 bitbake: bitbake-layers: fix get_file_layer
The get_file_layer can't handle the nested layer correctly, e.g.:

meta-intel/conf/layer.conf
meta-intel/meta-cedartrail/conf/layer.conf

They are two layers, the file:
meta-intel/common/recipes-bsp/amt/lms_7.1.20.bb
belongs to meta-intel's layer, but the get_file_layer() may return
meta-cedartrail accordig to BBLAYERS' order, since it uses:

for layerdir in self.bblayers:
    if regex.match(os.path.join(layerdir, 'test')):
        return self.get_layer_name(layerdir)

which doesn't care the filename, re-match the filename would fix the
problem.

[YOCTO #3387]

(Bitbake rev: 7a31b9eac4d894c302f0e052a132c31b17d13d1f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:09 +00:00
Robert Yang
3183902e18 bitbake: cache.py: remove the duplicated self.file_depends
There are two "self.file_depends =" lines in cache.py::CoreRecipeInfo:

class CoreRecipeInfo(RecipeInfoCommon):
    __slots__ = ()

    cachefile = "bb_cache.dat"

    def __init__(self, filename, metadata):
        self.file_depends = metadata.getVar('__depends', False)
    [snip]
        self.file_depends = metadata.getVar('__depends', False)

They are duplicated, remove the last one.

[YOCTO #3795]

(Bitbake rev: 409a4aa0e166c25a8cfcd91e54f1b61cced74e87)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:08 +00:00
Cristiana Voicu
03fee6c3b1 bitbake: hob: hob do not use .hob dir for variables from local.conf and bblayers.conf
If .hob exists, hob takes the variable from there. Change to not override anymore
the variables which comes from bblayers.conf and local.conf

[YOCTO #2934]
(Bitbake rev: 00533e83038e3d5e3cd5d1be73c45afece92ec0c)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:08 +00:00
Constantin Musca
1db3531cd5 bitbake: prserv: use only PRSERV_HOST
- remove PRSERV_PORT variable
- use 'hostname:port' as PRSERV_HOST format
- use 'localhost:0' for enabling the local PRServer

[YOCTO #3744]

(Bitbake rev: ad62eed9e1f0867a406e9fbfa44916a0f1ad1282)

Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-25 12:42:08 +00:00
984 changed files with 47164 additions and 29199 deletions

View File

@@ -40,7 +40,7 @@ from bb import cooker
from bb import ui
from bb import server
__version__ = "1.17.0"
__version__ = "1.17.1"
logger = logging.getLogger("BitBake")
# Unbuffer stdout to avoid log truncation in the event
@@ -229,10 +229,8 @@ Default BBFILES are the .bb files in the current directory.""")
# Before we start modifying the environment we should take a pristine
# copy for possible later use
initialenv = os.environ.copy()
# Clear away any spurious environment variables. But don't wipe the
# environment totally. This is necessary to ensure the correct operation
# of the UIs (e.g. for DISPLAY, etc.)
bb.utils.clean_environment()
# Clear away any spurious environment variables while we stoke up the cooker
cleanedvars = bb.utils.clean_environment()
server = server.BitBakeServer()
if configuration.bind:
@@ -258,6 +256,10 @@ Default BBFILES are the .bb files in the current directory.""")
# Setup a connection to the server (cooker)
server_connection = server.establishConnection()
# Restore the environment in case the UI needs it
for k in cleanedvars:
os.environ[k] = cleanedvars[k]
try:
return server.launchUI(ui_main, server_connection.connection, server_connection.events)
finally:

View File

@@ -85,8 +85,8 @@ options, args = parser.parse_args(sys.argv)
if len(args) == 1:
parser.print_help()
else:
tinfoil = bb.tinfoil.Tinfoil()
if options.taskmode:
tinfoil = bb.tinfoil.Tinfoil()
if len(args) < 3:
logger.error("Please specify a recipe and task name")
sys.exit(1)

View File

@@ -26,6 +26,7 @@ import os
import sys
import fnmatch
from collections import defaultdict
import re
bindir = os.path.dirname(__file__)
topdir = os.path.dirname(bindir)
@@ -458,10 +459,25 @@ build results (as the layer priority order has effectively changed).
for layer, _, regex, _ in self.bbhandler.cooker.status.bbfile_config_priorities:
if regex.match(filename):
for layerdir in self.bblayers:
if regex.match(os.path.join(layerdir, 'test')):
if regex.match(os.path.join(layerdir, 'test')) and re.match(layerdir, filename):
return self.get_layer_name(layerdir)
return "?"
def get_file_layerdir(self, filename):
for layer, _, regex, _ in self.bbhandler.cooker.status.bbfile_config_priorities:
if regex.match(filename):
for layerdir in self.bblayers:
if regex.match(os.path.join(layerdir, 'test')) and re.match(layerdir, filename):
return layerdir
return "?"
def remove_layer_prefix(self, f):
"""Remove the layer_dir prefix, e.g., f = /path/to/layer_dir/foo/blah, the
return value will be: layer_dir/foo/blah"""
f_layerdir = self.get_file_layerdir(f)
prefix = os.path.join(os.path.dirname(f_layerdir), '')
return f[len(prefix):] if f.startswith(prefix) else f
def get_layer_name(self, layerdir):
return os.path.basename(layerdir.rstrip(os.sep))
@@ -541,6 +557,164 @@ Recipes are listed with the bbappends that apply to them as subitems.
notappended.append(basename)
return appended, notappended
def do_show_cross_depends(self, args):
"""figure out the dependency between recipes that crosses a layer boundary.
usage: show-cross-depends [-f]
Figure out the dependency between recipes that crosses a layer boundary.
Options:
-f show full file path
NOTE:
The .bbappend file can impact the dependency.
"""
self.bbhandler.prepare()
show_filenames = False
for arg in args.split():
if arg == '-f':
show_filenames = True
else:
sys.stderr.write("show-cross-depends: invalid option %s\n" % arg)
self.do_help('')
return
pkg_fn = self.bbhandler.cooker_data.pkg_fn
bbpath = str(self.bbhandler.config_data.getVar('BBPATH', True))
self.require_re = re.compile(r"require\s+(.+)")
self.include_re = re.compile(r"include\s+(.+)")
self.inherit_re = re.compile(r"inherit\s+(.+)")
# The bb's DEPENDS and RDEPENDS
for f in pkg_fn:
f = bb.cache.Cache.virtualfn2realfn(f)[0]
# Get the layername that the file is in
layername = self.get_file_layer(f)
# The DEPENDS
deps = self.bbhandler.cooker_data.deps[f]
for pn in deps:
if pn in self.bbhandler.cooker_data.pkg_pn:
best = bb.providers.findBestProvider(pn,
self.bbhandler.cooker.configuration.data,
self.bbhandler.cooker_data,
self.bbhandler.cooker_data.pkg_pn)
self.check_cross_depends("DEPENDS", layername, f, best[3], show_filenames)
# The RDPENDS
all_rdeps = self.bbhandler.cooker_data.rundeps[f].values()
# Remove the duplicated or null one.
sorted_rdeps = {}
# The all_rdeps is the list in list, so we need two for loops
for k1 in all_rdeps:
for k2 in k1:
sorted_rdeps[k2] = 1
all_rdeps = sorted_rdeps.keys()
for rdep in all_rdeps:
all_p = bb.providers.getRuntimeProviders(self.bbhandler.cooker_data, rdep)
if all_p:
best = bb.providers.filterProvidersRunTime(all_p, rdep,
self.bbhandler.cooker.configuration.data,
self.bbhandler.cooker_data)[0][0]
self.check_cross_depends("RDEPENDS", layername, f, best, show_filenames)
# The inherit class
cls_re = re.compile('classes/')
if f in self.bbhandler.cooker_data.inherits:
inherits = self.bbhandler.cooker_data.inherits[f]
for cls in inherits:
# The inherits' format is [classes/cls, /path/to/classes/cls]
# ignore the classes/cls.
if not cls_re.match(cls):
inherit_layername = self.get_file_layer(cls)
if inherit_layername != layername:
if not show_filenames:
f_short = self.remove_layer_prefix(f)
cls = self.remove_layer_prefix(cls)
else:
f_short = f
logger.plain("%s inherits %s" % (f_short, cls))
# The 'require/include xxx' in the bb file
pv_re = re.compile(r"\${PV}")
fnfile = open(f, 'r')
line = fnfile.readline()
while line:
m, keyword = self.match_require_include(line)
# Found the 'require/include xxxx'
if m:
needed_file = m.group(1)
# Replace the ${PV} with the real PV
if pv_re.search(needed_file) and f in self.bbhandler.cooker_data.pkg_pepvpr:
pv = self.bbhandler.cooker_data.pkg_pepvpr[f][1]
needed_file = re.sub(r"\${PV}", pv, needed_file)
self.print_cross_files(bbpath, keyword, layername, f, needed_file, show_filenames)
line = fnfile.readline()
fnfile.close()
# The "require/include xxx" in conf/machine/*.conf, .inc and .bbclass
conf_re = re.compile(".*/conf/machine/[^\/]*\.conf$")
inc_re = re.compile(".*\.inc$")
# The "inherit xxx" in .bbclass
bbclass_re = re.compile(".*\.bbclass$")
for layerdir in self.bblayers:
layername = self.get_layer_name(layerdir)
for dirpath, dirnames, filenames in os.walk(layerdir):
for name in filenames:
f = os.path.join(dirpath, name)
s = conf_re.match(f) or inc_re.match(f) or bbclass_re.match(f)
if s:
ffile = open(f, 'r')
line = ffile.readline()
while line:
m, keyword = self.match_require_include(line)
# Only bbclass has the "inherit xxx" here.
bbclass=""
if not m and f.endswith(".bbclass"):
m, keyword = self.match_inherit(line)
bbclass=".bbclass"
# Find a 'require/include xxxx'
if m:
self.print_cross_files(bbpath, keyword, layername, f, m.group(1) + bbclass, show_filenames)
line = ffile.readline()
ffile.close()
def print_cross_files(self, bbpath, keyword, layername, f, needed_filename, show_filenames):
"""Print the depends that crosses a layer boundary"""
needed_file = bb.utils.which(bbpath, needed_filename)
if needed_file:
# Which layer is this file from
needed_layername = self.get_file_layer(needed_file)
if needed_layername != layername:
if not show_filenames:
f = self.remove_layer_prefix(f)
needed_file = self.remove_layer_prefix(needed_file)
logger.plain("%s %s %s" %(f, keyword, needed_file))
def match_inherit(self, line):
"""Match the inherit xxx line"""
return (self.inherit_re.match(line), "inherits")
def match_require_include(self, line):
"""Match the require/include xxx line"""
m = self.require_re.match(line)
keyword = "requires"
if not m:
m = self.include_re.match(line)
keyword = "includes"
return (m, keyword)
def check_cross_depends(self, keyword, layername, f, needed_file, show_filenames):
"""Print the DEPENDS/RDEPENDS file that crosses a layer boundary"""
best_realfn = bb.cache.Cache.virtualfn2realfn(needed_file)[0]
needed_layername = self.get_file_layer(best_realfn)
if needed_layername != layername:
if not show_filenames:
f = self.remove_layer_prefix(f)
best_realfn = self.remove_layer_prefix(best_realfn)
logger.plain("%s %s %s" % (f, keyword, best_realfn))
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]) or 0)

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.17.0"
__version__ = "1.17.1"
import sys
if sys.version_info < (2, 6, 0):

View File

@@ -423,13 +423,27 @@ def _exec_task(fn, task, d, quieterr):
return 0
def exec_task(fn, task, d):
def exec_task(fn, task, d, profile = False):
try:
quieterr = False
if d.getVarFlag(task, "quieterrors") is not None:
quieterr = True
return _exec_task(fn, task, d, quieterr)
if profile:
profname = "profile-%s.log" % (os.path.basename(fn) + "-" + task)
try:
import cProfile as profile
except:
import profile
prof = profile.Profile()
ret = profile.Profile.runcall(prof, _exec_task, fn, task, d, quieterr)
prof.dump_stats(profname)
bb.utils.process_profilelog(profname)
return ret
else:
return _exec_task(fn, task, d, quieterr)
except Exception:
from traceback import format_exc
if not quieterr:

View File

@@ -119,7 +119,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.basetaskhashes = self.taskvar('BB_BASEHASH', self.tasks, metadata)
self.hashfilename = self.getvar('BB_HASHFILENAME', metadata)
self.file_depends = metadata.getVar('__depends', False)
self.task_deps = metadata.getVar('_task_deps', False) or {'tasks': [], 'parents': {}}
self.skipped = False
@@ -127,7 +126,6 @@ class CoreRecipeInfo(RecipeInfoCommon):
self.pv = self.getvar('PV', metadata)
self.pr = self.getvar('PR', metadata)
self.defaultpref = self.intvar('DEFAULT_PREFERENCE', metadata)
self.broken = self.getvar('BROKEN', metadata)
self.not_world = self.getvar('EXCLUDE_FROM_WORLD', metadata)
self.stamp = self.getvar('STAMP', metadata)
self.stampclean = self.getvar('STAMPCLEAN', metadata)
@@ -234,7 +232,7 @@ class CoreRecipeInfo(RecipeInfoCommon):
# Collect files we may need for possible world-dep
# calculations
if not self.broken and not self.not_world:
if not self.not_world:
cachedata.possible_world.append(fn)
# create a collection of all targets for sanity checking

View File

@@ -35,7 +35,7 @@ def check_indent(codestr):
class CodeParserCache(MultiProcessCache):
cache_file_name = "bb_codeparser.dat"
CACHE_VERSION = 2
CACHE_VERSION = 3
def __init__(self):
MultiProcessCache.__init__(self)
@@ -100,7 +100,8 @@ class BufferedLogger(Logger):
self.buffer = []
class PythonParser():
getvars = ("d.getVar", "bb.data.getVar", "data.getVar")
getvars = ("d.getVar", "bb.data.getVar", "data.getVar", "d.appendVar", "d.prependVar")
containsfuncs = ("bb.utils.contains", "base_contains", "oe.utils.contains")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
def warn(self, func, arg):
@@ -119,7 +120,7 @@ class PythonParser():
def visit_Call(self, node):
name = self.called_node_name(node.func)
if name in self.getvars:
if name in self.getvars or name in self.containsfuncs:
if isinstance(node.args[0], ast.Str):
self.var_references.add(node.args[0].s)
else:

View File

@@ -174,6 +174,18 @@ class CommandsSync:
value = str(params[1])
command.cooker.configuration.data.setVar(varname, value)
def enableDataTracking(self, command, params):
"""
Enable history tracking for variables
"""
command.cooker.enableDataTracking()
def disableDataTracking(self, command, params):
"""
Disable history tracking for variables
"""
command.cooker.disableDataTracking()
def initCooker(self, command, params):
"""
Init the cooker to initial state with nothing parsed
@@ -210,6 +222,12 @@ class CommandsSync:
package_queue = params[2]
return command.cooker.generateNewImage(image, base_image, package_queue)
def setVarFile(self, command, params):
var = params[0]
val = params[1]
default_file = params[2]
command.cooker.saveConfigurationVar(var, val, default_file)
class CommandsAsync:
"""
A class of asynchronous commands

View File

@@ -239,3 +239,690 @@ class OrderedDict(dict):
def viewitems(self):
"od.viewitems() -> a set-like object providing a view on od's items"
return ItemsView(self)
# Multiprocessing pool code imported from python 2.7.3. Previous versions of
# python have issues in this code which hang pool usage
#
# Module providing the `Pool` class for managing a process pool
#
# multiprocessing/pool.py
#
# Copyright (c) 2006-2008, R Oudkerk
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. Neither the name of author nor the names of any contributors may be
# used to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
import threading
import Queue
import itertools
import collections
import time
import multiprocessing
from multiprocessing import Process, cpu_count, TimeoutError, pool
from multiprocessing.util import Finalize, debug
#
# Constants representing the state of a pool
#
RUN = 0
CLOSE = 1
TERMINATE = 2
#
# Miscellaneous
#
def mapstar(args):
return map(*args)
class MaybeEncodingError(Exception):
"""Wraps possible unpickleable errors, so they can be
safely sent through the socket."""
def __init__(self, exc, value):
self.exc = repr(exc)
self.value = repr(value)
super(MaybeEncodingError, self).__init__(self.exc, self.value)
def __str__(self):
return "Error sending result: '%s'. Reason: '%s'" % (self.value,
self.exc)
def __repr__(self):
return "<MaybeEncodingError: %s>" % str(self)
def worker(inqueue, outqueue, initializer=None, initargs=(), maxtasks=None):
assert maxtasks is None or (type(maxtasks) == int and maxtasks > 0)
put = outqueue.put
get = inqueue.get
if hasattr(inqueue, '_writer'):
inqueue._writer.close()
outqueue._reader.close()
if initializer is not None:
initializer(*initargs)
completed = 0
while maxtasks is None or (maxtasks and completed < maxtasks):
try:
task = get()
except (EOFError, IOError):
debug('worker got EOFError or IOError -- exiting')
break
if task is None:
debug('worker got sentinel -- exiting')
break
job, i, func, args, kwds = task
try:
result = (True, func(*args, **kwds))
except Exception, e:
result = (False, e)
try:
put((job, i, result))
except Exception as e:
wrapped = MaybeEncodingError(e, result[1])
debug("Possible encoding error while sending result: %s" % (
wrapped))
put((job, i, (False, wrapped)))
completed += 1
debug('worker exiting after %d tasks' % completed)
class Pool(object):
'''
Class which supports an async version of the `apply()` builtin
'''
Process = Process
def __init__(self, processes=None, initializer=None, initargs=(),
maxtasksperchild=None):
self._setup_queues()
self._taskqueue = Queue.Queue()
self._cache = {}
self._state = RUN
self._maxtasksperchild = maxtasksperchild
self._initializer = initializer
self._initargs = initargs
if processes is None:
try:
processes = cpu_count()
except NotImplementedError:
processes = 1
if processes < 1:
raise ValueError("Number of processes must be at least 1")
if initializer is not None and not hasattr(initializer, '__call__'):
raise TypeError('initializer must be a callable')
self._processes = processes
self._pool = []
self._repopulate_pool()
self._worker_handler = threading.Thread(
target=Pool._handle_workers,
args=(self, )
)
self._worker_handler.daemon = True
self._worker_handler._state = RUN
self._worker_handler.start()
self._task_handler = threading.Thread(
target=Pool._handle_tasks,
args=(self._taskqueue, self._quick_put, self._outqueue, self._pool)
)
self._task_handler.daemon = True
self._task_handler._state = RUN
self._task_handler.start()
self._result_handler = threading.Thread(
target=Pool._handle_results,
args=(self._outqueue, self._quick_get, self._cache)
)
self._result_handler.daemon = True
self._result_handler._state = RUN
self._result_handler.start()
self._terminate = Finalize(
self, self._terminate_pool,
args=(self._taskqueue, self._inqueue, self._outqueue, self._pool,
self._worker_handler, self._task_handler,
self._result_handler, self._cache),
exitpriority=15
)
def _join_exited_workers(self):
"""Cleanup after any worker processes which have exited due to reaching
their specified lifetime. Returns True if any workers were cleaned up.
"""
cleaned = False
for i in reversed(range(len(self._pool))):
worker = self._pool[i]
if worker.exitcode is not None:
# worker exited
debug('cleaning up worker %d' % i)
worker.join()
cleaned = True
del self._pool[i]
return cleaned
def _repopulate_pool(self):
"""Bring the number of pool processes up to the specified number,
for use after reaping workers which have exited.
"""
for i in range(self._processes - len(self._pool)):
w = self.Process(target=worker,
args=(self._inqueue, self._outqueue,
self._initializer,
self._initargs, self._maxtasksperchild)
)
self._pool.append(w)
w.name = w.name.replace('Process', 'PoolWorker')
w.daemon = True
w.start()
debug('added worker')
def _maintain_pool(self):
"""Clean up any exited workers and start replacements for them.
"""
if self._join_exited_workers():
self._repopulate_pool()
def _setup_queues(self):
from multiprocessing.queues import SimpleQueue
self._inqueue = SimpleQueue()
self._outqueue = SimpleQueue()
self._quick_put = self._inqueue._writer.send
self._quick_get = self._outqueue._reader.recv
def apply(self, func, args=(), kwds={}):
'''
Equivalent of `apply()` builtin
'''
assert self._state == RUN
return self.apply_async(func, args, kwds).get()
def map(self, func, iterable, chunksize=None):
'''
Equivalent of `map()` builtin
'''
assert self._state == RUN
return self.map_async(func, iterable, chunksize).get()
def imap(self, func, iterable, chunksize=1):
'''
Equivalent of `itertools.imap()` -- can be MUCH slower than `Pool.map()`
'''
assert self._state == RUN
if chunksize == 1:
result = IMapIterator(self._cache)
self._taskqueue.put((((result._job, i, func, (x,), {})
for i, x in enumerate(iterable)), result._set_length))
return result
else:
assert chunksize > 1
task_batches = Pool._get_tasks(func, iterable, chunksize)
result = IMapIterator(self._cache)
self._taskqueue.put((((result._job, i, mapstar, (x,), {})
for i, x in enumerate(task_batches)), result._set_length))
return (item for chunk in result for item in chunk)
def imap_unordered(self, func, iterable, chunksize=1):
'''
Like `imap()` method but ordering of results is arbitrary
'''
assert self._state == RUN
if chunksize == 1:
result = IMapUnorderedIterator(self._cache)
self._taskqueue.put((((result._job, i, func, (x,), {})
for i, x in enumerate(iterable)), result._set_length))
return result
else:
assert chunksize > 1
task_batches = Pool._get_tasks(func, iterable, chunksize)
result = IMapUnorderedIterator(self._cache)
self._taskqueue.put((((result._job, i, mapstar, (x,), {})
for i, x in enumerate(task_batches)), result._set_length))
return (item for chunk in result for item in chunk)
def apply_async(self, func, args=(), kwds={}, callback=None):
'''
Asynchronous equivalent of `apply()` builtin
'''
assert self._state == RUN
result = ApplyResult(self._cache, callback)
self._taskqueue.put(([(result._job, None, func, args, kwds)], None))
return result
def map_async(self, func, iterable, chunksize=None, callback=None):
'''
Asynchronous equivalent of `map()` builtin
'''
assert self._state == RUN
if not hasattr(iterable, '__len__'):
iterable = list(iterable)
if chunksize is None:
chunksize, extra = divmod(len(iterable), len(self._pool) * 4)
if extra:
chunksize += 1
if len(iterable) == 0:
chunksize = 0
task_batches = Pool._get_tasks(func, iterable, chunksize)
result = MapResult(self._cache, chunksize, len(iterable), callback)
self._taskqueue.put((((result._job, i, mapstar, (x,), {})
for i, x in enumerate(task_batches)), None))
return result
@staticmethod
def _handle_workers(pool):
thread = threading.current_thread()
# Keep maintaining workers until the cache gets drained, unless the pool
# is terminated.
while thread._state == RUN or (pool._cache and thread._state != TERMINATE):
pool._maintain_pool()
time.sleep(0.1)
# send sentinel to stop workers
pool._taskqueue.put(None)
debug('worker handler exiting')
@staticmethod
def _handle_tasks(taskqueue, put, outqueue, pool):
thread = threading.current_thread()
for taskseq, set_length in iter(taskqueue.get, None):
i = -1
for i, task in enumerate(taskseq):
if thread._state:
debug('task handler found thread._state != RUN')
break
try:
put(task)
except IOError:
debug('could not put task on queue')
break
else:
if set_length:
debug('doing set_length()')
set_length(i+1)
continue
break
else:
debug('task handler got sentinel')
try:
# tell result handler to finish when cache is empty
debug('task handler sending sentinel to result handler')
outqueue.put(None)
# tell workers there is no more work
debug('task handler sending sentinel to workers')
for p in pool:
put(None)
except IOError:
debug('task handler got IOError when sending sentinels')
debug('task handler exiting')
@staticmethod
def _handle_results(outqueue, get, cache):
thread = threading.current_thread()
while 1:
try:
task = get()
except (IOError, EOFError):
debug('result handler got EOFError/IOError -- exiting')
return
if thread._state:
assert thread._state == TERMINATE
debug('result handler found thread._state=TERMINATE')
break
if task is None:
debug('result handler got sentinel')
break
job, i, obj = task
try:
cache[job]._set(i, obj)
except KeyError:
pass
while cache and thread._state != TERMINATE:
try:
task = get()
except (IOError, EOFError):
debug('result handler got EOFError/IOError -- exiting')
return
if task is None:
debug('result handler ignoring extra sentinel')
continue
job, i, obj = task
try:
cache[job]._set(i, obj)
except KeyError:
pass
if hasattr(outqueue, '_reader'):
debug('ensuring that outqueue is not full')
# If we don't make room available in outqueue then
# attempts to add the sentinel (None) to outqueue may
# block. There is guaranteed to be no more than 2 sentinels.
try:
for i in range(10):
if not outqueue._reader.poll():
break
get()
except (IOError, EOFError):
pass
debug('result handler exiting: len(cache)=%s, thread._state=%s',
len(cache), thread._state)
@staticmethod
def _get_tasks(func, it, size):
it = iter(it)
while 1:
x = tuple(itertools.islice(it, size))
if not x:
return
yield (func, x)
def __reduce__(self):
raise NotImplementedError(
'pool objects cannot be passed between processes or pickled'
)
def close(self):
debug('closing pool')
if self._state == RUN:
self._state = CLOSE
self._worker_handler._state = CLOSE
def terminate(self):
debug('terminating pool')
self._state = TERMINATE
self._worker_handler._state = TERMINATE
self._terminate()
def join(self):
debug('joining pool')
assert self._state in (CLOSE, TERMINATE)
self._worker_handler.join()
self._task_handler.join()
self._result_handler.join()
for p in self._pool:
p.join()
@staticmethod
def _help_stuff_finish(inqueue, task_handler, size):
# task_handler may be blocked trying to put items on inqueue
debug('removing tasks from inqueue until task handler finished')
inqueue._rlock.acquire()
while task_handler.is_alive() and inqueue._reader.poll():
inqueue._reader.recv()
time.sleep(0)
@classmethod
def _terminate_pool(cls, taskqueue, inqueue, outqueue, pool,
worker_handler, task_handler, result_handler, cache):
# this is guaranteed to only be called once
debug('finalizing pool')
worker_handler._state = TERMINATE
task_handler._state = TERMINATE
debug('helping task handler/workers to finish')
cls._help_stuff_finish(inqueue, task_handler, len(pool))
assert result_handler.is_alive() or len(cache) == 0
result_handler._state = TERMINATE
outqueue.put(None) # sentinel
# We must wait for the worker handler to exit before terminating
# workers because we don't want workers to be restarted behind our back.
debug('joining worker handler')
if threading.current_thread() is not worker_handler:
worker_handler.join(1e100)
# Terminate workers which haven't already finished.
if pool and hasattr(pool[0], 'terminate'):
debug('terminating workers')
for p in pool:
if p.exitcode is None:
p.terminate()
debug('joining task handler')
if threading.current_thread() is not task_handler:
task_handler.join(1e100)
debug('joining result handler')
if threading.current_thread() is not result_handler:
result_handler.join(1e100)
if pool and hasattr(pool[0], 'terminate'):
debug('joining pool workers')
for p in pool:
if p.is_alive():
# worker has not yet exited
debug('cleaning up worker %d' % p.pid)
p.join()
class ApplyResult(object):
def __init__(self, cache, callback):
self._cond = threading.Condition(threading.Lock())
self._job = multiprocessing.pool.job_counter.next()
self._cache = cache
self._ready = False
self._callback = callback
cache[self._job] = self
def ready(self):
return self._ready
def successful(self):
assert self._ready
return self._success
def wait(self, timeout=None):
self._cond.acquire()
try:
if not self._ready:
self._cond.wait(timeout)
finally:
self._cond.release()
def get(self, timeout=None):
self.wait(timeout)
if not self._ready:
raise TimeoutError
if self._success:
return self._value
else:
raise self._value
def _set(self, i, obj):
self._success, self._value = obj
if self._callback and self._success:
self._callback(self._value)
self._cond.acquire()
try:
self._ready = True
self._cond.notify()
finally:
self._cond.release()
del self._cache[self._job]
#
# Class whose instances are returned by `Pool.map_async()`
#
class MapResult(ApplyResult):
def __init__(self, cache, chunksize, length, callback):
ApplyResult.__init__(self, cache, callback)
self._success = True
self._value = [None] * length
self._chunksize = chunksize
if chunksize <= 0:
self._number_left = 0
self._ready = True
del cache[self._job]
else:
self._number_left = length//chunksize + bool(length % chunksize)
def _set(self, i, success_result):
success, result = success_result
if success:
self._value[i*self._chunksize:(i+1)*self._chunksize] = result
self._number_left -= 1
if self._number_left == 0:
if self._callback:
self._callback(self._value)
del self._cache[self._job]
self._cond.acquire()
try:
self._ready = True
self._cond.notify()
finally:
self._cond.release()
else:
self._success = False
self._value = result
del self._cache[self._job]
self._cond.acquire()
try:
self._ready = True
self._cond.notify()
finally:
self._cond.release()
#
# Class whose instances are returned by `Pool.imap()`
#
class IMapIterator(object):
def __init__(self, cache):
self._cond = threading.Condition(threading.Lock())
self._job = multiprocessing.pool.job_counter.next()
self._cache = cache
self._items = collections.deque()
self._index = 0
self._length = None
self._unsorted = {}
cache[self._job] = self
def __iter__(self):
return self
def next(self, timeout=None):
self._cond.acquire()
try:
try:
item = self._items.popleft()
except IndexError:
if self._index == self._length:
raise StopIteration
self._cond.wait(timeout)
try:
item = self._items.popleft()
except IndexError:
if self._index == self._length:
raise StopIteration
raise TimeoutError
finally:
self._cond.release()
success, value = item
if success:
return value
raise value
__next__ = next # XXX
def _set(self, i, obj):
self._cond.acquire()
try:
if self._index == i:
self._items.append(obj)
self._index += 1
while self._index in self._unsorted:
obj = self._unsorted.pop(self._index)
self._items.append(obj)
self._index += 1
self._cond.notify()
else:
self._unsorted[i] = obj
if self._index == self._length:
del self._cache[self._job]
finally:
self._cond.release()
def _set_length(self, length):
self._cond.acquire()
try:
self._length = length
if self._index == self._length:
self._cond.notify()
del self._cache[self._job]
finally:
self._cond.release()
#
# Class whose instances are returned by `Pool.imap_unordered()`
#
class IMapUnorderedIterator(IMapIterator):
def _set(self, i, obj):
self._cond.acquire()
try:
self._items.append(obj)
self._index += 1
self._cond.notify()
if self._index == self._length:
del self._cache[self._job]
finally:
self._cond.release()

View File

@@ -34,7 +34,7 @@ from cStringIO import StringIO
from contextlib import closing
from functools import wraps
from collections import defaultdict
import bb, bb.exceptions, bb.command
import bb, bb.exceptions, bb.command, bb.compat
from bb import utils, data, parse, event, cache, providers, taskdata, runqueue
import Queue
import prserv.serv
@@ -185,6 +185,13 @@ class BBCooker:
filtered_keys = bb.utils.approved_variables()
bb.data.inheritFromOS(self.configuration.data, self.savedenv, filtered_keys)
self.configuration.data.setVar("BB_ORIGENV", self.savedenv)
def enableDataTracking(self):
self.configuration.data.enableTracking()
def disableDataTracking(self):
self.configuration.data.disableTracking()
def loadConfigurationData(self):
self.initConfigurationData()
@@ -201,6 +208,89 @@ class BBCooker:
if not self.configuration.cmd:
self.configuration.cmd = self.configuration.data.getVar("BB_DEFAULT_TASK", True) or "build"
def saveConfigurationVar(self, var, val, default_file):
replaced = False
#do not save if nothing changed
if str(val) == self.configuration.data.getVar(var):
return
conf_files = self.configuration.data.varhistory.get_variable_files(var)
#format the value when it is a list
if isinstance(val, list):
listval = ""
for value in val:
listval += "%s " % value
val = listval
topdir = self.configuration.data.getVar("TOPDIR")
#comment or replace operations made on var
for conf_file in conf_files:
if topdir in conf_file:
with open(conf_file, 'r') as f:
contents = f.readlines()
f.close()
lines = self.configuration.data.varhistory.get_variable_lines(var, conf_file)
for line in lines:
total = ""
i = 0
for c in contents:
total += c
i = i + 1
if i==int(line):
end_index = len(total)
index = total.rfind(var, 0, end_index)
begin_line = total.count("\n",0,index)
end_line = int(line)
#check if the variable was saved before in the same way
#if true it replace the place where the variable was declared
#else it comments it
if contents[begin_line-1]== "#added by bitbake\n":
contents[begin_line] = "%s = \"%s\"\n" % (var, val)
replaced = True
else:
for ii in range(begin_line, end_line):
contents[ii] = "#" + contents[ii]
total = ""
for c in contents:
total += c
with open(conf_file, 'w') as f:
f.write(total)
f.close()
if replaced == False:
#remove var from history
self.configuration.data.varhistory.del_var_history(var)
#add var to the end of default_file
default_file = self._findConfigFile(default_file)
with open(default_file, 'r') as f:
contents = f.readlines()
f.close()
total = ""
for c in contents:
total += c
#add the variable on a single line, to be easy to replace the second time
total += "#added by bitbake"
total += "\n%s = \"%s\"\n" % (var, val)
with open(default_file, 'w') as f:
f.write(total)
f.close()
#add to history
loginfo = {"op":set, "file":default_file, "line":total.count("\n")}
self.configuration.data.setVar(var, val, **loginfo)
def parseConfiguration(self):
# Set log file verbosity
@@ -887,10 +977,16 @@ class BBCooker:
bb.fetch.fetcher_init(data)
bb.codeparser.parser_cache_init(data)
bb.event.fire(bb.event.ConfigParsed(), data)
bb.parse.init_parser(data)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))
self.configuration.data = data
self.configuration.data_hash = data.get_hash()
if data.getVar("BB_INVALIDCONF") is True:
data.setVar("BB_INVALIDCONF", False)
self.parseConfigurationFiles(self.configuration.prefile,
self.configuration.postfile)
else:
bb.parse.init_parser(data)
data.setVar('BBINCLUDED',bb.parse.get_file_depends(data))
self.configuration.data = data
self.configuration.data_hash = data.get_hash()
def handleCollections( self, collections ):
"""Handle collections"""
@@ -1416,25 +1512,7 @@ def server_main(cooker, func, *args):
ret = profile.Profile.runcall(prof, func, *args)
prof.dump_stats("profile.log")
# Redirect stdout to capture profile information
pout = open('profile.log.processed', 'w')
so = sys.stdout.fileno()
orig_so = os.dup(sys.stdout.fileno())
os.dup2(pout.fileno(), so)
import pstats
p = pstats.Stats('profile.log')
p.sort_stats('time')
p.print_stats()
p.print_callers()
p.sort_stats('cumulative')
p.print_stats()
os.dup2(orig_so, so)
pout.flush()
pout.close()
bb.utils.process_profilelog("profile.log")
print("Raw profiling information saved to profile.log and processed statistics to profile.log.processed")
else:
@@ -1478,87 +1556,19 @@ class ParsingFailure(Exception):
self.recipe = recipe
Exception.__init__(self, realexception, recipe)
class Feeder(multiprocessing.Process):
def __init__(self, jobs, to_parsers, quit):
self.quit = quit
self.jobs = jobs
self.to_parsers = to_parsers
multiprocessing.Process.__init__(self)
def run(self):
while True:
try:
quit = self.quit.get_nowait()
except Queue.Empty:
pass
else:
if quit == 'cancel':
self.to_parsers.cancel_join_thread()
break
try:
job = self.jobs.pop()
except IndexError:
break
try:
self.to_parsers.put(job, timeout=0.5)
except Queue.Full:
self.jobs.insert(0, job)
continue
class Parser(multiprocessing.Process):
def __init__(self, jobs, results, quit, init):
self.jobs = jobs
self.results = results
self.quit = quit
self.init = init
multiprocessing.Process.__init__(self)
def run(self):
if self.init:
self.init()
pending = []
while True:
try:
self.quit.get_nowait()
except Queue.Empty:
pass
else:
self.results.cancel_join_thread()
break
if pending:
result = pending.pop()
else:
try:
job = self.jobs.get(timeout=0.25)
except Queue.Empty:
continue
if job is None:
break
result = self.parse(*job)
try:
self.results.put(result, timeout=0.25)
except Queue.Full:
pending.append(result)
def parse(self, filename, appends, caches_array):
try:
return True, bb.cache.Cache.parse(filename, appends, self.cfg, caches_array)
except Exception as exc:
tb = sys.exc_info()[2]
exc.recipe = filename
exc.traceback = list(bb.exceptions.extract_traceback(tb, context=3))
return True, exc
# Need to turn BaseExceptions into Exceptions here so we gracefully shutdown
# and for example a worker thread doesn't just exit on its own in response to
# a SystemExit event for example.
except BaseException as exc:
return True, ParsingFailure(exc, filename)
def parse_file((filename, appends, caches_array)):
try:
return True, bb.cache.Cache.parse(filename, appends, parse_file.cfg, caches_array)
except Exception as exc:
tb = sys.exc_info()[2]
exc.recipe = filename
exc.traceback = list(bb.exceptions.extract_traceback(tb, context=3))
return True, exc
# Need to turn BaseExceptions into Exceptions here so we gracefully shutdown
# and for example a worker thread doesn't just exit on its own in response to
# a SystemExit event for example.
except BaseException as exc:
return True, ParsingFailure(exc, filename)
class CookerParser(object):
def __init__(self, cooker, filelist, masked):
@@ -1592,32 +1602,25 @@ class CookerParser(object):
self.fromcache.append((filename, appends))
self.toparse = self.total - len(self.fromcache)
self.progress_chunk = max(self.toparse / 100, 1)
self.chunk = int(self.cfgdata.getVar("BB_PARSE_CHUNK", True) or 1)
self.start()
self.haveshutdown = False
def start(self):
self.results = self.load_cached()
self.processes = []
if self.toparse:
def process_init():
parse_file.cfg = self.cfgdata
multiprocessing.util.Finalize(None, bb.codeparser.parser_cache_save, args=(parse_file.cfg,), exitpriority=1)
multiprocessing.util.Finalize(None, bb.fetch.fetcher_parse_save, args=(parse_file.cfg,), exitpriority=1)
bb.event.fire(bb.event.ParseStarted(self.toparse), self.cfgdata)
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)
self.jobs = multiprocessing.Queue(maxsize=self.num_processes)
self.result_queue = multiprocessing.Queue()
self.feeder = Feeder(self.willparse, self.jobs, self.feeder_quit)
self.feeder.start()
for i in range(0, self.num_processes):
parser = Parser(self.jobs, self.result_queue, self.parser_quit, init)
parser.start()
self.processes.append(parser)
self.results = itertools.chain(self.results, self.parse_generator())
self.pool = bb.compat.Pool(self.num_processes, process_init)
parsed = self.pool.imap_unordered(parse_file, self.willparse, self.chunk)
self.pool.close()
self.results = itertools.chain(self.results, parsed)
def shutdown(self, clean=True, force=False):
if not self.toparse:
@@ -1633,25 +1636,9 @@ class CookerParser(object):
self.total)
bb.event.fire(event, self.cfgdata)
self.feeder_quit.put(None)
for process in self.processes:
self.jobs.put(None)
else:
self.feeder_quit.put('cancel')
self.parser_quit.cancel_join_thread()
for process in self.processes:
self.parser_quit.put(None)
self.jobs.cancel_join_thread()
for process in self.processes:
if force:
process.join(.1)
process.terminate()
else:
process.join()
self.feeder.join()
self.pool.terminate()
self.pool.join()
sync = threading.Thread(target=self.bb_cache.sync)
sync.start()
@@ -1664,22 +1651,6 @@ class CookerParser(object):
cached, infos = self.bb_cache.load(filename, appends, self.cfgdata)
yield not cached, infos
def parse_generator(self):
while True:
if self.parsed >= self.toparse:
break
try:
result = self.result_queue.get(timeout=0.25)
except Queue.Empty:
pass
else:
value = result[1]
if isinstance(value, BaseException):
raise value
else:
yield result
def parse_next(self):
result = []
parsed = None

View File

@@ -259,6 +259,27 @@ class VariableHistory(object):
o.write("#\n# $%s\n# [no history recorded]\n#\n" % var)
o.write('# "%s"\n' % (commentVal))
def get_variable_files(self, var):
"""Get the files where operations are made on a variable"""
var_history = self.variable(var)
files = []
for event in var_history:
files.append(event['file'])
return files
def get_variable_lines(self, var, f):
"""Get the line where a operation is made on a variable in file f"""
var_history = self.variable(var)
lines = []
for event in var_history:
if f== event['file']:
line = event['line']
lines.append(line)
return lines
def del_var_history(self, var):
if var in self.variables:
self.variables[var] = []
class DataSmart(MutableMapping):
def __init__(self, special = COWDictBase.copy(), seen = COWDictBase.copy() ):
@@ -429,6 +450,7 @@ class DataSmart(MutableMapping):
def setVar(self, var, value, **loginfo):
#print("var=" + str(var) + " val=" + str(value))
if 'op' not in loginfo:
loginfo['op'] = "set"
self.expand_cache = {}

View File

@@ -30,6 +30,10 @@ from __future__ import print_function
import os, re
import logging
import urllib
import urlparse
if 'git' not in urlparse.uses_netloc:
urlparse.uses_netloc.append('git')
from urlparse import urlparse
import operator
import bb.persist_data, bb.utils
import bb.checksum
@@ -120,6 +124,199 @@ class NonLocalMethod(Exception):
def __init__(self):
Exception.__init__(self)
class URI(object):
"""
A class representing a generic URI, with methods for
accessing the URI components, and stringifies to the
URI.
It is constructed by calling it with a URI, or setting
the attributes manually:
uri = URI("http://example.com/")
uri = URI()
uri.scheme = 'http'
uri.hostname = 'example.com'
uri.path = '/'
It has the following attributes:
* scheme (read/write)
* userinfo (authentication information) (read/write)
* username (read/write)
* password (read/write)
Note, password is deprecated as of RFC 3986.
* hostname (read/write)
* port (read/write)
* hostport (read only)
"hostname:port", if both are set, otherwise just "hostname"
* path (read/write)
* path_quoted (read/write)
A URI quoted version of path
* params (dict) (read/write)
* relative (bool) (read only)
True if this is a "relative URI", (e.g. file:foo.diff)
It stringifies to the URI itself.
Some notes about relative URIs: while it's specified that
a URI beginning with <scheme>:// should either be directly
followed by a hostname or a /, the old URI handling of the
fetch2 library did not comform to this. Therefore, this URI
class has some kludges to make sure that URIs are parsed in
a way comforming to bitbake's current usage. This URI class
supports the following:
file:relative/path.diff (IETF compliant)
git:relative/path.git (IETF compliant)
git:///absolute/path.git (IETF compliant)
file:///absolute/path.diff (IETF compliant)
file://relative/path.diff (not IETF compliant)
But it does not support the following:
file://hostname/absolute/path.diff (would be IETF compliant)
Note that the last case only applies to a list of
"whitelisted" schemes (currently only file://), that requires
its URIs to not have a network location.
"""
_relative_schemes = ['file', 'git']
_netloc_forbidden = ['file']
def __init__(self, uri=None):
self.scheme = ''
self.userinfo = ''
self.hostname = ''
self.port = None
self._path = ''
self.params = {}
self.relative = False
if not uri:
return
urlp = urlparse(uri)
self.scheme = urlp.scheme
# Convert URI to be relative
if urlp.scheme in self._netloc_forbidden:
uri = re.sub("(?<=:)//(?!/)", "", uri, 1)
urlp = urlparse(uri)
# Identify if the URI is relative or not
if urlp.scheme in self._relative_schemes and \
re.compile("^\w+:(?!//)").match(uri):
self.relative = True
if not self.relative:
self.hostname = urlp.hostname or ''
self.port = urlp.port
self.userinfo += urlp.username or ''
if urlp.password:
self.userinfo += ':%s' % urlp.password
# Do support params even for URI schemes that Python's
# urlparse doesn't support params for.
path = ''
param_str = ''
if not urlp.params:
path, param_str = (list(urlp.path.split(";", 1)) + [None])[:2]
else:
path = urlp.path
param_str = urlp.params
self.path = urllib.unquote(path)
if param_str:
self.params = self._param_dict(param_str)
def __str__(self):
userinfo = self.userinfo
if userinfo:
userinfo += '@'
return "%s:%s%s%s%s%s" % (
self.scheme,
'' if self.relative else '//',
userinfo,
self.hostport,
self.path_quoted,
self._param_str)
@property
def _param_str(self):
ret = ''
for key, val in self.params.items():
ret += ";%s=%s" % (key, val)
return ret
def _param_dict(self, param_str):
parm = {}
for keyval in param_str.split(";"):
key, val = keyval.split("=", 1)
parm[key] = val
return parm
@property
def hostport(self):
if not self.port:
return self.hostname
return "%s:%d" % (self.hostname, self.port)
@property
def path_quoted(self):
return urllib.quote(self.path)
@path_quoted.setter
def path_quoted(self, path):
self.path = urllib.unquote(path)
@property
def path(self):
return self._path
@path.setter
def path(self, path):
self._path = path
if re.compile("^/").match(path):
self.relative = False
else:
self.relative = True
@property
def username(self):
if self.userinfo:
return (self.userinfo.split(":", 1))[0]
return ''
@username.setter
def username(self, username):
self.userinfo = username
if self.password:
self.userinfo += ":%s" % self.password
@property
def password(self):
if self.userinfo and ":" in self.userinfo:
return (self.userinfo.split(":", 1))[1]
return ''
@password.setter
def password(self, password):
self.userinfo = "%s:%s" % (self.username, password)
def decodeurl(url):
"""Decodes an URL into the tokens (scheme, network location, path,
user, password, parameters).
@@ -214,6 +411,8 @@ def uri_replace(ud, uri_find, uri_replace, replacements, d):
return None
# Overwrite any specified replacement parameters
for k in uri_replace_decoded[loc]:
for l in replacements:
uri_replace_decoded[loc][k] = uri_replace_decoded[loc][k].replace(l, replacements[l])
result_decoded[loc][k] = uri_replace_decoded[loc][k]
elif (re.match(regexp, uri_decoded[loc])):
if not uri_replace_decoded[loc]:
@@ -458,11 +657,16 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):
# rather than host provided
# Also include some other variables.
# FIXME: Should really include all export varaiables?
exportvars = ['PATH', 'GIT_PROXY_COMMAND', 'GIT_PROXY_HOST',
'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy',
'https_proxy', 'no_proxy', 'ALL_PROXY', 'all_proxy',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME',
'GIT_PROXY_IGNORE', 'SOCKS5_USER', 'SOCKS5_PASSWD']
exportvars = ['HOME', 'PATH',
'HTTP_PROXY', 'http_proxy',
'HTTPS_PROXY', 'https_proxy',
'FTP_PROXY', 'ftp_proxy',
'FTPS_PROXY', 'ftps_proxy',
'NO_PROXY', 'no_proxy',
'ALL_PROXY', 'all_proxy',
'GIT_PROXY_COMMAND',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID',
'SOCKS5_USER', 'SOCKS5_PASSWD']
for var in exportvars:
val = d.getVar(var, True)
@@ -577,6 +781,7 @@ def try_mirror_url(newuri, origud, ud, ld, check = False):
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):
bb.utils.mkdirhier(os.path.dirname(ud.donestamp))
open(ud.donestamp, 'w').close()
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
@@ -650,11 +855,14 @@ def srcrev_internal_helper(ud, d, name):
if not rev:
rev = d.getVar("SRCREV_%s" % name, True)
if not rev:
rev = d.getVar("SRCREV_pn-%s" % pn, True)
rev = d.getVar("SRCREV_pn-%s" % pn, True)
if not rev:
rev = d.getVar("SRCREV", True)
if rev == "INVALID":
raise FetchError("Please set SRCREV to a valid value", ud.url)
var = "SRCREV_pn-%s" % pn
if name != '':
var = "SRCREV_%s_pn-%s" % (name, pn)
raise FetchError("Please set %s to a valid value" % var, ud.url)
if rev == "AUTOINC":
rev = ud.method.latest_revision(ud.url, ud, d, name)
@@ -746,6 +954,7 @@ class FetchData(object):
self.lockfile = None
self.mirrortarball = None
self.basename = None
self.basepath = None
(self.type, self.host, self.path, self.user, self.pswd, self.parm) = decodeurl(data.expand(url, d))
self.date = self.getSRCDate(d)
self.url = url
@@ -802,8 +1011,14 @@ class FetchData(object):
elif self.localfile:
self.localpath = self.method.localpath(self.url, self, d)
# Note: These files should always be in DL_DIR whereas localpath may not be.
basepath = d.expand("${DL_DIR}/%s" % os.path.basename(self.localpath or self.basename))
dldir = d.getVar("DL_DIR", True)
# Note: .done and .lock files should always be in DL_DIR whereas localpath may not be.
if self.localpath and self.localpath.startswith(dldir):
basepath = self.localpath
elif self.localpath:
basepath = dldir + os.sep + os.path.basename(self.localpath)
else:
basepath = dldir + os.sep + (self.basepath or self.basename)
self.donestamp = basepath + '.done'
self.lockfile = basepath + '.lock'
@@ -1287,6 +1502,7 @@ from . import svn
from . import wget
from . import svk
from . import ssh
from . import sftp
from . import perforce
from . import bzr
from . import hg
@@ -1300,6 +1516,7 @@ methods.append(git.Git())
methods.append(cvs.Cvs())
methods.append(svk.Svk())
methods.append(ssh.SSH())
methods.append(sftp.SFTP())
methods.append(perforce.Perforce())
methods.append(bzr.Bzr())
methods.append(hg.Hg())

View File

@@ -0,0 +1,129 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
"""
BitBake SFTP Fetch implementation
Class for fetching files via SFTP. It tries to adhere to the (now
expired) IETF Internet Draft for "Uniform Resource Identifier (URI)
Scheme for Secure File Transfer Protocol (SFTP) and Secure Shell
(SSH)" (SECSH URI).
It uses SFTP (as to adhere to the SECSH URI specification). It only
supports key based authentication, not password. This class, unlike
the SSH fetcher, does not support fetching a directory tree from the
remote.
http://tools.ietf.org/html/draft-ietf-secsh-scp-sftp-ssh-uri-04
https://www.iana.org/assignments/uri-schemes/prov/sftp
https://tools.ietf.org/html/draft-ietf-secsh-filexfer-13
Please note that '/' is used as host path seperator, and not ":"
as you may be used to from the scp/sftp commands. You can use a
~ (tilde) to specify a path relative to your home directory.
(The /~user/ syntax, for specyfing a path relative to another
user's home directory is not supported.) Note that the tilde must
still follow the host path seperator ("/"). See exampels below.
Example SRC_URIs:
SRC_URI = "sftp://host.example.com/dir/path.file.txt"
A path relative to your home directory.
SRC_URI = "sftp://host.example.com/~/dir/path.file.txt"
You can also specify a username (specyfing password in the
URI is not supported, use SSH keys to authenticate):
SRC_URI = "sftp://user@host.example.com/dir/path.file.txt"
"""
# Copyright (C) 2013, Olof Johansson <olof.johansson@axis.com>
#
# Based in part on bb.fetch2.wget:
# Copyright (C) 2003, 2004 Chris Larson
#
# 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.
#
# Based on functions from the base bb module, Copyright 2003 Holger Schurig
import os
import bb
import urllib
import commands
from bb import data
from bb.fetch2 import URI
from bb.fetch2 import FetchMethod
from bb.fetch2 import runfetchcmd
class SFTP(FetchMethod):
"""Class to fetch urls via 'sftp'"""
def supports(self, url, ud, d):
"""
Check to see if a given url can be fetched with sftp.
"""
return ud.type in ['sftp']
def recommends_checksum(self, urldata):
return True
def urldata_init(self, ud, d):
if 'protocol' in ud.parm and ud.parm['protocol'] == 'git':
raise bb.fetch2.ParameterError(
"Invalid protocol - if you wish to fetch from a " +
"git repository using ssh, you need to use the " +
"git:// prefix with protocol=ssh", ud.url)
if 'downloadfilename' in ud.parm:
ud.basename = ud.parm['downloadfilename']
else:
ud.basename = os.path.basename(ud.path)
ud.localfile = data.expand(urllib.unquote(ud.basename), d)
def download(self, uri, ud, d):
"""Fetch urls"""
urlo = URI(uri)
basecmd = 'sftp -oPasswordAuthentication=no'
port = ''
if urlo.port:
port = '-P %d' % urlo.port
urlo.port = None
dldir = data.getVar('DL_DIR', d, True)
lpath = os.path.join(dldir, ud.localfile)
user = ''
if urlo.userinfo:
user = urlo.userinfo + '@'
path = urlo.path
# Supoprt URIs relative to the user's home directory, with
# the tilde syntax. (E.g. <sftp://example.com/~/foo.diff>).
if path[:3] == '/~/':
path = path[3:]
remote = '%s%s:%s' % (user, urlo.hostname, path)
cmd = '%s %s %s %s' % (basecmd, port, commands.mkarg(remote),
commands.mkarg(lpath))
bb.fetch2.check_network_access(d, cmd, uri)
runfetchcmd(cmd, d)
return True

View File

@@ -10,6 +10,12 @@ IETF secsh internet draft:
Currently does not support the sftp parameters, as this uses scp
Also does not support the 'fingerprint' connection parameter.
Please note that '/' is used as host, path separator not ':' as you may
be used to, also '~' can be used to specify user HOME, but again after '/'
Example SRC_URI:
SRC_URI = "ssh://user@host.example.com/dir/path/file.txt"
SRC_URI = "ssh://user@host.example.com/~/file.txt"
'''
# Copyright (C) 2006 OpenedHand Ltd.
@@ -72,15 +78,19 @@ class SSH(FetchMethod):
def supports_checksum(self, urldata):
return False
def localpath(self, url, urldata, d):
def urldata_init(self, urldata, d):
if 'protocol' in urldata.parm and urldata.parm['protocol'] == 'git':
raise bb.fetch2.ParameterError(
"Invalid protocol - if you wish to fetch from a git " +
"repository using ssh, you need to use " +
"git:// prefix with protocol=ssh", urldata.url)
m = __pattern__.match(urldata.url)
path = m.group('path')
host = m.group('host')
lpath = os.path.join(data.getVar('DL_DIR', d, True), host, os.path.basename(path))
return lpath
urldata.localpath = os.path.join(d.getVar('DL_DIR', True), os.path.basename(path))
def download(self, url, urldata, d):
dldir = data.getVar('DL_DIR', d, True)
dldir = d.getVar('DL_DIR', True)
m = __pattern__.match(url)
path = m.group('path')
@@ -89,16 +99,10 @@ class SSH(FetchMethod):
user = m.group('user')
password = m.group('pass')
ldir = os.path.join(dldir, host)
lpath = os.path.join(ldir, os.path.basename(path))
if not os.path.exists(ldir):
os.makedirs(ldir)
if port:
port = '-P %s' % port
portarg = '-P %s' % port
else:
port = ''
portarg = ''
if user:
fr = user
@@ -112,9 +116,9 @@ class SSH(FetchMethod):
import commands
cmd = 'scp -B -r %s %s %s/' % (
port,
portarg,
commands.mkarg(fr),
commands.mkarg(ldir)
commands.mkarg(dldir)
)
bb.fetch2.check_network_access(d, cmd, urldata.url)

View File

@@ -32,8 +32,6 @@ import urllib
from bb import data
from bb.fetch2 import FetchMethod
from bb.fetch2 import FetchError
from bb.fetch2 import encodeurl
from bb.fetch2 import decodeurl
from bb.fetch2 import logger
from bb.fetch2 import runfetchcmd
@@ -65,8 +63,10 @@ class Wget(FetchMethod):
basecmd = d.getVar("FETCHCMD_wget", True) or "/usr/bin/env wget -t 2 -T 30 -nv --passive-ftp --no-check-certificate"
if 'downloadfilename' in ud.parm:
basecmd += " -O ${DL_DIR}/" + ud.localfile
if not checkonly and 'downloadfilename' in ud.parm:
dldir = d.getVar("DL_DIR", True)
bb.utils.mkdirhier(os.path.dirname(dldir + os.sep + ud.localfile))
basecmd += " -O " + dldir + os.sep + ud.localfile
if checkonly:
fetchcmd = d.getVar("CHECKCOMMAND_wget", True) or d.expand(basecmd + " --spider '${URI}'")
@@ -77,9 +77,6 @@ class Wget(FetchMethod):
fetchcmd = d.getVar("FETCHCOMMAND_wget", True) or d.expand(basecmd + " -P ${DL_DIR} '${URI}'")
uri = uri.split(";")[0]
uri_decoded = list(decodeurl(uri))
uri_type = uri_decoded[0]
uri_host = uri_decoded[1]
fetchcmd = fetchcmd.replace("${URI}", uri.split(";")[0])
fetchcmd = fetchcmd.replace("${FILE}", ud.basename)

View File

@@ -128,7 +128,7 @@ def getDiskData(BBDirs, configuration):
if not os.path.exists(path):
bb.utils.mkdirhier(path)
mountedDev = getMountedDev(path)
devDict[mountedDev] = action, path, minSpace, minInode
devDict[mountedDev] = [action, path, minSpace, minInode]
return devDict
@@ -231,6 +231,13 @@ class diskMonitor:
freeInode = st.f_favail
if self.devDict[dev][3] and freeInode < self.devDict[dev][3]:
# Some fs formats' (e.g., btrfs) statvfs.f_files (inodes) is
# zero, this is a feature of the fs, we disable the inode
# checking for such a fs.
if st.f_files == 0:
logger.warn("Inode check for %s is unavaliable, remove it from disk monitor" % dev)
self.devDict[dev][3] = None
continue
# Always show warning, the self.checked would always be False if the action is WARN
if self.preFreeI[dev] == 0 or self.preFreeI[dev] - freeInode > self.inodeInterval and not self.checked[dev]:
logger.warn("The free inode of %s is running low (%.3fK left)" % (dev, freeInode / 1024.0))

View File

@@ -29,7 +29,30 @@ import logging
import bb.utils
from bb.parse import ParseError, resolve_file, ast, logger
__config_regexp__ = re.compile( r"(?P<exp>export\s*)?(?P<var>[a-zA-Z0-9\-~_+.${}/]+)(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?\s*((?P<colon>:=)|(?P<lazyques>\?\?=)|(?P<ques>\?=)|(?P<append>\+=)|(?P<prepend>=\+)|(?P<predot>=\.)|(?P<postdot>\.=)|=)\s*(?!'[^']*'[^']*'$)(?!\"[^\"]*\"[^\"]*\"$)(?P<apo>['\"])(?P<value>.*)(?P=apo)$")
__config_regexp__ = re.compile( r"""
^
(?P<exp>export\s*)?
(?P<var>[a-zA-Z0-9\-~_+.${}/]+?)
(\[(?P<flag>[a-zA-Z0-9\-_+.]+)\])?
\s* (
(?P<colon>:=) |
(?P<lazyques>\?\?=) |
(?P<ques>\?=) |
(?P<append>\+=) |
(?P<prepend>=\+) |
(?P<predot>=\.) |
(?P<postdot>\.=) |
=
) \s*
(?!'[^']*'[^']*'$)
(?!\"[^\"]*\"[^\"]*\"$)
(?P<apo>['\"])
(?P<value>.*)
(?P=apo)
$
""", re.X)
__include_regexp__ = re.compile( r"include\s+(.+)" )
__require_regexp__ = re.compile( r"require\s+(.+)" )
__export_regexp__ = re.compile( r"export\s+([a-zA-Z0-9\-_+.${}/]+)$" )

View File

@@ -1149,7 +1149,8 @@ class RunQueueExecute:
os._exit(1)
try:
if not self.cooker.configuration.dry_run:
ret = bb.build.exec_task(fn, taskname, the_data)
profile = self.cooker.configuration.profile
ret = bb.build.exec_task(fn, taskname, the_data, profile)
os._exit(ret)
except:
os._exit(1)

View File

@@ -266,5 +266,5 @@ class BitBakeServer(object):
return self.connection
def launchUI(self, uifunc, *args):
return bb.cooker.server_main(self.cooker, uifunc, *args)
return uifunc(*args)

View File

@@ -98,6 +98,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
data = ''
gendeps[task] -= self.basewhitelist
newdeps = gendeps[task]
seen = set()
while newdeps:
@@ -107,12 +108,12 @@ class SignatureGeneratorBasic(SignatureGenerator):
for dep in nextdeps:
if dep in self.basewhitelist:
continue
gendeps[dep] -= self.basewhitelist
newdeps |= gendeps[dep]
newdeps -= seen
alldeps = seen - self.basewhitelist
for dep in sorted(alldeps):
alldeps = sorted(seen)
for dep in alldeps:
data = data + dep
if dep in lookupcache:
var = lookupcache[dep]
@@ -126,7 +127,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
if var:
data = data + str(var)
self.basehash[fn + "." + task] = hashlib.md5(data).hexdigest()
taskdeps[task] = sorted(alldeps)
taskdeps[task] = alldeps
self.taskdeps[fn] = taskdeps
self.gendeps[fn] = gendeps

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Test for codeparser.py
#
@@ -24,6 +26,9 @@ import bb
logger = logging.getLogger('BitBake.TestCodeParser')
# bb.data references bb.parse but can't directly import due to circular dependencies.
# Hack around it for now :(
import bb.parse
import bb.data
class ReferenceTest(unittest.TestCase):

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Tests for Copy-on-Write (cow.py)
#

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Tests for the Data Store (data.py/data_smart.py)
#

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Tests for the Fetcher (fetch2/)
#
@@ -21,8 +23,234 @@ import unittest
import tempfile
import subprocess
import os
from bb.fetch2 import URI
import bb
class URITest(unittest.TestCase):
test_uris = {
"http://www.google.com/index.html" : {
'uri': 'http://www.google.com/index.html',
'scheme': 'http',
'hostname': 'www.google.com',
'port': None,
'hostport': 'www.google.com',
'path': '/index.html',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': False
},
"http://www.google.com/index.html;param1=value1" : {
'uri': 'http://www.google.com/index.html;param1=value1',
'scheme': 'http',
'hostname': 'www.google.com',
'port': None,
'hostport': 'www.google.com',
'path': '/index.html',
'userinfo': '',
'username': '',
'password': '',
'params': {
'param1': 'value1'
},
'relative': False
},
"http://www.example.com:8080/index.html" : {
'uri': 'http://www.example.com:8080/index.html',
'scheme': 'http',
'hostname': 'www.example.com',
'port': 8080,
'hostport': 'www.example.com:8080',
'path': '/index.html',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': False
},
"cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg" : {
'uri': 'cvs://anoncvs@cvs.handhelds.org/cvs;module=familiar/dist/ipkg',
'scheme': 'cvs',
'hostname': 'cvs.handhelds.org',
'port': None,
'hostport': 'cvs.handhelds.org',
'path': '/cvs',
'userinfo': 'anoncvs',
'username': 'anoncvs',
'password': '',
'params': {
'module': 'familiar/dist/ipkg'
},
'relative': False
},
"cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg": {
'uri': 'cvs://anoncvs:anonymous@cvs.handhelds.org/cvs;tag=V0-99-81;module=familiar/dist/ipkg',
'scheme': 'cvs',
'hostname': 'cvs.handhelds.org',
'port': None,
'hostport': 'cvs.handhelds.org',
'path': '/cvs',
'userinfo': 'anoncvs:anonymous',
'username': 'anoncvs',
'password': 'anonymous',
'params': {
'tag': 'V0-99-81',
'module': 'familiar/dist/ipkg'
},
'relative': False
},
"file://example.diff": { # NOTE: Not RFC compliant!
'uri': 'file:example.diff',
'scheme': 'file',
'hostname': '',
'port': None,
'hostport': '',
'path': 'example.diff',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': True
},
"file:example.diff": { # NOTE: RFC compliant version of the former
'uri': 'file:example.diff',
'scheme': 'file',
'hostname': '',
'port': None,
'hostport': '',
'path': 'example.diff',
'userinfo': '',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': True
},
"file:///tmp/example.diff": {
'uri': 'file:///tmp/example.diff',
'scheme': 'file',
'hostname': '',
'port': None,
'hostport': '',
'path': '/tmp/example.diff',
'userinfo': '',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': False
},
"git:///path/example.git": {
'uri': 'git:///path/example.git',
'scheme': 'git',
'hostname': '',
'port': None,
'hostport': '',
'path': '/path/example.git',
'userinfo': '',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': False
},
"git:path/example.git": {
'uri': 'git:path/example.git',
'scheme': 'git',
'hostname': '',
'port': None,
'hostport': '',
'path': 'path/example.git',
'userinfo': '',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': True
},
"git://example.net/path/example.git": {
'uri': 'git://example.net/path/example.git',
'scheme': 'git',
'hostname': 'example.net',
'port': None,
'hostport': 'example.net',
'path': '/path/example.git',
'userinfo': '',
'userinfo': '',
'username': '',
'password': '',
'params': {},
'relative': False
}
}
def test_uri(self):
for test_uri, ref in self.test_uris.items():
uri = URI(test_uri)
self.assertEqual(str(uri), ref['uri'])
# expected attributes
self.assertEqual(uri.scheme, ref['scheme'])
self.assertEqual(uri.userinfo, ref['userinfo'])
self.assertEqual(uri.username, ref['username'])
self.assertEqual(uri.password, ref['password'])
self.assertEqual(uri.hostname, ref['hostname'])
self.assertEqual(uri.port, ref['port'])
self.assertEqual(uri.hostport, ref['hostport'])
self.assertEqual(uri.path, ref['path'])
self.assertEqual(uri.params, ref['params'])
self.assertEqual(uri.relative, ref['relative'])
def test_dict(self):
for test in self.test_uris.values():
uri = URI()
self.assertEqual(uri.scheme, '')
self.assertEqual(uri.userinfo, '')
self.assertEqual(uri.username, '')
self.assertEqual(uri.password, '')
self.assertEqual(uri.hostname, '')
self.assertEqual(uri.port, None)
self.assertEqual(uri.path, '')
self.assertEqual(uri.params, {})
uri.scheme = test['scheme']
self.assertEqual(uri.scheme, test['scheme'])
uri.userinfo = test['userinfo']
self.assertEqual(uri.userinfo, test['userinfo'])
self.assertEqual(uri.username, test['username'])
self.assertEqual(uri.password, test['password'])
uri.hostname = test['hostname']
self.assertEqual(uri.hostname, test['hostname'])
self.assertEqual(uri.hostport, test['hostname'])
uri.port = test['port']
self.assertEqual(uri.port, test['port'])
self.assertEqual(uri.hostport, test['hostport'])
uri.path = test['path']
self.assertEqual(uri.path, test['path'])
uri.params = test['params']
self.assertEqual(uri.params, test['params'])
self.assertEqual(str(uri)+str(uri.relative), str(test['uri'])+str(test['relative']))
self.assertEqual(str(uri), test['uri'])
uri.params = {}
self.assertEqual(uri.params, {})
self.assertEqual(str(uri), (str(uri).split(";"))[0])
class FetcherTest(unittest.TestCase):

View File

@@ -1,3 +1,5 @@
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Tests for utils.py
#

View File

@@ -29,15 +29,17 @@ from bb.cooker import state
import bb.fetch2
class Tinfoil:
def __init__(self):
def __init__(self, output=sys.stdout):
# Needed to avoid deprecation warnings with python 2.6
warnings.filterwarnings("ignore", category=DeprecationWarning)
# Set up logging
self.logger = logging.getLogger('BitBake')
console = logging.StreamHandler(sys.stdout)
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
console = logging.StreamHandler(output)
bb.msg.addDefaultlogFilter(console)
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
if output.isatty():
format.enable_color()
console.setFormatter(format)
self.logger.addHandler(console)

View File

@@ -190,20 +190,6 @@ class Configuration:
self.split_proxy("cvs", params["cvs_proxy_host"] + ":" + params["cvs_proxy_port"])
def load(self, template):
self.curr_mach = template.getVar("MACHINE")
self.curr_package_format = " ".join(template.getVar("PACKAGE_CLASSES").split("package_")).strip()
self.curr_distro = template.getVar("DISTRO")
self.dldir = template.getVar("DL_DIR")
self.sstatedir = template.getVar("SSTATE_DIR")
self.sstatemirror = template.getVar("SSTATE_MIRRORS")
try:
self.pmake = int(template.getVar("PARALLEL_MAKE").split()[1])
except:
pass
try:
self.bbthread = int(template.getVar("BB_NUMBER_THREADS"))
except:
pass
try:
self.image_rootfs_size = int(template.getVar("IMAGE_ROOTFS_SIZE"))
except:
@@ -215,13 +201,9 @@ class Configuration:
# image_overhead_factor is read-only.
self.incompat_license = template.getVar("INCOMPATIBLE_LICENSE")
self.curr_sdk_machine = template.getVar("SDKMACHINE")
self.conf_version = template.getVar("CONF_VERSION")
self.lconf_version = template.getVar("LCONF_VERSION")
self.extra_setting = eval(template.getVar("EXTRA_SETTING"))
self.toolchain_build = eval(template.getVar("TOOLCHAIN_BUILD"))
self.image_fstypes = template.getVar("IMAGE_FSTYPES")
# bblayers.conf
self.layers = template.getVar("BBLAYERS").split()
# image/recipes/packages
self.selected_image = template.getVar("__SELECTED_IMAGE__")
self.selected_recipes = template.getVar("DEPENDS").split()
@@ -235,26 +217,32 @@ class Configuration:
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, defaults=False):
def save(self, handler, template, defaults=False):
template.setVar("VERSION", "%s" % hobVer)
# bblayers.conf
template.setVar("BBLAYERS", " ".join(self.layers))
handler.set_var_in_file("BBLAYERS", self.layers, "bblayers.conf")
# local.conf
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)
template.setVar("SSTATE_MIRRORS", self.sstatemirror)
template.setVar("PARALLEL_MAKE", "-j %s" % self.pmake)
template.setVar("BB_NUMBER_THREADS", self.bbthread)
template.setVar("PACKAGE_CLASSES", " ".join(["package_" + i for i in self.curr_package_format.split()]))
handler.set_var_in_file("MACHINE", self.curr_mach, "local.conf")
handler.set_var_in_file("DISTRO", self.curr_distro, "local.conf")
handler.set_var_in_file("DL_DIR", self.dldir, "local.conf")
handler.set_var_in_file("SSTATE_DIR", self.sstatedir, "local.conf")
sstate_mirror_list = self.sstatemirror.split("\\n ")
sstate_mirror_list_modified = []
for mirror in sstate_mirror_list:
if mirror != "":
mirror = mirror + "\\n"
sstate_mirror_list_modified.append(mirror)
handler.set_var_in_file("SSTATE_MIRRORS", sstate_mirror_list_modified, "local.conf")
handler.set_var_in_file("PARALLEL_MAKE", "-j %s" % self.pmake, "local.conf")
handler.set_var_in_file("BB_NUMBER_THREADS", self.bbthread, "local.conf")
handler.set_var_in_file("PACKAGE_CLASSES", " ".join(["package_" + i for i in self.curr_package_format.split()]), "local.conf")
template.setVar("IMAGE_ROOTFS_SIZE", self.image_rootfs_size)
template.setVar("IMAGE_EXTRA_SPACE", self.image_extra_size)
template.setVar("INCOMPATIBLE_LICENSE", self.incompat_license)
template.setVar("SDKMACHINE", self.curr_sdk_machine)
template.setVar("CONF_VERSION", self.conf_version)
template.setVar("LCONF_VERSION", self.lconf_version)
handler.set_var_in_file("CONF_VERSION", self.conf_version, "local.conf")
handler.set_var_in_file("LCONF_VERSION", self.lconf_version, "bblayers.conf")
template.setVar("EXTRA_SETTING", self.extra_setting)
template.setVar("TOOLCHAIN_BUILD", self.toolchain_build)
template.setVar("IMAGE_FSTYPES", self.image_fstypes)
@@ -561,11 +549,9 @@ class Builder(gtk.Window):
def initiate_new_build_async(self):
self.switch_page(self.MACHINE_SELECTION)
if self.load_template(TemplateMgr.convert_to_template_pathfilename("default", ".hob/")) == False:
self.show_sanity_check_page()
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.generate_configuration()
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.generate_configuration()
def update_config_async(self):
self.switch_page(self.MACHINE_SELECTION)
@@ -689,7 +675,7 @@ class Builder(gtk.Window):
self.template = TemplateMgr()
try:
self.template.open(filename, path)
self.configuration.save(self.template, defaults)
self.configuration.save(self.handler, self.template, defaults)
self.template.save()
except Exception as e:
@@ -1244,39 +1230,6 @@ class Builder(gtk.Window):
self.update_config_async()
dialog.destroy()
def show_load_template_dialog(self):
dialog = gtk.FileChooserDialog("Load Template Files", self,
gtk.FILE_CHOOSER_ACTION_OPEN)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("Open", gtk.RESPONSE_YES)
HobButton.style_button(button)
filter = gtk.FileFilter()
filter.set_name("Hob Files")
filter.add_pattern("*.hob")
dialog.add_filter(filter)
response = dialog.run()
path = None
if response == gtk.RESPONSE_YES:
path = dialog.get_filename()
dialog.destroy()
return response == gtk.RESPONSE_YES, path
def show_save_template_dialog(self):
dialog = gtk.FileChooserDialog("Save Template Files", self,
gtk.FILE_CHOOSER_ACTION_SAVE)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("Save", gtk.RESPONSE_YES)
HobButton.style_button(button)
dialog.set_current_name("hob")
response = dialog.run()
if response == gtk.RESPONSE_YES:
path = dialog.get_filename()
self.save_template(path)
dialog.destroy()
def get_image_extension(self):
image_extension = {}
for type in self.parameters.image_types:

View File

@@ -105,8 +105,10 @@ class ParsingWarningsDialog (CrumbsDialog):
def create_visual_elements(self):
self.set_size_request(350, 350)
self.heading_label = gtk.Label()
self.heading_label.set_alignment(0.1, 0)
self.heading_label.set_alignment(0, 0)
self.warning_label = gtk.Label()
self.warning_label.set_selectable(True)
self.warning_label.set_alignment(0, 0)
self.textWindow = gtk.ScrolledWindow()
table = gtk.Table(1, 10, False)
@@ -155,7 +157,7 @@ class ParsingWarningsDialog (CrumbsDialog):
self.vbox.pack_start(self.heading_label, expand=False, fill=False)
self.vbox.pack_start(self.warning_label, expand=False, fill=False)
self.vbox.pack_start(self.textWindow, expand=False, fill=False)
cancel_button = self.add_button("Cancel", gtk.RESPONSE_CANCEL)
cancel_button = self.add_button("Close", gtk.RESPONSE_CANCEL)
HobAltButton.style_button(cancel_button)
self.refresh_components()

View File

@@ -120,97 +120,3 @@ class SettingsUIHelper():
hbox.show_all()
return hbox, entry
def gen_mirror_entry_widget(self, content, index, match_content=""):
hbox = gtk.HBox(False)
entry = gtk.Entry()
content = content[:-2]
entry.set_text(content)
entry.set_size_request(350,30)
entry_match = gtk.Entry()
entry_match.set_text(match_content)
entry_match.set_size_request(100,30)
table = gtk.Table(2, 5, False)
table.set_row_spacings(12)
table.set_col_spacings(6)
hbox.pack_start(table, expand=True, fill=True)
label_configuration = gtk.Label("Configuration")
label_configuration.set_alignment(0.0,0.5)
label_mirror_url = gtk.Label("Mirror URL")
label_mirror_url.set_alignment(0.0,0.5)
label_match = gtk.Label("Match")
label_match.set_alignment(0.0,0.5)
label_replace_with = gtk.Label("Replace with")
label_replace_with.set_alignment(0.0,0.5)
combo = gtk.combo_box_new_text()
combo.append_text("Standard")
combo.append_text("Custom")
if match_content == "":
combo.set_active(0)
else:
combo.set_active(1)
combo.connect("changed", self.on_combo_changed, index)
combo.set_size_request(100,30)
delete_button = HobAltButton("Delete")
delete_button.connect("clicked", self.delete_cb, index, entry)
if content == "" and index == 0 and len(self.sstatemirrors_list) == 1:
delete_button.set_sensitive(False)
delete_button.set_size_request(100, 30)
entry_match.connect("changed", self.insert_entry_match_cb, index)
entry.connect("changed", self.insert_entry_cb, index, delete_button)
if match_content == "":
table.attach(label_configuration, 1, 2, 0, 1, xoptions=gtk.SHRINK|gtk.FILL)
table.attach(label_mirror_url, 2, 3, 0, 1, xoptions=gtk.SHRINK|gtk.FILL)
table.attach(combo, 1, 2, 1, 2, xoptions=gtk.SHRINK)
table.attach(entry, 2, 3, 1, 2, xoptions=gtk.SHRINK)
table.attach(delete_button, 3, 4, 1, 2, xoptions=gtk.SHRINK)
else:
table.attach(label_configuration, 1, 2, 0, 1, xoptions=gtk.SHRINK|gtk.FILL)
table.attach(label_match, 2, 3, 0, 1, xoptions=gtk.SHRINK|gtk.FILL)
table.attach(label_replace_with, 3, 4, 0, 1, xoptions=gtk.SHRINK|gtk.FILL)
table.attach(combo, 1, 2, 1, 2, xoptions=gtk.SHRINK)
table.attach(entry_match, 2, 3, 1, 2, xoptions=gtk.SHRINK)
table.attach(entry, 3, 4, 1, 2, xoptions=gtk.SHRINK)
table.attach(delete_button, 4, 5, 1, 2, xoptions=gtk.SHRINK)
hbox.show_all()
return hbox
def insert_entry_match_cb(self, entry_match, index):
self.sstatemirrors_list[index][2] = entry_match.get_text()
def insert_entry_cb(self, entry, index, button):
self.sstatemirrors_list[index][1] = entry.get_text()
if entry.get_text() == "" and index == 0:
button.set_sensitive(False)
else:
button.set_sensitive(True)
def on_combo_changed(self, combo, index):
if combo.get_active_text() == "Standard":
self.sstatemirrors_list[index][0] = 0
self.sstatemirrors_list[index][2] = "file://(.*)"
else:
self.sstatemirrors_list[index][0] = 1
self.refresh_shared_state_page()
def delete_cb(self, button, index, entry):
if index == 0 and len(self.sstatemirrors_list)==1:
entry.set_text("")
else:
self.sstatemirrors_list.pop(index)
self.refresh_shared_state_page()
def add_mirror(self, button):
tooltip = "Select the pre-built mirror that will speed your build"
index = len(self.sstatemirrors_list)
sm_list = [0, "", "file://(.*)"]
self.sstatemirrors_list.append(sm_list)
self.refresh_shared_state_page()

View File

@@ -50,6 +50,13 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
TEST_NETWORK_FAILED,
TEST_NETWORK_CANCELED) = range(6)
TARGETS = [
("MY_TREE_MODEL_ROW", gtk.TARGET_SAME_WIDGET, 0),
("text/plain", 0, 1),
("TEXT", 0, 2),
("STRING", 0, 3),
]
def __init__(self, title, configuration, all_image_types,
all_package_formats, all_distros, all_sdk_machines,
max_threads, parent, flags, handler, buttons=None):
@@ -84,6 +91,8 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
self.proxy_settings_changed = False
self.handler = handler
self.proxy_test_ran = False
self.selected_mirror_row = 0
self.new_mirror = False
# create visual elements on the dialog
self.create_visual_elements()
@@ -219,7 +228,7 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
self.configuration.sstatedir = self.sstatedir_text.get_text()
self.configuration.sstatemirror = ""
for mirror in self.sstatemirrors_list:
if mirror[1] != "":
if mirror[1] != "" and mirror[2].startswith("file://"):
if mirror[1].endswith("\\1"):
smirror = mirror[2] + " " + mirror[1] + " \\n "
else:
@@ -287,7 +296,7 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
label = self.gen_label_info_widget(content, tooltip)
sstatedir_widget, self.sstatedir_text = self.gen_entry_widget(self.configuration.sstatedir, self)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(sstatedir_widget, expand=False, fill=False, padding=12)
sub_vbox.pack_start(sstatedir_widget, expand=False, fill=False, padding=6)
content = "<span weight=\"bold\">Shared state mirrors</span>"
tooltip = "URLs pointing to pre-built mirrors that will speed your build. "
@@ -297,21 +306,17 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/"
tooltip += "poky-ref-manual.html#shared-state\">Yocto Project Reference Manual</a>."
table = self.gen_label_info_widget(content, tooltip)
advanced_vbox.pack_start(table, expand=False, fill=False)
advanced_vbox.pack_start(table, expand=False, fill=False, padding=6)
sub_vbox = gtk.VBox(False)
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
scroll.add_with_viewport(sub_vbox)
scroll.connect('size-allocate', self.scroll_changed)
advanced_vbox.pack_start(scroll, gtk.TRUE, gtk.TRUE, 0)
advanced_vbox.pack_start(sub_vbox, gtk.TRUE, gtk.TRUE, 0)
searched_string = "file://"
if self.sstatemirrors_changed == 0:
self.sstatemirrors_changed = 1
sstatemirrors = self.configuration.sstatemirror
if sstatemirrors == "":
sm_list = [ 0, "", "file://(.*)"]
sm_list = ["Standard", "", "file://(.*)"]
self.sstatemirrors_list.append(sm_list)
else:
while sstatemirrors.find(searched_string) != -1:
@@ -323,31 +328,208 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
sstatemirrors = sstatemirrors[1:]
sstatemirror_fields = [x for x in sstatemirror.split(' ') if x.strip()]
if sstatemirror_fields[0] == "file://(.*)":
sm_list = [ 0, sstatemirror_fields[1], "file://(.*)"]
else:
sm_list = [ 1, sstatemirror_fields[1], sstatemirror_fields[0]]
self.sstatemirrors_list.append(sm_list)
if len(sstatemirror_fields):
if sstatemirror_fields[0] == "file://(.*)":
sm_list = ["Standard", sstatemirror_fields[1], "file://(.*)"]
else:
sm_list = ["Custom", sstatemirror_fields[1], sstatemirror_fields[0]]
self.sstatemirrors_list.append(sm_list)
index = 0
for mirror in self.sstatemirrors_list:
if mirror[0] == 0:
sstatemirror_widget = self.gen_mirror_entry_widget(mirror[1], index)
else:
sstatemirror_widget = self.gen_mirror_entry_widget(mirror[1], index, mirror[2])
sub_vbox.pack_start(sstatemirror_widget, expand=False, fill=False, padding=9)
index += 1
sstatemirrors_widget, sstatemirrors_store = self.gen_shared_sstate_widget(self.sstatemirrors_list, self)
sub_vbox.pack_start(sstatemirrors_widget, expand=True, fill=True)
table = gtk.Table(1, 1, False)
table = gtk.Table(1, 10, False)
table.set_col_spacings(6)
add_mirror_button = HobAltButton("Add another mirror")
add_mirror_button = HobAltButton("Add mirror")
add_mirror_button.connect("clicked", self.add_mirror)
add_mirror_button.set_size_request(150,30)
add_mirror_button.set_size_request(120,30)
table.attach(add_mirror_button, 1, 2, 0, 1, xoptions=gtk.SHRINK)
advanced_vbox.pack_start(table, expand=False, fill=False, padding=9)
self.delete_button = HobAltButton("Delete mirror")
self.delete_button.connect("clicked", self.delete_cb)
self.delete_button.set_size_request(120, 30)
table.attach(self.delete_button, 3, 4, 0, 1, xoptions=gtk.SHRINK)
advanced_vbox.pack_start(table, expand=False, fill=False, padding=6)
return advanced_vbox
def gen_shared_sstate_widget(self, sstatemirrors_list, window):
hbox = gtk.HBox(False)
sstatemirrors_store = gtk.ListStore(str, str, str)
for sstatemirror in sstatemirrors_list:
sstatemirrors_store.append(sstatemirror)
self.sstatemirrors_tv = gtk.TreeView()
self.sstatemirrors_tv.set_rules_hint(True)
self.sstatemirrors_tv.set_headers_visible(True)
tree_selection = self.sstatemirrors_tv.get_selection()
tree_selection.set_mode(gtk.SELECTION_SINGLE)
# Allow enable drag and drop of rows including row move
self.sstatemirrors_tv.enable_model_drag_source( gtk.gdk.BUTTON1_MASK,
self.TARGETS,
gtk.gdk.ACTION_DEFAULT|
gtk.gdk.ACTION_MOVE)
self.sstatemirrors_tv.enable_model_drag_dest(self.TARGETS,
gtk.gdk.ACTION_DEFAULT)
self.sstatemirrors_tv.connect("drag_data_get", self.drag_data_get_cb)
self.sstatemirrors_tv.connect("drag_data_received", self.drag_data_received_cb)
self.scroll = gtk.ScrolledWindow()
self.scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
self.scroll.set_shadow_type(gtk.SHADOW_IN)
self.scroll.connect('size-allocate', self.scroll_changed)
self.scroll.add(self.sstatemirrors_tv)
#list store for cell renderer
m = gtk.ListStore(gobject.TYPE_STRING)
m.append(["Standard"])
m.append(["Custom"])
cell0 = gtk.CellRendererCombo()
cell0.set_property("model",m)
cell0.set_property("text-column", 0)
cell0.set_property("editable", True)
cell0.set_property("has-entry", False)
col0 = gtk.TreeViewColumn("Configuration")
col0.pack_start(cell0, False)
col0.add_attribute(cell0, "text", 0)
col0.set_cell_data_func(cell0, self.configuration_field)
self.sstatemirrors_tv.append_column(col0)
cell0.connect("edited", self.combo_changed, sstatemirrors_store)
self.cell1 = gtk.CellRendererText()
self.cell1.set_padding(5,2)
col1 = gtk.TreeViewColumn('Regex', self.cell1)
col1.set_cell_data_func(self.cell1, self.regex_field)
self.sstatemirrors_tv.append_column(col1)
self.cell1.connect("edited", self.regex_changed, sstatemirrors_store)
cell2 = gtk.CellRendererText()
cell2.set_padding(5,2)
cell2.set_property("editable", True)
col2 = gtk.TreeViewColumn('URL', cell2)
col2.set_cell_data_func(cell2, self.url_field)
self.sstatemirrors_tv.append_column(col2)
cell2.connect("edited", self.url_changed, sstatemirrors_store)
self.sstatemirrors_tv.set_model(sstatemirrors_store)
self.sstatemirrors_tv.set_cursor(self.selected_mirror_row)
hbox.pack_start(self.scroll, expand=True, fill=True)
hbox.show_all()
return hbox, sstatemirrors_store
def drag_data_get_cb(self, treeview, context, selection, target_id, etime):
treeselection = treeview.get_selection()
model, iter = treeselection.get_selected()
data = model.get_string_from_iter(iter)
selection.set(selection.target, 8, data)
def drag_data_received_cb(self, treeview, context, x, y, selection, info, etime):
model = treeview.get_model()
data = []
tree_iter = model.get_iter_from_string(selection.data)
data.append(model.get_value(tree_iter, 0))
data.append(model.get_value(tree_iter, 1))
data.append(model.get_value(tree_iter, 2))
drop_info = treeview.get_dest_row_at_pos(x, y)
if drop_info:
path, position = drop_info
iter = model.get_iter(path)
if (position == gtk.TREE_VIEW_DROP_BEFORE or position == gtk.TREE_VIEW_DROP_INTO_OR_BEFORE):
model.insert_before(iter, data)
else:
model.insert_after(iter, data)
else:
model.append(data)
if context.action == gtk.gdk.ACTION_MOVE:
context.finish(True, True, etime)
return
def delete_cb(self, button):
selection = self.sstatemirrors_tv.get_selection()
tree_model, tree_iter = selection.get_selected()
index = int(tree_model.get_string_from_iter(tree_iter))
if index == 0:
self.selected_mirror_row = index
else:
self.selected_mirror_row = index - 1
self.sstatemirrors_list.pop(index)
self.refresh_shared_state_page()
if not self.sstatemirrors_list:
self.delete_button.set_sensitive(False)
def add_mirror(self, button):
self.new_mirror = True
tooltip = "Select the pre-built mirror that will speed your build"
index = len(self.sstatemirrors_list)
self.selected_mirror_row = index
sm_list = ["Standard", "", "file://(.*)"]
self.sstatemirrors_list.append(sm_list)
self.refresh_shared_state_page()
def scroll_changed(self, widget, event, data=None):
if self.new_mirror == True:
adj = widget.get_vadjustment()
adj.set_value(adj.upper - adj.page_size)
self.new_mirror = False
def combo_changed(self, widget, path, text, model):
model[path][0] = text
selection = self.sstatemirrors_tv.get_selection()
tree_model, tree_iter = selection.get_selected()
index = int(tree_model.get_string_from_iter(tree_iter))
self.sstatemirrors_list[index][0] = text
def regex_changed(self, cell, path, new_text, user_data):
user_data[path][2] = new_text
selection = self.sstatemirrors_tv.get_selection()
tree_model, tree_iter = selection.get_selected()
index = int(tree_model.get_string_from_iter(tree_iter))
self.sstatemirrors_list[index][2] = new_text
return
def url_changed(self, cell, path, new_text, user_data):
if new_text!="Enter the mirror URL" and new_text!="Match regex and replace it with this URL":
user_data[path][1] = new_text
selection = self.sstatemirrors_tv.get_selection()
tree_model, tree_iter = selection.get_selected()
index = int(tree_model.get_string_from_iter(tree_iter))
self.sstatemirrors_list[index][1] = new_text
return
def configuration_field(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 0))
if model.get_value(iter, 0) == "Standard":
self.cell1.set_property("sensitive", False)
self.cell1.set_property("editable", False)
else:
self.cell1.set_property("sensitive", True)
self.cell1.set_property("editable", True)
return
def regex_field(self, column, cell, model, iter):
cell.set_property('text', model.get_value(iter, 2))
return
def url_field(self, column, cell, model, iter):
text = model.get_value(iter, 1)
if text == "":
if model.get_value(iter, 0) == "Standard":
text = "Enter the mirror URL"
else:
text = "Match regex and replace it with this URL"
cell.set_property('text', text)
return
def refresh_shared_state_page(self):
page_num = self.nb.get_current_page()
self.nb.remove_page(page_num);
@@ -716,7 +898,3 @@ class SimpleSettingsDialog (CrumbsDialog, SettingsUIHelper):
self.handler.disconnect(self.proxy_test_passed_id)
self.handler.disconnect(self.proxy_test_failed_id)
super(SimpleSettingsDialog, self).destroy()
def scroll_changed(self, widget, event, data=None):
adj = widget.get_vadjustment()
adj.set_value(adj.upper - adj.page_size)

View File

@@ -146,7 +146,9 @@ class HobHandler(gobject.GObject):
elif next_command == self.SUB_MATCH_CLASS:
self.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
elif next_command == self.SUB_PARSE_CONFIG:
self.runCommand(["enableDataTracking"])
self.runCommand(["parseConfigurationFiles", "", ""])
self.runCommand(["disableDataTracking"])
elif next_command == self.SUB_GNERATE_TGTS:
self.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
elif next_command == self.SUB_GENERATE_PKGINFO:
@@ -200,6 +202,10 @@ class HobHandler(gobject.GObject):
self.run_next_command()
elif isinstance(event, bb.event.SanityCheckPassed):
reparse = self.runCommand(["getVariable", "BB_INVALIDCONF"]) or None
if reparse is True:
self.runCommand(["setVariable", "BB_INVALIDCONF", False])
self.runCommand(["parseConfigurationFiles", "", ""])
self.run_next_command()
elif isinstance(event, bb.event.SanityCheckFailed):
@@ -451,6 +457,9 @@ class HobHandler(gobject.GObject):
ret.append(i)
return " ".join(ret)
def set_var_in_file(self, var, val, default_file=None):
self.server.runCommand(["setVarFile", var, val, default_file])
def get_parameters(self):
# retrieve the parameters from bitbake
params = {}

View File

@@ -27,14 +27,15 @@ from bb.ui.crumbs.hobpages import HobPage
#
# PackageListModel
#
class PackageListModel(gtk.TreeStore):
class PackageListModel(gtk.ListStore):
"""
This class defines an gtk.TreeStore subclass which will convert the output
of the bb.event.TargetsTreeGenerated event into a gtk.TreeStore whilst also
This class defines an gtk.ListStore subclass which will convert the output
of the bb.event.TargetsTreeGenerated event into a gtk.ListStore whilst also
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, COL_FONT) = range(13)
(COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_RCP, COL_BINB, COL_INC, COL_FADE_INC, COL_FONT) = range(14)
__gsignals__ = {
"package-selection-changed" : (gobject.SIGNAL_RUN_LAST,
@@ -45,15 +46,9 @@ class PackageListModel(gtk.TreeStore):
__toolchain_required_packages__ = ["packagegroup-core-standalone-sdk-target", "packagegroup-core-standalone-sdk-target-dbg"]
def __init__(self):
self.contents = None
self.images = None
self.pkgs_size = 0
self.pn_path = {}
self.pkg_path = {}
self.rprov_pkg = {}
gtk.TreeStore.__init__ (self,
gtk.ListStore.__init__ (self,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
@@ -68,21 +63,20 @@ class PackageListModel(gtk.TreeStore):
gobject.TYPE_BOOLEAN,
gobject.TYPE_STRING)
"""
Find the model path for the item_name
Returns the path in the model or None
"""
def find_path_for_item(self, item_name):
pkg = item_name
if item_name not in self.pkg_path.keys():
if item_name not in self.pn_path.keys():
if item_name not in self.rprov_pkg.keys():
return None
pkg = self.rprov_pkg[item_name]
if pkg not in self.pkg_path.keys():
if pkg not in self.pn_path.keys():
return None
return self.pkg_path[pkg]
return self.pn_path[pkg]
def find_item_for_path(self, item_path):
return self[item_path][self.COL_NAME]
@@ -106,10 +100,20 @@ class PackageListModel(gtk.TreeStore):
model.set_visible_func(self.tree_model_filter, filter)
sort = gtk.TreeModelSort(model)
sort.set_sort_column_id(PackageListModel.COL_NAME, gtk.SORT_ASCENDING)
sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING)
sort.set_default_sort_func(None)
return sort
def exclude_item_sort_func(self, model, iter1, iter2):
val1 = model.get_value(iter1, RecipeListModel.COL_FADE_INC)
val2 = model.get_value(iter2, RecipeListModel.COL_INC)
return ((val1 == True) and (val2 == False))
def include_item_sort_func(self, model, iter1, iter2):
val1 = model.get_value(iter1, RecipeListModel.COL_INC)
val2 = model.get_value(iter2, RecipeListModel.COL_INC)
return ((val1 == False) and (val2 == True))
def convert_vpath_to_path(self, view_model, view_path):
# view_model is the model sorted
# get the path of the model filtered
@@ -121,16 +125,13 @@ class PackageListModel(gtk.TreeStore):
return path
def convert_path_to_vpath(self, view_model, path):
name = self.find_item_for_path(path)
it = view_model.get_iter_first()
while it:
child_it = view_model.iter_children(it)
while child_it:
view_name = view_model.get_value(child_it, self.COL_NAME)
if view_name == name:
view_path = view_model.get_path(child_it)
return view_path
child_it = view_model.iter_next(child_it)
name = self.find_item_for_path(path)
view_name = view_model.get_value(it, RecipeListModel.COL_NAME)
if view_name == name:
view_path = view_model.get_path(it)
return view_path
it = view_model.iter_next(it)
return None
@@ -139,11 +140,8 @@ class PackageListModel(gtk.TreeStore):
bb.event.PackageInfo event and populates the package list.
"""
def populate(self, pkginfolist):
# First clear the model, in case repopulating
self.clear()
self.pkgs_size = 0
self.pn_path = {}
self.pkg_path = {}
self.rprov_pkg = {}
def getpkgvalue(pkgdict, key, pkgname, defaultval = None):
value = pkgdict.get('%s_%s' % (key, pkgname), None)
@@ -155,15 +153,6 @@ class PackageListModel(gtk.TreeStore):
pn = pkginfo['PN']
pv = pkginfo['PV']
pr = pkginfo['PR']
if pn in self.pn_path.keys():
pniter = self.get_iter(self.pn_path[pn])
else:
pniter = self.append(None)
self.set(pniter, self.COL_NAME, pn + '-' + pv + '-' + pr,
self.COL_INC, False)
self.pn_path[pn] = self.get_path(pniter)
# PKG is always present
pkg = pkginfo['PKG']
pkgv = getpkgvalue(pkginfo, 'PKGV', pkg)
pkgr = getpkgvalue(pkginfo, 'PKGR', pkg)
@@ -180,6 +169,8 @@ class PackageListModel(gtk.TreeStore):
for i in rprov.split():
self.rprov_pkg[i] = pkg
recipe = pn + '-' + pv + '-' + pr
allow_empty = getpkgvalue(pkginfo, 'ALLOW_EMPTY', pkg, "")
if pkgsize == "0" and not allow_empty:
@@ -188,20 +179,21 @@ class PackageListModel(gtk.TreeStore):
# pkgsize is in KB
size = HobPage._size_to_string(HobPage._string_to_size(pkgsize + ' KB'))
it = self.append(pniter)
self.pkg_path[pkg] = self.get_path(it)
self.set(it, self.COL_NAME, pkg, self.COL_VER, pkgv,
self.set(self.append(), self.COL_NAME, pkg, self.COL_VER, pkgv,
self.COL_REV, pkgr, self.COL_RNM, pkg_rename,
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_FONT, '10')
self.COL_RCP, recipe, self.COL_BINB, "",
self.COL_INC, False, self.COL_FONT, '10')
"""
Check whether the item at item_path is included or not
"""
def path_included(self, item_path):
return self[item_path][self.COL_INC]
self.pn_path = {}
it = self.get_iter_first()
while it:
pn = self.get_value(it, self.COL_NAME)
path = self.get_path(it)
self.pn_path[pn] = path
it = self.iter_next(it)
"""
Update the model, send out the notification.
@@ -210,48 +202,32 @@ class PackageListModel(gtk.TreeStore):
self.emit("package-selection-changed")
"""
Mark a certain package as selected.
All its dependencies are marked as selected.
The recipe provides the package is marked as selected.
If user explicitly selects a recipe, all its providing packages are selected
Check whether the item at item_path is included or not
"""
def path_included(self, item_path):
return self[item_path][self.COL_INC]
"""
Add this item, and any of its dependencies, to the image contents
"""
def include_item(self, item_path, binb=""):
if self.path_included(item_path):
return
item_name = self[item_path][self.COL_NAME]
item_rdep = self[item_path][self.COL_RDEP]
item_deps = self[item_path][self.COL_RDEP]
self[item_path][self.COL_INC] = True
it = self.get_iter(item_path)
# If user explicitly selects a recipe, all its providing packages are selected.
if not self[item_path][self.COL_VER] and binb == "User Selected":
child_it = self.iter_children(it)
while child_it:
child_path = self.get_path(child_it)
child_included = self.path_included(child_path)
if not child_included:
self.include_item(child_path, binb="User Selected")
child_it = self.iter_next(child_it)
return
# The recipe provides the package is also marked as selected
parent_it = self.iter_parent(it)
if parent_it:
parent_path = self.get_path(parent_it)
self[parent_path][self.COL_INC] = True
item_bin = self[item_path][self.COL_BINB].split(', ')
if binb and not binb in item_bin:
item_bin.append(binb)
self[item_path][self.COL_BINB] = ', '.join(item_bin).lstrip(', ')
if item_rdep:
if item_deps:
# Ensure all of the items deps are included and, where appropriate,
# add this item to their COL_BINB
for dep in item_rdep.split(" "):
for dep in item_deps.split(" "):
if dep.startswith('('):
continue
# If the contents model doesn't already contain dep, add it
@@ -270,12 +246,6 @@ class PackageListModel(gtk.TreeStore):
elif not dep_included:
self.include_item(dep_path, binb=item_name)
"""
Mark a certain package as de-selected.
All other packages that depends on this package are marked as de-selected.
If none of the packages provided by the recipe, the recipe should be marked as de-selected.
If user explicitly de-select a recipe, all its providing packages are de-selected.
"""
def exclude_item(self, item_path):
if not self.path_included(item_path):
return
@@ -283,37 +253,9 @@ class PackageListModel(gtk.TreeStore):
self[item_path][self.COL_INC] = False
item_name = self[item_path][self.COL_NAME]
item_rdep = self[item_path][self.COL_RDEP]
it = self.get_iter(item_path)
# If user explicitly de-select a recipe, all its providing packages are de-selected.
if not self[item_path][self.COL_VER]:
child_it = self.iter_children(it)
while child_it:
child_path = self.get_path(child_it)
child_included = self[child_path][self.COL_INC]
if child_included:
self.exclude_item(child_path)
child_it = self.iter_next(child_it)
return
# If none of the packages provided by the recipe, the recipe should be marked as de-selected.
parent_it = self.iter_parent(it)
peer_iter = self.iter_children(parent_it)
enabled = 0
while peer_iter:
peer_path = self.get_path(peer_iter)
if self[peer_path][self.COL_INC]:
enabled = 1
break
peer_iter = self.iter_next(peer_iter)
if not enabled:
parent_path = self.get_path(parent_it)
self[parent_path][self.COL_INC] = False
# All packages that depends on this package are de-selected.
if item_rdep:
for dep in item_rdep.split(" "):
item_deps = self[item_path][self.COL_RDEP]
if item_deps:
for dep in item_deps.split(" "):
if dep.startswith('('):
continue
dep_path = self.find_path_for_item(dep)
@@ -333,51 +275,40 @@ class PackageListModel(gtk.TreeStore):
self.exclude_item(binb_path)
"""
Package model may be incomplete, therefore when calling the
set_selected_packages(), some packages will not be set included.
Return the un-set packages list.
Empty self.contents by setting the include of each entry to None
"""
def set_selected_packages(self, packagelist, user_selected=False):
left = []
binb = 'User Selected' if user_selected else ''
for pn in packagelist:
if pn in self.pkg_path.keys():
path = self.pkg_path[pn]
self.include_item(item_path=path, binb=binb)
else:
left.append(pn)
self.selection_change_notification()
return left
def get_user_selected_packages(self):
packagelist = []
def reset(self):
it = self.get_iter_first()
while it:
child_it = self.iter_children(it)
while child_it:
if self.get_value(child_it, self.COL_INC):
binb = self.get_value(child_it, self.COL_BINB)
if binb == "User Selected":
name = self.get_value(child_it, self.COL_NAME)
packagelist.append(name)
child_it = self.iter_next(child_it)
self.set(it,
self.COL_INC, False,
self.COL_BINB, "")
it = self.iter_next(it)
return packagelist
self.selection_change_notification()
def get_selected_packages(self):
packagelist = []
it = self.get_iter_first()
while it:
child_it = self.iter_children(it)
while child_it:
if self.get_value(child_it, self.COL_INC):
name = self.get_value(child_it, self.COL_NAME)
if self.get_value(it, self.COL_INC):
name = self.get_value(it, self.COL_NAME)
packagelist.append(name)
it = self.iter_next(it)
return packagelist
def get_user_selected_packages(self):
packagelist = []
it = self.get_iter_first()
while it:
if self.get_value(it, self.COL_INC):
binb = self.get_value(it, self.COL_BINB)
if binb == "User Selected":
name = self.get_value(it, self.COL_NAME)
packagelist.append(name)
child_it = self.iter_next(child_it)
it = self.iter_next(it)
return packagelist
@@ -388,16 +319,31 @@ class PackageListModel(gtk.TreeStore):
it = self.get_iter_first()
while it:
if self.get_value(it, self.COL_INC):
child_it = self.iter_children(it)
while child_it:
name = self.get_value(child_it, self.COL_NAME)
inc = self.get_value(child_it, self.COL_INC)
if inc or name.endswith("-dev") or name.endswith("-dbg"):
packagelist.append(name)
child_it = self.iter_next(child_it)
name = self.get_value(it, self.COL_NAME)
if name.endswith("-dev") or name.endswith("-dbg"):
packagelist.append(name)
it = self.iter_next(it)
return list(set(packagelist + self.__toolchain_required_packages__));
"""
Package model may be incomplete, therefore when calling the
set_selected_packages(), some packages will not be set included.
Return the un-set packages list.
"""
def set_selected_packages(self, packagelist, user_selected=False):
left = []
binb = 'User Selected' if user_selected else ''
for pn in packagelist:
if pn in self.pn_path.keys():
path = self.pn_path[pn]
self.include_item(item_path=path, binb=binb)
else:
left.append(pn)
self.selection_change_notification()
return left
"""
Return the selected package size, unit is B.
"""
@@ -405,37 +351,16 @@ class PackageListModel(gtk.TreeStore):
packages_size = 0
it = self.get_iter_first()
while it:
child_it = self.iter_children(it)
while child_it:
if self.get_value(child_it, self.COL_INC):
str_size = self.get_value(child_it, self.COL_SIZE)
if not str_size:
continue
if self.get_value(it, self.COL_INC):
str_size = self.get_value(it, self.COL_SIZE)
if not str_size:
continue
packages_size += HobPage._string_to_size(str_size)
packages_size += HobPage._string_to_size(str_size)
child_it = self.iter_next(child_it)
it = self.iter_next(it)
return packages_size
"""
Empty self.contents by setting the include of each entry to None
"""
def reset(self):
self.pkgs_size = 0
it = self.get_iter_first()
while it:
self.set(it, self.COL_INC, False)
child_it = self.iter_children(it)
while child_it:
self.set(child_it,
self.COL_INC, False,
self.COL_BINB, "")
child_it = self.iter_next(child_it)
it = self.iter_next(it)
self.selection_change_notification()
"""
Resync the state of included items to a backup column before performing the fadeout visible effect
"""
@@ -444,9 +369,6 @@ class PackageListModel(gtk.TreeStore):
while it:
active = self.get_value(it, self.COL_INC)
self.set(it, self.COL_FADE_INC, active)
if self.iter_has_child(it):
self.resync_fadeout_column(self.iter_children(it))
it = self.iter_next(it)
#
@@ -533,7 +455,7 @@ class RecipeListModel(gtk.ListStore):
"""
Create, if required, and return a filtered gtk.TreeModelSort
containing only the items which are items specified by filter
containing only the items specified by filter
"""
def tree_model(self, filter, excluded_items_ahead=False, included_items_ahead=True):
model = self.filter_new()

View File

@@ -44,8 +44,6 @@ class hic:
ICON_PACKAGES_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('packages/packages_hover.png'))
ICON_LAYERS_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('layers/layers_display.png'))
ICON_LAYERS_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('layers/layers_hover.png'))
ICON_TEMPLATES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('templates/templates_display.png'))
ICON_TEMPLATES_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('templates/templates_hover.png'))
ICON_IMAGES_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('images/images_display.png'))
ICON_IMAGES_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('images/images_hover.png'))
ICON_SETTINGS_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('settings/settings_display.png'))

View File

@@ -55,12 +55,6 @@ class ImageConfigurationPage (HobPage):
self.toolbar.set_orientation(gtk.ORIENTATION_HORIZONTAL)
self.toolbar.set_style(gtk.TOOLBAR_BOTH)
template_button = self.append_toolbar_button(self.toolbar,
"Templates",
hic.ICON_TEMPLATES_DISPLAY_FILE,
hic.ICON_TEMPLATES_HOVER_FILE,
"Load a previously saved template",
self.template_button_clicked_cb)
my_images_button = self.append_toolbar_button(self.toolbar,
"Images",
hic.ICON_IMAGES_DISPLAY_FILE,
@@ -173,6 +167,11 @@ class ImageConfigurationPage (HobPage):
return warnings_bar
def disable_warnings_bar(self):
if self.builder.parsing_warnings:
self.warnings_bar.hide_all()
self.builder.parsing_warnings = []
def create_config_machine(self):
self.machine_title = gtk.Label()
self.machine_title.set_alignment(0.0, 0.5)
@@ -298,6 +297,7 @@ class ImageConfigurationPage (HobPage):
def machine_combo_changed_cb(self, machine_combo):
self.stopping = False
self.builder.parsing_warnings = []
combo_item = machine_combo.get_active_text()
if not combo_item or combo_item == self.__dummy_machine__:
return
@@ -318,6 +318,7 @@ class ImageConfigurationPage (HobPage):
self.builder.populate_recipe_package_info_async()
def update_machine_combo(self):
self.disable_warnings_bar()
all_machines = [self.__dummy_machine__] + self.builder.parameters.all_machines
model = self.machine_combo.get_model()
@@ -327,6 +328,7 @@ class ImageConfigurationPage (HobPage):
self.machine_combo.set_active(0)
def switch_machine_combo(self):
self.disable_warnings_bar()
self.machine_combo_changed_by_manual = False
model = self.machine_combo.get_model()
active = 0
@@ -486,13 +488,6 @@ class ImageConfigurationPage (HobPage):
self.builder.configuration.initial_selected_image = self.builder.configuration.selected_image
self.builder.show_recipes()
def template_button_clicked_cb(self, button):
response, path = self.builder.show_load_template_dialog()
if not response:
return
if path:
self.builder.load_template(path)
def my_images_button_clicked_cb(self, button):
self.builder.show_load_my_images_dialog()

View File

@@ -197,12 +197,6 @@ class ImageDetailsPage (HobPage):
self.toolbar.set_orientation(gtk.ORIENTATION_HORIZONTAL)
self.toolbar.set_style(gtk.TOOLBAR_BOTH)
template_button = self.append_toolbar_button(self.toolbar,
"Templates",
hic.ICON_TEMPLATES_DISPLAY_FILE,
hic.ICON_TEMPLATES_HOVER_FILE,
"Load a previously saved template",
self.template_button_clicked_cb)
my_images_button = self.append_toolbar_button(self.toolbar,
"Images",
hic.ICON_IMAGES_DISPLAY_FILE,
@@ -265,11 +259,7 @@ class ImageDetailsPage (HobPage):
self.build_result = self.BuildDetailBox(varlist=varlist, vallist=vallist, icon=icon, color=color)
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 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"]
self.buttonlist = ["Build new image", "Run image", "Deploy image"]
# Name
self.image_store = []
@@ -582,26 +572,6 @@ class ImageDetailsPage (HobPage):
created = True
is_runnable = True
name = "Save as template"
if name in buttonlist:
if created == True:
# separator
#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")
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
self.details_bottom_buttons.pack_end(save_button, expand=False, fill=False)
create = True
name = "Build new image"
if name in buttonlist:
# create button "Build new image"
@@ -618,9 +588,6 @@ class ImageDetailsPage (HobPage):
return is_runnable
def save_button_clicked_cb(self, button):
self.builder.show_save_template_dialog()
def deploy_button_clicked_cb(self, button):
if self.toggled_image:
if self.num_toggled > 1:
@@ -648,13 +615,6 @@ class ImageDetailsPage (HobPage):
def edit_packages_button_clicked_cb(self, button):
self.builder.show_packages(ask=False)
def template_button_clicked_cb(self, button):
response, path = self.builder.show_load_template_dialog()
if not response:
return
if path:
self.builder.load_template(path)
def my_images_button_clicked_cb(self, button):
self.builder.show_load_my_images_dialog()

View File

@@ -51,6 +51,13 @@ class PackageSelectionPage (HobPage):
'col_min' : 100,
'col_max' : 300,
'expand' : 'True'
}, {
'col_name' : 'Recipe',
'col_id' : PackageListModel.COL_RCP,
'col_style': 'text',
'col_min' : 100,
'col_max' : 250,
'expand' : 'True'
}, {
'col_name' : 'Brought in by (+others)',
'col_id' : PackageListModel.COL_BINB,
@@ -83,6 +90,13 @@ class PackageSelectionPage (HobPage):
'col_min' : 100,
'col_max' : 500,
'expand' : 'True'
}, {
'col_name' : 'Recipe',
'col_id' : PackageListModel.COL_RCP,
'col_style': 'text',
'col_min' : 100,
'col_max' : 250,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : PackageListModel.COL_INC,
@@ -99,7 +113,7 @@ class PackageSelectionPage (HobPage):
def __init__(self, builder):
super(PackageSelectionPage, self).__init__(builder, "Edit packages")
# set invisiable members
# set invisible members
self.recipe_model = self.builder.recipe_model
self.package_model = self.builder.package_model
@@ -196,13 +210,7 @@ class PackageSelectionPage (HobPage):
else:
self.builder.show_configuration()
def _expand_all(self):
for tab in self.tables:
tab.table_tree.expand_all()
def refresh_selection(self):
self._expand_all()
self.builder.configuration.selected_packages = self.package_model.get_selected_packages()
self.builder.configuration.user_selected_packages = self.package_model.get_user_selected_packages()
selected_packages_num = len(self.builder.configuration.selected_packages)

View File

@@ -137,8 +137,6 @@ class RecipeFile(ConfigFile):
class TemplateMgr(gobject.GObject):
__gLocalVars__ = ["MACHINE", "PACKAGE_CLASSES", "DISTRO", "DL_DIR", "SSTATE_DIR", "SSTATE_MIRRORS", "PARALLEL_MAKE", "BB_NUMBER_THREADS", "CONF_VERSION"]
__gBBLayersVars__ = ["BBLAYERS", "LCONF_VERSION"]
__gRecipeVars__ = ["DEPENDS", "IMAGE_INSTALL"]
def __init__(self):
@@ -152,37 +150,21 @@ class TemplateMgr(gobject.GObject):
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(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__:
self.local_conf.setVar(var, val)
if var in TemplateMgr.__gBBLayersVars__:
self.bblayers_conf.setVar(var, val)
if var in TemplateMgr.__gRecipeVars__:
self.image_bb.setVar(var, val)
self.template_hob.setVar(var, val)
def save(self):
self.local_conf.save()
self.bblayers_conf.save()
self.image_bb.save()
self.template_hob.save()
@@ -200,12 +182,6 @@ class TemplateMgr(gobject.GObject):
if self.template_hob:
del self.template_hob
template_hob = None
if self.bblayers_conf:
del self.bblayers_conf
self.bblayers_conf = None
if self.local_conf:
del self.local_conf
self.local_conf = None
if self.image_bb:
del self.image_bb
self.image_bb = None

View File

@@ -453,7 +453,8 @@ def main(server, eventHandler, tf = TerminalFilter):
bb.runqueue.runQueueExitWait,
bb.event.OperationStarted,
bb.event.OperationCompleted,
bb.event.OperationProgress)):
bb.event.OperationProgress,
bb.event.DiskFull)):
continue
logger.error("Unknown event: %s", event)

View File

@@ -458,27 +458,6 @@ def preserved_envvars_exported():
'USER',
]
def preserved_envvars_exported_interactive():
"""Variables which are taken from the environment and placed in and exported
from the metadata, for interactive tasks"""
return [
'COLORTERM',
'DBUS_SESSION_BUS_ADDRESS',
'DESKTOP_SESSION',
'DESKTOP_STARTUP_ID',
'DISPLAY',
'GNOME_KEYRING_PID',
'GNOME_KEYRING_SOCKET',
'GPG_AGENT_INFO',
'GTK_RC_FILES',
'SESSION_MANAGER',
'KRB5CCNAME',
'SSH_AUTH_SOCK',
'XAUTHORITY',
'XDG_DATA_DIRS',
'XDG_SESSION_COOKIE',
]
def preserved_envvars():
"""Variables which are taken from the environment and placed in the metadata"""
v = [
@@ -487,7 +466,7 @@ def preserved_envvars():
'BB_ENV_WHITELIST',
'BB_ENV_EXTRAWHITE',
]
return v + preserved_envvars_exported() + preserved_envvars_exported_interactive()
return v + preserved_envvars_exported()
def filter_environment(good_vars):
"""
@@ -495,24 +474,20 @@ def filter_environment(good_vars):
are not known and may influence the build in a negative way.
"""
removed_vars = []
removed_vars = {}
for key in os.environ.keys():
if key in good_vars:
continue
removed_vars.append(key)
removed_vars[key] = os.environ[key]
os.unsetenv(key)
del os.environ[key]
if len(removed_vars):
logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars))
logger.debug(1, "Removed the following variables from the environment: %s", ", ".join(removed_vars.keys()))
return removed_vars
def create_interactive_env(d):
for k in preserved_envvars_exported_interactive():
os.setenv(k, d.getVar(k, True))
def approved_variables():
"""
Determine and return the list of whitelisted variables which are approved
@@ -534,7 +509,9 @@ def clean_environment():
"""
if 'BB_PRESERVE_ENV' not in os.environ:
good_vars = approved_variables()
filter_environment(good_vars)
return filter_environment(good_vars)
return {}
def empty_environment():
"""
@@ -558,14 +535,17 @@ def remove(path, recurse=False):
"""Equivalent to rm -f or rm -rf"""
if not path:
return
import os, errno, shutil, glob
if recurse:
import subprocess, glob
# shutil.rmtree(name) would be ideal but its too slow
subprocess.call(['rm', '-rf'] + glob.glob(path))
return
import os, errno, glob
for name in glob.glob(path):
try:
os.unlink(name)
except OSError as exc:
if recurse and exc.errno == errno.EISDIR:
shutil.rmtree(name)
elif exc.errno != errno.ENOENT:
if exc.errno != errno.ENOENT:
raise
def prunedir(topdir):
@@ -820,3 +800,31 @@ def cpu_count():
def nonblockingfd(fd):
fcntl.fcntl(fd, fcntl.F_SETFL, fcntl.fcntl(fd, fcntl.F_GETFL) | os.O_NONBLOCK)
def process_profilelog(fn):
# Redirect stdout to capture profile information
pout = open(fn + '.processed', 'w')
so = sys.stdout.fileno()
orig_so = os.dup(sys.stdout.fileno())
os.dup2(pout.fileno(), so)
import pstats
p = pstats.Stats(fn)
p.sort_stats('time')
p.print_stats()
p.print_callers()
p.sort_stats('cumulative')
p.print_stats()
os.dup2(orig_so, so)
pout.flush()
pout.close()
#
# Work around multiprocessing pool bugs in python < 2.7.3
#
def multiprocessingpool(*args, **kwargs):
if sys.version_info < (2, 7, 3):
return bb.compat.Pool(*args, **kwargs)
else:
return multiprocessing.pool.Pool(*args, **kwargs)

View File

@@ -86,7 +86,8 @@ class PRServer(SimpleXMLRPCServer):
def work_forever(self,):
self.quit = False
self.timeout = 0.5
logger.info("PRServer: started! DBfile: %s, IP: %s, PORT: %s, PID: %s" %
logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" %
(self.dbfile, self.host, self.port, str(os.getpid())))
while not self.quit:
@@ -97,16 +98,10 @@ class PRServer(SimpleXMLRPCServer):
return
def start(self):
if self.daemon is True:
logger.info("PRServer: try to start daemon...")
self.daemonize()
else:
atexit.register(self.delpid)
pid = str(os.getpid())
pf = file(self.pidfile, 'w+')
pf.write("%s\n" % pid)
pf.close()
self.work_forever()
pid = self.daemonize()
# Ensure both the parent sees this and the child from the work_forever log entry above
logger.info("Started PRServer with DBfile: %s, IP: %s, PORT: %s, PID: %s" %
(self.dbfile, self.host, self.port, str(pid)))
def delpid(self):
os.remove(self.pidfile)
@@ -118,8 +113,9 @@ class PRServer(SimpleXMLRPCServer):
try:
pid = os.fork()
if pid > 0:
os.waitpid(pid, 0)
#parent return instead of exit to give control
return
return pid
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
@@ -131,7 +127,7 @@ class PRServer(SimpleXMLRPCServer):
try:
pid = os.fork()
if pid > 0: #parent
sys.exit(0)
os._exit(0)
except OSError as e:
raise Exception("%s [%d]" % (e.strerror, e.errno))
@@ -147,15 +143,22 @@ class PRServer(SimpleXMLRPCServer):
os.dup2(so.fileno(),sys.stdout.fileno())
os.dup2(se.fileno(),sys.stderr.fileno())
# Ensure logging makes it to the logfile
streamhandler = logging.StreamHandler()
streamhandler.setLevel(logging.DEBUG)
formatter = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
streamhandler.setFormatter(formatter)
logger.addHandler(streamhandler)
# write pidfile
atexit.register(self.delpid)
pid = str(os.getpid())
pf = file(self.pidfile, 'w')
pf.write("%s\n" % pid)
pf.close()
self.work_forever()
sys.exit(0)
self.delpid
os._exit(0)
class PRServSingleton():
def __init__(self, dbfile, logfile, interface):
@@ -164,21 +167,14 @@ class PRServSingleton():
self.interface = interface
self.host = None
self.port = None
self.event = threading.Event()
def _work(self):
self.prserv = PRServer(self.dbfile, self.logfile, self.interface, False)
self.host, self.port = self.prserv.getinfo()
self.event.set()
self.prserv.work_forever()
del self.prserv.db
def start(self):
self.working_thread = threading.Thread(target=self._work)
self.working_thread.start()
self.prserv = PRServer(self.dbfile, self.logfile, self.interface)
self.prserv.start()
self.host, self.port = self.prserv.getinfo()
del self.prserv.db
def getinfo(self):
self.event.wait()
return (self.host, self.port)
class PRServerConnection():
@@ -194,6 +190,7 @@ class PRServerConnection():
import socket
socket.setdefaulttimeout(2)
try:
logger.info("Terminating PRServer...")
self.connection.quit()
except Exception as exc:
sys.stderr.write("%s\n" % str(exc))
@@ -268,10 +265,17 @@ def is_local_special(host, port):
def auto_start(d):
global singleton
if (not d.getVar('PRSERV_HOST', True)) or (not d.getVar('PRSERV_PORT', True)):
host_params = filter(None, (d.getVar('PRSERV_HOST', True) or '').split(':'))
if not host_params:
return True
if is_local_special(d.getVar('PRSERV_HOST', True), int(d.getVar('PRSERV_PORT', True))) and not singleton:
if len(host_params) != 2:
logger.critical('\n'.join(['PRSERV_HOST: incorrect format',
'Usage: PRSERV_HOST = "<hostname>:<port>"']))
return True
if is_local_special(host_params[0], int(host_params[1])) and not singleton:
import bb.utils
cachedir = (d.getVar("PERSISTENT_DIR", True) or d.getVar("CACHE", True))
if not cachedir:
@@ -285,8 +289,8 @@ def auto_start(d):
if singleton:
host, port = singleton.getinfo()
else:
host = d.getVar('PRSERV_HOST', True)
port = int(d.getVar('PRSERV_PORT', True))
host = host_params[0]
port = int(host_params[1])
try:
return PRServerConnection(host,port).ping()

View File

@@ -11,6 +11,8 @@
# or the mega-manual (single, large HTML file comprised of all
# Yocto Project manuals).
# html: generates an HTML version of a manual.
# eclipse: generates an HTML version of a manual that can be used as
# eclipse help (including necessary metadata files).
# tarball: creates a tarball for the doc files.
# validate: validates
# publish: pushes generated files to the Yocto Project website
@@ -70,26 +72,19 @@
#
ifeq ($(DOC),bsp-guide)
XSLTOPTS = --stringparam html.stylesheet bsp-style.css \
--stringparam chapter.autolabel 1 \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
TARFILES = bsp-style.css bsp-guide.html bsp-guide.pdf figures/bsp-title.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse tarball
TARFILES = bsp-style.css bsp-guide.html bsp-guide.pdf figures/bsp-title.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),dev-manual)
XSLTOPTS = --stringparam html.stylesheet dev-style.css \
--stringparam chapter.autolabel 1 \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse 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
@@ -120,21 +115,24 @@ TARFILES = dev-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-overview-1.png figures/kernel-overview-2-generic.png \
figures/source-repos.png figures/yp-download.png
figures/source-repos.png figures/yp-download.png \
eclipse
endif
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),yocto-project-qs)
XSLTOPTS = --stringparam html.stylesheet qs-style.css \
--xinclude
ALLPREQ = html tarball
TARFILES = yocto-project-qs.html qs-style.css figures/yocto-environment.png figures/building-an-image.png figures/using-a-pre-built-image.png figures/yocto-project-transp.png
MANUALS = $(DOC)/$(DOC).html
XSLTOPTS = --xinclude
ALLPREQ = html eclipse tarball
TARFILES = yocto-project-qs.html qs-style.css figures/yocto-environment.png \
figures/building-an-image.png figures/using-a-pre-built-image.png \
figures/yocto-project-transp.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
@@ -178,11 +176,27 @@ TARFILES = mega-manual.html mega-style.css figures/yocto-environment.png figures
figures/using-a-pre-built-image.png \
figures/poky-title.png figures/buildhistory.png figures/buildhistory-web.png \
figures/adt-title.png figures/bsp-title.png \
figures/kernel-title.png figures/kernel-architecture-overview.png \
figures/kernel-dev-title.png figures/kernel-architecture-overview.png \
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-overview-1.png figures/kernel-overview-2-generic.png \
figures/source-repos.png figures/yp-download.png figures/kernel-dev-title.png
figures/source-repos.png figures/yp-download.png \
figures/profile-title.png figures/kernelshark-all.png \
figures/kernelshark-choose-events.png figures/kernelshark-i915-display.png \
figures/kernelshark-output-display.png figures/lttngmain0.png \
figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \
figures/oprofileui-downloading.png figures/oprofileui-processes.png \
figures/perf-probe-do_fork-profile.png figures/perf-report-cycles-u.png \
figures/perf-systemwide.png figures/perf-systemwide-libc.png \
figures/perf-wget-busybox-annotate-menu.png figures/perf-wget-busybox-annotate-udhcpc.png \
figures/perf-wget-busybox-debuginfo.png figures/perf-wget-busybox-dso-zoom.png \
figures/perf-wget-busybox-dso-zoom-menu.png figures/perf-wget-busybox-expanded-stripped.png \
figures/perf-wget-flat-stripped.png figures/perf-wget-g-copy-from-user-expanded-stripped.png \
figures/perf-wget-g-copy-to-user-expanded-debuginfo.png figures/perf-wget-g-copy-to-user-expanded-stripped.png \
figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png figures/pybootchartgui-linux-yocto.png \
figures/pychart-linux-yocto-rpm.png figures/pychart-linux-yocto-rpm-nostrip.png \
figures/sched-wakeup-profile.png figures/sysprof-callers.png \
figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png
endif
MANUALS = $(DOC)/$(DOC).html
@@ -192,59 +206,59 @@ STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),ref-manual)
XSLTOPTS = --stringparam html.stylesheet ref-style.css \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse tarball
TARFILES = ref-manual.html ref-style.css figures/poky-title.png \
figures/buildhistory.png figures/buildhistory-web.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
figures/buildhistory.png figures/buildhistory-web.png eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),adt-manual)
XSLTOPTS = --stringparam html.stylesheet adt-style.css \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
TARFILES = adt-manual.html adt-manual.pdf adt-style.css figures/adt-title.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse tarball
TARFILES = adt-manual.html adt-manual.pdf adt-style.css figures/adt-title.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),kernel-manual)
XSLTOPTS = --stringparam html.stylesheet kernel-style.css \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
TARFILES = kernel-manual.html kernel-manual.pdf kernel-style.css figures/kernel-title.png figures/kernel-architecture-overview.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
ifeq ($(DOC),profile-manual)
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse tarball
TARFILES = profile-manual.html profile-manual.pdf profile-manual-style.css \
figures/profile-title.png figures/kernelshark-all.png \
figures/kernelshark-choose-events.png figures/kernelshark-i915-display.png \
figures/kernelshark-output-display.png figures/lttngmain0.png \
figures/oprofileui-busybox.png figures/oprofileui-copy-to-user.png \
figures/oprofileui-downloading.png figures/oprofileui-processes.png \
figures/perf-probe-do_fork-profile.png figures/perf-report-cycles-u.png \
figures/perf-systemwide.png figures/perf-systemwide-libc.png \
figures/perf-wget-busybox-annotate-menu.png figures/perf-wget-busybox-annotate-udhcpc.png \
figures/perf-wget-busybox-debuginfo.png figures/perf-wget-busybox-dso-zoom.png \
figures/perf-wget-busybox-dso-zoom-menu.png figures/perf-wget-busybox-expanded-stripped.png \
figures/perf-wget-flat-stripped.png figures/perf-wget-g-copy-from-user-expanded-stripped.png \
figures/perf-wget-g-copy-to-user-expanded-debuginfo.png figures/perf-wget-g-copy-to-user-expanded-stripped.png \
figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png figures/pybootchartgui-linux-yocto.png \
figures/pychart-linux-yocto-rpm.png figures/pychart-linux-yocto-rpm-nostrip.png \
figures/sched-wakeup-profile.png figures/sysprof-callers.png \
figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
ifeq ($(DOC),kernel-dev)
XSLTOPTS = --stringparam html.stylesheet kernel-dev-style.css \
--stringparam chapter.autolabel 1 \
--stringparam appendix.autolabel A \
--stringparam section.autolabel 1 \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
TARFILES = kernel-dev.html kernel-dev.pdf kernel-dev-style.css figures/kernel-dev-title.png
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
XSLTOPTS = --xinclude
ALLPREQ = html pdf eclipse tarball
TARFILES = kernel-dev.html kernel-dev.pdf kernel-dev-style.css figures/kernel-dev-title.png \
figures/kernel-architecture-overview.png \
eclipse
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse
FIGURES = figures
STYLESHEET = $(DOC)/*.css
endif
@@ -298,6 +312,49 @@ else
endif
eclipse: BASE_DIR = html/$(DOC)/
eclipse: eclipse-generate eclipse-resolve-links
.PHONY : eclipse-generate eclipse-resolve-links
eclipse-generate:
ifeq ($(filter $(DOC), adt-manual bsp-guide dev-manual kernel-dev profile-manual ref-manual yocto-project-qs),)
@echo " "
@echo "ERROR: You can only create eclipse documentation"
@echo " of the following documentation parts:"
@echo " - adt-manual"
@echo " - bsp-guide"
@echo " - dev-manual"
@echo " - kernel-dev"
@echo " - profile-manual"
@echo " - ref-manual"
@echo " - yocto-project-qs"
@echo " "
else
@echo " "
@echo "******** Building eclipse help of "$(DOC)
@echo " "
cd $(DOC) && \
xsltproc $(XSLTOPTS) \
--stringparam base.dir '$(BASE_DIR)' \
-o eclipse/$(DOC).html \
$(DOC)-eclipse-customization.xsl $(DOC).xml && \
mv eclipse/toc.xml eclipse/$(DOC)-toc.xml && \
cp -rf $(FIGURES) eclipse/$(BASE_DIR) && \
cd ..;
$(call modify-eclipse)
endif
eclipse-resolve-links:
@echo " "
@echo "******** Using eclipse-help.sed to process external links"
@echo " "
$(foreach FILE, \
$(wildcard $(DOC)/eclipse/html/$(DOC)/*.html), \
$(shell sed -i -f tools/eclipse-help.sed $(FILE)))
tarball: html
@echo " "
@echo "******** Creating Tarball of document files"

View File

@@ -48,17 +48,20 @@
</itemizedlist>
</para>
<section id='the-cross-toolchain'>
<title>The Cross-Toolchain</title>
<section id='the-cross-development-toolchain'>
<title>The Cross-Development Toolchain</title>
<para>
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, a toolchain installer
script, or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink> that
is based on your metadata
configuration or extension for your targeted device.
The
<ulink url='&YOCTO_DOCS_DEV_URL;#cross-development-toolchain'>Cross-Development Toolchain</ulink>
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, a toolchain installer script, or through a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
that is based on your metadata configuration or extension for
your targeted device.
The cross-toolchain works with a matching target sysroot.
</para>
</section>
@@ -147,18 +150,29 @@
<listitem><para><emphasis>OProfile:</emphasis> A system-wide profiler for Linux
systems that is capable of profiling all running code at low overhead.
You can find out more about OProfile at
<ulink url='http://oprofile.sourceforge.net/about/'></ulink>.</para></listitem>
<ulink url='http://oprofile.sourceforge.net/about/'></ulink>.
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
<listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used
to keep track of certain types of hardware and software events.
For more information on these types of counters see
<ulink url='https://perf.wiki.kernel.org/'></ulink> and click
on “Perf tools.”</para></listitem>
on “Perf tools.”
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
<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 Eclipse IDE Yocto Plug-in.
See <ulink url='http://sourceware.org/systemtap'></ulink> for more information
on SystemTap.</para></listitem>
on SystemTap.
For examples on how to setup and use this tool, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-systemtap'>SystemTap</ulink>"
section in the Yocto Project Profiling and Tracing Manual.</para></listitem>
<listitem><para><emphasis>Lttng-ust:</emphasis> A User-space Tracer designed to
provide detailed information on user-space activity.
See <ulink url='http://lttng.org/ust'></ulink> for more information on Lttng-ust.

View File

@@ -3,6 +3,9 @@
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
<xsl:param name="html.stylesheet" select="'adt-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
<xsl:param name="chunker.output.indent" select="'yes'"/>
<xsl:param name="chunk.quietly" select="1"/>
<xsl:param name="chunk.first.sections" select="1"/>
<xsl:param name="chunk.section.depth" select="10"/>
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:param name="ulink.target" select="'_self'" />
<xsl:param name="base.dir" select="'html/adt-manual/'"/>
<xsl:param name="html.stylesheet" select="'../book.css'"/>
<xsl:param name="eclipse.manifest" select="0"/>
<xsl:param name="create.plugin.xml" select="0"/>
<xsl:param name="suppress.navigation" select="1"/>
<xsl:param name="generate.index" select="0"/>
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -16,7 +16,9 @@
</imageobject>
</mediaobject>
<title></title>
<title>
Yocto Project Application Developer's Guide
</title>
<authorgroup>
<author>

View File

@@ -3,4 +3,8 @@
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<xsl:param name="html.stylesheet" select="'bsp-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
<xsl:param name="chunker.output.indent" select="'yes'"/>
<xsl:param name="chunk.quietly" select="1"/>
<xsl:param name="chunk.first.sections" select="1"/>
<xsl:param name="chunk.section.depth" select="10"/>
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:param name="ulink.target" select="'_self'" />
<xsl:param name="base.dir" select="'html/bsp-guide/'"/>
<xsl:param name="html.stylesheet" select="'../book.css'"/>
<xsl:param name="eclipse.manifest" select="0"/>
<xsl:param name="create.plugin.xml" select="0"/>
<xsl:param name="suppress.navigation" select="1"/>
<xsl:param name="generate.index" select="0"/>
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -16,7 +16,9 @@
</imageobject>
</mediaobject>
<title></title>
<title>
Yocto Project Board Support Package Developer's Guide
</title>
<authorgroup>
<author>

View File

@@ -621,7 +621,8 @@
</para>
<para>
The <filename>FILESEXTRAPATHS</filename> variable is in boilerplate form in the
The <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
variable is in boilerplate form in the
previous example in order to make it easy to do that.
This variable must be in your layer or BitBake will not find the patches or
configurations even if you have them in your <filename>SRC_URI</filename>.

View File

@@ -46,9 +46,17 @@
<title>Layers</title>
<para>
The Source Directory contains several layers right out of the box.
You can easily identify a layer in the Source Directory by its folder name.
Folders that are layers begin with the string <filename>meta</filename>.
The Source Directory contains several layers right out of the
box.
You can easily identify layers that ship with a
Yocto Project release in the Source Directory by their
folder names.
Folders that are layers begin with the string
<filename>meta</filename>.
<note>
It is not a requirement that a layer begins with the
string <filename>meta</filename>.
</note>
For example, when you set up the <link linkend='source-directory'>Source Directory</link>
structure, you will see several layers: <filename>meta</filename>,
<filename>meta-hob</filename>, <filename>meta-skeleton</filename>,
@@ -80,10 +88,10 @@
<ulink url='&OE_HOME_URL;/wiki/LayerIndex'><filename>LayerIndex</filename></ulink>
for a list of layers from the OpenEmbedded community that can be used in the
Yocto Project.</para></listitem>
<listitem><para><emphasis>Create a Directory:</emphasis> Create the directory
for your layer.
Traditionally, prepend the name of the folder with the string
<filename>meta</filename>.
<listitem><para><emphasis>Create a Directory:</emphasis>
Create the directory for your layer.
While not strictly required, prepend the name of the
folder with the string <filename>meta</filename>.
For example:
<literallayout class='monospaced'>
meta-mylayer
@@ -94,37 +102,64 @@
layer folder, you need to create a <filename>conf/layer.conf</filename> file.
It is easiest to take an existing layer configuration file and copy that to your
layer's <filename>conf</filename> directory and then modify the file as needed.</para>
<para>The <filename>meta-yocto/conf/layer.conf</filename> file demonstrates the
<para>The <filename>meta-yocto-bsp/conf/layer.conf</filename> file demonstrates the
required syntax:
<literallayout class='monospaced'>
# We have a conf and classes directory, add to BBPATH
BBPATH := "${LAYERDIR}:${BBPATH}"
BBPATH := "${BBPATH}:${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
# We have a packages directory, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "yocto"
BBFILE_PATTERN_yocto := "^${LAYERDIR}/"
BBFILE_PRIORITY_yocto = "5"
BBFILE_COLLECTIONS += "yoctobsp"
BBFILE_PATTERN_yoctobsp := "^${LAYERDIR}/"
BBFILE_PRIORITY_yoctobsp = "5"
</literallayout></para>
<para>In the previous example, the recipes for the layers are added to
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILES'>BBFILES</ulink></filename>.
The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</ulink></filename>
variable is then appended with the layer name.
The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_PATTERN'>BBFILE_PATTERN</ulink></filename>
variable is set to a regular expression and is used to match files
from <filename>BBFILES</filename> into a particular layer.
In this case, immediate expansion of
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LAYERDIR'>LAYERDIR</ulink></filename>
sets <filename>BBFILE_PATTERN</filename> to the layer's path.
The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_PRIORITY'>BBFILE_PRIORITY</ulink></filename>
variable then assigns a priority to the layer.
Applying priorities is useful in situations where the same package might appear in multiple
layers and allows you to choose what layer should take precedence.</para>
<para>Here is an explanation of the example:
<itemizedlist>
<listitem><para>The configuration and
classes directory is appended to
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBPATH'><filename>BBPATH</filename></ulink>.
<note>
All non-distro layers, which include all BSP
layers, are expected to append the layer
directory to the
<filename>BBPATH</filename>.
On the other hand, distro layers, such as
<filename>meta-yocto</filename>, can choose
to enforce their own precedence over
<filename>BBPATH</filename>.
For an example of that syntax, see the
<filename>layer.conf</filename> file for
the <filename>meta-yocto</filename> layer.
</note></para></listitem>
<listitem><para>The recipes for the layers are
appended to
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILES'>BBFILES</ulink></filename>.
</para></listitem>
<listitem><para>The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_COLLECTIONS'>BBFILE_COLLECTIONS</ulink></filename>
variable is then appended with the layer name.
</para></listitem>
<listitem><para>The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_PATTERN'>BBFILE_PATTERN</ulink></filename>
variable is set to a regular expression and is
used to match files from
<filename>BBFILES</filename> into a particular
layer.
In this case, immediate expansion of
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LAYERDIR'>LAYERDIR</ulink></filename>
sets <filename>BBFILE_PATTERN</filename> to the
layer's path.</para></listitem>
<listitem><para>The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBFILE_PRIORITY'>BBFILE_PRIORITY</ulink></filename>
variable then assigns a priority to the layer.
Applying priorities is useful in situations
where the same package might appear in multiple
layers and allows you to choose what layer
should take precedence.</para></listitem>
</itemizedlist></para>
<para>Note the use of the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LAYERDIR'>LAYERDIR</ulink></filename>
variable with the immediate expansion operator.
@@ -260,15 +295,18 @@
</para>
<para>
Append files files must have the same name as the corresponding recipe.
Append files must have the same root name as the corresponding recipe.
For example, the append file <filename>someapp_&DISTRO;.bbappend</filename> must
apply to <filename>someapp_&DISTRO;.bb</filename>.
This means the original recipe and append file names are version number specific.
This means the original recipe and append file names are version number-specific.
If the corresponding recipe is renamed to update to a newer version, the
underlying <filename>.bbappend</filename> file must be renamed as well.
During the build process, BitBake displays an error on starting if it detects a
<filename>.bbappend</filename> file that does not have a corresponding recipe
with a matching name.
See the
<ulink url='&YOCTO_DOCS_REF_URL;#var-BB_DANGLINGAPPENDS_WARNONLY'><filename>BB_DANGLINGAPPENDS_WARNONLY</filename></ulink>
variable for information on how to handle this error.
</para>
<para>
@@ -282,7 +320,7 @@
append file both from the
<link linkend='source-directory'>Source Directory</link>.
Here is the main formfactor recipe, which is named <filename>formfactor_0.0.bb</filename> and
located in the meta layer at <filename>meta/recipes-bsp/formfactor</filename>:
located in the "meta" layer at <filename>meta/recipes-bsp/formfactor</filename>:
<literallayout class='monospaced'>
DESCRIPTION = "Device formfactor information"
SECTION = "base"
@@ -318,7 +356,8 @@
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
within a <filename>.bbappend</filename> by extending the path BitBake uses to search for files.
The most reliable way to do this is by prepending the
<filename>FILESEXTRAPATHS</filename> variable.
<ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
variable.
For example, if you have your files in a directory that is named the same as your package
(<ulink url='&YOCTO_DOCS_REF_URL;#var-PN'><filename>PN</filename></ulink>),
you can add this directory by adding the following to your <filename>.bbappend</filename> file:
@@ -329,10 +368,16 @@
of the reference to <filename>THISDIR</filename>.
The trailing colon character is important as it ensures that items in the list remain
colon-separated.
<note>BitBake automatically defines the <filename>THISDIR</filename> variable.
<note><para>BitBake automatically defines the
<filename>THISDIR</filename> variable.
You should never set this variable yourself.
Using <filename>_prepend</filename> ensures your path will be searched prior to other
paths in the final list.
Using <filename>_prepend</filename> ensures your path will
be searched prior to other paths in the final list.</para>
<para>Also, not all append files add extra files.
Many append files simply exist to add build options
(e.g. <filename>systemd</filename>).
For these cases, it is not necessary to use the
"_prepend" part of the statement.</para>
</note>
</para>
</section>
@@ -344,7 +389,7 @@
Each layer is assigned a priority value.
Priority values control which layer takes precedence if there are recipe files with
the same name in multiple layers.
For these cases, the recipe file from the layer with a higher priority number taking precedence.
For these cases, the recipe file from the layer with a higher priority number takes precedence.
Priority values also affect the order in which multiple <filename>.bbappend</filename> files
for the same recipe are applied.
You can either specify the priority manually, or allow the build system to calculate it
@@ -1338,9 +1383,9 @@
</para>
<para>
For concepts on kernel configuration, see the
"<ulink url='&YOCTO_DOCS_KERNEL_URL;#kernel-configuration'>Kernel Configuration</ulink>"
section in the Yocto Project Kernel Architecture and Use Manual.
For more information on kernel configuration, see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#changing-the-configuration'>Changing the Configuration</ulink>"
section in the Yocto Project Linux Kernel Development Manual.
</para>
<section id='using-menuconfig'>
@@ -1622,6 +1667,12 @@
in the Yocto Project Quick Start.
</para>
<para>
Also, for more information on patching the kernel, see the
"<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;#applying-patches'>Applying Patches</ulink>"
section in the Yocto Project Linux Kernel Development Manual.
</para>
<section id='create-a-layer-for-your-changes'>
<title>Create a Layer for your Changes</title>
@@ -1755,7 +1806,7 @@
the <filename>layer.conf</filename> file as follows:
<literallayout class='monospaced'>
# We have a conf and classes directory, add to BBPATH
BBPATH := "${LAYERDIR}:${BBPATH}"
BBPATH := "${BBPATH}:${LAYERDIR}"
# We have a packages directory, add to BBFILES
BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \
@@ -1777,7 +1828,8 @@
PRINC := "${@int(PRINC) + 1}"
</literallayout>
The <filename>FILESEXTRAPATHS</filename> and <filename>SRC_URI</filename>
The <ulink url='&YOCTO_DOCS_REF_URL;#var-FILESEXTRAPATHS'><filename>FILESEXTRAPATHS</filename></ulink>
and <ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>
statements enable the OpenEmbedded build system to find the patch file.
</para></listitem>
<listitem><para><emphasis>Put the patch file in your layer</emphasis>:
@@ -1924,71 +1976,225 @@
</itemizedlist>
</para>
<section id="usingpoky-changes-prbump">
<section id='incrementing-a-package-revision-number'>
<title>Incrementing a Package Revision Number</title>
<para>
If a committed change results in changing the package output,
then the value of the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PR'>PR</ulink></filename>
variable needs to be increased
(or "bumped") as part of that commit.
For new recipes you should add the <filename>PR</filename>
variable and set its initial value equal to "r0", which is the default.
Even though the default value is "r0", the practice of adding it to a new recipe makes
it harder to forget to bump the variable when you make changes
to the recipe in future.
<ulink url='&YOCTO_DOCS_REF_URL;#var-PR'><filename>PR</filename></ulink>
variable needs to be increased (or "bumped").
Increasing <filename>PR</filename> occurs one of two ways:
<itemizedlist>
<listitem><para>Automatically using a Package Revision
Service (PR Service).</para></listitem>
<listitem><para>Manually incrementing the
<filename>PR</filename> variable.</para></listitem>
</itemizedlist>
</para>
<para>
If you are sharing a common <filename>.inc</filename> file with multiple recipes,
you can also use the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-INC_PR'>INC_PR</ulink></filename>
variable to ensure that
the recipes sharing the <filename>.inc</filename> file are rebuilt when the
<filename>.inc</filename> file itself is changed.
The <filename>.inc</filename> file must set <filename>INC_PR</filename>
(initially to "r0"), and all recipes referring to it should set <filename>PR</filename>
to "$(INC_PR).0" initially, incrementing the last number when the recipe is changed.
If the <filename>.inc</filename> file is changed then its
<filename>INC_PR</filename> should be incremented.
Given that one of the challenges any build system and its
users face is how to maintain a package feed that is compatible
with existing package manager applications such as
RPM, APT, and OPKG, using an automated system is much
preferred over a manual system.
In either system, the main requirement is that version
numbering increases in a linear fashion and that a number of
version components exist that support that linear progression.
</para>
<para>
When upgrading the version of a package, assuming the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PV'>PV</ulink></filename>
changes, the <filename>PR</filename> variable should be reset to "r0"
(or "$(INC_PR).0" if you are using <filename>INC_PR</filename>).
The following two sections provide information on the PR Service
and on manual <filename>PR</filename> bumping.
</para>
<para>
Usually, version increases occur only to packages.
However, if for some reason <filename>PV</filename> changes but does not
increase, you can increase the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PE'>PE</ulink></filename>
variable (Package Epoch).
The <filename>PE</filename> variable defaults to "0".
</para>
<section id='working-with-a-pr-service'>
<title>Working With a PR Service</title>
<para>
Version numbering strives to follow the
<ulink url='http://www.debian.org/doc/debian-policy/ch-controlfields.html'>
Debian Version Field Policy Guidelines</ulink>.
These guidelines define how versions are compared and what "increasing" a version means.
</para>
<para>
As mentioned, attempting to maintain revision numbers in the
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
is error prone, inaccurate and causes problems for people
submitting recipes.
Conversely, the PR Service automatically generates
increasing numbers, particularly the revision field,
which removes the human element.
<note>
For additional information on using a PR Service, you
can see the
<ulink url='&YOCTO_WIKI_URL;/wiki/PR_Service'>PR Service</ulink>
wiki page.
</note>
</para>
<para>
There are two reasons for following the previously mentioned guidelines.
First, to ensure that when a developer updates and rebuilds, they get all the changes to
the repository and do not have to remember to rebuild any sections.
Second, to ensure that target users are able to upgrade their
devices using package manager commands such as <filename>opkg upgrade</filename>
(or similar commands for dpkg/apt or rpm-based systems).
</para>
<para>
The Yocto Project uses variables in order of
decreasing priority to facilitate revision numbering (i.e.
<ulink url='&YOCTO_DOCS_REF_URL;#var-PE'><filename>PE</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>
for epoch, version and revision, respectively).
The values are highly dependent on the policies and
procedures of a given distribution and package feed.
</para>
<para>
The goal is to ensure the Yocto Project has packages that can be upgraded in all cases.
</para>
<para>
Because the OpenEmbedded build system uses
"<ulink url='&YOCTO_DOCS_REF_URL;#checksums'>signatures</ulink>",
which are unique to a given build, the build system
knows when to rebuild packages.
All the inputs into a given task are represented by a
signature, which can trigger a rebuild when different.
Thus, the build system itself does not rely on the
<filename>PR</filename> numbers to trigger a rebuild.
The signatures, however, can be used to generate
<filename>PR</filename> values.
</para>
<para>
The PR Service works with both
<filename>OEBasic</filename> and
<filename>OEBasicHash</filename> generators.
The value of <filename>PR</filename> bumps when the
checksum changes and the different generator mechanisms
change signatures under different circumstances.
</para>
<para>
As implemented, the build system includes values from
the PR Service into the <filename>PR</filename> field as
an addition using the form "<filename>.x</filename>" so
<filename>r0</filename> becomes <filename>r0.1</filename>,
<filename>r0.2</filename> and so forth.
This scheme allows existing <filename>PR</filename> values
to be used for whatever reasons, which include manual
<filename>PR</filename> bumps should it be necessary.
</para>
<para>
By default, the PR Service is not enabled or running.
Thus, the packages generated are just "self consistent".
The build system adds and removes packages and
there are no guarantees about upgrade paths but images
will be consistent and correct with the latest changes.
</para>
<para>
The simplest form for a PR Service is for it to exist
for a single host development system that builds the
package feed (building system).
For this scenario, you can enable the PR Service by adding
the following to your <filename>local.conf</filename>
file in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>:
<literallayout class='monospaced'>
PRSERV_HOST = "localhost:0"
</literallayout>
Once the service is started, packages will automatically
get increasing <filename>PR</filename> values and
BitBake will take care of starting and stopping the server.
</para>
<para>
If you have a more complex setup where multiple host
development systems work against a common, shared package
feed, you have a single PR Service running and it is
connected to each building system.
For this scenario, you need to start the PR Service using
the <filename>bitbake-prserv</filename> command:
<literallayout class='monospaced'>
bitbake-prserve &dash;&dash;host &lt;ip&gt; &dash;&dash;port &lt;port&gt; &dash;&dash;start
</literallayout>
In addition to hand-starting the service, you need to
update the <filename>local.conf</filename> file of each
building system as described earlier so each system
points to the server and port.
</para>
<para>
It is also recommended you use build history, which adds
some sanity checks to package versions, in conjunction with
the server that is running the PR Service.
To enable build history, add the following to each building
system's <filename>local.conf</filename> file:
<literallayout class='monospaced'>
# It is recommended to activate "buildhistory" for testing the PR service
INHERIT += "buildhistory"
BUILDHISTORY_COMMIT = "1"
</literallayout>
For information on build history, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#maintaining-build-output-quality'>Maintaining Build Output Quality</ulink>"
section in the Yocto Project Reference Manual.
</para>
<note>
<para>The OpenEmbedded build system does not maintain
<filename>PR</filename> information as part of the
shared state (sstate) packages.
If you maintain an sstate feed, its expected that either
all your building systems that contribute to the sstate
feed use a shared PR Service, or you do not run a PR
Service on any of your building systems.
Having some systems use a PR Service while others do
not leads to obvious problems.</para>
<para>For more information on shared state, see the
"<ulink url='&YOCTO_DOCS_REF_URL;#shared-state-cache'>Shared State Cache</ulink>"
section in the Yocto Project Reference Manual.</para>
</note>
</section>
<section id='manually-bumping-pr'>
<title>Manually Bumping PR</title>
<para>
If a committed change results in changing the package output,
then the value of the PR variable needs to be increased
(or "bumped") as part of that commit.
For new recipes you should add the <filename>PR</filename>
variable and set its initial value equal to "r0", which is the default.
Even though the default value is "r0", the practice of adding it to a new recipe makes
it harder to forget to bump the variable when you make changes
to the recipe in future.
</para>
<para>
If you are sharing a common <filename>.inc</filename> file with multiple recipes,
you can also use the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-INC_PR'>INC_PR</ulink></filename>
variable to ensure that
the recipes sharing the <filename>.inc</filename> file are rebuilt when the
<filename>.inc</filename> file itself is changed.
The <filename>.inc</filename> file must set <filename>INC_PR</filename>
(initially to "r0"), and all recipes referring to it should set <filename>PR</filename>
to "$(INC_PR).0" initially, incrementing the last number when the recipe is changed.
If the <filename>.inc</filename> file is changed then its
<filename>INC_PR</filename> should be incremented.
</para>
<para>
When upgrading the version of a package, assuming the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PV'>PV</ulink></filename>
changes, the <filename>PR</filename> variable should be reset to "r0"
(or "$(INC_PR).0" if you are using <filename>INC_PR</filename>).
</para>
<para>
Usually, version increases occur only to packages.
However, if for some reason <filename>PV</filename> changes but does not
increase, you can increase the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PE'>PE</ulink></filename>
variable (Package Epoch).
The <filename>PE</filename> variable defaults to "0".
</para>
<para>
Version numbering strives to follow the
<ulink url='http://www.debian.org/doc/debian-policy/ch-controlfields.html'>
Debian Version Field Policy Guidelines</ulink>.
These guidelines define how versions are compared and what "increasing" a version means.
</para>
</section>
</section>
<section id="usingpoky-configuring-DISTRO_PN_ALIAS">
@@ -2307,27 +2513,38 @@
<title>Excluding Recipes From the Build</title>
<para>
You might find that there are groups of recipes you want to filter
out of the build process.
You might find that there are groups of recipes or append files
that you want to filter out of the build process.
For example, recipes you know you will never use or want should not
be part of the build.
Removing these recipes from parsing speeds up parts of the build.
Removing these files from parsing speeds up parts of the build.
</para>
<para>
It is possible to filter or mask out <filename>.bb</filename> and
<filename>.bbappend</filename> files.
You can do this by providing an expression with the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBMASK'>BBMASK</ulink></filename>
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBMASK'><filename>BBMASK</filename></ulink>
variable.
Here is an example:
<literallayout class='monospaced'>
BBMASK = ".*/meta-mymachine/recipes-maybe/"
BBMASK = "/meta-mymachine/recipes-maybe/"
</literallayout>
Here, all <filename>.bb</filename> and <filename>.bbappend</filename> files
in the directory that match the expression are ignored during the build
process.
Here, all <filename>.bb</filename> and
<filename>.bbappend</filename> files in the directory that matches
the expression are ignored during the build process.
See the glossary entry for the
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBMASK'><filename>BBMASK</filename></ulink>
variable for more information.
</para>
<note>
The value you provide is passed to python's regular expression
compiler.
The expression is compared against the full paths to the files.
For complete syntax information, see python's documentation at
<ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
</note>
</section>
<section id="platdev-appdev-srcrev">
@@ -2606,6 +2823,11 @@
the most time in when doing X?"
Because the OpenEmbedded build system is well integrated with OProfile, it makes profiling
applications on target hardware straightforward.
<note>
For more information on how to set up and run OProfile, see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</note>
</para>
<para>
@@ -2936,9 +3158,9 @@
INHERIT += "${ARCHIVER_CLASS}"
SOURCE_ARCHIVE_PACKAGE_TYPE = "tar"
</literallayout>
During the creation of your image, all GPL
or other copyleft licensed source
is placed within subdirectories of
During the creation of your image, the source from all
recipes that deploy packages to the image is placed within
subdirectories of
<filename>DEPLOY_DIR/sources</filename> based on the
<ulink url='&YOCTO_DOCS_REF_URL;#var-LICENSE'><filename>LICENSE</filename></ulink>
for each recipe.
@@ -2957,7 +3179,7 @@
<literallayout class='monospaced'>
$ cd poky/build/tmp/deploy/sources
$ mkdir ~/gpl_source_release
$ for x in `ls|grep GPL`; do cp -R $x/* ~/gpl_source_release; done
$ for dir in */*GPL*; do cp -r $dir ~/gpl_source_release; done
</literallayout>
At this point, you could create a tarball from the
<filename>gpl_source_release</filename> directory and
@@ -3049,15 +3271,15 @@
BBFILES ?= ""
BBLAYERS ?= " \
$HOME/poky/meta \
$HOME/poky/meta-yocto \
$HOME/poky/meta-yocto-bsp \
$HOME/poky/meta-mylayer \
##COREBASE##/meta \
##COREBASE##/meta-yocto \
##COREBASE##/meta-yocto-bsp \
##COREBASE##/meta-mylayer \
"
BBLAYERS_NON_REMOVABLE ?= " \
$HOME/poky/meta \
$HOME/poky/meta-yocto \
##COREBASE##/meta \
##COREBASE##/meta-yocto \
"
</literallayout>
Creating and providing an archive of the metadata layers

View File

@@ -3,6 +3,8 @@
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
<xsl:param name="html.stylesheet" select="'dev-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
<xsl:param name="chunker.output.indent" select="'yes'"/>
<xsl:param name="chunk.quietly" select="1"/>
<xsl:param name="chunk.first.sections" select="1"/>
<xsl:param name="chunk.section.depth" select="10"/>
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:param name="ulink.target" select="'_self'" />
<xsl:param name="base.dir" select="'html/dev-manual/'"/>
<xsl:param name="html.stylesheet" select="'../book.css'"/>
<xsl:param name="eclipse.manifest" select="0"/>
<xsl:param name="create.plugin.xml" select="0"/>
<xsl:param name="suppress.navigation" select="1"/>
<xsl:param name="generate.index" select="0"/>
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="1" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -103,9 +103,15 @@
This guide defines the structure for BSP components.
Having a commonly understood structure encourages standardization.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_DOCS_KERNEL_URL;'>Yocto Project Kernel Architecture and Use Manual</ulink>:</emphasis>
This manual describes the architecture of the Yocto Project kernel and provides
some work flow examples.</para></listitem>
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>:</emphasis>
This manual describes how to work with Linux Yocto kernels as well as providing a bit
of conceptual information on the construction of the Yocto Linux kernel tree.
</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_DOCS_PROF_URL;'>Yocto Project Profiling and Tracing Manual</ulink>:</emphasis>
This manual presents a set of common and generally useful tracing and
profiling schemes along with their application (as appropriate) to each tool.
</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.youtube.com/watch?v=3ZlOu-gLsh0'>
Eclipse IDE Yocto Plug-in</ulink>:</emphasis> A step-by-step instructional video that
@@ -115,8 +121,7 @@
<ulink url='&YOCTO_WIKI_URL;/wiki/FAQ'>FAQ</ulink>:</emphasis>
A list of commonly asked questions and their answers.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_HOME_URL;/download/yocto/yocto-project-&DISTRO;-release-notes-poky-&POKYVERSION;'>
Release Notes</ulink>:</emphasis> Features, updates and known issues for the current
<ulink url='&YOCTO_HOME_URL;/download/yocto/yocto-project-&DISTRO;-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;/tools-resources/projects/hob'>

View File

@@ -17,6 +17,9 @@
For an example on how to create a BSP, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>"
section in the Yocto Project Board Support Package (BSP) Developer's Guide.
For more complete information on how to work with the kernel, see the
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel
Development Manual</ulink>.
</para></listitem>
<listitem><para><emphasis>User Application Development:</emphasis>
User Application Development covers development of applications that you intend
@@ -79,9 +82,15 @@
</note>
<para>
The remainder of this section presents the basic steps used to create a BSP
using the Yocto Project's
The remainder of this section presents the basic
steps used to create a BSP using the Yocto Project's
<ulink url='&YOCTO_DOCS_BSP_URL;#using-the-yocto-projects-bsp-tools'>BSP Tools</ulink>.
Although not required for BSP creation, the
<filename>meta-intel</filename> repository, which contains
many BSPs supported by the Yocto Project, is part of the example.
</para>
<para>
For an example that shows how to create a new layer using the tools, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#creating-a-new-bsp-layer-using-the-yocto-bsp-script'>Creating a New BSP Layer Using the yocto-bsp Script</ulink>"
section in the Yocto Project Board Support Package (BSP) Developer's Guide.
@@ -99,7 +108,7 @@
<orderedlist>
<listitem><para><emphasis>Set up your host development system to support
development using the Yocto Project</emphasis>: See the
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>"
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</ulink>"
and the
"<ulink url='&YOCTO_DOCS_QS_URL;#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
@@ -110,11 +119,12 @@
process and to the tools you need.
For information on how to set up the
<link linkend='source-directory'>Source Directory</link>, see the
"<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem>
"<link linkend='getting-setup'>Getting Set up</link>" section.</para></listitem>
<listitem><para><emphasis>Establish the <filename>meta-intel</filename>
repository on your system</emphasis>: Having local copies of the
supported BSP layers on your system gives you access to the build
process and to the tools you need for creating a BSP.
repository on your system</emphasis>: Having local copies
of these supported BSP layers on your system gives you
access to layers you might be able to build on or modify
to create your BSP.
For information on how to get these files, see the
"<link linkend='getting-setup'>Getting Setup</link>" section.</para></listitem>
<listitem><para><emphasis>Create your own BSP layer using the
@@ -230,13 +240,13 @@
<para>
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 the
<ulink url='&YOCTO_DOCS_KERNEL_URL;'>Yocto Project Kernel Architecture and Use Manual</ulink>.
You can reference the
"<link linkend='patching-the-kernel'>Patching the Kernel</link>" section
for an example that changes the source code of the kernel.
For information on how to configure the kernel, see the
"<link linkend='configuring-the-kernel'>Configuring the Kernel</link>" section.
For more information on the kernel and on modifying the kernel, see the
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
</para>
<section id='kernel-overview'>
@@ -245,7 +255,7 @@
<para>
Traditionally, when one thinks of a patched kernel, they think of a base kernel
source tree and a fixed structure that contains kernel patches.
The Yocto Project, however, employs mechanisms, that in a sense, result in a kernel source
The Yocto Project, however, employs mechanisms that, in a sense, result in a kernel source
generator.
By the end of this section, this analogy will become clearer.
</para>
@@ -328,7 +338,7 @@
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.
which you are working.
And, furthermore, you need them available on your host system.
</para>
@@ -366,9 +376,9 @@
</para>
<para>
Again, for a complete discussion of the Yocto Project kernel's architecture and its
branching strategy, see the
<ulink url='&YOCTO_DOCS_KERNEL_URL;'>Yocto Project Kernel Architecture and Use Manual</ulink>.
Again, for additional information the Yocto Project kernel's
architecture and its branching strategy, see the
<ulink url='&YOCTO_DOCS_KERNEL_DEV_URL;'>Yocto Project Linux Kernel Development Manual</ulink>.
You can also reference the
"<link linkend='patching-the-kernel'>Patching the Kernel</link>"
section for a detailed example that modifies the kernel.
@@ -391,7 +401,7 @@
<orderedlist>
<listitem><para><emphasis>Set up your host development system to support
development using the Yocto Project</emphasis>: See
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</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 project files on your
@@ -445,7 +455,7 @@
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
<filename>menuconfig</filename>, you can directly compare the
<filename>.config</filename> file against a saved original and gather those
changes into a config fragment to be referenced from within the kernel's
<filename>.bbappend</filename> file.</para></listitem>
@@ -503,11 +513,11 @@
<orderedlist>
<listitem><para><emphasis>Prepare the Host System for the Yocto Project</emphasis>:
See
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='&YOCTO_DOCS_QS_URL;#the-linux-distro'>The Linux Distribution</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>Secure the Yocto Project Kernel Target Image</emphasis>:
You must have a target kernel image that has been built using the OpenEmbeded
You must have a target kernel image that has been built using the OpenEmbedded
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
@@ -517,7 +527,7 @@
<ulink url='&YOCTO_MACHINES_DL_URL;'><filename>machines</filename></ulink>
if your target architecture is supported and you are going to develop
and test your application on actual hardware.</para></listitem>
<listitem><para>Download the image from the
<listitem><para>Download the image from
<ulink url='&YOCTO_QEMU_DL_URL;'>
<filename>machines/qemu</filename></ulink> if your target architecture is supported
and you are going to develop and test your application using the QEMU
@@ -1272,7 +1282,11 @@ directory.</para></listitem>
host can use, you must have <filename>oprofile</filename> version 0.9.4 or
greater installed on the host.</para>
<para>You can locate both the viewer and server from
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/oprofileui/'></ulink>.
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/oprofileui/'></ulink>
You can also find more information on setting up and
using this tool in the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-oprofile'>OProfile</ulink>"
section of the Yocto Project Profiling and Tracing Manual.
<note>The <filename>oprofile-server</filename> is installed by default on
the <filename>core-image-sato-sdk</filename> image.</note></para></listitem>
<listitem><para><emphasis><filename>Lttng2.0 ust trace import</filename>:</emphasis>
@@ -1331,7 +1345,12 @@ directory.</para></listitem>
performance counter registers.
Selecting either of these tools causes an RSE terminal view to appear
from which you can run the tools.
Both tools refresh the entire screen to display results while they run.</para></listitem>
Both tools refresh the entire screen to display results while they run.
For more informationi on setting up and using <filename>perf</filename>,
see the
"<ulink url='&YOCTO_DOCS_PROF_URL;#profile-manual-perf'>perf</ulink>"
section in the Yocto Project Profiling and Tracing Manual.
</para></listitem>
</itemizedlist>
</para>
</section>
@@ -1429,45 +1448,57 @@ directory.</para></listitem>
<title>Workflow Using Stand-alone Cross-development Toolchains</title>
<para>
If you want to develop an application without prior installation of the ADT, you
still can employ the cross-development toolchain, the QEMU emulator, and a number of supported
target image files.
If you want to develop an application without prior installation
of the ADT, you still can employ the
<link linkend='cross-development-toolchain'>Cross Development Toolchain</link>,
the QEMU emulator, and a number of supported target image files.
You just need to follow these general steps:
<orderedlist>
<listitem><para><emphasis>Install the cross-development toolchain for your target hardware:</emphasis>
<listitem><para><emphasis>Install the cross-development
toolchain for your target hardware:</emphasis>
For information on how to install the toolchain, see the
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>"
section
in the Yocto Project Application Developer's Guide.</para></listitem>
<listitem><para><emphasis>Download the Target Image:</emphasis> The Yocto Project supports
several target architectures and has many pre-built kernel images and root filesystem
section in the Yocto Project Application Developer's
Guide.</para></listitem>
<listitem><para><emphasis>Download the Target Image:</emphasis>
The Yocto Project supports several target architectures
and has many pre-built kernel images and root filesystem
images.</para>
<para>If you are going to develop your application on hardware, go to the
<para>If you are going to develop your application on
hardware, go to the
<ulink url='&YOCTO_MACHINES_DL_URL;'><filename>machines</filename></ulink>
download area and choose a target machine area
from which to download the kernel image and root filesystem.
This download area could have several files in it that support development using
actual hardware.
For example, the area might contain <filename>.hddimg</filename> files that combine the
This download area could have several files in it that
support development using actual hardware.
For example, the area might contain
<filename>.hddimg</filename> files that combine the
kernel image with the filesystem, boot loaders, etc.
Be sure to get the files you need for your particular development process.</para>
<para>If you are going to develop your application and then run and test it using the QEMU
emulator, go to the
Be sure to get the files you need for your particular
development process.</para>
<para>If you are going to develop your application and
then run and test it using the QEMU emulator, go to the
<ulink url='&YOCTO_QEMU_DL_URL;'><filename>machines/qemu</filename></ulink>
download area.
From this area, go down into the directory for your target architecture
(e.g. <filename>qemux86_64</filename> for an
<trademark class='registered'>Intel</trademark>-based 64-bit architecture).
Download kernel, root filesystem, and any other files you need for your process.
<note>In order to use the root filesystem in QEMU, you need to extract it.
From this area, go down into the directory for your
target architecture (e.g. <filename>qemux86_64</filename>
for an <trademark class='registered'>Intel</trademark>-based
64-bit architecture).
Download kernel, root filesystem, and any other files you
need for your process.
<note>In order to use the root filesystem in QEMU, you
need to extract it.
See the
"<ulink url='&YOCTO_DOCS_ADT_URL;#extracting-the-root-filesystem'>Extracting the Root Filesystem</ulink>"
section for information on how to extract the root filesystem.</note></para></listitem>
<listitem><para><emphasis>Develop and Test your Application:</emphasis> At this point,
you have the tools to develop your application.
If you need to separately install and use the QEMU emulator, you can go to
<ulink url='http://www.qemu.org'>QEMU Home Page</ulink> to download and learn about the
emulator.</para></listitem>
section for information on how to extract the root
filesystem.</note></para></listitem>
<listitem><para><emphasis>Develop and Test your
Application:</emphasis> At this point, you have the tools
to develop your application.
If you need to separately install and use the QEMU
emulator, you can go to
<ulink url='http://wiki.qemu.org/Main_Page'>QEMU Home Page</ulink>
to download and learn about the emulator.</para></listitem>
</orderedlist>
</para>
</section>
@@ -1825,7 +1856,7 @@ directory.</para></listitem>
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>
for which you are building the image.</para></listitem>
<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
the parallelism 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'>layers</link>.</para></listitem>

View File

@@ -58,99 +58,321 @@
<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,
or scale it for a large team of developers.
The specifics of any situation determine the best solution.
Granted that the Yocto Project offers immense flexibility regarding this, practices do exist
that experience has shown work well.
It might not be immediately clear how you can use the Yocto
Project in a team environment, or scale it for a large team of
developers.
One of the strengths of the Yocto Project is that it is extremely
flexible.
Thus, you can adapt it to many different use cases and scenarios.
However, these characteristics can cause a struggle if you are trying
to create a working setup that scales across a large team.
To help with these types of situations, this section presents
some of the project's most successful experiences,
practices, solutions, and available technologies that work well.
Keep in mind, the information here is a starting point.
You can build off it and customize it to fit any
particular working environment and set of practices.
</para>
<para>
The core component of any development effort with the Yocto Project is often an
automated build and testing framework along with an image generation process.
You can use these core components to check that the metadata can be built,
highlight when commits break the build, and provide up-to-date images that
allow developers to test the end result and use it as a base platform for further
development.
Experience shows that buildbot is a good fit for this role.
What works well is to configure buildbot to make two types of builds:
incremental and full (from scratch).
See "<ulink url='http://autobuilder.yoctoproject.org:8010/'>Welcome to the buildbot for the Yocto Project</ulink>"
for an example implementation that uses buildbot.
</para>
<section id='best-practices-system-configurations'>
<title>System Configurations</title>
<para>
You can tie an incremental build to a commit hook that triggers the build
each time a commit is made to the metadata.
This practice results in useful acid tests that determine whether a given commit
breaks the build in some serious way.
Associating a build to a commit can catch a lot of simple errors.
Furthermore, the tests are fast so developers can get quick feedback on changes.
</para>
<para>
Systems across a large team should meet the needs of
two types of developers: those working on the direction of the
software stack itself and those developing applications.
Regardless of the type of developer, their workstations must
be both reasonably powerful and run Linux.
</para>
<para>
Full builds build and test everything from the ground up.
These types of builds usually happen at predetermined times like during the
night when the machine load is low.
</para>
<section id='best-practices-application-development'>
<title>Application Development</title>
<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 (i.e. Git or Subversion (SVN)) with the OpenEmbedded
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 build system easily supports testing configurations that use both a
stable known good revision and a floating revision.
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>
For developers who mainly do application level work
on top of an existing software stack,
here are some practices that work best:
<itemizedlist>
<listitem><para>Use a pre-built toolchain that
contains the software stack itself.
Then, develop the application code on top of the
stack.
This method works well for small numbers of relatively
isolated applications.</para></listitem>
<listitem><para>When possible, use the Yocto Project
plug-in for the <trademark class='trade'>Eclipse</trademark> IDE
and other pieces of Application Development
Technology (ADT).
For more information, see the
"<link linkend='application-development-workflow'>Application
Development Workflow</link>" section as well as the
<ulink url='&YOCTO_DOCS_ADT_URL;'>Yocto Project Application Developer's Guide</ulink>.
</para></listitem>
<listitem><para>Keep your cross-development toolchains
updated.
You can do this by provisioning either as new
toolchain downloads or as updates through a package
update mechanism using <filename>opkg</filename>
to provide updates to an existing toolchain.
The exact mechanics of how and when to do this are a
question for local policy.</para></listitem>
<listitem><para>Use multiple toolchains installed locally
into different locations to allow development across
versions.</para></listitem>
</itemizedlist>
</para>
</section>
<para>
Perhaps the hardest part of setting this up is defining the software project or
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
force any particular policy on users, unlike a lot of build systems.
The system allows the best policies to be chosen for the given circumstances.
</para>
<section id='best-practices-core-system-development'>
<title>Core System Development</title>
<para>
In general, best practices exist that make your work with the Yocto
Project easier in a team environment.
This list presents some of these practices you might consider following.
Of course, you need to understand that you do not have to follow these
practices and your setup can be totally controlled and customized by
your team:
<itemizedlist>
<listitem><para>Use <link linkend='git'>Git</link>
as the source control system.</para></listitem>
<listitem><para>Maintain your metadata in layers that make sense
for your situation.
See the "<link linkend='understanding-and-creating-layers'>Understanding
and Creating Layers</link>" section for more information on
layers.</para></listitem>
<listitem><para>Separate the project's metadata and code by using
separate Git repositories.
See the "<link linkend='yocto-project-repositories'>Yocto Project
Source Repositories</link>" section for information on these
repositories.
See the "<link linkend='getting-setup'>Getting Set Up</link>" section
for information on how to set up various Yocto Project related
Git repositories.</para></listitem>
<listitem><para>Set up the directory for the shared state cache
(<ulink url='&YOCTO_DOCS_REF_URL;#var-SSTATE_DIR'><filename>SSTATE_DIR</filename></ulink>)
where they make sense.
For example, set up the sstate cache for developers using the
same office and share source directories on the developer's
machines.</para></listitem>
<listitem><para>Set up an autobuilder and have it populate the
sstate cache and source directories.</para></listitem>
</itemizedlist>
</para>
<para>
For core system development, it is often best to have the
build system itself available on the developer workstations
so developers can run their own builds and directly
rebuild the software stack.
You should keep the core system standard as much as
possible and do your work in layers on top of the core system.
You can share layers amongst the developers of a particular
project and contain the policy configuration that defines
the project.
</para>
<para>
Aside from the previous best practices, there exists a number
of tips and tricks that can help speed up core development
projects:
<itemizedlist>
<listitem><para>Use a
<ulink url='&YOCTO_DOCS_REF_URL;#shared-state-cache'>Shared State Cache</ulink>
(sstate) among groups of developers who are on a
fast network.
The best way to share sstate is through a
Network File System (NFS) share.
The first user to build a given component for the
first time contributes that object to the sstate,
while subsequent builds from other developers then
reuse the object rather than rebuild it themselves.
</para>
<para>Although it is possible to use other protocols for the
sstate such as HTTP and FTP, you should avoid these.
Using HTTP limits the sstate to read-only and
FTP provides poor performance.
</para></listitem>
<listitem><para>Have autobuilders contribute to the sstate
pool similarly to how the developer workstations
contribute.
For information, see the
<link linkend='best-practices-autobuilders'>Autobuilders</link>
section.</para></listitem>
<listitem><para>Build stand-alone tarballs that contain
"missing" system requirements if for some reason
developer workstations do not meet minimum system
requirements such as latest Python versions,
<filename>chrpath</filename>, or other tools.
You can install and relocate the tarball exactly as you
would the usual cross-development toolchain so that
all developers can meet minimum version requirements
on most distributions.</para></listitem>
<listitem><para>Use a small number of high performance
systems for testing purposes (e.g. dual six core Xeons
with 24GB RAM and plenty of disk space).
Developers can use these systems for wider, more
extensive testing while they continue to develop
locally using their primary development system.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id='best-practices-source-control-management'>
<title>Source Control Manangement (SCM)</title>
<para>
Keeping your
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>
and any software you are developing under the
control of an SCM system that is compatible
with the OpenEmbedded build system is adviseable.
Of the two SCMs available (Git or Subversion), the
Yocto Project team strongly recommends using
<link linkend='git'>Git</link>.
Git is a distributed system that is easy to backup
(each checkout is a backup in itself), allows you to work
remotely, and then connect back to the infrastructue.
</para>
<para>
It is relatively easy to set up Git services and create
infrastructure like
<ulink url='&YOCTO_GIT_URL;'>http://git.yoctoproject.org</ulink>,
which is based on server software called
<filename>gitolite</filename> with <filename>cgit</filename>
being used to generate the web interface that lets you view the
repositories.
The <filename>gitlite</filename> software identifies users
using <filename>ssh</filename> keys and allows branch-based
access controls to repositories that you can control as little
or as much as necessary.
</para>
<note>
The setup of these services is beyond the scope of this manual.
However, sites such as these exist that describe how to perform
setup:
<itemizedlist>
<listitem><para><ulink url='http://git-scm.com/book/ch4-8.html'>Git documentation</ulink>:
Describes how to install <filename>gitolite</filename>
on the server.</para></listitem>
<listitem><para><ulink url='http://sitaramc.github.com/gitolite/master-toc.html'>The <filename>gitolite</filename> master index</ulink>:
All topics for <filename>gitolite</filename>.
</para></listitem>
<listitem><para><ulink url='http://hjemli.net/git/cgit/tree/README'><filename>cgit</filename> index</ulink>:
A <filename>README</filename> file on how to create a
fast web interface for Git.</para></listitem>
</itemizedlist>
</note>
</section>
<section id='best-practices-autobuilders'>
<title>Autobuilders</title>
<para>
Autobuilders are often the core of a development project.
It is here that changes from individual developers are brought
together and centrally tested and subsequent decisions about
releases can be made.
Autobuilders also allow for "continuous integration" style
testing of software components and regression identification
and tracking.
</para>
<para>
See "<ulink url='http://autobuilder.yoctoproject.org:8010/'>Welcome to the buildbot for the Yocto Project</ulink>"
for the Yocto Project's reference implementation that uses
buildbot.
The Yocto Project team has found this implementation
works well in this role.
A public example of this is the Yocto Project
Autobuilders, which we use to test the overall health of the
project.
</para>
<para>
The features of this system are:
<itemizedlist>
<listitem><para>Highlights when commits break the build
</para></listitem>
<listitem><para>Populates an sstate cache from which
developers can pull rather than requiring local
builds</para></listitem>
<listitem><para>Allows commit hook triggers,
which trigger builds when commits are made
</para></listitem>
<listitem><para>Allows triggering of automated image booting
and testing under the QuickEMUlator (QEMU)
</para></listitem>
<listitem><para>Supports incremental build testing and from
scratch builds</para></listitem>
<listitem><para>Shared output that allows developer
testing and historical regression investigation
</para></listitem>
<listitem><para>Creates output that can be use for releases
</para></listitem>
<listitem><para>Allows scheduling of builds so that resources
can be used efficiently.</para></listitem>
</itemizedlist>
</para>
</section>
<section id='best-practices-policies-and-change-flow'>
<title>Policies and Change Flow</title>
<para>
The Yocto Project itself uses a hierarchy structure and a
pull model.
Scripts exist to create and send pull requests
(i.e. <filename>create-pull-request</filename> and
<filename>send-pull-request</filename>).
This model is in line with other open source projects where
maintainers are responsible for specific areas of the project
and a single maintainer handles the final top-of-tree merges.
</para>
<note>
You can also use a more collective push model.
The <filename>gitolite</filename> software supports both the
push and pull models quite easily.
</note>
<para>
As with any development environment, it is important
to document the policy used as well as any main project
guidelines so they are understoon by everyone.
It is also a good idea to have well structured
commit messages, which are usually a part of a project's
guidelines.
Good commit messages are essential when looking back in time and
trying to understand why changes were made.
</para>
<para>
If you discover that changes are needed to the core layer of the
project, it is worth sharing those with the community as soon
as possible.
Chances are if you have discovered the need for changes, someone
someone else in the community needs them also.
sooner than later.
</para>
</section>
<section id='best-practices-summary'>
<title>Summary</title>
<para>
This section summarizes thee key recommendations described in the
previous sections:
<itemizedlist>
<listitem><para>Use <link linkend='git'>Git</link>
as the source control system.</para></listitem>
<listitem><para>Maintain your metadata in layers that make sense
for your situation.
See the "<link linkend='understanding-and-creating-layers'>Understanding
and Creating Layers</link>" section for more information on
layers.</para></listitem>
<listitem><para>Separate the project's metadata and code by using
separate Git repositories.
See the "<link linkend='yocto-project-repositories'>Yocto Project
Source Repositories</link>" section for information on these
repositories.
See the "<link linkend='getting-setup'>Getting Set Up</link>" section
for information on how to set up various Yocto Project related
Git repositories.</para></listitem>
<listitem><para>Set up the directory for the shared state cache
(<ulink url='&YOCTO_DOCS_REF_URL;#var-SSTATE_DIR'><filename>SSTATE_DIR</filename></ulink>)
where they make sense.
For example, set up the sstate cache for developers using the
same office and share source directories on the developer's
machines.</para></listitem>
<listitem><para>Set up an autobuilder and have it populate the
sstate cache and source directories.</para></listitem>
<listitem><para>Follow the project commit guidelines for
writing good commit messages.
See the "<link linkend='how-to-submit-a-change'>How to Submit a Change</link>"
section.</para></listitem>
<listitem><para>Send changes to the core sooner than later
as others likely run into the same issues.
For some guidance on mailing lists to use, see the list in the
"<link linkend='how-to-submit-a-change'>How to Submit a Change</link>"
section.
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></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id='yocto-project-repositories'>
@@ -311,17 +533,61 @@
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>
<listitem><para id='cross-development-toolchain'>
<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 a cross-development toolchain
installer that when run installs the toolchain that contains the development tools you
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 a
cross-development toolchain installer that, when run, installs
the toolchain that contains the development tools you
need to cross-compile and test your software.
The Yocto Project ships with images that contain installers for
toolchains for supported architectures as well.
Sometimes this toolchain is referred to as the meta-toolchain.</para></listitem>
Sometimes this toolchain is referred to as the
meta-toolchain.</para>
<para>Following is a list of toolchain recipes with brief
descriptions of each:
<itemizedlist>
<listitem><para><filename>gcc-cross-initial</filename>:
The initial compiler needed to bootstrap the toolchain
that runs on the host and is used to build software
for the target.
This tool is a 'native' package.</para></listitem>
<listitem><para><filename>gcc-cross-intermediate</filename>:
The second stage of the bootstrap process that runs
on the host and builds software for the target.
This tool is a 'native' package.</para></listitem>
<listitem><para><filename>gcc-cross</filename>:
The the final stage of the bootstrap process that
results in the cross compiler that runs on the host
and builds software for the target.
If you are replacing the cross compiler toolchain
with a custom version, this is what you must replace.
This tool is a 'native' package.</para></listitem>
<listitem><para><filename>gcc-runtime</filename>:
Runtime libraries from the toolchain bootstrapping
process.
This tool produces a binary for the target.
</para></listitem>
<listitem><para><filename>gcc-crosssdk-initial/intermediate</filename>:
Stage 1 and 2 of the a cross compiler that runs on the
host and builds for the SDK.
Often the SDK is not the same target as the host.
This tool is a 'native' binary.</para></listitem>
<listitem><para><filename>gcc-crosssdk</filename>:
The final stage of the SDK compiler.
This tool is a 'native' binary.
The tool runs on the host and builds for the SDK.
</para></listitem>
<listitem><para><filename>gcc-cross-canadian</filename>:
The compiler that runs on the SDK machine and is
included with the SDK that builds software for the
target.
This tool is a 'nativesdk' package.</para></listitem>
</itemizedlist></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 or QEMU
@@ -334,9 +600,14 @@
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 id='metadata'><emphasis>Metadata:</emphasis>
The files that BitBake parses when building an image.
In general, Metadata includes recipes, classes, and
configuration files.
In the context of the kernel ("kernel Metadata"),
it refers to metadata in the <filename>meta</filename>
branches of the kernel source Git repositories.
</para></listitem>
<listitem><para id='oe-core'><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

View File

@@ -16,7 +16,9 @@
</imageobject>
</mediaobject>
<title></title>
<title>
Yocto Project Development Manual
</title>
<authorgroup>
<author>

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -82,10 +82,10 @@
The linux-yocto style recipes can optionally define the following
variables:
<literallayout class='monospaced'>
KBRANCH
KERNEL_FEATURES
KBRANCH_DEFAULT
LINUX_KERNEL_TYPE
<ulink url='&YOCTO_DOCS_REF_URL;#var-KBRANCH'>KBRANCH</ulink>
<ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'>KERNEL_FEATURES</ulink>
<ulink url='&YOCTO_DOCS_REF_URL;#var-KBRANCH_DEFAULT'>KBRANCH_DEFAULT</ulink>
<ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'>LINUX_KERNEL_TYPE</ulink>
</literallayout>
<filename>KBRANCH_DEFAULT</filename> defines the Linux kernel source
repository's default branch to use to build the Linux kernel.
@@ -104,7 +104,8 @@
used in assembling the configuration.
If you do not specify a <filename>LINUX_KERNEL_TYPE</filename>,
it defaults to "standard".
Together with <filename>KMACHINE</filename>,
Together with
<ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink>,
<filename>LINUX_KERNEL_TYPE</filename> defines the search
arguments used by the kernel tools to find the
appropriate description within the kernel Metadata with which to
@@ -139,7 +140,8 @@
then for the <filename>LINUX_KERNEL_TYPE</filename>.
If the tools cannot find a partial match, they will use the
sources from the <filename>KBRANCH</filename> and any configuration
specified in the <filename>SRC_URI</filename>.
specified in the
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink>.
</para>
<para>
@@ -394,19 +396,20 @@
description files within the structure:
<itemizedlist>
<listitem><para>If your file contains
only configuration fragments, place the file in
<filename>cfg</filename>.</para></listitem>
only configuration fragments, place the file in the
<filename>cfg</filename> directory.</para></listitem>
<listitem><para>If your file contains
only source-code fixes, place the file in
<filename>patches</filename>.</para></listitem>
only source-code fixes, place the file in the
<filename>patches</filename> directory.</para></listitem>
<listitem><para>If your file encapsulates
a major feature, often combining sources and configurations,
place the file in <filename>features</filename>.
place the file in <filename>features</filename> directory.
</para></listitem>
<listitem><para>If your file aggregates
non-hardware configuration and patches in order to define a
base kernel policy or major kernel type to be reused across
multiple BSPs, place the file in <filename>ktypes</filename>.
multiple BSPs, place the file in <filename>ktypes</filename>
directory.
</para></listitem>
</itemizedlist>
</para>
@@ -466,8 +469,8 @@
</para>
<para>
<filename>KFEATURE_DESCRIPTION</filename> provides a short
description of the fragment.
<ulink url='&YOCTO_DOCS_REF_URL;#var-KFEATURE_DESCRIPTION'><filename>KFEATURE_DESCRIPTION</filename></ulink>
provides a short description of the fragment.
Higher level kernel tools use this description.
</para>
@@ -653,7 +656,8 @@
It is not strictly necessary to create a kernel type
<filename>.scc</filename> file.
The Board Support Package (BSP) file can implicitly define
the kernel type using a <filename>define KTYPE myktype</filename>
the kernel type using a <filename>define
<ulink url='&YOCTO_DOCS_REF_URL;#var-KTYPE'>KTYPE</ulink> myktype</filename>
line.
See the "<link linkend='bsp-descriptions'>BSP Descriptions</link>"
section for more information.
@@ -680,13 +684,15 @@
kconf mybsp.cfg
</literallayout>
Every BSP description should define the
<filename>KMACHINE</filename>, <filename>KTYPE</filename>,
and <filename>KARCH</filename> variables.
<ulink url='&YOCTO_DOCS_REF_URL;#var-KMACHINE'><filename>KMACHINE</filename></ulink>,
<ulink url='&YOCTO_DOCS_REF_URL;#var-KTYPE'><filename>KTYPE</filename></ulink>,
and <ulink url='&YOCTO_DOCS_REF_URL;#var-KARCH'><filename>KARCH</filename></ulink>
variables.
These variables allow the OpenEmbedded build system to identify
the description as meeting the criteria set by the recipe being
built.
This simple example supports the "mybsp" machine for the "standard"
kernel and the 'i386" architecture.
kernel and the "i386" architecture.
</para>
<para>
@@ -695,9 +701,9 @@
description file does not exist.
Thus, if you do not have kernel types defined in your kernel
Metadata, you only need to ensure that the kernel recipe's
<filename>LINUX_KERNEL_TYPE</filename> variable and the
<filename>KTYPE</filename> variable in the BSP description
file match.
<ulink url='&YOCTO_DOCS_REF_URL;#var-LINUX_KERNEL_TYPE'><filename>LINUX_KERNEL_TYPE</filename></ulink>
variable and the <filename>KTYPE</filename> variable in the
BSP description file match.
<note>
Future versions of the tooling make the specification of
<filename>KTYPE</filename> in the BSP optional.

View File

@@ -7,11 +7,15 @@
<title>Common Tasks</title>
<para>
This chapter presents several common tasks that are performed when you
This chapter presents several common tasks you perform when you
work with the Yocto Project Linux kernel.
These tasks include preparing a layer, modifying an existing recipe,
iterative development, working with your own sources, and incorporating
out-of-tree modules.
<note>
The examples presented in this chapter work with the Yocto Project
1.2.2 Release and forward.
</note>
</para>
<section id='creating-and-preparing-a-layer'>
@@ -29,7 +33,7 @@
sections in the Yocto Project Development Manual:
<itemizedlist>
<listitem><para>"<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>" for
general information on layers and how to create them.</para></listitem>
general information on layers and how to create layers.</para></listitem>
<listitem><para>"<ulink url='&YOCTO_DOCS_DEV_URL;#get-your-layer-setup-for-the-build'>Get Your Layer Setup for the Build</ulink>" for
specific instructions on setting up a layer for kernel
development.</para></listitem>
@@ -217,6 +221,49 @@
"linux-yocto".
</para>
<section id='tip-dirty-string'>
<title>"-dirty" String</title>
<para>
<emphasis>AR - Darrren Hart:</emphasis> This section
originated from the old Yocto Project Kernel Architecture
and Use Manual.
It was decided we need to put it in this section here.
Darren needs to figure out where we want it and what part
of it we want (all, revision???)
</para>
<para>
If kernel images are being built with "-dirty" on the
end of the version string, this simply means that
modifications in the source directory have not been committed.
<literallayout class='monospaced'>
$ git status
</literallayout>
</para>
<para>
You can use the above Git command to report modified,
removed, or added files.
You should commit those changes to the tree regardless of
whether they will be saved, exported, or used.
Once you commit the changes, you need to rebuild the kernel.
</para>
<para>
To force a pickup and commit of all such pending changes,
enter the following:
<literallayout class='monospaced'>
$ git add .
$ git commit -s -a -m "getting rid of -dirty"
</literallayout>
</para>
<para>
Next, rebuild the kernel.
</para>
</section>
<section id='generating-configuration-files'>
<title>Generating Configuration Files</title>
@@ -238,7 +285,7 @@
The resulting <filename>.config</filename> file is
located in
<filename>${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink><filename>}</filename> under the
<filename>linux-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink><filename>}-${KTYPE}-build</filename> directory.
<filename>linux-${</filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink><filename>}-${<ulink url='&YOCTO_DOCS_REF_URL;#var-KTYPE'><filename>KTYPE</filename></ulink>}-build</filename> directory.
You can use the entire <filename>.config</filename> file as the
<filename>defconfig</filename> file as described in the
"<link linkend='changing-the-configuration'>Changing the Configuration</link>" section.
@@ -612,11 +659,14 @@
<para>
The important point to note here is the
<filename>KERNEL_SRC</filename> variable.
The module <filename>bbclass</filename> sets this variable,
as well as the <filename>KERNEL_PATH</filename> variable
to <filename>${STAGING_KERNEL_DIR}</filename> with the
necessary Linux kernel build information to build modules.
<ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_SRC'><filename>KERNEL_SRC</filename></ulink>
variable.
The class <filename>module.bbclass</filename> sets this variable,
as well as the
<ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_PATH'><filename>KERNEL_PATH</filename></ulink>
variable to
<filename>${<ulink url='&YOCTO_DOCS_REF_URL;#var-STAGING_KERNEL_DIR'><filename>STAGING_KERNEL_DIR</filename></ulink>}</filename>
with the necessary Linux kernel build information to build modules.
If your module <filename>Makefile</filename> uses a different
variable, you might want to override the
<filename>do_compile()</filename> step, or create a patch to
@@ -656,11 +706,122 @@
</para>
<para>
Because the variable is <filename>RRECOMMENDS</filename> and not
a <filename>RDEPENDS</filename> variable, the build will not fail
if this module is not available to include in the image.
Because the variable is
<ulink url='&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS'><filename>RRECOMMENDS</filename></ulink>
and not a
<ulink url='&YOCTO_DOCS_REF_URL;#var-RDEPENDS'><filename>RDEPENDS</filename></ulink>
variable, the build will not fail if this module is not available
to include in the image.
</para>
</section>
<section id='inspecting-changes-and-commits'>
<title>Inspecting Changes and Commits</title>
<para>
A common question when working with a kernel is:
"What changes have been applied to this tree?"
Rather than using "grep" across directories to see what has
changed, you can use Git to inspect or search the kernel tree.
Using Git is an efficent way to see what has changed in the tree.
</para>
<section id='what-changed-in-a-kernel'>
<title>What Changed in a Kernel?</title>
<para>
Following are a few examples that show how to use Git
commands to examine changes.
These examples are by no means the only way to see changes.
<note>
In the following examples, unless you provide a commit
range, <filename>kernel.org</filename> history is blended
with Yocto Project kernel changes.
You can form ranges by using branch names from the
kernel tree as the upper and lower commit markers with
the Git commands.
You can see the branch names through the web interface
to the Yocto Project source repositories at
<ulink url='http://git.yoctoproject.org/cgit.cgi'></ulink>.
</note>
To see a full range of the changes, use the
<filename>git whatchanged</filename> command and specify a
commit range for the branch
(<filename>&lt;commit&gt;..&lt;commit&gt;</filename>).
</para>
<para>
Here is an example that looks at what has changed in the
<filename>emenlow</filename> branch of the
<filename>linux-yocto-3.4</filename> kernel.
The lower commit range is the commit associated with the
<filename>standard/base</filename> branch, while
the upper commit range is the commit associated with the
<filename>standard/emenlow</filename> branch.
<literallayout class='monospaced'>
$ git whatchanged origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
<para>
To see short, oneline summaries of changes use the
<filename>git log</filename> command:
<literallayout class='monospaced'>
$ git log --oneline origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
<para>
Use this command to see code differences for the changes:
<literallayout class='monospaced'>
$ git diff origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
<para>
Use this command to see the commit log messages and the
text differences:
<literallayout class='monospaced'>
$ git show origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
<para>
Use this command to create individual patches for
each change.
Here is an example that that creates patch files for each
commit and places them in your <filename>Documents</filename>
directory:
<literallayout class='monospaced'>
$ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
</section>
<section id='showing-a-particular-feature-or-branch-change'>
<title>Showing a Particular Feature or Branch Change</title>
<para>
Tags in the Yocto Project kernel tree divide changes for
significant features or branches.
The <filename>git show &lt;tag&gt;</filename> command shows
changes based on a tag.
Here is an example that shows <filename>systemtap</filename>
changes:
<literallayout class='monospaced'>
$ 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>
</section>
</section>
</chapter>
<!--
vim: expandtab tw=80 ts=4

View File

@@ -0,0 +1,253 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<appendix id='kernel-dev-concepts-appx'>
<title>Advanced Kernel Concepts</title>
<section id='kernel-big-picture'>
<title>Yocto Project Kernel Development and Maintenance</title>
<para>
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 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
candidate or "rc" phase and not yet a final release.
But, by being in the final stages of external development, the team knows that the
<filename>kernel.org</filename> final release will clearly be within the early stages of
the Yocto Project development window.
</para>
<para>
This balance allows the team to deliver the most up-to-date kernel
possible, while still ensuring that the team has a stable official release for
the baseline Linux kernel version.
</para>
<para>
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
kernels available 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 Linux kernel that caters
to specific embedded designer needs for targeted hardware.
</para>
<para>
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
to include feature development upstream is through a kernel uprev process.
Back-porting hundreds of individual fixes and minor features from various
kernel versions is not sustainable and can easily compromise quality.
</para>
<para>
During the uprev cycle, the Yocto Project team uses an ongoing analysis of
kernel development, BSP support, and release timing to select the best
possible <filename>kernel.org</filename> version.
The team continually monitors community kernel
development to look for significant features of interest.
The team does consider back-porting large features if they have a significant advantage.
User or community demand can also trigger a back-port or creation of new
functionality in the Yocto Project baseline kernel during the uprev cycle.
</para>
<para>
Generally speaking, every new kernel both adds features and introduces new bugs.
These consequences are the basic properties of upstream kernel development and are
managed by the Yocto Project team's kernel strategy.
It is the Yocto Project team's policy to not back-port minor features to the released kernel.
They only consider back-porting significant technological jumps - and, that is done
after a complete gap analysis.
The reason for this policy is that back-porting any small to medium sized change
from an evolving kernel can easily create mismatches, incompatibilities and very
subtle errors.
</para>
<para>
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 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
amounts of testing to be done on the kernel, which prevents
surprises when selecting the next major uprev.
The quality of these cutting edge kernels is evolving and the kernels are used in leading edge
feature and BSP development.
</para>
</section>
<section id='kernel-architecture'>
<title>Kernel Architecture</title>
<para>
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>
<section id='architecture-overview'>
<title>Overview</title>
<para>
As mentioned earlier, a key goal of the Yocto Project is to present the
developer with
a kernel that has a clear and continuous history that is visible to the user.
The architecture and mechanisms used achieve that goal in a manner similar to the
upstream <filename>kernel.org</filename>.
</para>
<para>
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.
For information on Git as applied to the Yocto Project, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink>" section in the
Yocto Project Development Manual.
</para>
<para>
The result is that the user has the ability to see the added features and
the commits that make up those features.
In addition to being able to see added features, the user can also view the history of what
made up the baseline kernel.
</para>
<para>
The following illustration shows the conceptual Yocto Project kernel.
</para>
<para>
<imagedata fileref="figures/kernel-architecture-overview.png" width="6in" depth="7in" align="center" scale="100" />
</para>
<para>
In the illustration, the "Kernel.org Branch Point"
marks the specific spot (or release) from
which the Yocto Project kernel is created.
From this point "up" in the tree, features and differences are organized and tagged.
</para>
<para>
The "Yocto Project Baseline Kernel" contains functionality that is common to every kernel
type and BSP that is organized further up the tree.
Placing these common features in the
tree this way means features don't have to be duplicated along individual branches of the
structure.
</para>
<para>
From the Yocto Project Baseline Kernel, branch points represent specific functionality
for individual BSPs as well as real-time kernels.
The illustration represents this through three BSP-specific branches and a real-time
kernel branch.
Each branch represents some unique functionality for the BSP or a real-time kernel.
</para>
<para>
In this example structure, the real-time kernel branch has common features for all
real-time kernels and contains
more branches for individual BSP-specific real-time kernels.
The illustration shows three branches as an example.
Each branch points the way to specific, unique features for a respective real-time
kernel as they apply to a given BSP.
</para>
<para>
The resulting tree structure presents a clear path of markers (or branches) to the
developer that, for all practical purposes, is the kernel needed for any given set
of requirements.
</para>
</section>
<section id='branching-and-workflow'>
<title>Branching Strategy and Workflow</title>
<para>
The Yocto Project team creates kernel branches at points where functionality is
no longer shared and thus, needs to be isolated.
For example, board-specific incompatibilities would require different functionality
and would require a branch to separate the features.
Likewise, for specific kernel features, the same branching strategy is used.
</para>
<para>
This branching strategy results in a tree that has features organized to be specific
for particular functionality, single kernel types, or a subset of kernel types.
This strategy also results in not having to store the same feature twice
internally in the tree.
Rather, the kernel team stores the unique differences required to apply the
feature onto the kernel type in question.
<note>
The Yocto Project team strives to place features in the tree such that they can be
shared by all boards and kernel types where possible.
However, during development cycles or when large features are merged,
the team cannot always follow this practice.
In those cases, the team uses isolated branches to merge features.
</note>
</para>
<para>
BSP-specific code additions are handled in a similar manner to kernel-specific additions.
Some BSPs only make sense given certain kernel types.
So, for these types, the team creates branches off the end of that kernel type for all
of the BSPs that are supported on that kernel type.
From the perspective of the tools that create the BSP branch, the BSP is really no
different than a feature.
Consequently, the same branching strategy applies to BSPs as it does to features.
So again, rather than store the BSP twice, the team only stores the unique
differences for the BSP across the supported multiple kernels.
</para>
<para>
While this strategy can result in a tree with a significant number of branches, it is
important to realize that from the developer's point of view, there is a linear
path that travels from the baseline <filename>kernel.org</filename>, through a select
group of features and ends with their BSP-specific commits.
In other words, the divisions of the kernel are transparent and are not relevant
to the developer on a day-to-day basis.
From the developer's perspective, this path is the "master" branch.
The developer does not need to be aware of the existence of any other branches at all.
Of course, there is value in the existence of these branches
in the tree, should a person decide to explore them.
For example, a comparison between two BSPs at either the commit level or at the line-by-line
code <filename>diff</filename> level is now a trivial operation.
</para>
<para>
Working with the kernel as a structured tree follows recognized community best practices.
In particular, the kernel as shipped with the product, should be
considered an "upstream source" and viewed as a series of
historical and documented modifications (commits).
These modifications represent the development and stabilization done
by the Yocto Project kernel development team.
</para>
<para>
Because commits only change at significant release points in the product life cycle,
developers can work on a branch created
from the last relevant commit in the shipped Yocto Project kernel.
As mentioned previously, the structure is transparent to the developer
because the kernel tree is left in this state after cloning and building the kernel.
</para>
</section>
<section id='source-code-manager-git'>
<title>Source Code Manager - Git</title>
<para>
The Source Code Manager (SCM) is Git.
This SCM is the obvious mechanism for meeting the previously mentioned goals.
Not only is it the SCM for <filename>kernel.org</filename> but,
Git continues to grow in popularity and supports many different work flows,
front-ends and management techniques.
</para>
<para>
You can find documentation on Git at <ulink url='http://git-scm.com/documentation'></ulink>.
You can also get an introduction to Git as it applies to the Yocto Project in the
"<ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink>"
section in the Yocto Project Development Manual.
These referenced sections overview Git and describe a minimal set of
commands that allows you to be functional using Git.
<note>
You can use as much, or as little, of what Git has to offer to accomplish what
you need for your project.
You do not have to be a "Git Master" in order to use it with the Yocto Project.
</note>
</para>
</section>
</section>
</appendix>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -1,8 +1,11 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
<xsl:param name="html.stylesheet" select="'kernel-dev-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel">A</xsl:param>
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
<xsl:param name="chunker.output.indent" select="'yes'"/>
<xsl:param name="chunk.quietly" select="1"/>
<xsl:param name="chunk.first.sections" select="1"/>
<xsl:param name="chunk.section.depth" select="10"/>
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:param name="ulink.target" select="'_self'" />
<xsl:param name="base.dir" select="'html/kernel-dev/'"/>
<xsl:param name="html.stylesheet" select="'../book.css'"/>
<xsl:param name="eclipse.manifest" select="0"/>
<xsl:param name="create.plugin.xml" select="0"/>
<xsl:param name="suppress.navigation" select="1"/>
<xsl:param name="generate.index" select="0"/>
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel">A</xsl:param>
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<chapter id='kernel-dev-faq'>
<appendix id='kernel-dev-faq'>
<title>Kernel Development FAQ</title>
<qandaset>
<qandaentry>
@@ -125,7 +125,7 @@
</qandaentry>
</qandaset>
</chapter>
</appendix>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -5,6 +5,27 @@
<chapter id='kernel-dev-intro'>
<title>Introduction</title>
<para>
<emphasis>AR - Darrren Hart:</emphasis> See if the concepts in these
three bullets are adequately covered in somewhere in this manual:
<itemizedlist>
<listitem><para>Do we convey that our kernel Git repositories
have a clear and continuous history, similar to the way the
kernel Git repositories for <filename>kernel.org</filename>
do.
</para></listitem>
<listitem><para>Does the manual note that Yocto Project delivers
a key set of supported kernel types, where
each type is tailored to meet a specific use (e.g. networking,
consumer, devices, and so forth).</para></listitem>
<listitem><para>Do we convey that the Yocto Project uses a
Git branching strategy that, from a
developer's point of view, results in a linear path from the
baseline kernel.org, through a select group of features and
ends with their BSP-specific commits.</para></listitem>
</itemizedlist>
</para>
<section id='kernel-dev-overview'>
<title>Overview</title>
@@ -14,7 +35,7 @@
This manual provides background information on the Yocto Linux kernel
<ulink url='&YOCTO_DOCS_DEV_URL;#metadata'>Metadata</ulink>,
describes common tasks you can perform using the kernel tools,
and shows you how to use the Metadata needed to work with
and shows you how to use the kernel Metadata needed to work with
the kernel inside the Yocto Project.
</para>
@@ -32,7 +53,7 @@
Also included is a linux-yocto development recipe
(<filename>linux-yocto-dev.bb</filename>) should you want to work
with the very latest in upstream Linux kernel development and
Metadata development.
kernel Metadata development.
</para>
<para>

View File

@@ -0,0 +1,218 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<appendix id='kernel-dev-maint-appx'>
<title>Kernel Maintenance</title>
<section id='tree-construction'>
<title>Tree Construction</title>
<para>
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 under the heading "Yocto Linux Kernel" at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'>&YOCTO_GIT_URL;/cgit.cgi</ulink>
and can be shipped as part of a Yocto Project release.
The team creates these repositories by
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 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
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 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.4:
<literallayout class='monospaced'>
$ 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 Yocto Project
kernel files, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Yocto Project 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.4</filename>:
<literallayout class='monospaced'>
$ 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,
you can see a snapshot of all the kernel configuration and feature descriptions that are
used to build that particular kernel repository.
These descriptions are in the form of <filename>.scc</filename> files.
</para>
<para>
You should realize, however, that browsing your local kernel repository
for feature descriptions and patches is not an effective way to determine what is in a
particular kernel branch.
Instead, you should use Git directly to discover the changes in a branch.
Using Git is an efficient and flexible way to inspect changes to the kernel.
For examples showing how to use Git to inspect kernel commits, see the following sections
in this chapter.
<note>
Ground up reconstruction of the complete kernel tree is an action only taken by the
Yocto Project team during an active development cycle.
When you create a clone of the kernel Git repository, you are simply making it
efficiently available for building and development.
</note>
</para>
<para>
The following steps describe what happens when the Yocto Project Team constructs
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
that includes the new feature, patch or BSP:
<orderedlist>
<listitem><para>A top-level kernel feature is passed to the kernel build subsystem.
Normally, this feature is a BSP for a particular kernel type.</para></listitem>
<listitem><para>The file that describes the top-level feature is located by searching
these system directories:
<itemizedlist>
<listitem><para>The in-tree kernel-cache directories, which are located
in <filename>meta/cfg/kernel-cache</filename></para></listitem>
<listitem><para>Areas pointed to by <filename>SRC_URI</filename> statements
found in recipes</para></listitem>
</itemizedlist>
For a typical build, the target of the search is a
feature description in an <filename>.scc</filename> file
whose name follows this format:
<literallayout class='monospaced'>
&lt;bsp_name&gt;-&lt;kernel_type&gt;.scc
</literallayout>
</para></listitem>
<listitem><para>Once located, the feature description is either compiled into a simple script
of actions, or into an existing equivalent script that is already part of the
shipped kernel.</para></listitem>
<listitem><para>Extra features are appended to the top-level feature description.
These features can come from the
<ulink url='&YOCTO_DOCS_REF_URL;#var-KERNEL_FEATURES'><filename>KERNEL_FEATURES</filename></ulink>
variable in recipes.</para></listitem>
<listitem><para>Each extra feature is located, compiled and appended to the script
as described in step three.</para></listitem>
<listitem><para>The script is executed to produce a series of <filename>meta-*</filename>
directories.
These directories are descriptions of all the branches, tags, patches and configurations that
need to be applied to the base Git repository to completely create the
source (build) branch for the new BSP or feature.</para></listitem>
<listitem><para>The base repository is cloned, and the actions
listed in the <filename>meta-*</filename> directories are applied to the
tree.</para></listitem>
<listitem><para>The Git repository is left with the desired branch checked out and any
required branching, patching and tagging has been performed.</para></listitem>
</orderedlist>
</para>
<para>
The kernel tree is now ready for developer consumption to be locally cloned,
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.
The full repository generation that is found in the
official Yocto Project kernel repositories at
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'>http://git.yoctoproject.org/cgit.cgi</ulink>
is the combination of all supported boards and configurations.</para>
<para>The technique the Yocto Project team uses is flexible and allows for seamless
blending of an immutable history with additional patches specific to a
deployment.
Any additions to the kernel become an integrated part of the branches.</para>
</note>
</para>
</section>
<section id='build-strategy'>
<title>Build Strategy</title>
<para>
<emphasis>AR - Darrren Hart:</emphasis> Some parts of this section
need to be in the
"<link linkend='using-an-iterative-development-process'>Using an Iterative Development Process</link>"
section.
Darren needs to figure out which parts and identify them.
</para>
<para>
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:
</para>
<itemizedlist>
<listitem><para>The
<ulink url='&YOCTO_DOCS_REF_URL;#var-SRC_URI'><filename>SRC_URI</filename></ulink> points
to the kernel Git repository.</para></listitem>
<listitem><para>A BSP build branch exists.
This branch has the following form:
<literallayout class='monospaced'>
&lt;kernel_type&gt;/&lt;bsp_name&gt;
</literallayout></para></listitem>
</itemizedlist>
<para>
The OpenEmbedded build system makes sure these conditions exist before attempting compilation.
Other means, however, do exist, such as as bootstrapping a BSP.
</para>
<para>
Before building a kernel, the build process verifies the tree
and configures the kernel by processing all of the
configuration "fragments" specified by feature descriptions in the <filename>.scc</filename>
files.
As the features are compiled, associated kernel configuration fragments are noted
and recorded in the <filename>meta-*</filename> series of directories in their compilation order.
The fragments are migrated, pre-processed and passed to the Linux Kernel
Configuration subsystem (<filename>lkc</filename>) as raw input in the form
of a <filename>.config</filename> file.
The <filename>lkc</filename> uses its own internal dependency constraints to do the final
processing of that information and generates the final <filename>.config</filename> file
that is used during compilation.
</para>
<para>
Using the board's architecture and other relevant values from the board's template,
kernel compilation is started and a kernel image is produced.
</para>
<para>
The other thing that you notice once you configure a kernel is that
the build process generates a build tree that is separate from your kernel's local Git
source repository tree.
This build tree has a name that uses the following form, where
<filename>${MACHINE}</filename> is the metadata name of the machine (BSP) and "kernel_type" is one
of the Yocto Project supported kernel types (e.g. "standard"):
<literallayout class='monospaced'>
linux-${MACHINE}-&lt;kernel_type&gt;-build
</literallayout>
</para>
<para>
The existing support in the <filename>kernel.org</filename> tree achieves this
default functionality.
</para>
<para>
This behavior means that all the generated files for a particular machine or BSP are now in
the build tree directory.
The files include the final <filename>.config</filename> file, all the <filename>.o</filename>
files, the <filename>.a</filename> files, and so forth.
Since each machine or BSP has its own separate build directory in its own separate branch
of the Git repository, you can easily switch between different builds.
</para>
</section>
</appendix>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -16,7 +16,9 @@
</imageobject>
</mediaobject>
<title></title>
<title>
Yocto Project Linux Kernel Development Manual
</title>
<authorgroup>
<author>
@@ -63,6 +65,10 @@
<xi:include href="kernel-dev-advanced.xml"/>
<xi:include href="kernel-dev-concepts-appx.xml"/>
<xi:include href="kernel-dev-maint-appx.xml"/>
<!--
<xi:include href="kernel-dev-examples.xml"/>
-->

View File

@@ -246,10 +246,10 @@
</para>
<section id='change-inspection-kernel-changes-commits'>
<title>Change Inspection: Kernel Changes/Commits</title>
<title>Change Inspection: Changes/Commits</title>
<para>
A common question when working with a BSP or kernel is:
A common question when working with a kernel is:
"What changes have been applied to this tree?"
</para>
@@ -257,53 +257,95 @@
In projects that have a collection of directories that
contain patches to the kernel, it is possible to inspect or "grep" the contents
of the directories to get a general feel for the changes.
This sort of patch inspection is not an efficient way to determine what has been done to the
kernel.
This sort of patch inspection is not an efficient way to determine what has been
done to the kernel.
The reason it is inefficient is because there are many optional patches that are
selected based on the kernel type and the feature description.
Additionally, patches could exist in directories that are not included in the search.
</para>
<para>
A more efficient way to determine what has changed in the kernel is to use
A more efficient way to determine what has changed in the branch is to use
Git and inspect or search the kernel tree.
This method gives you a full view of not only the source code modifications,
but also provides the reasons for the changes.
</para>
<section id='what-changed-in-a-bsp'>
<title>What Changed in a BSP?</title>
<section id='what-changed-in-a-kernel'>
<title>What Changed in a Kernel?</title>
<para>
Following are a few examples that show how to use Git to examine changes.
Because the Yocto Project Git repository does not break existing Git
functionality and because there exists many permutations of these types of
commands, there are many more methods to discover changes.
Following are a few examples that show how to use Git commands to examine changes.
Because Git repositories in the Yocto Project do not break existing Git
functionality, and because there exists many permutations of these types of
Git commands, many methods exist by which you can discover changes.
<note>
Unless you provide a commit range
(&lt;kernel-type&gt;..&lt;bsp&gt;-&lt;kernel-type&gt;), <filename>kernel.org</filename> history
is blended with Yocto Project changes.
In the following examples, unless you provide a commit range,
<filename>kernel.org</filename> history is blended with Yocto Project
kernel changes.
You can form ranges by using branch names from the kernel tree as the
upper and lower commit markers with the Git commands.
You can see the branch names through the web interface to the
Yocto Project source repositories at
<ulink url='http://git.yoctoproject.org/cgit.cgi'></ulink>.
For example, the branch names for the <filename>linux-yocto-3.4</filename>
kernel repository can be seen at
<ulink url='http://git.yoctoproject.org/cgit.cgi/linux-yocto-3.4/refs/heads'></ulink>.
</note>
To see a full range of the changes, use the
<filename>git whatchanged</filename> command and specify a commit range
for the branch (<filename>&lt;commit&gt;..&lt;commit&gt;</filename>).
</para>
<para>
Here is an example that looks at what has changed in the
<filename>emenlow</filename> branch of the
<filename>linux-yocto-3.4</filename> kernel.
The lower commit range is the commit associated with the
<filename>standard/base</filename> branch, while
the upper commit range is the commit associated with the
<filename>standard/emenlow</filename> branch.
<literallayout class='monospaced'>
# full description of the changes
&gt; git whatchanged &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt;
&gt; eg: git whatchanged yocto/standard/base..yocto/standard/common-pc/base
$ git whatchanged origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
# summary of the changes
&gt; git log --pretty=oneline --abbrev-commit &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt;
<para>
To see a summary of changes use the <filename>git log</filename> command.
Here is an example using the same branches:
<literallayout class='monospaced'>
$ git log --oneline origin/standard/base..origin/standard/emenlow
</literallayout>
The <filename>git log</filename> output might be more useful than
the <filename>git whatchanged</filename> as you get
a short, one-line summary of each change and not the entire commit.
</para>
# source code changes (one combined diff)
&gt; git diff &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt;
&gt; git show &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt;
<para>
If you want to see code differences associated with all the changes, use
the <filename>git diff</filename> command.
Here is an example:
<literallayout class='monospaced'>
$ git diff origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
# dump individual patches per commit
&gt; git format-patch -o &lt;dir&gt; &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt;
<para>
You can see the commit log messages and the text differences using the
<filename>git show</filename> command:
Here is an example:
<literallayout class='monospaced'>
$ git show origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
# determine the change history of a particular file
&gt; git whatchanged &lt;path to file&gt;
# determine the commits which touch each line in a file
&gt; git blame &lt;path to file&gt;
<para>
You can create individual patches for each change by using the
<filename>git format-patch</filename> command.
Here is an example that that creates patch files for each commit and
places them in your <filename>Documents</filename> directory:
<literallayout class='monospaced'>
$ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow
</literallayout>
</para>
</section>

View File

@@ -3,6 +3,9 @@
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" />
<!-- <xsl:param name="generate.toc" select="'article nop'"></xsl:param> -->
<xsl:param name="html.stylesheet" select="'kernel-style.css'" />
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="A" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -0,0 +1,27 @@
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
version="1.0">
<xsl:import
href="http://docbook.sourceforge.net/release/xsl/current/eclipse/eclipse3.xsl" />
<xsl:param name="chunker.output.indent" select="'yes'"/>
<xsl:param name="chunk.quietly" select="1"/>
<xsl:param name="chunk.first.sections" select="1"/>
<xsl:param name="chunk.section.depth" select="10"/>
<xsl:param name="use.id.as.filename" select="1"/>
<xsl:param name="ulink.target" select="'_self'" />
<xsl:param name="base.dir" select="'html/kernel-manual/'"/>
<xsl:param name="html.stylesheet" select="'../book.css'"/>
<xsl:param name="eclipse.manifest" select="0"/>
<xsl:param name="create.plugin.xml" select="0"/>
<xsl:param name="suppress.navigation" select="1"/>
<xsl:param name="generate.index" select="0"/>
<xsl:param name="chapter.autolabel" select="1" />
<xsl:param name="appendix.autolabel" select="A" />
<xsl:param name="section.autolabel" select="1" />
<xsl:param name="section.label.includes.component.label" select="1" />
</xsl:stylesheet>

View File

@@ -16,7 +16,9 @@
</imageobject>
</mediaobject>
<title></title>
<title>
The Yocto Project Kernel Architecture and Use Manual
</title>
<authorgroup>
<author>

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

Some files were not shown because too many files have changed in this diff Show More