Compare commits

..

689 Commits

Author SHA1 Message Date
Elizabeth Flanagan
3456295898 build-appliance-image: Bump SRCREV
With the pending point release for denzil we need to point
to the release revision and the correct branch.

(From OE-Core rev: 0a9e8bf35afd5990c1b586bba5eb68f643458a4b)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-04 22:23:43 +00:00
Elizabeth Flanagan
c917351c9b DISTRO var bump for pending release
With the pending 1.2.2 release we need to bump distro vars.

(From meta-yocto rev: f9b4864a7fb4f25df74f1bf3dc1d55e72bd27fc1)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-04 22:21:17 +00:00
Tom Zanussi
f3db1cd8ff yocto-bsp: set branches_base for list_property_values()
yocto_bsp_list_property_values() is missing the context it needs to
properly filter choicelists, so add it to the context object.

Fixes [YOCTO #3233]

(From meta-yocto rev: 064b15f76c5b52899f4c3fdef06412c3063062a5)

(From meta-yocto rev: 601b6227908f3dd7972ad62c53d1041f4429aeb2)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:37:08 +00:00
Scott Rifenbark
b0689417df documentation: Formats. Also, the January 2013 date summary
I went into the chapters and did some formatting in order
to generate a new commit.  The commit summary message for
the previous commit was wrong and I pushed it.  The date
for the 1.2.2 release is January 2013.

(From yocto-docs rev: 457549a44cb7871d5c645f5aab02350cf76b6f1f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:27 +00:00
Scott Rifenbark
270402dd38 documentation: Updated manual history tables for Feb 2013
The release date for the five manuals was updated to
Feb 2013 for the 1.2.2 release.

(From yocto-docs rev: 2110815be55bddbfd24495aad7b8d5e2b69f3475)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:27 +00:00
Scott Rifenbark
5d30ffd8f8 documentation: Added February 2013 as release date for 1.3.1
I added this date as the release date for the five manuals
that have a manual history table.

(From yocto-docs rev: 5f107aab8bd2de0be78163eaf356656ddae4bf5f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:27 +00:00
Scott Rifenbark
c2c8bb40e8 poky.ent: Updated to remove "current" and replace with 1.2.2
(From yocto-docs rev: ad61c64d5b33ca3b7aa02f67934c7c2317d8cbe1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:27 +00:00
Scott Rifenbark
625044e9a8 documentation: Updated Manual History table for 1.2.2 release
Involved putting in a place holder date, bumping the copyright
date to 2013, and updating the poky.ent file as appropriate
for 1.2.2 and 7.0.2.

(From yocto-docs rev: 0a76733066b3440809ecafce756c5fdb4eafaae6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:26 +00:00
Scott Rifenbark
d571e5a68a Documentation: ref-manual - Updated LIC_FILES_CHKSUM example.
One of the examples used "startline" instead of "beginline".
Correction made.

(From yocto-docs rev: 59345ad197619280bef7a469d671feae80f0c4e6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:26 +00:00
Scott Rifenbark
8e078932c3 documentation: poky-ref-manual - Fixed grammar typo.
(From yocto-docs rev: 2660f17b79a36772081e37117be85ee304b78f20)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:26 +00:00
Scott Garman
151d4fbc4e cups: patch for CVE-2011-2896
Patch from: http://cups.org/strfiles/3867/str3867.patch

The LZW decompressor in the LWZReadByte function in giftoppm.c in the
David Koblas GIF decoder in PBMPLUS, as used in the gif_read_lzw
function in filter/image-gif.c in CUPS before 1.4.7, the LZWReadByte
function in plug-ins/common/file-gif-load.c in GIMP 2.6.11 and earlier,
the LZWReadByte function in img/gifread.c in XPCE in SWI-Prolog 5.10.4
and earlier, and other products, does not properly handle code words
that are absent from the decompression table when encountered, which
allows remote attackers to trigger an infinite loop or a heap-based
buffer overflow, and possibly execute arbitrary code, via a crafted
compressed stream, a related issue to CVE-2006-1168 and CVE-2011-2895.

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-2896

[YOCTO #3582]
[ CQID: WIND00299595 ]

(From OE-Core rev: f4aca76c7933abf2771999c309d49ab91a3d9480)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>

Merged with denzil branch, partial fix for denzil bug [YOCTO #3652]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:26 +00:00
Li Wang
caa1d03089 librsvg: CVE-2011-3146
Store node type separately in RsvgNode

commit 34c95743ca692ea0e44778e41a7c0a129363de84 upstream

The node name (formerly RsvgNode:type) cannot be used to infer
the sub-type of RsvgNode that we're dealing with, since for unknown
elements we put type = node-name. This lead to a (potentially exploitable)
crash e.g. when the element name started with "fe" which tricked
the old code into considering it as a RsvgFilterPrimitive.
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-3146

https://bugzilla.gnome.org/show_bug.cgi?id=658014

[YOCTO #3581]
[ CQID: WIND00376773 ]
Upstream-Status: Backport

(From OE-Core rev: 6d030fcb69221da073ce413049deb8447934bed5)

Signed-off-by: Li Wang <li.wang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>

Resolved merge conflicts with denzil branch.

Fixes denzil bug [YOCTO #3651].

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:25 +00:00
yanjun.zhu
a86e32a18b squashfs: fix CVE-2012-4025
CQID:WIND00366813

Reference: http://squashfs.git.sourceforge.net/git/gitweb.cgi?
p=squashfs/squashfs;a=patch;h=8515b3d420f502c5c0236b86e2d6d7e3b23c190e

Integer overflow in the queue_init function in unsquashfs.c in
unsquashfs in Squashfs 4.2 and earlier allows remote attackers
to execute arbitrary code via a crafted block_log field in the
superblock of a .sqsh file, leading to a heap-based buffer overflow.

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4025

(From OE-Core rev: e6fddd1961061895e9335fa94b636163efdc9caa)

Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>

[YOCTO #3564]
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:25 +00:00
Scott Garman
156c2554b7 freetype: patches for CVE-2012-5668, 5669, and 5670
For details of these security issues, please see:

http://www.openwall.com/lists/oss-security/2012/12/25/1

Thanks to Eren Turkay <eren@hambedded.org> for submitting source
patches that apply cleanly to freetype 2.4.9.

This fixes denzil bug [YOCTO #3649]

(From OE-Core rev: be34916d81b71385a560a6990c7b30eba243b356)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:25 +00:00
Scott Garman
b6037b6d2f libxml2: patch for CVE-2012-2871
the patch come from:
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libxml/ \
src/include/libxml/tree.h?r1=56276&r2=149930

libxml2 2.9.0-rc1 and earlier, as used in Google Chrome before
21.0.1180.89, does not properly support a cast of an unspecified
variable during handling of XSL transforms, which allows remote
attackers to cause a denial of service or possibly have unknown other
impact via a crafted document, related to the _xmlNs data structure in
include/libxml/tree.h.

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-2871

[YOCTO #3580]
[ CQID: WIND00376779 ]

(From OE-Core rev: fa3d44594360786b2526d64f0ea5bc26b44a1fa8)

Signed-off-by: Li Wang <li.wang at windriver.com>

This fixes denzil bug [YOCTO #3648]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:25 +00:00
Scott Garman
cf77faba91 gitignore: add generated doc files to ignore list
(From OE-Core rev: c067fbcb910f888cc6328d725a395ce681862377)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:24 +00:00
Richard Purdie
88b65c79ac boot-directdisk: Fix kernel location after STAGING_KERNEL_DIR change
This catches up with the STAGING_KERNEL_DIR location change
and uses the correct variable to future proof this issue.

[YOCTO #2783]

(From OE-Core rev: 28715eff6dff3415b1d7b0be8cbb465c417e307f)

(From OE-Core rev: f02a7341e37aec155772e1546d8b21ef2c9f5e9d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:24 +00:00
Scott Garman
bfae0622b5 build-appliance-image: Allow SRCREV to be overriden
This will allow use to automagically set the SRCREV for builds on the
autobuilder. It will still require manual updating for releases.

(From OE-Core rev: 1b4781e5c6eee234fcf57dd53d5167b31d81a482)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:24 +00:00
Scott Garman
01c1421270 psplash: new patch to fix segfault
This fixes a segmentation fault when passing -a without
an argument.

Fixes [YOCTO #2903]

(From OE-Core rev: f5b8ba5e51ac41cf375119a88083617f667a85d5)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:23 +00:00
Mihai Lindner
2ccb03f9b7 sysklogd: removed tabs from syslog.conf
Yocto #2926: syslog.conf should not have tabs within the selector field.
Removed tabs from the selector field of syslog rules. Tabs or spaces
should be used, in syslog.conf, only when separating selectors from
actions.

(From OE-Core rev: 1316be4e597332a629842b3f5a7dde8e45dd057d)

(From OE-Core rev: c806466c8d4a9d0d4a66d34d3565d5879c2f2b0f)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Resolved merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:23 +00:00
Khem Raj
07f304f4e2 grub,guile,cpio,tar,wget: Fix gnulib for absense of gets in eglibc
eglibc 2.16 does not export gets anymore

(From OE-Core rev: 043d67c6677fa87496c4c441e9d366e2003ab9aa)

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>

Resolved merge conflicts with denzil branch and backported guile
patch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:23 +00:00
Khem Raj
db915496d3 bison: Fix for gets being removed from eglibc 2.16
(From OE-Core rev: bc91a267d097c100480ea02ece7fb372167eaf7f)

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-03 12:34:23 +00:00
Khem Raj
8fe4344e74 gettext,m4,augeas,gnutls: Account for removal of gets in eglibc 2.16
These recipes use gnulib which needs this change to use gets
when its defined and not otherwise. Until that change goes into
gnulib and then all these package upgrade gnulib in their sourcebase
we patch them

(From OE-Core rev: b955f1a7bc716055c78ed575eccac6f611dc2395)

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>

Resolved merge conflicts with denzil branch and backported gnutls
patch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:22 +00:00
Khem Raj
3c57cb356e diffutils: Fix build with eglibc 2.16
eglibc 2.16 has removed gets so we account for that

(From OE-Core rev: b6bcd4e26e94364939c8874db90e64fbb242e841)

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-03 12:34:22 +00:00
Khem Raj
38d6972032 coreutils: Fix build with eglibc 2.16
eglibc 2.16 has removed gets so we account for that

(From OE-Core rev: 965243ab5b5d992977193c444dbbbf09701467c2)

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>

Resolved merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-01-03 12:34:22 +00:00
Scott Garman
ef745cb34f poky.conf: Add Ubuntu 12.04.1 LTS to SANITY_TESTED_DISTROS
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 16:02:04 +00:00
yanjun.zhu
a6f0dcbe7d squashfs: fix for CVE-2012-4024
Reference:http://squashfs.git.sourceforge.net/git/gitweb.cgi?p=
squashfs/squashfs;a=commit;h=19c38fba0be1ce949ab44310d7f49887576cc123

Fix potential stack overflow in get_component() where an individual
pathname component in an extract file (specified on the command line
or in an extract file) could exceed the 1024 byte sized targname
allocated on the stack.

Fix by dynamically allocating targname rather than storing it as
a fixed size on the stack.

[YOCTO #3513]

Fixes denzil [YOCTO #3520]

(From OE-Core rev: d35560f33f257bd12a07c7c0be770319086d6ad9)

Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:20 +00:00
Marcin Juszkiewicz
cf796f8908 libxml: disable lzma
On my system libxml-native got linked with host copy of liblzma and as a
result libxslt-native was not linkable:

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

(From OE-Core rev: 42e03215cc494f1508b96c2bb63243a02e5ef812)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:20 +00:00
Saul Wold
e416fb6920 libxml2: Update to 2.8.0
removed 2 patches that are now fixed upstream
updated hash.c LIC_FILES_CHKSUM due to updating the date to 2012

(From OE-Core rev: c74ed920d3a9a0e379f8fd450e2841628ee0beb2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>

Resolved merge conflicts in denzil branch.

Addresses CVE-2011-1944.

Fixes denzil [YOCTO #2703]

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:19 +00:00
Richard Purdie
aa66dc91d3 libxml2/libxslt: Don't depend on ansidecl.h header
We don't DEPEND on binutils for ansidecl.h so ensure we should never
use the header. This makes builds determinstic and means something like:

bitbake binutils
bitbake libxml2 -c configure
bitbake binutils -c clean
bitbake libxml2

doen't fail to build.

(From OE-Core rev: 54d27bbc26d1e45e51ee8ef0f051a2bd8f627cc0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:19 +00:00
Nitin A Kamble
b45184aef3 libxml2: fix build with automake 1.12
(From OE-Core rev: dd1b77c473ee92608ad0a5bdbea0880d2f613c2c)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:19 +00:00
Phil Blundell
0e43be806d openssl: Use ${CFLAGS} not ${FULL_OPTIMIZATION}
The latter variable is only applicable for target builds and could
result in passing incompatible options (and/or failing to pass
required options) to ${BUILD_CC} for a virtclass-native build.

(From OE-Core rev: d5a99f3dab07fa676788b434e18174c0798d4460)

Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:18 +00:00
Scott Garman
d6935247dd openssl: upgrade to 1.0.0j
Addresses CVE-2012-2333

Fixes [YOCTO #2682]

Fixes denzil [YOCTO #2701]

(From OE-Core rev: cf84ebac391b243099fe0d05223433ecb8e71641)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:18 +00:00
yanjun.zhu
b8f6d9cbfd libproxy: Fix for CVE-2012-4504
Reference:https://code.google.com/p/libproxy/source/detail?r=853

Stack-based buffer overflow in the url::get_pac function in url.cpp
in libproxy 0.4.x before 0.4.9 allows remote servers to have an
unspecified impact via a large proxy.pac file.

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-4504

[YOCTO #3487]

Fixes denzil [YOCTO #3511]

(From OE-Core rev: 543d608ae6251956b84e6423ec66f146f926d4b8)

Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:18 +00:00
Martin Jansa
2288ff099c opkg-utils: bump SRCREV to latest
(From OE-Core rev: 119215fee75a64de49d498c3d57446783722a292)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:18 +00:00
Andrei Gherzan
93cc23571e opkg-utils: Add needed python modules as RDEPENDS
(From OE-Core rev: dadfb4914b25a970c61e7f2354c01086d4823fd6)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:17 +00:00
Robert Yang
95f2a5b635 rootfs_rpm.bbclass: save rpmlib rather than remove it
The rpmlib was removed when images that add
"remove_packaging_data_files" to ROOTFS_POSTPROCESS_COMMAND, which would
make the increment rpm image generation doesn't work in the second
build, since list_installed_packages would get incorrect value in the
second build, move the rpmlib to ${T} rather than remove it, and move it
back when INC_RPM_IMAGE_GEN =1.

[YOCTO #2690]

(From OE-Core rev: c30e79510c06701f10f659eedaa0fe785538ac17)

(From OE-Core rev: 15e13ea1fc8a0c29b4ca68c31c83ca013c89c36e)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:17 +00:00
Robert Yang
75997b4565 package_rpm.bbclass: Fix incremental rpm image generation
Fix the incremental rpm image generation, it didn't work since the code
has been changed.

The btmanifest should have a ".manifest" suffix, so that it can be moved
to ${T} by rootfs_rpm.bbclass:
mv ${IMAGE_ROOTFS}/install/*.manifest ${T}/

Note: The locale pkgs would always be re-installed.

[YOCTO #2690]

(From OE-Core rev: 5149630746626c6d416f26ab9dd1c7213fcd8c50)

(From OE-Core rev: 1f5113ae91ed639cf06fcbb9431b460d7a06bbbc)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:17 +00:00
Roy.Li
970d279774 bitbake: compile tar-replacement firstly
Compiling tar-replacement or not is decided by version of host tar,
if the host tar version is lower than 1.23, Compiling tar-replacement
is needed.

When doing popoluate tar-replacement sysroot to write the tar to
sysroot, but writing is not finished. other packages probably
use the being written tar to unzip file, which will lead to failure
and report the below error:
"bitbake_build/tmp/sysroots/x86_64-linux/usr/bin/tar: Text file busy"

Now we compile tar-replacement firstly to ensure that a being written
tar command will not be used.

(From OE-Core rev: 3c1c4719fc96f6f1fbb257413d6baf3d91fdf4e8)

(From OE-Core rev: 1a6f61d9493bdbade256dc6c19bbffe75a2684a4)

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>
2012-12-07 15:58:16 +00:00
Joe Slater
40e6fc6a65 gettext: install libgettextlib.a before removing it
In a multiple job build, Makefile can simultaneously
be installing and removing libgettextlib.a.  We serialize
the operations.

(From OE-Core rev: 2750546b2152eecdbb37e963a2495383f6944184)

(From OE-Core rev: 500c9c1e0047ba9f35e3591f4252fe2dd38bc4f1)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:16 +00:00
Paul Eggleton
e9c2218231 classes/qmake_base: support linux-gnuspe/linux-uclibcspe TARGET_OS
Fix borrowed from OE-Classic. This should fix build failures during
do_configure of Qt applications with the p1022ds machine from
meta-fsl-ppc, for example.

(From OE-Core rev: a19fc8e19a6cc6885a1e0616b1f42cc49c8f2c9f)

(From OE-Core rev: 0baef81f0ebf854b3e3e78b0d3745cc8ad41491e)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:16 +00:00
Ross Burton
84399e189b gst-plugins-good: disable (uninstalled) examples
The examples pull in a GTK+ build dependency, so remove that too.

(From OE-Core rev: f6975629fd5aa34bf423415bf2328e2146a6e675)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-12-07 15:58:15 +00:00
Paul Eggleton
846b7c3887 bitbake: lib/bb/siggen.py: log when tainting the signature of a task
Log a note when applying a taint to a task signature (e.g. when using
the -f or -C command line options) so that the user knows this has been
done.

(Bitbake rev: 0fd960fdea83874eedb541cbc2920257e0f3fb81)

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

This means you can now do the following:

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

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

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

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

(Bitbake rev: f7b55a94226f9acd985f87946e26d01bd86a35bb)

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

(from OE-Core rev c09bf5d177a7ecd2045ef7e13fff4528137a9775)

(From OE-Core rev: c15fae372cf75403facc28cf76f973b1279425dd)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:09 +01:00
Dennis Lan
9bf253f467 openjade-native: fix undefined Getopts error, use std namespace
Using Gentoo Linux as the build host, it fails without this patch
Use Getopt::Std in place of getopts.pl.

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

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

(from OE-Core rev 169a89b10817b742c063fcd76721e4dbbcca6199)

(From OE-Core rev: 7c7dcb05685d840c70474d409f6a58ae459c46f0)

Signed-off-by: Dennis Lan <dennis.yxun@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:08 +01:00
Richard Purdie
d156f75fea siteconfig: Clear cache before rebuilding
This ensures consistent build results and avoids build failures when compiler flags
change for example.

(From OE-Core rev: a5ff8396cad130f809f8f8da49bb38e6f80f923c)

(From OE-Core rev: b21d1daf709ddce14c93a5f16c91ff702e1cb7ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:08 +01:00
Darren Hart
809d97b938 gnutls: Update SRC_URI to use GNU_MIRROR
The current SRC_URI fails. Update it with the GNU_MIRROR SRC_URI from
upstream commit 753b22012f10c393c191d3116b9d38ee4be6d112.

(From OE-Core rev: 8430748e838872b22fe0e83a7dbf3a2a5b1faba2)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: John Howard <john.howard@intel.com>
CC: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:08 +01:00
Paul Eggleton
e5a85ac2e4 classes/cml1: ensure -c menuconfig forces a rebuild next time
Ensure the following results in the kernel being rebuilt, repackaged and
re-deployed in the final step:

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

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

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

Fixes [YOCTO #2256].

(From OE-Core rev: 9bf6b60e1599cf5dd87089d42584583cdfd6807a)

(From OE-Core rev: a9600e68e64a111be4cb934e14b914fa553b5654)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:08 +01:00
Jesse Zhang
b4bb378261 udev: don't mount with -o sync
mount.sh mounts all partitions with -o sync, which is bad for system
performance.

(From OE-Core rev: d49cf73754150b50a911d326aaa666f5da78855c)

(From OE-Core rev: 44c102386c9bca17743d2edd1f94d4071974204d)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-10 23:30:07 +01:00
Bogdan Marinescu
e7d4eba0a9 Save proxy settings
Proxy settings were not properly saved between Hob runs. This
fix is mostly a backport of code in master.

[YOCTO #3024]

Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com>
2012-10-01 18:13:15 +01:00
Paul Eggleton
aad5c9f699 bitbake: hob: format error messages properly
Error messages that use arguments need to be formatted properly, or we
don't get the full message. Use a formatter to do this when an error
occurs.

Partial fix for [YOCTO #2983].

(Bitbake rev: 6783538884adecd914909a9ab4ca73c27575f3ad)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-01 18:13:05 +01:00
Matthew McClintock
42d9652fb1 poky.conf: add distros that work correctly
All the builds pass for these distros as well

atom-pc, beagleboard, mpc8513e-rdb, routerstationpro

As well as other powerpc targets:

p1022ds, p4080ds, p5020ds, p5020ds-64b

Signed-off-by: Matthew McClintock <msm@freescale.com>
2012-10-01 18:12:48 +01:00
Paul Eggleton
4e09d164d9 bitbake: hob: ensure error message text is properly escaped
Our lack of markup escaping was causing invalid markup, leading to the
error dialog being blank. Use the glib markup escaping function provided
by PyGTK+ to do this properly and avoid the blank error dialogs.

Partial fix for [YOCTO #2983].

(Bitbake rev: 563ea5233a5ab1629c51e802d04280692f96c596)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-10-01 18:12:32 +01:00
Darren Hart
d567e770c3 bootimg: Use STAGING_KERNEL_DIR
bootimg.bbclass using STAGING_DIR_HOST/kernel instead of
STAGING_KERNEL_DIR, resulting in build failure of live images.

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

Replace it with STAGING_KERNEL_DIR.

(From OE-Core rev: 8f16811a8d51982a8b3d70e6087aef4a41926840)

(From OE-Core rev: 032bd9a856f9ca0b43dff272bd4f95481aa46597)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Tested-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:18 +01:00
Richard Purdie
a5f5b1e80a texi2html: Fix perl location on recent distros
This fixes errors like:
| error: Failed dependencies:
|       /bin/perl is needed by texi2html-5.0-r1.i586

(From OE-Core rev: d4c27021ffc813732526ab9ae6969e5ae0bdf7e8)

(From OE-Core rev: f28dcaf565050d5c857c3d09164104410a2e4173)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:18 +01:00
Richard Purdie
d47234d4c9 dbus: Ensure dbus-nativesdk doesn't RPROVIDE dbus-x11
dbus-x11 should not RPROVIDE dbus-x11 as this is incorrect and confuses
builds. This fixes the nativesdk case.

(From OE-Core rev: f4cc32585f9ac392460991b46b8cfa7a347a27e6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:18 +01:00
Radu Moisan
3cdd930eeb dbus: include dbus-launch in the main dbus package
Followed suggestions from Bugz 2261:

2) make the virtual/libx11 DEPENDS conditional based on the x11 distro feature.
This makes the build dependencies reflect the feature list.

3) remove dbus-x11, meaning that dbus-launch with its potential X11 dependency
is now back in dbus where is belongs.

4) make dbus provide dbus-x11, for compatibility.

Fixes [Yocto #2261]

(From OE-Core rev: 9bf6d834312581e8b8741fb9d1621e4c40de5687)

Signed-off-by: Radu Moisan <radu.moisan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:18 +01:00
Franklin S. Cooper Jr
cfd36177f7 u-boot: Use fw_env.config if avaliable
* Add support for board specific fw_env.config file if avaliable

(From OE-Core rev: 4bc2151d6bb500b0489bc00bce7574dc24f41b90)

Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:17 +01:00
Ross Burton
1ecc27c20c pulseaudio: remove ConsoleKit dependency
ConsoleKit is a runtime dependency for the ConsoleKit module, but there isn't a
build-time dependency.

(From OE-Core rev: ebfc81f57bbc60e958472d9a1257e6a19f60adbb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:17 +01:00
Martin Jansa
82114edb4a pulseaudio: fix pulseaudio-server RDEPENDS
* module-cork-music-on-phone was renamed to module-role-cork
  http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=3c5cc345472302b9511c19244b3eceb4a3674d8c

(From OE-Core rev: b102849a145ca6602ac8e499b1420672d290c11b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:17 +01:00
Khem Raj
a62752bb4f pulseaudio: Always enable NLS
When NLS is disabled e.g. on uclibc the build fails
The actual problem is that pulseaudio build system
should cater for it but it does not

(From OE-Core rev: b7d10637059b2352bcca45bc15b26d0dd056e78f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:17 +01:00
Constantin Musca
7ffad91e79 pulseaudio: upgrade to 2.1
(From OE-Core rev: 540093fd9f52c86e6803554e2796668227bb89b5)

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>
2012-09-28 16:53:16 +01:00
Xin Ouyang
1e2d6bffc5 libatomics-ops: update to the latest version 7.2
All old patches are droped because:

Merged into 7.2 by upstream:
* fedora/libatomic_ops-1.2-ppclwzfix.patch
* gentoo/libatomic_ops-1.2-mips.patch
* gentoo/sh4-atomic-ops.patch
* libatomics-ops_fix_for_x32.patch

Obsolete:
* doublefix.patch

(From OE-Core rev: 59afdbbddbacf5d9c668bb8f011c8f150421d498)

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>
2012-09-28 16:53:16 +01:00
Cristian Iorga
cb1c31939d libcanberra: upgrade to 0.29
(From OE-Core rev: 074c34617a361a589665774ac8d9060a4ef4ef82)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:16 +01:00
Cristian Iorga
bec76a3813 pulseaudio: upgrade to 2.0
(From OE-Core rev: 961872787ac2c2b18d4589967e68a60ab3a4cc86)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Conflicts:

	meta/recipes-multimedia/pulseaudio/pulseaudio_2.0.bb
2012-09-28 16:53:16 +01:00
Denys Dmytriyenko
ead623b2a0 pulseaudio: fix typo in the patch name, pulseaudo -> pulseaudio
No PR bump is needed.

(From OE-Core rev: ac3edffa2586064ff480b89e80b608f14e566fa7)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:16 +01:00
Khem Raj
b973813796 libatomics-ops: Make it build for SH4
(From OE-Core rev: fc47820982aea41f2b0fdd4d87fb0242bf7346dd)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:15 +01:00
Saul Wold
8941d5aa3b pulseaudio: disable tcpwrap by default
This ensures that tcpwrapper usage is always disabled, this was
inconsistent because it would test for libwrap and sometimes enable
and sometimes not.

This ensures consistent build reproducibility.

(From OE-Core rev: 5b3d18d12fff156d4d360b779eb4ae78a480ce10)

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

(From OE-Core rev: 5c52472af73ed91970096eed3d216fdbc7ff42d2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:15 +01:00
Cristian Iorga
3c3614c562 bluez4: update to ver. 4.101
(From OE-Core rev: 6e6407e9a8c59cb51685c4b767b62eacb8dbf852)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:15 +01:00
Cristian Iorga
1c71304f81 gst-plugin-bluetooth: update to ver. 4.101
(From OE-Core rev: 6d1bbc26d27506e5dd5c32013ea5074c5c5a342d)

Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:14 +01:00
Dongxiao Xu
5be28549ae bluez-hcidump: upgrade to version 2.4
(From OE-Core rev: 4934e54821ed19fb98ea7691af6a2d3bcb1922f7)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:14 +01:00
Jonas Danielsson
bbe83b55cd bluez4: make alsa support conditional upon DISTRO_FEATURES
Do not enable alsa in bluez4 unless it's included in DISTRO_FEATURES.

(From OE-Core rev: f6297d648b1464719d1e1e42e99d473b69a13e56)

Signed-off-by: Jonas Danielsson <jonas.danielsson@lundinova.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:14 +01:00
Paul Eggleton
3c363a70aa dhcp: remove dependency of dev/staticdev packages on main package
The main package is empty and is not produced, which leaves the dev
and staticdev packages broken. Remove the dependencies (added in
bitbake.conf by default) to fix this.

(From OE-Core rev: 5380c65e819d82f783cb75aa21db7c73bb445189)

(From OE-Core rev: 02dc5c9b7b1f21c9f8d9a9299933fa88dc16c542)

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>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:14 +01:00
Paul Eggleton
2fab410f2e classes/mirrors: remove bogus gnutls mirror
This mirror entry which maps to itself plus a slash, if matched, put the
fetcher into a circular loop until the stack space is exhausted. A patch
has been sent to fix this issue in BitBake, but we should remove the
bogus entry as well.

(Note that this entry does not actually trigger the issue with current
master because the gnutls recipe now uses GNU_MIRROR instead of
ftp.gnutls.org, thus the bogus mirror entry is not matched.)

(from OE-Core rev 0de1827a9601143b090f751ea702fdb65a936b77)

(From OE-Core rev: 31ec9690c37c3a57e557684cbf5e5a4069bd57b7)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:13 +01:00
Matthew McClintock
4b8d430c1f sysvinit-inittab_2.88dsf.bb: only run serial checks at boot if we have items to check
Right now, we delay running the serial console checks to we boot up. This causes
issues for read only file systems. So, if have not configured any serial ports to
check via SERIAL_CONSOLES_CHECK we can skip the check at boot. This fixes any
issues with read only file systems and ipk packaging.

(From OE-Core rev: 2136030c1d240d9b8f123e3c8af5dacf66e86ab4)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:13 +01:00
Saul Wold
b0f05958fc kernel: Fix packaging issue
Remove /etc since it is empty, when creating a machine that does not
deliver any module config files, the /etc is empty and is then warned
about not being shipped, so we remove it.

This occurs in the routerstationpro with the following warning:
WARNING: For recipe linux-yocto, the following files/directories were installed but not shipped in any package:
WARNING:   /etc

(From OE-Core rev: 961498e3b4c4a93070bf278e67fc48c02333cd63)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:13 +01:00
Matthew McClintock
57cdce3108 valgrind_3.7.0.bb: fix missing leading space on _append
(From OE-Core rev: a175e09d1b0be85d8cbc58672485ec5ee5475ae2)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:13 +01:00
Richard Purdie
241653a01b autotools.bbclass: Add functionality to force a clean of ${B} when reconfiguring (and ${S} != ${B})
Unfortunately whilst rerunning configure and make against a project will mostly
work there are situations where it does not correctly do the right thing.

In particular, eglibc and gcc will fail out with errors where settings
do not match a previously built configuration. It could be argued they are
broken but the situation is what it is. There is the possibility of more subtle
errors too.

This patch adds removal of the build directory (${B}) when configure is
rerunning, the sstate checksum for do_configure has changed and ${S} != ${B}.
We could simply use a stamp but saving out the previous configuration checksum
adds some data at no real overhead.

If we find there are things where we want to disable this behaviour with
CONFIGURESTAMPFILE = "" in the recipe, or users could disable it globally.

[YOCTO #2774]
[YOCTO #2848]

This is particularly helpful for eglibc and gcc which use split builds by default and
are a particular source of reconfigure type problems.

(From OE-Core rev: f15f61af77cc4e52a037f509f8e49e1ea530cf35)

(From OE-Core rev: 14fc04e480aaf1cb5cd9d3a04a5b38d2fda115b1)

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>
2012-09-28 16:53:12 +01:00
Matthew McClintock
f6fb4890df eglibc_2.15: make patch only for Freescale machines
It's only Freescale machines that don't imlpement fsqrt, we don't want
this to effect others.

This patch was only added after the last release of denzil, so it's not
present in the release yet. Also, 2.15 is removed from master so it
should only apply to denzil branch

(From OE-Core rev: c541f746253fdb6d11cd961c7dff1aca8c2d2703)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:12 +01:00
Zhenhua Luo
b4de44f425 valgrind: fix debug info reading error when do memcheck on ppc targets
following is the error message:
        --2263-- WARNING: Serious error when reading debug info
        --2263-- When reading debug info from /lib/ld-2.13.so:
        --2263-- Can't make sense of .got section mapping
        --2263-- WARNING: Serious error when reading debug info
        --2263-- When reading debug info from /home/root/lzh:
        --2263-- Can't make sense of .data section mapping
        --2263-- WARNING: Serious error when reading debug info
        --2263-- When reading debug info from /usr/lib/valgrind/vgpreload_core-ppc32-linux.so:
        --2263-- Can't make sense of .data section mapping
        --2263-- WARNING: Serious error when reading debug info
        --2263-- When reading debug info from /usr/lib/valgrind/vgpreload_memcheck-ppc32-linux.so:
        --2263-- Can't make sense of .data section mapping
        --2263-- WARNING: Serious error when reading debug info
        --2263-- When reading debug info from /lib/libc-2.13.so:
        --2263-- Can't make sense of .data section mapping

(From OE-Core rev: 14626cc76210ed6fe40316a311f24147ed8de8be)

(From OE-Core rev: a76be502fbb9517c38cd716fa1f21a238b314162)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:11 +01:00
Saul Wold
b32c50e016 python-pygtk: Upgrade to 2.24
This is needed for the build appliance and Hob also

(From OE-Core rev: a0abfd60e8cb78b40278eec85a8d0c722f8ef1e4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:11 +01:00
Saul Wold
b5013e9e9e build-appliance: add zip-native, which is needed to build the final zip bundle
(From OE-Core rev: 8aeceab5d03fa3c88f0128ce1ac6bfde0d88e1b6)

(From OE-Core rev: 9ab2613327fcd4cf811afc52eff92903644e9b11)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:10 +01:00
Scott Garman
0cd0a3b475 kernel.bbclass: put perf .debug dir in -dbg package
This is needed to avoid the following QA error:

ERROR: QA Issue: non debug package contains .debug directory:
kernel-dev path

Patch proposed by Matthew McClintock <msm@freescale.com>

(From OE-Core rev: df879f191d1e86596444cb30a0a77a785958520c)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:10 +01:00
Scott Garman
825c647f65 relocatable.bbclass: Account for case when ORIGIN is in RPATH
This patch was backported from OE-Core rev:
43600df0d4efc976a9451163dd334b4763937932

This fixes a case when RPATH embedded in program have one of
its path already relative to ORIGIN. We were losing that path
if such a path existed. This patch appends it to the new edited
rpath being created when we see it.

so RPATH like below

(RPATH) Library rpath:
[$ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli]

would end up being empty

but after this patch its kept intact

(From OE-Core rev: 9ebb327ae17d1a765fd1499546ccf9076bb93234)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:10 +01:00
Khem Raj
16b6bc4288 kernel.bbclass: Dont package kxgettext.o
kxgettext.o is generated when building ppc kernels
so we end up with packaging errors like

> ERROR: QA Issue: Architecture did not match (20 to 62) on
> /work/virtex5-poky-linux/linux-xilinx-2.6.38-r00/packages-split/kernel-dev/usr/src/kernel/scripts/kconfig/kxgettext.o

(From OE-Core rev: 21952b62e3fca6c9fe750db62ca2b0587912be8a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:09 +01:00
Bruce Ashfield
4ef357f033 kernel.bbclass: add non-santized kernel provides
If the kernel version string uses characters or symbols that
need to be santized for the package name, we can end up with a
mismatch between module requirements and what the kernel
provides.

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

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

 <build>

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

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

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

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

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

(From OE-Core rev: 0af1d1412add1baf3f6c1a5cfb2e4f92fb6a85dc)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:09 +01:00
Darren Hart
91714ea8ae kernel: Add kernel headers to kernel-dev package
[YOCTO #1614]

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

Move the location to /usr/src/kernel

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

    # cd /usr/src/kernel
    # make scripts

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

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

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

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

(From OE-Core rev: 0e3e88f9f87d1083ddd7dcaa526b3cd7a1cd53ff)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
CC: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:09 +01:00
Bruce Ashfield
fbb459aab9 kernel: save $kerndir/tools and $kerndir/lib from pruning
The kernel source tree in the sysroot has all unecessary source
code removed. The existing use case is to support module building
out of the sysroot, but as more toolsa are moved into the kernel
tree itself there are new use cases for the kernel sysroot source.

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

(From OE-Core rev: 456f97c25488c2f6f6810b1a32781513cc719d8e)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:09 +01:00
Martin Jansa
7b7f3cff44 kernel.bbclass: pass KERNEL_VERSION to depmod calls in postinst
* without this, kernel upgrades where KERNEL_VERSION is changed
  e.g. 3.4.2 -> 3.4.3 generate .dep for running 3.4.2 and after reboot user ends
  up without any module loaded to make it worse after reboot nothing is upgraded
  to trigger another kernel(-module) postinst to generate .dep for now running 3.4.3

(From OE-Core rev: 2a7cdf088e484bb123a72826a02c3169a418ed0a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:08 +01:00
Koen Kooi
a512e68202 man: make man actually work by installing custom man.config
The default man.conf is named wrong and doesn't work. It references gtbl, while groff installs tbl and other things. This man.conf is imported from OE classic and runtime tested on angstrom.

Before:

root@beaglebone:~# man man
sh: /usr/bin/gtbl: No such file or directory
sh: line 0: echo: write error: Broken pipe
gunzip: write: Broken pipe
gunzip: error inflating
sh: line 0: echo: write error: Broken pipe
sh: line 0: echo: write error: Broken pipe

After:

root@beaglebone:~# man man
MAN(1)                        Manual pager utils                        MAN(1)

NAME
       man - an interface to the on-line reference manuals

SYNOPSIS
       man  [-C  file]  [-d]  [-D]  [--warnings[=warnings]]  [-R encoding] [-L
       locale] [-m system[,...]] [-M path] [-S list]  [-e  extension]  [-i|-I]
       [--regex|--wildcard]   [--names-only]  [-a]  [-u]  [--no-subpages]  [-P
       pager] [-r prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justifi-
       cation]  [-p  string]  [-t]  [-T[device]]  [-H[browser]] [-X[dpi]] [-Z]
       [[section] page ...] ...
       man -k [apropos options] regexp ...
       man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
       man -f [whatis options] page ...
       man -l [-C file] [-d] [-D] [--warnings[=warnings]]  [-R  encoding]  [-L
       locale]  [-P  pager]  [-r  prompt]  [-7] [-E encoding] [-p string] [-t]
       [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ...
       man -w|-W [-C file] [-d] [-D] page ...
       man -c [-C file] [-d] [-D] page ...
       man [-hV]

Check for config name:

root@beaglebone:~# rm /etc/man.config
root@beaglebone:~# man man
Warning: cannot open configuration file /etc/man.config
No manual entry for man

As a bonus a bunch of references to the buildhost get removed from the config file.

(From OE-Core rev: 13d82ecd6b25ff4c34b3639e10113d7ebb33dc88)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:08 +01:00
Koen Kooi
ef789c1327 man: fix RDEPENDS and reformat recipe
(From OE-Core rev: f9aba0793123dafffc305c028f10e8f595c5a4ee)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:08 +01:00
Richard Purdie
2011408939 opkg-utils: UPdate to version with python 2.6 fix
(From OE-Core rev: ba2058aa74eb6cd263bd19a8338eeeced734f55c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:07 +01:00
Martin Jansa
9520635a00 opkg-utils: bump SRCREV
* there are 2 small fixes
  python-2.6 compatibility
  missing C option for opkg-build

(From OE-Core rev: 825a992af39d4eb75f105241e4cd94624b1dea43)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:07 +01:00
Martin Jansa
a259fdb296 opkg-utils: bump SRCREV for Packages cache fix and other fixes
(From OE-Core rev: ce5b46980f35097bd5fcc8195c5d5be1b980c870)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:07 +01:00
Valentin Popa
55997cbf3d xz: updated to version 5.1.1alpha
The licenses are the same, only some white spaces added/removed.

(From OE-Core rev: dbfc3d05e49b46ec033623d66e64cf781df4f632)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:07 +01:00
Martin Jansa
988318927a package.bbclass: fix TypeError in runstrip
* some packages have .ko files which are not elf, without this change
  it fails with TypeError, with this change only runstip fails and
  reports where:
  ERROR: runstrip: ''arm-oe-linux-gnueabi-strip'  '/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/emacs-23.4-r0/package/usr/share/emacs/23.4/etc/tutorials/TUTORIAL.ko'' strip command failed

(From OE-Core rev: 12e40ca7317289fec126d9f30b28a717fe72d274)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:06 +01:00
Richard Purdie
bf9a5226fc distutils/steuptools: Fix files layout and unbreak builds
The last two distutils changes progressivly broke the builds. Firstly they
moved things from the site_packages directory to being higher up the tree
which introduced package QA warnings as a side effect. Secondly, it interacts
badly with setuptools which passes in --root=${D} itself.

This patch restores the original directory layout, hence fixing the QA
warnings and also passes extra options to setuptools to deal with the
--root option it passes.

(From OE-Core rev: bed18d5df7915e4127a538be9c7550e185c8c850)

(From OE-Core rev: f60a04ccbf9ed614b5b5b9b02c8a24980bf17d3d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:06 +01:00
Matthew McClintock
d72eea5a5d distutils.bblass: change order of args to install step
This let's the user override install-lib argument again if it needs
to be something else, otherwise things like python-setuptools
won't be able to modify the install-lib dir

This fixes a new issue exposed by my previous distutils patch
that fixed the python modules default install location

(From OE-Core rev: 0fd7b7dd361e59c687366480cd9f89c81c2e5bce)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:06 +01:00
Matthew McClintock
a99b03e3ed distutils.bbclass: fix libdir for 64-bit python modules built with distutils
Without this some modules will be intalled in /usr/lib/python2.6/
instead of /usr/${libdir}/python2.6

(From OE-Core rev: bc6bd774aa8a3e085e9cabcefb11c3fc537139d5)

(From OE-Core rev: fc513eda1cfccc583f49847c3c04b5c781585e15)

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>
2012-09-28 16:53:06 +01:00
Saul Wold
1773d1da62 build-appliance-image: Add vmx* files and build zip file
This commit adds the vmx* files needed to setup a VMware image,
this also packages the vmdk along with the vmx files.

(From OE-Core rev: ed0ffc12ed6f98471dced1ce2020af4e5c99f2c7)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:05 +01:00
Saul Wold
d8ccc44114 build-appliance-image: Update SRCREV to Denzil 1.2.1
(From OE-Core rev: 242fb49ac416824e53c58a8a0cb9bb9d19a72ec4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:05 +01:00
Valentin Popa
6f3e6c75de build-appliance-image: rename from self-hosted-image
(-) renamed self-hosted-image to build-appliance-image
(-) replaced build-appliance-image description

[YOCTO #2636]

(From OE-Core rev: 04096f31778886479dac479132bded57e717653e)

(From OE-Core rev: bf133c331029ac588b27173145db5be5f6ee1ef5)

Signed-off-by: Valentin Popa <valentin.popa@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:05 +01:00
Franklin S Cooper Jr
89fa2c1fc6 psplash: LIC_CHKSUM Tweak
* Change the license checksum to use the lines in the psplash.h that contains
  license information instead of doing a checksum on the entire file.

(From OE-Core rev: 2c80eb5b9c103087774f032be01f5cf6309464d7)

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:05 +01:00
Kang Kai
e22b4411ae ltp_20120104: add rdepends
[Yocto #2973]

Add rdepends libaio to fix this defect.

(From OE-Core rev: 79d12314729649add741509a46b7770e22dd23ad)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:04 +01:00
Bruce Ashfield
33921847a2 kernel-yocto: set master branch to a defined SRCREV
To support custom repositories that set a SRCREV and that only have
a single master branch, do_validate_branches needs a special case
for 'master'. We can't delete and recreate the branch, since you
cannot delete the current branch, instead we must reset the branch
to the proper SRCREV.

(From OE-Core rev: 3a8dc0a01d2756bb8f51afccad772fca1dc48af3)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:04 +01:00
Bruce Ashfield
5427f5d70f linux-yocto: allow do_validate_branches to handle all branches
Branch validation will not restrict a branch that doesn't exist
in the tree at the time of validation (since you can't reset a
SRCREV on a non-existent branch). This restriction can be removed
by looking for all branches that contain the specified SRCREV
and forcing them to that value.

(From OE-Core rev: 790f6441851fd4b2b84129340c438092f058135b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:04 +01:00
Jeff Polk
4624b5eefb recipes-core/eglibc-2.13: Patch for locale-base-tt-ru packaging
The eglibc-2.13 build can fail because locale-base-tt-ru is in
PACKAGES twice. This is because the SUPPORTED list and the i18n
directories are out of sync with each other; the SUPPORTED list
expects a directory named "tt_RU.UTF8", but the directory is
actually named "tt_RU", and likewise for the @iqtelif variants.

(From OE-Core rev: 280886bb865efde6bda327a1c821220d64c893ba)

Signed-off-by: Peter Seebach <peter.seebach@windriver.com>
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:04 +01:00
Matthew McClintock
e7376bb459 eglibc/gcc: add patches to fix eglibc 2.15 build
This drops one patch against eglibc for 2.15 and adds two new ones,
also it adds a gcc patch. We use all of these internally and they
are tested quite well.

(From OE-Core rev: a7014c446b0d2f3b40c4b058c64bb61c8720d799)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:03 +01:00
Marcin Juszkiewicz
c2bbe5f5d3 libpam: disable NIS to not link with libtirpc when it is available
I was checking ways to make incremental builds faster so I started using
sstate-cache and SSTATE_MIRRORS. But this gave me some nasty bug:

| Collected errors:
|  * satisfy_dependencies_for: Cannot satisfy the following dependencies
for php-cgi:
|  *    libtirpc1 (>= 0.2.2) *
|  * opkg_install_cmd: Cannot install package php-cgi.

I checked details:

In my previous build libtirpc got built before libpam so libpam found it
and linked. As a result packages depend on libtirpc1 but as there is no
such build dependency sstate handling code did not used libtirpc copy...

(From OE-Core rev: e629bdcd1bcb51f2d2101fb53daeac0bd29ab637)

(From OE-Core rev: 8ff92269cd63e153892d129e6e2255812a454a99)

Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:03 +01:00
Matthew McClintock
758677e212 glib.inc: disable selinux for native builds
In addition to dbus, we also need to disable selinux for glib as well
otherwise we will get the same link error

(Note: Upstream master has disabled selinux AFAICT)

(From OE-Core rev: 318bc896b1bd5399807a417865b8e088d9d9eb15)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:03 +01:00
Matthew McClintock
b96bd8465a dbus.inc: disable selinux for native builds
(Note: Upstream master has disabled selinux for this AFAICT)

Fixes issues such as:

| /usr/bin/ld: cannot find -lselinux
| collect2: ld returned 1 exit status
| make[3]: *** [libdbus-glib-1.la] Error 1

(From OE-Core rev: 7ee10f25430421dc6e9552ffe15a6a5acbd4cb51)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-09-28 16:53:02 +01:00
Tom Zanussi
65ffa73950 yocto-bsp: use base branches for qemu 'newbranch' case
The branch updating for the [YOCTO #2587] fix inadvertently changed
some of the qemu branch names incorrectly, fix it.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:22 +01:00
Tom Zanussi
a76fc366ce yocto-bsp: generate default properties even if json specified
Users seem to want to specify incomplete property sets when using json
input.  Allow this by generating default properties before the
user-specified properties are applied; the user will then get the
defaults for any unspecified values, and avoid cryptic backtraces.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:22 +01:00
Tom Zanussi
759237f721 yocto-bsp: use emgd 1.10 for i386 template
Make i386 template use emgd 1.10 for denzil, along with associated
changes.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:22 +01:00
Tom Zanussi
3e632506c2 yocto-bsp: add i586 option for i386
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
1b9306705c yocto-bsp: add some standard policy
Add some useful default options to to the i386 and x86_64 templates.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
65706548f6 yocto-bsp: remove 'branch' statements in .scc if reusing branch
If reusing a branch (need_new_branch == 'n') we don't need to branch
in the .scc, so make it conditional on need_new_branch.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
bc6b04fe22 yocto-bsp: use rstrip() for assignment lines
strip() isn't necessary and causes unintended formatting changes in
the output; rstrip() remove the trailing newlines as intended while
leaving indenting whitespace intact.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
8a51a8afe8 yocto-bsp: use standard branch mapping in bsp templates
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
2517376ee8 yocto-bsp: add standard branch mapping
Add a mechanism to distinguish common-pc variants of standard
branches.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
9078e985ac yocto-bsp: use branches_base
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
b123553c1a yocto-bsp: allow branch display filtering
Add a "branches_base" property that can be used to allow only matching
branches to be returned from all_branches().

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
717704d12c yocto-bsp: update default branch names
Make sure the default branch names match branch names found in the
kernel branch listing.

Fixes [YOCTO #2587].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:21 +01:00
Tom Zanussi
e5c5e20a5e yocto-bsp: strip '/base' from kernel branches in templates
For new branches, users can specify /base branches, but we don't want
the '/base' in the resultant branch name, so remove it.

Fixes [YOCTO #2693].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:20 +01:00
Tom Zanussi
96631f080b yocto-bsp: add new strip_base() function
Add a strip_base() function to remove '/base' from the branch names
presented to the user.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-08-21 11:35:20 +01:00
Paul Eggleton
78d15a8015 cooker: fix UnboundLocalError when exception occurs during parsing
Fix a recent regression where we see the following additional error
after an error occurs during parsing:

ERROR: Command execution failed: Traceback (most recent call last):
  File "/home/paul/poky/poky/bitbake/lib/bb/command.py", line 84, in runAsyncCommand
    self.cooker.updateCache()
  File "/home/paul/poky/poky/bitbake/lib/bb/cooker.py", line 1202, in updateCache
    if not self.parser.parse_next():
  File "/home/paul/poky/poky/bitbake/lib/bb/cooker.py", line 1672, in parse_next
    self.virtuals += len(result)
UnboundLocalError: local variable 'result' referenced before assignment

(Bitbake rev: 1ae0181ba49ccfcb2d889de5dd1d8912b9e49157)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:35:20 +01:00
Matthew McClintock
ffff5fa2d7 bitbake/fetch2: remove references to ChecksumError class
From: Matthew McClintock <msm@freescale.com>

When merging fetch2 improvements from master into denzil, there
were too many dependencies to pull in the entire ChecksumError
class, so this patch removes references to ChecksumError for
compatability.

Fixes this issue:

NameError: global name 'ChecksumError' is not defined

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
2012-08-21 11:35:08 +01:00
Richard Purdie
119b7ff164 bitbake: fetch2: Handle errors orruring when building mirror urls
When we build the mirror urls, its possible an error will occur. If it
does, it should just mean we don't attempt this mirror url. The current
code actually aborts *all* the mirrors, not just the failed url.

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

(Bitbake rev: c35cbd1a1403865cf4f59ec88e1881669868103c)

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

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

(From Poky rev: 0ec0a4412865e54495c07beea1ced8355da58073)

(Bitbake rev: e585730e931e6abdb15ba8a3849c5fd22845b891)

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

(From Poky rev: 28e858cd6f7509468ef3e527a86820b9e06044db)

(Bitbake rev: a2459f5ca2f517964287f9a7c666a6856434e631)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:35:07 +01:00
Richard Purdie
3f30bf4eab bitbake: fetch2: Split try_mirrors into two parts
There are no functionality changes in this change

(From Poky rev: d222ebb7c75d74fde4fd04ea6feb27e10a862bae)

(Bitbake rev: db62e109cc36380ff8b8918628c9dea14ac9afbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Conflicts:

	bitbake/lib/bb/fetch2/__init__.py

Signed-off-by: Khem Raj <kraj@juniper.net>
2012-08-21 11:35:07 +01:00
Richard Purdie
ea032bb2c3 bitbake: fetch2: Ensure when downloading we are consistently in the same directory
This assists with build reproducuility. It also avoids errors if cwd
happens not to exist when we call into the fetcher. That situation
would be unusual but I hit it with the unit tests.

(From Poky rev: 86517af9e066c2da1d580fa66b7c7f0340f3403e)

(Bitbake rev: b886c6c15a58643e06ca5ad7a3ff1f7766e4f48c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:35:07 +01:00
Richard Purdie
4bfb54e0ba bitbake: fetch2: Only cache data if fn is set, its pointless caching it against a None value
(From Poky rev: c2df30bf6d1f8c263a38c45866936c1bf496ece5)

(Bitbake rev: f4b59cc6e1c3ddc168a1678ce39ff402ea1ff4cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:35:07 +01:00
Richard Purdie
729b396b21 bitbake: fetch2: Fix error handling in uri_replace()
(From Poky rev: 1bfba28a583cb167f60e05ecdf34d0786dc1eec5)

(Bitbake rev: aa7467a764ddcbc7d65af99e88cf093b6ec6d24e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:35:07 +01:00
Richard Purdie
bdb918f808 bitbake: fetch2/__init__: Make it clearer when uri_replace doesn't return a match
(From Poky rev: dc9976331c5cbb0983adb54f6deb97b9203bacbc)

(Bitbake rev: eb96609864dec95a516e6e687dd6a2f31d523acf)

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

(From OE-Core rev: 0b3261d513cdad80174a9b9e804981c50bcb7ca2)

(From OE-Core rev: 95756cfbb7a9348b23cb46a49a5509e57e973faf)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:33:31 +01:00
Paul Eggleton
4539cf1936 classes/license: fix manifest to work with deb
Prepend the license manifest creation call to ROOTFS_POSTPROCESS_COMMAND
instead of appending to ROOTFS_POSTINSTALL_COMMAND. The latter is not
implemented for the deb backend (and probably ought to just be removed
completely), and by using _prepend we can still ensure it occurs before
package info is removed (and before buildhistory in case it is needed
there in future).

(From OE-Core rev: 6ffd958ff2f7f1d07ab9da5ca8db1727dd074980)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:45 +01:00
Paul Eggleton
6631752c25 scripts/buildhistory-diff: add GitPython version check
Display an error if the user does not have at least version 0.3.1 of
GitPython installed.

(From OE-Core rev: 07b9c3bc67439d47627fe256796465520b533753)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:45 +01:00
Paul Eggleton
75b7901f22 buildhistory_analysis: fix error when version specifier missing
Passing None to split_versions() will raise an exception, so check that
the version is specified before passing it in.

(From OE-Core rev: a530aee6d9b2b63ab5fa780b1761eac759e8c833)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:45 +01:00
Paul Eggleton
c520132cb8 classes/rootfs_*: fix splitting package dependency strings
If a + character appears in a version specification within the list of
package dependencies, the version will not be removed from the list in
list_package_depends/recommends leading to garbage appearing in the
dependency graphs generated by buildhistory. To avoid any future
problems due to unusual characters appearing in versions, change the
regex to match almost any character.

Fixes [YOCTO #2451].

(From OE-Core rev: d592c3a26c630d5f3bfba4804a93766447bf72c9)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:45 +01:00
Saul Wold
a8d4eb449f foomatic: fix perl path for target
This problem appears on F17 when configure finds /bin/perl, since the beh
script is a target side script, we need to set PERL in the do_configure_prepend
in order for the correct perl to be used

(From OE-Core rev: f189ee78bed0920cfd33689ebb9aad45fded2c4d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:44 +01:00
Otavio Salvador
4253c34000 shadow: use 'users' group by default
The rootfs has 'users' group at number 100 and without this fix it
would assign to a non-existent group and if a group with gid as 1000
is created later it would own all files for users created.

(From OE-Core rev: c2bd2936907ea8b776d58e8cc58a8359a6e7e9b9)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:44 +01:00
Otavio Salvador
1a70ddc4e8 shadow-native: use 'users' group by default
The rootfs has 'users' group at number 100 and without this fix it
would assign to a non-existent group and if a group with gid as 1000
is created later it would own all files for users created.

(From OE-Core rev: 42e9f988bc691ca763d5eda3537d6281b7902794)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:44 +01:00
Matthew McClintock
6352d0a9a1 u-boot.inc: update linker arguments to pass --sysroot arg
If we are building from sstate-cache it's possible to be building
from another folder on another machine, therefore the linker requires
that a proper --sysroot is passed too it so it can find things like
libgcc.a and avoid errors such as:

| arm-poky-linux-gnueabi-gcc  -g  -O2  -fno-common -ffixed-r8 -msoft-float   -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x80008000 -I/local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison/tmp/work/beagleboard-poky-linux-gnueabi/u-boot-v2011.06+git5+b1af6f532e0d348b153d5c148369229d24af361a-r0/git/include -fno-builtin -ffreestanding -nostdinc -isystem /local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/../../lib/armv7a-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.6.3/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes -fno-stack-protector -fno-toplevel-reorder   -o hello_world.o hello_world.c -c
| arm-poky-linux-gnueabi-gcc  -g  -O2  -fno-common -ffixed-r8 -msoft-float   -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x80008000 -I/local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison/tmp/work/beagleboard-poky-linux-gnueabi/u-boot-v2011.06+git5+b1af6f532e0d348b153d5c148369229d24af361a-r0/git/include -fno-builtin -ffreestanding -nostdinc -isystem /local/yocto/upstream/label/ubuntu1204-64b/machine/beagleboard/poky/edison/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/../../lib/armv7a-vfp-neon-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/4.6.3/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv5 -Wall -Wstrict-prototypes -fno-stack-protector -fno-toplevel-reorder   -o stubs.o stubs.c -c
| arm-poky-linux-gnueabi-ld  -r -o libstubs.o  stubs.o
| arm-poky-linux-gnueabi-ld -g -Ttext 0x80300000 \
| 			-o hello_world -e hello_world hello_world.o libstubs.o \
| 			-L. -lgcc
| arm-poky-linux-gnueabi-ld: cannot find -lgcc
| make[1]: *** [hello_world] Error 1

(From OE-Core rev: ad78441045183277a7e77341f4af6d9d65a4a3c8)

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>
2012-08-21 11:16:44 +01:00
Nitin A Kamble
0a6f9a5f5a tcl: fix target recipe build issue on older distros
the builddir is put in front of the LD_LIBRARY_PATH, causing dynamically
linking of target library with native tclsh.

Fix this behavior to cross build tcl correctly.

This issue got exposed when eglibc-2.15 was configured for the target.

(From OE-Core rev: 8e25fe0ecc3d6fe2d5456b525c5014554bc70cfe)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:43 +01:00
Richard Purdie
7c5318e1a0 utils.bbclass: add helper function to add all multilib variants of a specific package
This is useful for the scenario where we want to add 'gcc' to
the root file system for all multilib variants

(From OE-Core rev: e82c2f0b91611f3e755985bb8d1608ca5792e825)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:43 +01:00
Enrico Scholz
88927f4f1f libtool: fixed parallel build related race
While building libtool, the libtool script itself will be regenerated
because OE modifies a dependency[1]. With -jX, this operation (-->
removal, creation of non-x file, 'chmod a+x') can happen at a time when
the script is going to be executed.  This can cause errors like:

| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| ...
| /bin/sh ./config.status libtool
| ...
| arm-linux-gnueabi-libtool: compile:  ccache arm-linux-gnueabi-gcc ...
| /bin/sh: ./arm-linux-gnueabi-libtool: Permission denied
| make[2]: *** [libltdl/libltdl_libltdl_la-lt__alloc.lo] Error 126

I am not sure whether the custom do_compile_prepend() is still needed.
For now only the issue above will be fixed by executing ./config.status
yet again.

[1] see 648290d5bf

(From OE-Core rev: 15204a6cbcdbbb84e02da05b1fb15644fe7df332)

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:43 +01:00
Ting Liu
68888987ce image_types.bbclass: redefine EXTRA_IMAGECMD_jffs2 to leverage siteinfo
(From OE-Core rev: 3bff2398cd2d730111faa182d16356e189a36353)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:43 +01:00
Matthew McClintock
3129f4ff0e task-core-tools-testapps.bb: kexec-tools does not work on e5500-64b parts
This prevents kexec from building for this part since it does not work

(From OE-Core rev: d9bf008b36e8b2211624705d8ee4e90d94463dd5)

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>
2012-08-21 11:16:42 +01:00
Matthew McClintock
09ae715bb1 gcc-package-runtime.inc: Fix QA warning
> ERROR: QA Issue: gcc-runtime: Files/directories were installed but not shipped
>   /usr/lib/libgomp.so.1.0.0
>   /usr/lib/libgomp.so.1

(From OE-Core rev: 4ec107f822453bd9468009d7a2124a3d592610b5)

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>
2012-08-21 11:16:42 +01:00
Leon Woestenberg
c26cfe7738 kernel.bbclass: Copy bounds.h only if it exists, needed for 2.6.x.
Linux 2.6.x kernels did not (all) have the bounds.h file, so copy
only iff exists.

(See OE-Core 02ac0d1b65389e1779d5f95047f761d7a82ef7a4)

(From OE-Core rev: 6e9cfa4ba34d8899dfb271818ef30730de8353fa)

Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:42 +01:00
Khem Raj
81aac104fa xserver-xorg: Fix build on powerpc
(From OE-Core rev: 5e141b2a7331f7ee8d9eedf02c4fc2ae5ed8d5ec)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:42 +01:00
Saul Wold
bc754beb3a curl: Use gnutls for target and openssl for native
Since gnutls is available on the target use it, but we do not build gnutls for
the native side as it adds too many dependecies, so use openssl.

(From OE-Core rev: 0dc6543a2d898d381c287d6b7becfc8fb8f279c0)

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

[YOCTO #2532]

(From OE-Core rev: 9f7e9fb6cd08b3048e97dd1011f0510416beb103)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:41 +01:00
Martin Donnelly
235667966c augeas: Add libxml2 dependency
This patch fixes the following Augeas configure error.

| checking for LIBXML... no
| configure: error: Package requirements (libxml-2.0) were not met:
|
| No package 'libxml-2.0' found
|
| Consider adjusting the PKG_CONFIG_PATH environment variable if you
| installed software in a non-standard prefix.
|
| Alternatively, you may set the environment variables LIBXML_CFLAGS
| and LIBXML_LIBS to avoid the need to call pkg-config.
| See the pkg-config man page for more details.
| ERROR: oe_runconf failed

(From OE-Core rev: 1d55679821003ac4d652b08f2eebab1636505042)

Signed-off-by: Martin Donnelly <martin.donnelly@ge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:41 +01:00
Zhenhua Luo
258bbaa1d2 task-core-sdk.bb: add libgomp and libgomp-dev by RECOMMENDS
(From OE-Core rev: e072dc29c6f4dd3c429e2f0e07da3c29bda36023)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:41 +01:00
Ting Liu
f44faa8757 lsof: define linux C library type when using eglibc
lsof tries to compile a temp c source file and execute the binary to
determine linux C library type (file Configure, line 2689-2717).
It is inpracticable for cross-compilation and may have build issue on
some distros since it depends on host settings.

Fix below error when building for 64bit target on 64bit host:
[...]
| dsock.c:481:44: error: 'TCP_LISTEN' undeclared (first use in this function)
| dsock.c:482:45: error: 'TCP_CLOSING' undeclared (first use in this function)
[...]
| make: *** [dsock.o] Error 1

The actual issue exists in do_configure:
[...]
Testing C library type with cc ... done
Cannot determine C library type; assuming it is not glibc.

Which is in turn caused by missing 'gnu/stubs-32.h" when compiling
the temp c source file on host:
[...]
fatal error: gnu/stubs-32.h: No such file or directory compilation terminated.

file gnu/stubs-32.h is provided by 32bit glibc.

(From OE-Core rev: 8c38bc022de209187f31952ae02313dd3104f4c6)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:41 +01:00
Matthew McClintock
3cf5fc2272 sysvinit-inittab_2.88dsf.bb: Allow multiple serial port consoles to be defined
Set SERIAL_CONSOLES if you want to define multiple serial consoles, also if
you need to check for the presence of the serial consoles you can also define
SERIAL_CONSOLES_CHECK to determine if these are present when you boot. This
will prevent error message that pop up when the serial port is not present.

SERIAL_CONSOLES = "115200;ttyS0 115200;ttyS1 115200;ttyEHV0"
SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"

The above lines in machine.conf or elsewhere will have the effect of having
two serial consoles and removing any that are not present at boot

(From OE-Core rev: 2e7dddfce4a40a56f671116a2001b13c57667c70)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:41 +01:00
Matthew McClintock
ffd554d2ff libgomp: add libgomp (openmp) library, and build for powerpc targets by default
(From OE-Core rev: d58668c6770f519199192c7e3817fbc7d6576af3)

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

(From OE-Core rev: aa010039a38188f1b1b38a978287d1597138b8b9)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:40 +01:00
Matthew McClintock
0b71ac7a99 gcc-configure-common.inc: use --with-long-double-128 on powerpc to comply with ABI
(From OE-Core rev: a2e00d2cae8e4b58fc3b9fc7853da519a615aa31)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:40 +01:00
Matthew McClintock
bdebedb6cf openjade-native_1.3.2.bb: fix typo and change the deps exclusion to correct var
(From OE-Core rev: 6ef3b77ba8baddb5748f2ee27d39a5a0d32e3bfb)

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

(From OE-Core rev: 679e04a33b6e4569e7a95758ccb10d50931f5d67)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:39 +01:00
Matthew McClintock
738f163797 packagedata.py: Fix get_subpkgedata_fn for multilib
This happens when tryng to add libgcc-dev to as a multilib package
(e.g. IMAGE_INSTALL_append = " lib32-libgcc-dev")

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

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

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

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

(From OE-Core rev: 24e8399aeccf4b0742acd986bb506ff6f388b4a2)

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

(From OE-Core rev: 2a1f7a8be5170cdb85f9faae81d94ac2ca8b6566)

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

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

(From OE-Core rev: e1609123a6ca6aef18e48afe0ce61325da910fc1)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:39 +01:00
Zhenhua Luo
09c83947da linux-dtb: add multi-dtb build support
including following enhancement:
    * support multi-dtb build
    * skip dtb build and install when KERNEL_DEVICETREE is empty
    * print a warning message when specified dts file is not available

(From OE-Core rev: 59b149e466c9fc81ec94a740e805339db97fc3ac)

Signed-off-by: Zhenhua Luo <b19537@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:38 +01:00
Saul Wold
8c6455b6db xinetd: Update to 2.3.15
(From OE-Core rev: 48f93e0ade1c534b9af2b84874f9b17e3107c724)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-08-21 11:16:38 +01:00
Scott Rifenbark
73cdebf60d documentation/dev-manual/dev-manual-kernel-appendix.xml: Add note about conflict
Added a note to the part of the example where you bitbake the kernel
after turning off CONFIG_SMP.  The warnings you get can cause confusion.
the note explains they are normal.

(From yocto-docs rev: 08ed090f0b8b6970832242a52827ae2957918cf3)

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

(From yocto-docs rev: 69b99a77f1f8247c217e77af89ecec3982adc264)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 15:54:26 +01:00
Ross Burton
2dcbb48df9 gconf.bbclass: don't register schemas in the install stage
Previously this was installing schemas in the sysroot, which is wrong for native
packages as nothing should touch the sysroot directly, and even more wrong for
non-native packages as the sysroot is irrelevant.

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

[YOCTO #2245]

(From OE-Core rev: 741146fa90f28f7ce8d82ee7f7e254872d519724)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-29 15:49:34 +01:00
Elizabeth Flanagan
fb2335fa2b distro.conf: Flipping for pending point release
7.0.1/1.2.1 release. Flipping distro.conf values

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
2012-06-21 14:22:32 -07:00
Richard Purdie
e972d78009 poky-tiny: eliminate mtrace rdepends
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 12:01:52 +01:00
Scott Rifenbark
91d6344765 documentation: Updated Manual revision history table
Using July 2012 for the release date.

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 12:01:39 +01:00
Anders Darander
a707b3269c qt4-embedded: fix QT_ARCH usage in QT_CONFIG_FLAGS
After the change to shell style functions (from python style), the
ability to use oe_filter_out on QT_CONFIG_FLAGS got broken.

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

(From OE-Core rev: 8394dda5f12157c88005a788cd35421f498c9b82)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:35 +01:00
Bruce Ashfield
0d3748ca5d linux-yocto/3.0: update to v3.0.32
Updating the 3.0 kernel SRCREVs to integrate the v3.0.32 -stable
release.

(From OE-Core rev: 6d97c94d25713b47417e184308ab43947c7f243d)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:34 +01:00
Bruce Ashfield
5f2b526109 linux-yocto/3.2: update to v3.2.18
Updating the 3.2 kernel SRCREVs to pickup the -stable update
to v3.2.18.

(From OE-Core rev: 0308f91b17b052902a01c98afdd5619cd0c617e5)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:34 +01:00
Bruce Ashfield
6bb0fdda40 linux-yocto: policy cleanups
Updating the meta SRCREVs to pickup configuration policy cleanups:

  49f931b meta/fishriver: remove redundant features and options
  51a6d3f meta/emenlow: remove redundant features and options
  101dd7f meta/crownbay: remove redundant features and options
  4110ecd meta/sugarbay: remove redundant features and options
  0f1304a meta/jasperforest: remove redundant features and options
  0a56a3b meta/common-pc-64: factor out SCSI CDROM option
  b71938a meta/common-pc-64: use usb-mass-storage feature
  0724f40 meta: add scsi cdrom feature
  438bca8 meta/common-pc: use usb-mass-storage feature
  c970881 meta: factor out SCSI options from the usb-mass-storage feature
  4c8135e meta: add scsi disk feature
  6872a81 meta: add scsi feature
  e706ec5 meta/sugarbay: factor out policy-related options
  8b7fbc2 meta/jasperforest: factor out policy-related options
  fea1b0e meta/fishriver: factor out policy-related options
  13bf9ab meta/emenlow: factor out policy-related options
  4748d50 meta/crownbay: factor out policy-related options
  44f592f meta/common-pc-64: factor out policy-related options
  5a3f5c7 meta/common-pc: factor out policy-related options
  1f5a10b meta/common-pc-64: use usb features
  4b87723 meta/common-pc: use usb features
  594ba05 meta: add ROOT_HUB_TT config option to the usb/ehci-hcd feature

(From OE-Core rev: db35cd40c7abe13a9701eb74099d69d461cadb0a)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:34 +01:00
Bruce Ashfield
5ad28e97e6 linux-yocto: intel BSP config changes
Updating the meta SRCREV for the following fixes:

   1dfd60f meta/fishriver: move smp options from recipe-space
   012780a meta/emenlow: move smp options from recipe-space
   b59b1a5 meta/crownbay: move smp options from recipe-space
   74dc6ac meta/sugarbay: remove boot-live options
   a4bedcb meta/jasperforest: remove boot-live options
   4ae7b81 meta/sugarbay: use usb features
   30e7e8c meta/jasperforest: use usb features
   22d0c5d meta/fishriver: use usb features
   e262965 meta/emenlow: use usb features

(From OE-Core rev: bde50853658bab563a888b82278a6acfdce6305b)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:34 +01:00
Bruce Ashfield
495ea21c8b linux-yocto/3.2: configuration and pch merge
Updating the 3.2 SRCREVs to import the following meta/config
changes:

   6b3d4e0 meta: add mei feature
   519abac meta: add usb/uhci-hcd feature
   a67c5a3 meta/crownbay: use usb features
   0855066 meta: add usb/ohci-hcd feature
   15f1a99 meta: add usb/ehci-hcd feature
   8fa6408 meta: add usb/xhci-hcd feature
   c724a55 meta: add usb/base feature
   b55b3a1 sys940x: Cleanup sys940x.scc
   93f2e97 sys940x: Use PHYSICAL_START of 0x200000 to boot
   aaa034b sys940x: Add common standard and preempt-rt features
   e2b1286 sys940x: Add efi-ext to standard and preempt-rt configs
   d188c21 sys940x: Move emgd-1.10 data to the standard scc file
   72d9369 fri2: Cleanup fri2-$KTYPE.scc files re efi-ext.scc
   dbcb120 fri2: Use emgd-1.10 feature and branch

And the following driver fix:

   f39a0a9 pch_gbe: Do not abort probe on bad MAC

(From OE-Core rev: 0609299880ad0aca121e7192d84f85d913c40c62)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:33 +01:00
Saul Wold
94e3e894d0 eglibc: added ac_cv_path_ to CACHED_CONFIGUREVARS
On Fedora 17, bash has moved to /usr/bin/bash and the configure process finds it
on the host machine there, this ensures that it is set correctly for the target.

[YOCTO #2363]

(From OE-Core rev: 0d957dd0604230bef1d01ee9992c56d2aca62ec1)

Signed-off-by: Saul Wold <sgw@linux.intel.com>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:33 +01:00
Saul Wold
8389decfe6 quilt: added ac_cv_path_BASH to CACHED_CONFIGUREVARS
On Fedora 17, bash has moved to /usr/bin/bash and the configure process finds it
on the host machine there, this ensures that it is set correctly for the target.

[YOCTO #2363]

(From OE-Core rev: d54ff1f79f05ba5bd0e1006545e7f1e699998668)

Signed-off-by: Saul Wold <sgw@linux.intel.com>

Reworked commit to fix merge conflicts with denzil branch.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:33 +01:00
Nitin A Kamble
7412611252 eglibc: package mtrace separately
add libc-mtrace as dependency for task-core-tools-debug

now eglibc-mtrace gets included in an sdk image and not in a non-sdk image.

This does not affect builds with uclibc.

This fixes bug: [YOCTO# 2374]

(From OE-Core rev: 6f78625dbab5c81ef20b197aee5206f63611b673)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:32 +01:00
Gary Thomas
026d502b2a webkit-gtk: Apply work around for all PowerPC targets
The current patch for bug #1570 only applies to qemuppc but should be
applicable for all PowerPC targets.  Also update the patch so that
only one language backend, either ICU or PANGO, is built.

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

(From OE-Core rev: 87eae0851e5334734df40a833596c6cbc6715f7f)

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

These changes avoid failures like:

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

(From OE-Core rev: 87753615435c8aec7df5964045e24f13877cd7cc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-21 11:59:32 +01:00
Paul Eggleton
119e1b7dc9 poky.conf: use correct version string for Ubuntu 12.04
Since it is an LTS release, the final version string was not
"Ubuntu 12.04" but "Ubuntu 12.04 LTS", so use this when doing the tested
host distribution check.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:27:19 +01:00
Paul Eggleton
5b3a0eac61 hob: handle sanity check failures as a separate event
In order to show a friendlier error message that does not bury the
actual sanity error in our typical preamble about disabling sanity
checks, use a separate event to indicate that sanity checks failed.

This change is intended to work together with the related change to
sanity.bbclass in OE-Core.

Fixes [YOCTO #2336].

(Bitbake rev: 24b631acdaa143a4de39c6e1328849660c66f219)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:27:11 +01:00
Kang Kai
4c4924ad1b cooker.py: terminate the Parser processes
[Yocto 2142]

Force to exit HOB when hob is parsing recipes, the bitbake doesn't stop.
It hangs on function BitBakeServerConnection::terminate in file
server/process.py:
    else:
        self.procserver.join()
It is waiting for the children process quit.

In stage of parse recipes BBCooker spawns Parser processes as many as
cpu numbers. When quit the Parser processes they make their internal
Queue to call cancel_join_thread() to avoid block but don't work at
this time.
So force to terminate the Parser processes.

(Bitbake rev: bebef58b21bdff7a3ee1fa2449b7df19144f26fd)

Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:27:05 +01:00
Shane Wang
9e6d1101b4 Hob: Adjust the progress bar and set 100% only when all is done.
After parsing recipes, Hob will populate recipes and packages, which is probably
time exhaused. So, this patch is to adjust the progress bar and ensure 100% is
set if and only if all populations are done.

The patch also fixes "weird 18 second delay when parsing recipes" on build appliance.
Because Hob is doing something, but the progress bar shows 100% and wait there.

[Yocto #2341]

(Bitbake rev: 2c4a21dc8a588c8cf05549ddd9734731a46bea10)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:26:55 +01:00
Scott Rifenbark
2bddf70a84 documentation/poky.ent: Updated variables for correct 1.2.1 build.
Key variables are DISTRO at "1.2.1", YOCTO_DOC_VERSION at "current",
and POKYVERSION at "7.0.1".  Note that I have to change "current"
to "1.2.1" before publishing any manuals prior to the official release
of 1.2.1.

(From yocto-docs rev: e62e0baec71c9d39473a9c67caf17f26346539d5)

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

(From yocto-docs rev: 206d43c23efa114b57a1e75e469a6f5bdaf94715)

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

(From yocto-docs rev: 774e00d34d2abd466a6d64b4b91f60d87203add4)

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

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

(From yocto-docs rev: 6357eb7a26abb3dca14daf5d9b9a4e245dd0827b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:26:22 +01:00
Laurentiu Palcu
ef215694de freetype: upgrade to 2.4.9
(From OE-Core rev: 7c767d3723e0b55d3bcd3864a9cdbce6d11d5b35)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:50 +01:00
Paul Gortmaker
71a6fb605a gitignore: add wildcard to match toplevel patch files
To support the basic workflow of trivial patches:

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

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

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

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:49 +01:00
Joe Slater
bfc8589048 shared-mime-info: fix build race condition
The definition of install-data-hook in Makefile.am leads
to multiple, overlapping, executions of the install-binPROGRAMS
target.  We modify the definition to avoid that.

(From OE-Core rev: d8a09cb17f2f3b43718ba354da7368a2ed793766)

Signed-off-by: Joe Slater <jslater@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:49 +01:00
Song.Li
6514e193ac groff: Fix build on Fedora 17
Generally distros keep perl at /usr/bin/perl
But Fedora 17 also has /bin/perl,
this causes groff_1.20.1 build to put perl
interpreter path as /bin/perl
But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       bin/perl is needed by groff-1.20.1-r1.ppc603e

(From OE-Core rev: 75824ff13f43b330b11cf9a130f061baee785e1a)

Signed-off-by: Song.Li <song.li@windriver.com>

Sync up with the do_install_append_virtclass-native chunk.

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:49 +01:00
Jesse Zhang
44fb9daa81 beecrypt: disable java
If java is installed on host, beecrypt will attempt to use it.

(From OE-Core rev: 4d2ff0a69692f54313ffa9dc83d0e4a2ddba47c3)

Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:49 +01:00
Scott Garman
309b2c090e runqemu-ifup: enable arp proxying
This allows core-image-sato to access the WAN.

Thanks to Dexuan Cui for proposing this fix.

Fixes [YOCTO #2329]

(From OE-Core rev: 680a94c378f20c00e8bee0575b8922bccc008fec)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Tom Zanussi
67c7bc5e6c gnupg: disable CCID driver
The CCID driver driver is apparently unnecessary, so disable it.

Also remove the associated libusb dependency, since that won't be
needed either.

According to Scott Garman <scott.a.garman@intel.com>:

I'd just note that the CCID smartcard reader is a specific piece of
hardware that is unlikely to be used in a majority of our use cases.

(From OE-Core rev: 2fcd564b5395950f480a288d434c64c8fee65ece)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Resolved merge conflicts when importing from oe-core master.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Tom Zanussi
e06e502bbb gnupg: add libusb to DEPENDS
gnupg apparently depends on libusb:

| error: Failed dependencies:
| 	 libusb-0.1-4 >= 0.1.3 is needed by gnupg-2.0.18-r1.core2

So add libusb to gnupg DEPENDS.

(From OE-Core rev: 1a76f50c1f159477a86dc7a6cb95873cee05d9e6)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Resolved merge conflicts when importing from oe-core master.

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Zhai Edwin
89c0e81273 webkit-gtk: Use glib as unicode backend to avoid browser crash
webkit-gtk depends on ICU for the unicode, but ICU is not safe when build and
target system owns different endian. ICU's community is not responsive to make
a patch for this, so glib is used as work around here.

[YOCTO #1570] got fixed

(From OE-Core rev: df83a9480ba7b2fd2bcc0a92932d51434d7795a0)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Paul Eggleton
78a5471a29 classes/sanity: send sanity check failure as a separate event for Hob
In order to show a friendlier error message within Hob that does not
bury the actual sanity error in our typical preamble about disabling
sanity checks, use a separate event to indicate that sanity checks
failed.

This change is intended to work together with the related change to
BitBake, however it has a check to ensure that it does not fail with
older versions that do not include that change.

Fixes [YOCTO #2336].

(From OE-Core rev: 3788f9bcb36cca90ca8cf650c9d33f5485e3087b)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Joshua Lock
b30a243f3f sanity.bbclass: copy the data store and finalise before running checks
At the ConfigParsed event the datastore has yet to be finalised and thus
appends and overrides have not been set.
To ensure the sanity check is being run against the configuration values
the user has set call finalize() on a copy of the datastore and pass that
for all sanity checks.

(From OE-Core rev: 527e26ea1e44f114fc9fcec1bc7d83156dba1a70)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:48 +01:00
Richard Purdie
20657c1fa0 image.bbclass: Ensure ${S} is cleaned at the start of rootfs generation
Some image classes such as bootimg save files into ${S} as part of rootfs
generation. For correctness we should therefore clean this at the start of
image generation to ensure reproducibility.

I found this issue when some files I thought should disappear from my rootfs
would not disappear.

(From OE-Core rev: 23b7d7dab475caca4558e3b20db534122bee1525)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:47 +01:00
Mihai Lindner
3029a08744 sudo: fixed wrong chmod path
Placed $D between braces ${D} to be correctly expanded to the
workdir path, instead of a path relative to host rootfs.
Currently, bitbake sudo fails on host systems where sudo is not
installed.

(From OE-Core rev: 83c5acfe4731990c296be1bf67059452a72f9584)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:47 +01:00
Richard Purdie
d376a4e8f1 bitbake.conf: Improve wget timeouts
The wget default is a 900 second timeout and 20 retries. This is way too long
for most of our usecases so this patch changes it to a 30 second timeout and
reduces retries from 5 to 2. We have good mirror infrastructure, this will
let us fall back to it easier.

(From OE-Core rev: dbb88617576ea9bbeec08f5e5e15c26c4c18347f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:47 +01:00
Xiaofeng Yan
0d0846e06f ncurses: Avoid occasional builling failure when having parallel processable task
ncurses failure non-gplv3 build (race issue) like the following \
error information:

| tic: error while loading shared libraries: /srv/home/pokybuild \
/yocto-autobuilder/yocto-slave/nightly-non-gpl3/build/build/tmp/\
work/x86_64-linux/ncurses-native-5.9-r8.1/ncurses-5.9/narrowc/lib\
/libtinfo.so.5: file too short
| ? tic could not build /srv/home/pokybuild/yocto-autobuilder/\
yocto-slave/nightly-non-gpl3/build/build/tmp/work/x86_64-linux/\
ncurses-native-5.9-r8.1/image/srv/home/pokybuild/yocto-autobuilder\
/yocto-slave/nightly-non-gpl3/build/build/tmp/sysroots/x86_64-linux\
/usr/share/terminfo
| make[1]: *** [install.data] Error 1

This is a race issue which is caused by
install.libs and install.data:

1) install.data needs run tic
2) tic needs libtinfo.so
3) install.libs would regenerate libtinfo.so
4) but install.data doesn't depend on install.libs, and they can run
   parallelly

So there would be errors in a very critical condition: tic is begining
to run at the same time when install.libs is generating libtinfo.so, and
this libtinfo.so is not integrity, then there would be the  above error.

Let task install.libs run before install.data for fixing this bug.

[YOCTO #2298]

(From OE-Core rev: 6993570787a97fbca5ea81513b0120c6d7563484)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:47 +01:00
Robert Yang
59ac33c77f rpm 5.4.0: respect to the arch when choose the alternatives
There is a bug if we:
1) bitbake diffutils with MACHINE=crownbay
2) bitbake diffutils with MACHINE=qemux86
3) bitbake core-image-sato with MACHINE=crownbay

Then the diffutils.i586 would be installed to the crownbay's image, this
is because diffutils.i586 is newer than diffutils.core2, and rpm doesn't
respect to the arch priorities:

We have put the archs in order in _solve_dbpath:

crownbay/solvedb:core2/solvedb:i586/solvedb:all/solvedb

Fix rpm to respect to the order, for example, if it finds a pkg in both
core2/ and i586/, and the core2/ comes first, it should not use the one
in i586/ even if it's build time is newer.

Note: Don't worry about the _free(*ptr), it can check whether ptr is
NULL or not.

This is for the denzil branch, and the master branch also needs it.

[YOCTO #2360]

(From OE-Core rev: 2199e6b9c82bb2b6738e87903f30329586db20e2)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-14 11:23:47 +01:00
Richard Purdie
3cb36a5ed9 Update version to 1.15.2 (correspdoning to Yocto 1.2 release)
(Bitbake rev: 270a05b0b4ba0959fe0624d2a4885d7b70426da5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:10:07 +01:00
Liming An
75e32007ef Hob: add original url show function with the tooltip hyperlink for user
When case about No browser, such as running in 'Build Appliance', user can't open
the hyper link, so add this work around for user. (Checking the browser is avaiable
or not is hard by different system and browser type)

[YOCTO #2340]

(Bitbake rev: 02cc701869bceb2d0e11fe3cf51fb0582cda01b0)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:59 +01:00
Liming An
d52e74cee9 Hob: change the refresh icon speed to make it view clear
Because the arrow icon refresh so fast as the go backward by illusion, so adjust it slow.

[YOCTO #2335]

(Bitbake rev: ac4a8885fafdc0d1e79831334ead9a8ddb6e2472)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:52 +01:00
Dongxiao Xu
f1630d3cd4 Hob: Clear the building status if command failed
We may meet certain command failure during build time, for example,
out of memory. In this case, we need to clear the "building" status.

This fixes [YOCTO #2371]

(Bitbake rev: 283dbbbf5d34adb4c9e3aa87e3925fdebe21ff42)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:42 +01:00
Tom Zanussi
b7f1a8f870 yocto-bsp: clarify help with reference to meta-intel
The current yocto-bsp help assumes knowledge that the meta-intel layer
needs to be cloned before it's put into the BBLAYERS.  Avoid the
guesswork and state the details explicitly in the help.

Also, the shorter 'usage' string doesn't mention it at all; it would
help to at minimum mention it and refer the user to the detailed help.

Fixes [YOCTO #2330].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:31 +01:00
Tom Zanussi
015f117d85 yocto-kernel: use BUILDDIR to find bblayers.conf
The current code assumes that builddir == srcdir/build, which it
obviously isn't sometimes.  Use BUILDDIR to get the actual builddir
being used.

Fixes [YOCTO #2219].

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:24 +01:00
Richard Purdie
b8338046ba netbase: Correctly set FILESEXTRAPATHS to include the version
[YOCTO #2366]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-06-05 23:09:10 +01:00
Scott Rifenbark
7552ccd06c documentation/yocto-project-qs/yocto-project-qs.xml: pre-built example fix
The example showing how to use pre-built images, the toolchain, and
filesystem was off a bit.  I changed some wording to indicate using the
.ext3 filetype of the filesystem.  Previously it talked about expanding
the tarball version but the example has been changed to use .ext3.
Also, the environment setup file has been mis-named forever.  It should
have i586 in it and not i686.  And, finally, the image name does not
have a release number as part of the name.

(From yocto-docs rev: 97ed79993dd3e2eede4807482e15633b66b99f49)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:29 +01:00
Scott Rifenbark
e24d5cc2cd documentation/dev-manual/dev-manual-bsp-appendix.xml: .bbappend example
The linux-yocto_3.2.bbappend example was out of date.  There is no
longer a kernel features statement in the last part of the section.
Only COMPATIBLE_MACHINE, KMACHINE, and KBRANCH remain.  I removed
the fourth one from the text description and the example code.

(From yocto-docs rev: 89a11ce3c2a43e2d7c26599976d906011130131f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:28 +01:00
Scott Rifenbark
1f2fc974df documentation/dev-manual/dev-manual-bsp-appendix.xml: Added note
Added a note telling the user that the commit ID strings in the
example might not match the actual commit ID strings found in
the .bbappend file.

(From yocto-docs rev: 0477122c42eaf6d5e18e28a2356fe58c1070c608)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:28 +01:00
Scott Rifenbark
a473ba170d documentation/yocto-project-qs/yocto-project-qs.xml: Minor wording changes
(From yocto-docs rev: 528e34b1694739396295b769cc6f83d58dd3bf59)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:28 +01:00
Scott Rifenbark
a5fe09c6aa documentation/dev-manual/dev-manual-kernel-appendix.xml: Kernel example fixed
Due to a bug (2256) the example that changes the kernel configuration
through menuconfig did not work.  I have re-written the section
to now start with the default behavior of CONFIG_SMP=y and then
have the user change the configuration to where it is not set.

The changes include the reversing of the flow and the work-around
needed due to bug 2256.

(From yocto-docs rev: 2eaaafab0390d1108b212b9cfb7ca8365e0f39a9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:28 +01:00
Scott Rifenbark
2072256b05 documentation: Added 1.2.1 manual entry information.
Added 1.2.1 manual history entry to five manuals.  The date
is to be determined.

(From yocto-docs rev: bb920814d5adaa24d37fbcefd85de2ba93ddf604)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:28 +01:00
Paul Eggleton
b623203ac9 documentation/yocto-project-qs/yocto-project-qs.xml: Setup changes
Remove mercurial as this is no longer needed.
linuxdoc-tools was mentioned twice in the CentOS list.
We no longer support Fedora versions older than 15 so remove this note.

This commit applies to 1.2, 1.2.1, and 1.3.

(From yocto-docs rev: 1347f92c49e61a42aa51e5c1ffccde88a449a4fb)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:27 +01:00
Scott Rifenbark
c7e4a6ae2c documentation/Makefile: Fixed figures publishing bug
I discovered a bug when publishing documents.  There are two scp
commands that copy a document's files and figures to the appropriate
directory in the srifenbark@yocto-www:~/www.yoctoproject.or-docs
server where the manuals are published.  The second scp command
had a "/figures" at the end.  This was causing a new "figures"
directory to be created within the "figures" directory.  This
redundancy shows up as missing figures in the manuals if a new figure
or changed figure is ever added to the book after initial
publishing.  I removed the extra "/figures" at the end of the scp
command.

(From yocto-docs rev: 5ab530f998427405a0486b94ca76cff58a4cf463)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:22:27 +01:00
Andrei Gherzan
1628159028 fotowall: Add #include ui_wizard.h to ExportWizard.cpp
App/ExportWizard.cpp depends on wizard.h which depends on ui_wizard. The last one
should be already generated before compiling ExportWizard.cpp.

[YOCTO #2297]

(From OE-Core rev: d7bf94647f17c0382caad8af0bdda837b14b22dc)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:14 +01:00
Khem Raj
b477f676e3 classes/mirrors.bbclass: Point snapshot.debian.org mirror to working location
If you point to snapshot.debian.net/archive/pool then it will fetch
you a html page which will end up in corrupt download. The locations
have changed for archives and here we point the mirror to right
location.

(From OE-Core rev: d5574749b2272357f6bdad04c37ec0657b391cca)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:14 +01:00
Khem Raj
9d2534ab24 uclibc.inc: uclibc rtld does support GNU_HASH
(From OE-Core rev: 090d8a687517c2d4deb33295a3cceb5175aa28f3)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:13 +01:00
Khem Raj
df815f20c8 openssl: Fix build for mips64(el)
(From OE-Core rev: 8c74ddf5fd5502fd759f310096e9013fad0ca4db)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:13 +01:00
Zhai Edwin
b64eefe2bb pango: Fix modules load failure in multilib environment
Multi-libs of Pango need different modules, thus different config files and
utils. This patch separate config file and utils with different MLPREFIX to
avoid conflict.

[YOCTO #2356] got fixed.

(From OE-Core rev: 535e298b98182d95c3280d2d46aa6388e27aac40)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:13 +01:00
Richard Purdie
4abd299bf0 sed: Explicitly disable acl for deterministic builds
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:13 +01:00
Dongxiao Xu
30c3c8420e qt4: move functions from python to shell style
In qt4's do_configure operation, it will refer to some variables that
are derived from 'd', however these variable values may be not correct
in multilib case since the extraction of these variables happens before
the multilib handler.

The fix is to move these python style functions back to shell style.

This fixes [YOCTO #2355]

[RP: Fix whitepace]
(From OE-Core rev: 98cb2efe4e9f3092d531c9fc809406c3ef559725)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[SG: Resolve merge conflicts for 1.2.1]
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:12 +01:00
Darren Hart
a74fb01b6b initrdscripts: Update install.sh to work with mmc devices
Fixes [YOCTO #2385]

The installer only searches for hd[ab] sd[ab]. Some newer BSPs have mmcblk
devices that should be used as the install target. These devices also have a
partition prefix (mmcblk0p1 instead of mmcblk01). As they are detected
asynchronously, it is necessary to add the rootwait kernel parameter to avoid
a race condition trying to mount the root device.

As BSPs like the FRI2 and the sys940x have mmc devices and will have a 1.2
release, we should push this to 1.2.1. The changes are perfectly contained and
easily verified.

Test for an mmcblk device and add the p partition prefix if necessary. Add the
rootwait kernel parameter when an mmcblk device is detected.  Replace the series
of explicit umount commands with a single umount using a wildcard. This will
find all the partitions and will not try to unmount non-existant devices. Avoid
copy and paste errors by replacing /dev/${device}${pX} references with the
previously assigned rootfs, bootfs, and swap variables.

These changes have been tested on the FRI2 Sato image which installed to
/dev/mmcblk0 as well as the N450 Sato image which installed to /dev/sda. Both
were successful.

(From OE-Core rev: 36634e16c0a0c80674bacf20f9841e3b042bd5fd)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:12 +01:00
Paul Eggleton
c003c04590 buildhistory: fix multiple commit of images and packages at the same time
The echo line here was merging multiple lines into one, and the result
was that if both image and package changes had to be comitted then only
the image changes were being committed and the package changes could
potentially be merged into the next package change. Quoting the variable
reference fixes this.

Fixes [YOCTO #2411]

(From OE-Core rev: 540cd9d42a4db562e5eca431cec89ac5a6a05cab)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:12 +01:00
Saul Wold
35cc0b023f builder: Add Please Wait Dialog Box
Add dialog box while bitbake starts hob to inform user
to please wait for the hob screen to become visible.

(From OE-Core rev: e9239e4250ef140920847f78625cc7206763c32c)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:12 +01:00
Nitin A Kamble
c2826b50ce quilt: fix perl path in target perl scripts
While building on distros like fedora17, which has /bin/perl,
the target perl scripts get perl path also as /bin/perl.
And that is not correction path of perl on the target.

This commit avoids this error.

| error: Failed dependencies:
|       /bin/perl is needed by quilt-0.51-r2.i586
NOTE: package core-image-sato-sdk-1.0-r0: task do_rootfs: Failed
ERROR: Task 8
(/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato-sdk.bb,
do_rootfs) failed with exit code '1'

(From OE-Core rev: c8c394bd806978c867f2fe82e4bde65c98764880)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:11 +01:00
Saul Wold
75225bcc84 boost: Ensure we use our user-config.jam file
This change ensures we use the user-config.jam Configuration
that we created and will not use anything from the user's home
directory.

[YOCTO #2302]

(From OE-Core rev: f246e467b8513f1c1c33b5e7462ae6478754d531)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:11 +01:00
Mark Norman
d3204ddc12 uclibc SDK not including libpthread_nonshared.a
Modified the uclibc PACKAGES list order to ensure the uclibc-dev package is
processed before uclibc-staticdev to allow *_nonshared.a libraries to be
packaged in the uclibc-dev package.  The *_nonshared.a libraries are required
by the SDK.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:11 +01:00
Scott Garman
7c7ac8548d runqemu-ifup: enable ip masquerading for QEMU NAT addresses
Fix the IP masquerading settings so that networked QEMU sessions can
reach external networks.

This is a partial fix for [YOCTO #2329].

(From OE-Core rev: 78c7a82a2e3214eaec3c559269e3cc6c219759c0)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:11 +01:00
Scott Garman
bbf95cae4c openssl: upgrade to 1.0.0i
Addresses CVE-2012-2110

Fixes bug [YOCTO #2368]

(From OE-Core rev: 51a122a5593c62d7ffd07f860e54a2fb0327959c)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:10 +01:00
Scott Garman
3df821277d libpng: upgrade to 1.2.49
License hasn't changed, just updated the md5 checksums due to trivial
date changes within the text (and the position of the license text
within png.h).

Addresses CVE-2011-3045

Fixes [YOCTO #2352]

(From OE-Core rev: 6e2235a4d769b16ebf68d6bbed56d8bcc0e0c83f)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:10 +01:00
Andrei Gherzan
4f4685469a python: Add patch to search for db.h in inc_dirs and remove warning
python should search for db.h in inc_dirs and not in a hardcoded path.
If db.h is found but HASHVERSION is not 2 we avoid a warning by not.
adding this module to missing variable.

[YOCTO #1937]

(From OE-Core rev: 8eb3e52d39147f8cb98ec95857be17db0444098e)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:10 +01:00
Andrei Gherzan
d1bc1191d6 python: Add patch for 64bit platform
This patch was added for 64bit host machines. In the compile process python
is checking if platform is a 64bit platform using sys.maxint which is the host's
value. The patch fixes this issue so that python would check if TARGET machine
is 64bit not the HOST machine. In this way will have "dl" and "imageop" modules
built if HOST machine is 64bit but the target machine is 32bit.

[YOCTO #1937]

(From OE-Core rev: 22ae3959f40845ebcc00413ccf733539472a1a81)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:10 +01:00
Andreas Oberritter
5c507a2fd7 {kernel, module}.bbclass: don't run depmod for module packages during do_rootfs
* depmod already gets executed by pkg_postinst_kernel-image.

* If you build a module using module.bbclass, pkg_postinst returns 1 in
  do_rootfs, causing pkg_postinst to run again on first boot. To improve
  this situation, I copied pkg_postinst from kernel.bbclass to module.bbclass.
  This was rejected by Koen, because he doesn't like the code from
  kernel.bblcass, which uses ${STAGING_DIR_KERNEL}. Richard then suggested
  that calling depmod during do_rootfs wasn't necessary at all, because
  it already gets done by kernel-image.

(From OE-Core rev: 663b4be025283a30adb823760ce9d9a056106bcf)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:09 +01:00
Richard Purdie
bf4740cf66 utils.bbclass: Testing via env in create_wrapper is a nice idea but breaks things
For example, pseudo-native wants to set LD_LIBRBARY_PATH but setting this
into the environment here causes the existing pseudo (running during do_install)
to poke into paths in /opt and this breaks builds.

The simplest fix is simply not to do this. Comments tweaks to match the code.

(From OE-Core rev: 915769c405e24751eae613e9ef55f05490a726de)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:09 +01:00
Nitin A Kamble
24ffb5c0b1 libproxy: fix compilation with gcc 4.7
(From OE-Core rev: 6689c52eb13430593d6afe48dba3973467cd2404)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:09 +01:00
Paul Eggleton
a92fed4fe5 dpkg-native: fix deb-based rootfs construction failure on Fedora 16
Backport a fix from 1.16.x upstream to use fd instead of stream-based
I/O in dpkg-deb, which avoids the use of fflush() on an input stream
(the behaviour of which is undefined by POSIX, and appears to have
changed in the version of glibc introduced in Fedora 16 and presumably
other systems).

Fixes [YOCTO #1858].

(From OE-Core rev: b1c28667592e736115ab5e603a12c2723b939cf2)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:09 +01:00
Saul Wold
a518e1e3b1 quilt: move empty quiltrc to native sysconfdir
patch.bbclass orignally pointed at /usr/bin/quiltrc for an empty
version to ensure that no user setting were picked up, change this
to /etc/quiltrc in the Native sysroot since we now have a native
sysconfdir.

Make sure that the quiltrc is actually installed in the Native
sysconfdir, not the target, so fix this after the recipe split.

(From OE-Core rev: aec4cdc6efda430a0965d6b3b4f84c7943390273)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:08 +01:00
Saul Wold
fc9716930a gcc: Add plugins package for ARM, fix /usr/incude packaging
WARNING: For recipe gcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/include
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm
WARNING:   /usr/lib/gcc/arm-poky-linux-gnueabi/4.6.4/plugin/libgcc/config/arm/bpabi-lib.h
(From OE-Core rev: cf49cf3958b24fdb89d57abbf1f1b30c07a06030)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:08 +01:00
Saul Wold
f99ced96cf xserver-kdrive: Add xkb to existing docs list
WARNING: For recipe xserver-kdrive, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/share/man
WARNING:   /usr/share/man/man5
WARNING:   /usr/share/man/man1
WARNING:   /usr/share/man/man1/Xephyr.1
WARNING:   /usr/share/man/man1/Xserver.1
(From OE-Core rev: 515cbe565b684359ac9d8bd0fb523aa3d2f810e2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:08 +01:00
Saul Wold
d0f0d1b41d libgcc: Package additional *crt*.o files for PPC
WARNING: For recipe libgcc, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrti.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ecrtn.o
WARNING:   /usr/lib/powerpc-poky-linux/4.6.4/ncrtn.o
(From OE-Core rev: 580d734ddc928aaaac9acaa248427b01731074f2)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:08 +01:00
Saul Wold
77203b75f5 binutils: add embedspu for ppc builds
WARNING: For recipe binutils, the following files/directories were installed but not shipped in any package:
WARNING:   /usr/bin/embedspu
(From OE-Core rev: 15c8ea4d35edbcaf03c94aba06ded85851679157)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:07 +01:00
Ken Werner
a0f1aca7a0 bdwgc: Set ARM_INSTRUCTION_SET to "arm"
The bdwgc recipe uses a version of libatomic that fails when building in Thumb
mode. This has been fixed upstream already. The
pulseaudio/libatomics-ops_1.2.bb has the same issue and sets the
ARM_INSTRUCTION_SET to "arm" (probably until a new version gets pulled in).
This patch applies the same workaround to the bdwgc/bdwgc_20110107.bb recipe.

(From OE-Core rev: 544fe63b6a861129ea15f4cd37952e513ab0013e)

Signed-off-by: Ken Werner <ken.werner@linaro.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:07 +01:00
Darren Hart
b3de1f1140 gthumb: Disable parallel make for gthumb install
With PARALLEL_MAKE set to 14, I frequently see the gthumb do_install
task hang. Make is spinning at 100% CPU and the build makes no
more progress.

The following work-around proposed by Richard Purdie allows progress
to be made.

(From OE-Core rev: e933129ddb8ae55d618b5875fca26bc46fcb100b)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Joshua Lock <josh@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:07 +01:00
Andreas Oberritter
6e93ac2581 python: use PKGSUFFIX for libpython2
* python-nativesdk shouldn't provide libpython2, but
  libpython2-nativesdk.

(From OE-Core rev: 260dfd9ccbf7d1e0ed60256aaf80fed5bf0c24e2)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>

[PR Bump - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:07 +01:00
Otavio Salvador
c1bfbf7168 connman: backport test script fixes
Those fixes are required to get the test scripts to work with current
0.79 DBus API.

(From OE-Core rev: aadeb3199d1b34369b63810696b9d61a86afb31d)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:06 +01:00
Khem Raj
5a7d852a94 connman: Fix linking with gold linker
Fixes errors like below

/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__start___debug' is not defined locally
/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstrom-linux-gnueabi/4.6.3/ld:
error: hidden symbol '__stop___debug' is not defined locally
collect2: ld returned 1 exit status
make[1]: *** [plugins/loopback.la] Error 1

(From OE-Core rev: 3e6e97b40f8cb9568993c5cc65d73189ec6b7b8a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-31 21:15:06 +01:00
Scott Rifenbark
3bf8069100 documentation/yocto-project-qs/yocto-project-qs.xml: added quotes
Need quotes around the INHERIT statement.

Reported-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
(From yocto-docs rev: b040ab0cf8e776c04fc787ba09722327b60913f2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:36 +01:00
Scott Rifenbark
cbd192a6c5 documentation/dev-manual/dev-manual-kernel-appendix.xml: grammar fix
(From yocto-docs rev: 8f62155b56f82c705f05585d2ab68d4a4af5a501)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:36 +01:00
Scott Rifenbark
6d22ae627b documentation/dev-manual/dev-manual-kernel-appendix.xml: Removed KMACHINE
The example that compliles the altered code will not run now when the
KMACHINE statement is in the linux-yocto_3.2.bbappend file.  I have
commented it out of the book.

(From yocto-docs rev: 112a10a32ba3d7b24f22e25e39202b717571cbf0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:36 +01:00
Scott Rifenbark
49a58c65b6 documentation/dev-manual/dev-manual-kernel-appendix.xml: updated KSRC
The KSRC example needs "_3_2" at the end of the variable.

(From yocto-docs rev: 99bf77dd648b28c2d425d23215383b7c733b054d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:36 +01:00
Scott Rifenbark
06cde35657 documentation/dev-manual/dev-manual-kernel-appendix.xml: added quotes
Turns out the KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.2.git
statement in the linux-yocto_3.2.bbappend file in poky-extras needs
quote characters around the pathname.  I updated the example
statement.

(From yocto-docs rev: bcdb8d230f20bf69567380d562c991ff6eeb41cd)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:35 +01:00
Scott Rifenbark
196a62b50c documentation/dev-manual/dev-manual-kernel-appendix.xml: kernel machine update
Found two instances of "yocto/standard/common-pc/base".  this should
now be "standard/default/common-pc/base".

(From yocto-docs rev: d710bc868409ad21bdf9e63c042ec40b0d305ad0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:35 +01:00
Scott Rifenbark
8ddaa3ede8 documentation/dev-manual/dev-manual-kernel-appendix.xml: 3.0 to 3.2
The kernel used for example is no linux-yocto_3.2.  I changed
all occurences of yocto_3.0 over to yocto_3.2

(From yocto-docs rev: c3585a0fec0381a88071004660ab96016f9674e2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:35 +01:00
Scott Rifenbark
52ccf5a9eb documentation/dev-manual/dev-manual-kernel-appendix.xml: formatting fix
(From yocto-docs rev: 1d1a5059163749b5adecf9432ffc5e2f2207acf4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:35 +01:00
Scott Rifenbark
b2c9b25f97 documentation/dev-manual/dev-manual-kernel-appendix.xml: altered example
The example code with the printk statements needed to be altered.
And the wording supporting the example was modifyied to be more
generic.

(From yocto-docs rev: 4d03fe2e08dbdcab438aae551e9696e11a3e4477)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:35 +01:00
Scott Rifenbark
5a1fb95a8d documentation/dev-manual/dev-manual-kernel-appendix.xml: updated cpuinit
Looks like calibrate_delay(void) changed in the example.  Updated
to the most recent code.

(From yocto-docs rev: 402af7d379b0df5e97b1863aa627aad98ceb5e6f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:34 +01:00
Scott Rifenbark
22b9983cc7 documentation/dev-manual/dev-manual-kernel-appendix.xml: output updated
Updated the example sets up the bare clone.  The shell output changed
because the upstream repo changed to
"origin/standard/default/common-pc/base".

(From yocto-docs rev: 72077ca9e7db747cbccc4d9d8deabfa424c6147c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:34 +01:00
Scott Rifenbark
7f5e6a1959 documentation/Makefile: Added denzil specific .PNG file logic
A new figure was needed in the Kernel appendix.  I added that
figure to the block of code that creates the tarball for the
denzil branch.

(From yocto-docs rev: cb3997cad15f7bf6f812f939a3fe4dcac955376d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:34 +01:00
Scott Rifenbark
01025ad2c4 documentation/dev-manual: New figure just for denzil
New image needed for Denzil.  I created a new file named
"kernel-example-repos-denzil.png" and copied it to the
Figures folder.  I also deleted the
"kernel-example-repos.png" image.

(From yocto-docs rev: 150b4c01cce283ae8de29f51a2e4e7dcb60281ca)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:34 +01:00
Scott Rifenbark
71580376c9 documentation/dev-manual/dev-manual-bsp-appendix.xml: updated hddimg example
In the "Building and Booting the Image" section there is an example
.hddimg file.  I updated the file to be the actual file used during
the BSP example build.

(From yocto-docs rev: ce759fb3d4e5e22f0928cdd03c17c0b5d9f4167b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
0774a11505 documentation/dev-manual/dev-manual-bsp-appendix.xml: BBLAYER update
For 1.2 you evidently need to add $HOME/poky/meta-intel to your
bblayers.conf file.

(From yocto-docs rev: 05bb85dd133d8da0697cd4414b05dde2a636b737)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
4d2d5abd8b documentation/dev-manual/dev-manual-bsp-appendix.xml: wording updated
Wording for linux-yocto_3.2.bbappend file updated to support the
addition o fhte KBRANCH variable.

(From yocto-docs rev: 6bd32650f1004055ac67157f96ab62abf5883047)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
884034b256 documentation/dev-manual/dev-manual-bsp-appendix.xml: mymachine.conf
edited it to now include the PREFERRED_VERSION variable.

(From yocto-docs rev: 6ddd56cbcec752e27b2bbf0fc687af79b2249377)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
ee98021efe documentation/dev-manual/dev-manual-bsp-appendix.xml: recipes-kernel update
The section on changing recipes-kernel was way out of date.
I updated all relavent changes.

(From yocto-docs rev: b9f954983447e45766a0bf785285c0591fe9d340)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
f52747d7a2 documentation/dev-manual/dev-manual-bsp-appendix.xml: 3.2 for 3.0
Kernel used in now 3.2 and not 3.0.

(From yocto-docs rev: 8ee757e0d4f97f7652de2c9ee1556c142920596a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:33 +01:00
Scott Rifenbark
1bf998fe41 documentation/dev-manual/dev-manual-bsp-appendix.xml: added layerdepends
The layer.conf file now uses a LAYERDEPENDS variable.  I added that
to the example.

(From yocto-docs rev: 09f4d9e74ceccb3053a36d2a3deed5cc3d3be157)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
1b3c00a34f documentation/dev-manual/dev-manual-bsp-appendix.xml: changed kernel
The kernel in mymachine.conf had to be changed from 3.0 to 3.2

(From yocto-docs rev: 8a385bfa11298251fd80445d6fd2da6034d6b9dc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
b3f870297e documentation/dev-manual/dev-manual-bsp-appendix.xml: Output updated
The output for creating and switching to the denzil branch
for meta-intel needed updated.

(From yocto-docs rev: 54602beb1aa56521c7f5812803724ff53bf11bf1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
93deb57c91 documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable
The variable substitution had to be changed from
"&DISTRO_NAME;-6.0.0.tar.bz2" to "&DISTRO_NAME;-&POKYVERSION;.tar.bz2".

(From yocto-docs rev: 8ed6cb5e2b56dee3fa8d127b449183ae141a9153)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
2883b754a1 documentation/dev-manual/dev-manual-bsp-appendix.xml: Added link
Created a link to the Yocto Project Files term.

(From yocto-docs rev: 32d7d7008ebcb0b25f77b855025c7059526b9694)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
86325bbc5d documentation/dev-manual/dev-manual-bsp-appendix.xml: typo corrected.
(From yocto-docs rev: 73eba4180162fcd6570ae90c6cac1b16088d4a01)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:32 +01:00
Scott Rifenbark
746d718f53 documentation/dev-manual/dev-manual-bsp-appendix.xml: Bad variable
Had to remove "poky-" from the front of this variable that resolves
to a YP Files top-level name from the tarball.

(From yocto-docs rev: d01d5bd6c4d1fd754d4fccc087d557058d6a5733)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:31 +01:00
Scott Rifenbark
c498338197 documentation/dev-manual/dev-manual-model.xml: Fixed a bad link title.
(From yocto-docs rev: 0b59afe539b2adc3459c1e22404136d81250d292)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:31 +01:00
Scott Rifenbark
ba554bd865 documentation/dev-manual/dev-manual-model.xml: Better wording.
(From yocto-docs rev: bb3fa5eeed2784b415d009ae07c39149adc1a147)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:31 +01:00
Scott Rifenbark
0dda5d88a5 documentation/dev-manual/dev-manual-model.xml: Added BitBake
Throughout the documentation set I have refered to the YP build
system generically in order to avoid use of the "Poky" term.  Richard
has suggested that we refer to the actual thing that does the building.
So I have added BitBake to this particular sentence to refer to the
tool.

(From yocto-docs rev: 4d52fc9c8d1e1cbfca99590fcaa09392f5d235bf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:31 +01:00
Scott Rifenbark
06f44161f1 documentation/dev-manual/dev-manual-model.xml: Fixed poor references.
(From yocto-docs rev: 91885c11cc33a10b3d65006304bf5a6ca748f13f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:30 +01:00
Scott Rifenbark
4b4a018466 documentation/dev-manual/figures/kernel-overview-3.png: Removed file
This file was replaced by a release-specific file named
"kernel-overview-3-denzil.

(From yocto-docs rev: e9604111299d3699105225302c43a25e7b2730b1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:30 +01:00
Scott Rifenbark
caf6532b51 documentation: release-specific figure needed for denzil in dev-manual
dev-manual/dev-manual-model.xml:  The Bare Clone and Copy of the Bare
Clone figures are out of date for denzil.  These needed to be
re-done so they use "linux-yocto-3.2.git" and "my-linux-yocto-3.0-work"
as the root names.  This presents a Makefile issue when making the
denzil and pre-denzil versions of the manuals.  Whenever you use a
different figure for a different release, you need to involve the
BRANCH variable in the Makefile.  This is necessary because you are
using different figures in the generated tarballs.  The set of figures
could be unique to the release.  The outdated figure is
"kernel-overview-3.png" and will eventually be removed (later commit).
I created a new figure named "kernel-overview-3-denzil.png" and used
that in the dev-manual-model.xml file.

documentation/Makefile:  I updated the Makefile to test for a
"denzil" release build and if so include the new file in the
generated tarball.  This commit adds the new .PNG file as well.
Fixed the Makefile so that if you don't supply a BRANCH value, it
uses the latest figures (denzil).

(From yocto-docs rev: 49552b12a967f97eb4d75477895bf32f61d69aa6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:30 +01:00
Scott Rifenbark
a81cb954bb documentation/dev-manual/dev-manual-model.xml: Wording change
Changed the Note wording to work with the list and not be specific
to a number of supported kernels.

(From yocto-docs rev: a6ffe0834c0ed76ec09315f34c65888c20eed958)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:30 +01:00
Scott Rifenbark
0089bb9ad0 documentation/dev-manual/dev-manual-model.xml: Updated wording for list
The list specifically named four kernels supported.  I changed it so
it would say "several kernels".

(From yocto-docs rev: b6c34f86c1f3724c1416b8fb7770e1c33587e065)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:30 +01:00
Scott Rifenbark
ce8d4157db documentation/dev-manual/dev-manual-model.xml: BSP Layer step updated
Several things out-of-date for step five of the BSP Creation overview.

(From yocto-docs rev: ec06bd4f7bb1764e4a37328a51923d7b707d19e6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:29 +01:00
Scott Rifenbark
66b18cb5cd documentation/dev-manual/dev-manual-model.xml: Fixed link
The link and wording to the YP Downloads page on the website was
wrong.  Fixed it up.

(From yocto-docs rev: 5baf847c9b5b8af07c8945921352d3aba2a9cfa8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:29 +01:00
Scott Rifenbark
bbf33914ea documentation/dev-manual/dev-manual-common-tasks.xml: Font corrected.
(From yocto-docs rev: 0fab3eecf7f67ae890ff4fc2f6c12fed4aa4d897)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:29 +01:00
Scott Rifenbark
e1e12bfd0c documentation/dev-manual/dev-manual-common-tasks.xml: Section name fixed.
(From yocto-docs rev: 6c5724d8c0e75efc22dd2f4477a797afeaed5347)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:29 +01:00
Scott Rifenbark
bc7f18c61d documentation/dev-manual/dev-manual-common-tasks.xml: fixed path
Added more detail to the pathname for the example
formfactor_0.0.bbappend file.

(From yocto-docs rev: 32e60999494bb5b69d683008ad804613e4b99d07)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:28 +01:00
Scott Rifenbark
89e2958475 documentation/dev-manual/dev-manual-common-tasks.xml: link and output fixed
Fixed a reference to Yocto Project Files and provided a link.

Put in an updated version of the meta/recipes-bsp/formfactor/
formfactor_0.0.bb file in the example.

(From yocto-docs rev: 05001174d2337a91e839e991a3e9ecd6657a56f4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:28 +01:00
Scott Rifenbark
943c6917e6 documentation/dev-manual/dev-manual-start.xml: shell output examples updated
Updated various shell output examples created from cloning various
Git repositories, etc.

(From yocto-docs rev: ed167b1643a60ab30c09c2f42baebf781564ca20)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:28 +01:00
Scott Rifenbark
2b6e86beae documentation/dev-manual/dev-manual-start.xml: updated output for bare clone
Updated the shell output example when user creates a bare clone
of kernel.  We use linux-yocto-3.2 here.

(From yocto-docs rev: e24beac8c8b6c65f94b71f36bf9f5d918ee4375e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:28 +01:00
Scott Rifenbark
42a9a50771 documentation/dev-manual/dev-manual-newbie.xml: Tag example fixed
The example that creates a local branch based on a release tag
in the "Repositories, Tags, and Branches" section was not optimal.
Darren Hart informed me that naming a local branch the same name
as a tag confuses Git.  Plus, the "-b" option was mis-placed.
Renamed the local branch to have "my-" in front of it and moved
the "-b" option earlier in the command.

(From yocto-docs rev: 24ab16d18fb317efb86d2c4ddb2ac1a1449df519)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:28 +01:00
Scott Rifenbark
74c34c9d3c documentation/dev-manual/dev-manual-newbie.xml: Fixed branch example
The example in the "Repositories, Tags, and Branches" section that
creates a local branch that tracks the upstream branch is incorrect.
The syntax should be "git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;

Fixed it.

(From yocto-docs rev: 7b47dd460f240a0d7f07edf2767bcad1ddc9d4c3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:27 +01:00
Scott Rifenbark
e9b8cf485c documentation/dev-manual/dev-manual-newbie.xml: Link added for TOPDIR
(From yocto-docs rev: e02c1762fadd22f6ffc06e91ac82ebb59a7a7f68)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:27 +01:00
Scott Rifenbark
2863d953bd documentation/dev-manual/dev-manual-intro.xml: Hob and BA added
Added Hob and Build Appliance to the list of other stuff the user
might want to reference.

(From yocto-docs rev: 74ca0a95f0ea1b2045a42f0895ba874bdfa2d46c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:27 +01:00
Scott Rifenbark
716bdd4bf5 documentation/dev-manual/dev-manual-start.xml: Misc fixes
Better wording for the role of BitBake.  Updated shell output for
the clone of poky.

(From yocto-docs rev: 0f7d9557413827f82388d3fe677109074f04e30c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:27 +01:00
Paul Eggleton
dfecd3e3d7 documentation/yocto-project-qs/yocto-project-qs.xml: Package requirements
The following packages no longer need to be installed on the host
system:

* python-psyco
* help2man
* cvs
* hg

Additionally, linuxdoc-tools was mentioned twice in the Fedora list.

(From yocto-docs rev: bf7f37e040e5d5e19738f4c3a313acfd406351e3)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:26 +01:00
Scott Rifenbark
142de43be2 documentation/dev-manual/dev-manual-common-tasks.xml: Fix cusomizing example
As suggested by Paul Eggleton and Richard Purdie, the example that
describes another method for creating a cusomt image was modified
so that it is based on an existing recipe instead of requiring a
new image.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 21:00:26 +01:00
Scott Rifenbark
752c707df3 documentation/poky.ent: Changed "latest" to "current"
Needed to change this so that the manuals will make correctly and
manual links will not point to the "latest" version of manuals on the
YP website.  This change should have been made prior to the final
1.2 build so that it would have been in the 1.2 tarball.

(From yocto-docs rev: a8615e05aef205629c832041f30c76567d8359bd)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-05-01 20:57:24 +01:00
Richard Purdie
d20a24310e self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: fd989e1bceef6df36619ba8944c8141abefd282e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:21:45 +01:00
Richard Purdie
8e04664ffd self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 117ca04008415ed0e6e10dcd373ab5f685b3225a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:17:25 +01:00
Dongxiao Xu
3ab5d73f0c sanity.bbclass: Add a new case to issue sanity_check()
Judge if "SanityCheck" event is received, it will issue the
sanity_check() and send "SanityCheckPassed" back if succeeded.

(From OE-Core rev: 19704f9e69ecf09531687385b478b47f49fe372d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:15:47 +01:00
Dongxiao Xu
33f048240d Hob: Issue sanity check after parse is completed
In original scheme, sanity check is part of the parsing process. If a
sanity check fails, it means the parsing is failed and values in Hob
GUI may not correct.

With this commit, Hob will actively issue sanity_check() after the
parsing is completed.

This fixes [YOCTO #2361]

(Bitbake rev: 36968815dcc91759eeacb308bf4b294af416eee5)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:15:42 +01:00
Dongxiao Xu
0bf04aa4ad Hob: Add proxy setting into setting's md5
If user changed the proxy setting, we will reparse configuration because
it may need sanity check.

(Bitbake rev: 0be54917cd88ea8f110027a7840ac69a411fd589)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:15:36 +01:00
Dongxiao Xu
612555e6fe event.py: Add SanityCheck and SanityCheckPassed events
(Bitbake rev: 4d7bf9d813229b78b1cd87d06f7042e7923b7db4)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-24 10:15:29 +01:00
Richard Purdie
35196ff703 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 85bebd85c4f6603ac8fc1290121c34b92cc434f9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:13:00 +01:00
Lianhao Lu
0a48c697d7 pseudo: PR bump.
Bump PR value due to the commit
c6c701f424aeb502d20ff02d02712e56f4e259a5.

(From OE-Core rev: b6ee2880fccf04923ede31256ea418451cbf2e46)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:10:39 +01:00
Scott Rifenbark
7e56770a60 documentation: Updated Manual Revision Tables again.
After some discussion from Song and Richard, the dates in the
manual revision table has been updated to "April 2012" for the
1.2 release.

(From yocto-docs rev: b3fc2ec7c5aedb8ea0a2d502bdcd7e8f4092ed96)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:08:16 +01:00
Scott Rifenbark
9a548f0ee4 documentation: Replacements for "1.1" and "edison", etc.
I did a quick and dirty scrub over the manuals for the strings
"1.1" and "edison".  I found some instances that were not properly
variablized.  Also, discovered some references to the
linux-yocto-3.0-1.1.x.  All but one instance of this needed changed
to linux-yocto-3.2.

(From yocto-docs rev: 620fb4b7626defcefc8a039de09ae4599ee7f454)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:08:09 +01:00
Scott Rifenbark
946c650a47 documentation: Manual Revision Tables updated
Five tables updated for the five manuals that have the tables.
Used "May 2012" as the date.

(From yocto-docs rev: 0d4d46ba300c07ff9c73186506be5b409bef9d1b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:08:02 +01:00
Scott Rifenbark
f99c947c32 documentation/yocto-project-qs/yocto-project-qs.xml: Added Build Appliance
Added a blurb about the Build Appliance to the start of the QS.

(From yocto-docs rev: b2766121c05740300fd5a6cea2f3b8a2f62db6e5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:55 +01:00
Tom Zanussi
9ffbd2ef22 documentation/dev-manual/dev-manual-common-tasks.xml: removed kernel26
kernel26 is now obsolete so remove mention of it from the docs.
Removed from docs.

(From yocto-docs rev: 7b9da106d746192f802095584b04e3ee8347eabd)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:48 +01:00
Scott Rifenbark
66625417b4 documentation/poky-ref-manual/ref-images.xml: added link
added the link for the Build Appliance page to the description of the
self-hosted image.

(From yocto-docs rev: 719ba4308489b29eefa7f08ddffb65bd5e41fc2c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:40 +01:00
Joshua Lock
e95ce40abd scripts/hob: disable sanity checks when launching
This enables us to use the GUI to change any settings which might cause
sanity checks to fail, such as the proxy configuration.

(From OE-Core rev: fe98d1c7159636f123b27292bbd4cc224b532bf0)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:33 +01:00
Joshua Lock
4a83ebbee0 sanity.bbclass: add variable to disable the sanity checks
It's useful for Hob to be able to disable the sanity checks completely
without marking them as passed so that the user can get into the GUI to
configure their settings, etc.

Add a variable, DISABLE_SANITY_CHECKS, to do so.

(From OE-Core rev: b022641f939bcfcdaddddc4db3af4d2dc70de832)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:26 +01:00
Richard Purdie
90705b36ad python: Fix various contamination issues leading to broken/missing c modules
The move of libcrypto to /lib instead of /usr/lib has broken the _hashlib module
compilation. There were also a number of other failing modules which should
have been building correctly. This turned out partly to be the /lib issue
but also due to a number of native paths creeping into compiler commandlines.

These changes add in /lib as part of the searh directory and remove
a number of host contamination issues within setup.py. Post release we
should really further go through this file and just delete large sections
of it as its hard to be sure what strange paths python is injecting as
search paths.

This patch also fixes issues where re-execution of the compile task
would corrupt the Makefile in various ways, again leading to puzzling
paths within the configuration.

(From OE-Core rev: 20e2761e1da1cb5dcd267e161f2a6b6a429e9f39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:19 +01:00
Richard Purdie
be5a5c7e7b bitbake.conf: Add a STAGING_BASELIBDIR variable that recipes can use to find base_libdir
(From OE-Core rev: 4697911991caa2f2a21dd43f54e0c4404d722873)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:12 +01:00
Joshua Lock
64471e9340 hob: enable sanity checks after launch
To ensure the users configuration is sanity tested enable the sanity
checks after the GUI has started but before any parsing is done.

(Bitbake rev: 244ce2b900ae6cecbeeccfe2056e61c132476261)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-23 23:07:05 +01:00
Richard Purdie
4becd60e65 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: b19af63)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:08:34 +01:00
Richard Purdie
9fcfda78b9 poky-tiny: Drop now unneeded DISTRO_FEATURES_LIBC_TOOLCHAIN (after gettext fix)
After the recent gettext dependency fix (commit 6e5cb40dfa
"gettext.bbclass: Ensure we don't overwrite other DEPENDS_GETTEXT values",
its no longer necessary to have to have these options to build meta-toolchain.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 16:05:58 +01:00
Richard Purdie
8558c3e1f4 initramfs-live-boot: Disable unionfs until its issue with the system rootdir are resolved
There are issues with the current unionfs when making a union mount over "/".
Until these are resolved we can't use unionfs for live booting so disable this
temporarily as a workaround.

unionfs is usable in other circumstances.

[YOCTO #2331 workaround]

(From OE-Core rev: 60ee26ae23132b916019d58e20b8c2e1ddd2b471)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:42 +01:00
Richard Purdie
0bfb42dbb6 pseudo: Drop nativesdk wrapper and link against old memcpy symbol
The -nativesdk pseudo wrapper setting LD_LIBRARY_PATH turned out to be a
bad idea since it can mix up different libc and lib-dl verisons which
may or may not work depending on the phase of the moon.

As an alternative to solving the original problem, this patch drops the
symbol version requirement on memcpy which allows pseudo to work with
libc's back to 2.7 which should be sufficient for our supported targets
using nativesdk.

[YOCTO #2299]
[YOCTO #2351]

(From OE-Core rev: c6c701f424aeb502d20ff02d02712e56f4e259a5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:42 +01:00
Richard Purdie
37b069ea5d pseudo: Fix bashisms
(From OE-Core rev: 90e22bbb316088fa951d51e75de4e5424bd51ed6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:42 +01:00
Richard Purdie
6d7260e8f6 package.bbclass: Ensure kernel modules get stripped
Kernel modules are not marked as executable but we do expect to strip them.
This patch adds in missing code to ensure we do this. Without this images
are getting sigificantly bloated in size.

(From OE-Core rev: 00b0a5f2f51bb3f88bbb9ae558c2859e3c1c406c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:41 +01:00
Richard Purdie
236bda9ed6 gettext.bbclass: Ensure we don't overwrite other DEPENDS_GETTEXT values
In particular, this overwrites the value from cross-canadian.bbclass in
some cases which isn't the desired behaviour and unnecessarily
complicates/breaks the dependency chain.

(From OE-Core rev: 751ead4fa7d4120de906a1d9cb1d5a29357bebad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:41 +01:00
Richard Purdie
375835092c qemu: Backport a patch to solve SSE2 instruction emulation issues
This fix addresses various issues seen in qemux86-64 images:
 * scroll bars in matchbox-terminal not working
 * files not appearing in pcmanfm
 * warnings on the console from glib/gobject about invalid gdouble values

Its due to an emulation issue in qemu which the backported patch fixes.

I managed to debug it to a specific function, Khem found the qemu patch
to backport, thanks Khem!

[YOCTO #1906]

(From OE-Core rev: 69d083f8b8d8f7d095ed5682d305870c4d93fe62)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-22 15:56:41 +01:00
Scott Rifenbark
2c3d4f5bee documentation/bsp-guide/bsp.xml: spelling corrected.
Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
(From yocto-docs rev: c0ee8ce391114f7a5b4f1c59fdf997ba4f3bcf75)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 16:42:15 +01:00
Scott Rifenbark
45114a9df0 documentation/poky-ref-manual/ref-images.xml: Added self-hosted image
I added the self-hosted-image to the list of images.

(From yocto-docs rev: a8265cb523705a374d23bf60aab5b7969ad937fc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 16:42:05 +01:00
Richard Purdie
08290c6003 self-hosted-image: Update poky revision to point at the 1.2 release branch
(From OE-Core rev: 00256125873ff6f1630743a712e882e5f473a9d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 15:59:56 +01:00
Elizabeth Flanagan
729e7f774c distro.conf: Flipping for denzil
Flipping values in distro.conf for upcoming release

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
2012-04-18 15:55:32 +01:00
Dongxiao Xu
d233c90823 packageinfo.bbclass: A workaround for RPM architecture renaming
For beagleboard platform, the PACKAGE_ARCH for certain recipes is
"armv7a-vfp-neon", however, the architecture label in RPM file name is
"armv7a" due to a potential bug in RPM backend.

This commit is a workaround to make Hob work in this case.

(From OE-Core rev: 00bd4589b21fe3a716ff2732ea55651c4abd77e4)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 15:55:04 +01:00
Richard Purdie
b76513948b lsb: Fix PR bump, fix bashisms, correct dependency issue, tweak package description
(From OE-Core rev: 48ef8dbb0d1bdbc7e0e62665b5112282637f3266)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 12:07:25 +01:00
Paul Eggleton
d220e071ab classes/sanity: import regular expression module in SuSE distro check
We call re.sub here, so we need to "import re" or an error occurs
(tested on OpenSuSE 12.1).

(From OE-Core rev: cb1f7cffc171e6b182f33a69ff688d76b7f1baed)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:30 +01:00
Paul Eggleton
f4eed2b8b8 classes/sanity: trim trailing newline when reading /etc/redhat-release
Any trailing whitespace needs to be stripped before comparing it to the
SANITY_TESTED_DISTROS list.

(From OE-Core rev: bea0311a6478febe8ab4884fb1c479f610856534)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:30 +01:00
Paul Eggleton
d73e41f437 conf/distro/poky.conf: set SANITY_TESTED_DISTROS
Specify a list of tested host distributions, based on those tested prior
to the Yocto Project 1.2 release. This will enable a warning to be
printed upon starting bitbake if the host distribution is not one on the
list.

Note: this warning is intended to help new users; if you are receiving
this warning and wish to disable it, just add SANITY_TESTED_DISTROS = ""
to your local.conf.

Fixes [YOCTO #1096].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 11:57:25 +01:00
Paul Eggleton
5b78c7d559 libproxy: remove dependency on gconf when x11 not in DISTRO_FEATURES
This allows libzypp to successfully build when x11 is not in
DISTRO_FEATURES (avoiding the libzypp -> libproxy -> gconf -> gtk+
dependency chain which without X results in gtk+ failing at
do_configure).

Fixes [YOCTO #2320].

(From OE-Core rev: 973351cf2e338f07c11395d494193e9c62857f2d)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 00:31:29 +01:00
Scott Garman
abddce33ac qemugl: make postinst run at first boot
The previous postinst script was not working for images which use
RPM because do_rootfs could allow qemugl to be installed after
libgl1, and the postinst needs to run after libgl1 is installed.

Hence, it's being changed to run at first boot instead of during
do_rootfs.

(From OE-Core rev: dc0fe3fbf9ca862c1d0d90468e6da326f58e3b41)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-18 00:22:56 +01:00
Saul Wold
a8c668c43a self-hosted-image: remove BB_NO_NETWORK and update Poky SRCREV
Remove BB_NO_NETWORK because we can not guarentee that all
downloads will be available in the self-hosted image for
the possible targets being built.  If this image is run with
out networking, failures may be seen and BB_NO_NETWORK
should be set via the Hob

Update the Poky SRCREV so it has the latest set of fixes and
patches.

(From OE-Core rev: 70541d5e82ee05289eb0095bed4b121d12a00729)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Saul Wold
9656762e80 task-self-hosted: Add LSB for distro info
The lsb package is needed to enable the distro checking
in the self hosted image. Currently there is no standard
identification in the self-hosted image so use the existing
lsb package which provides lsb_release that parses the
/etc/release file

(From OE-Core rev: 1373865ce7f205a8e63f42caf436e9e2f7a565f5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Saul Wold
8e53c8c937 lsb: Add DISTRO Info to /etc/lsb-release file also add util-linux to DEPENDS
Add the DISTRO* fields to the /etc/lsb-release file so the distro
parsing code can find standard information about the Poky Distro
when using the Self-Hosted Image.

The lsb_release command uses getopt which is provided by util-linux

(From OE-Core rev: eddb1d6f458bcf8b0473a360fad3f4a259a57d28)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Bruce Ashfield
375e9502d1 linux-yocto/meta: remove kernel config audit warnings
Updating the meta SRCREVs to pickup the following meta change for the
3.0 and 3.2 kernels:

[
    meta: Clean up BSPs kernel config

    Clean up some QEMU and non-x86 BSPs kernel config, including

    qemuarm
    qemuppc
    qemux86
    beagleboard
    mpc8315e_rdb

    Only obsolete/invalid kernel configs are removed.

    (From OE-Core rev: 1f68d624c109c3f31a6f2f6106b5ef56e3d9a166)

Signed-off-by: Yang Shi <yang.shi@windriver.com>
]

With this commit, the configuration audit for the qemu and hardware
reference boards is (largely) warning free.

Signed-off-by: Yang Shi <yang.shi@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:30 +01:00
Bruce Ashfield
a23041090e linux-yocto/meta: beagleboard: disable CONFIG_PREEMPT
Updating the meta SRCREV for both the 3.0 and 3.2 kernel trees to
pickup the beagleboard xM boot fix:

[
    meta/beagleboard: disable CONFIG_PREEMPT

    The boot hangs with the message:
    mmc0: error -110 whilst initialising SD card

    The MMC driver has issues initializing when PREEMPT is enabled (either forced
    or voluntary). Unplugging and then plugging the card back will reset the
    driver and continue booting. Alternatively, disable preemption.
]

[YOCTO: #1892]

(From OE-Core rev: 36e9e6a88bc4436efefd4a25c0a58be75f887142)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Bruce Ashfield
0f8c8c844b linux-yocto: .diff is a valid patch extension
In fixing an existing patch migration bug, the list of valid extensions
got out of sync from the core patch class. As a result, valid patches
were not being applied to the tree.

Updating the tools to migrate .diff files fixes the issue.

Also in this fix is the removal of .patch in the find_sccs() routine, since
it will never be returned by patch.bbclass when all non-patches are
requested, it is simply confusing.

(From OE-Core rev: 0ade3f26f40b67d7296725b1e956c46be9a86089)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Mark Hatle
bb2929692a matchbox-wm-2: Fix incorrect update-alternatives
Update-alternatives was pointing to matchbox-session, and should have
been pointing to matchbox-window-manager.

(From OE-Core rev: 9c08dcf468fd41897627d9efc650c74f8f5d8ed0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Mark Hatle
fcd707ed4b lrzsz: sz, sx and sb were linked incorrectly
The sz, sx and sb links were created incorrectly to lrz, they should
point to lsz.

(From OE-Core rev: 663b608357b86aba5cdf7f07291893725e579b75)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 23:16:29 +01:00
Joshua Lock
20ff9db921 lib/bb/ui/crumbs/recipeselectionpage: fix type availabel->available
(Bitbake rev: 1a39698ab8498410d159c665c015f9297f153797)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 16:41:48 +01:00
Tom Zanussi
720fe9e371 meta-yocto: remove kernel26 machine feature usage
kernel26 is now obsolete so remove it from the machine configs that
use it.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-17 14:15:45 +01:00
Tom Zanussi
8e0751a97a yocto-bsp: remove kernel26 machine feature from templates
kernel26 is now obsolete so remove it from the templates that use it.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-17 14:15:45 +01:00
Richard Purdie
b9553be4d1 libproxy: Allow to build in non-gplv3 configuration
(From OE-Core rev: 89788fbd10fdfbbe54927339d7ec516d0e4d7ef5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:41 +01:00
Richard Purdie
80e7bb85a0 gst-plugins-bad: Add missing PR bump after curl change
(From OE-Core rev: 2865d01773e405212aa6f531139898d90a6819a8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:41 +01:00
Richard Purdie
ad229f81f4 qemu: Disable curl explicitly, its not in DEPENDS
There is an error when build meta-toolchain-sdk on Ubuntu 10.10:

| Installing NATIVESDK packages
| Processing task-sdk-host-nativesdk...
| Processing task-cross-canadian-mips...
| error: Failed dependencies:
|       libcurl.so.4 is needed by qemu-nativesdk-0.15.1-r5.i686
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed
ERROR: Task 21 (/buildarea2/lyang1/poky/meta/recipes-core/meta/meta-toolchain-gmae.bb, do_populate_sdk) failed with exit code '1'

This is because qemu would depend on curl if it happened to be
available at build time and could confuse the -native and -nativesdk
librbaries.

[YOCTO #2305]

(From OE-Core rev: 566ad643efd03db34b59a427f48ca55ce613cf89)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 14:08:40 +01:00
Richard Purdie
1e190eef71 sanity.bbclass: If the sanity tests fail, don't mark them as complete
If the sanity tests fail, we still were writing out the stamp which means
they'd get skipped the next time we run bitbake. This is clearly wrong
and we should only write out the stamp file if the sanity tests complete
successfully.

(From OE-Core rev: b99acaa8aa06dcbca46c3f7048124d6f8d643a8b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Venkata ramana gollamudi
8cc3b24242 perl: fix re-execution of compile task
After building perl package, re-execution of compile task recursively
 substitutes the path, making it an invalid path.

Fixed to prevent recursive substitution.

Similar case as [Yocto #2194]

(From OE-Core rev: 16542d982d86d42d3189d47a8180f0f71646a9ca)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Andreas Oberritter
6004dc8906 avahi-daemon: fix missing init script links
* update-rc.d wasn't executed when the rootfs was built, because
  pkg_postinst_avahi-daemon exited early. It wasn't run either
  on first boot, because the exit code was 0.

(From OE-Core rev: c084759d7f69b751e1ed3ef79d686389d867f248)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 12:26:12 +01:00
Paul Eggleton
04d6aa1069 bitbake-layers: hide deprecation warnings
There are a number of DeprecationWarnings within BitBake code which
bitbake itself filters out; bitbake-layers was not doing this, resulting
in a stream of warnings printed out when used with Python < 2.7 (these
warnings default to disabled on version 2.7 and above.)

(Bitbake rev: 0a2378237f07eb1c812e2308e64b7d70781e2b39)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Beth Flanagan
993c467510 hoblistmodel.py: description for selfcreated image
The current description is empty. This adds a default
description for hob's dummy_image.

(Bitbake rev: 68a65e5eeeb01d78444f1e5b5d1bb7b21c9d0b2c)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
139a91d742 Hob: Set the "stop" button insensitive before hide it
If user stops a build, we need to firstly set the button insensitive and
then hide it. This ensures the button's init status is "insensitive" in
next build.

(Bitbake rev: ea37272ccc28d6e24b48286e5c4c3edbad1d57cd)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
c50d8b753d Hob: Enlarge the upper value of image size
Originally the upper value for image size and extra size is 1024M, which
is relatively small. Enlarge it to 64GB.

Besides, fix tooltip for toolchain build.

(Bitbake rev: 99f01305b4c2253567a1a13a33339b1755a86e6d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Dongxiao Xu
c27655793b data_smart: Improve the calculation of config hash
For config hash, we put the keys in structure of "set()", which is not
order sensitive. Therefore when calculating the md5 value for config
hash, we need to identify the order of the keys.

(Bitbake rev: 0f1b142a3f6b8125bf023c2e5ec269618869abf7)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 11:41:31 +01:00
Robert Cochran
a6820f43f5 documentation/dev-manual/dev-manual-common-tasks.xml: Fixed example
A reference to meta/recipes-sato/tasks/task-poky.bb is made as a good
example of a task; however, this file / recipe doesn't exist.  I
replaced it with meta/recipes-core/tasks/task-core-boot.bb, which I
think is a both useful and basic example to consider.

(From yocto-docs rev: 977877efa7781dd00c53cfa914dd710de7d934a1)

Signed-off-by: Robert Cochran <yocto@mindchasers.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 09:05:07 +01:00
Darren Hart
cf05f09f9f poky-tiny: Separate the libc features required for meta-toolchain
This fixes bug [YOCTO #2295]

eglibc needs libc-posix-regexp-glibc & libc-libm-big enabled in its
configuration to avoid following eglibc build issue. Thanks to
Nitin for identifying the required features.

    ...
    | In file included from xregex.c:634:0:
    | xregex.c: In function 'byte_regex_compile':
    | xregex.c:3395:8: error: too few arguments to function 'findidx'
    | ../locale/weight.h:23:1: note: declared here
    ...

The libc features added to support building meta-toolchain add 461KB to the C
libraries. 320KB directly to libc (a 32% increase in size). If not building
meta-toolchain, the user should be able to easily configure these out.

Create a new variable to capture these dependencies,
DISTRO_FEATURES_LIBC_TOOLCHAIN, keeping them separate from the core tiny
requirements. Make it clear how to disable these if meta-toolchain is not
needed.

This patch has been tested by running the following for the qemux86 machine with
DISTRO=poky-tiny:

    $ bitbake -c cleansstate eglibc
    $ bitbake meta-toolchain
    $ bitbake core-image-minimal

The libc comparisons were made from core-image-minimal ext2 filesystems build
before and after the applicaiton of this patch and Nitin's previous poky-tiny
libc features patch in support of meta-toolchain:

    commit 8c48ab6183
    Author: Nitin A Kamble <nitin.a.kamble@intel.com>
    Date:   Mon Apr 9 15:15:01 2012 -0700

        poky-tiny.conf: adjust eglibc options for poky-tiny

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Nitin A. Kamble <nitin.a.kamble@intel.com>
CC: Saul Wold <sgw@linux.intel.com>
CC: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-17 09:04:53 +01:00
Richard Purdie
c936fca6e1 bitbake.conf: Add PARALLEL_MAKE to BB_HASHBASE_WHITELIST
The value of PARALLEL_MAKE shouldn't affect sstate checksums. In general it
doesn't as the value is injected as a task override and the sstate checksum
doesn't track these. That isn't the case for linux-yocto in particular so
adding it the list of variables to ignore is useful.

(From OE-Core rev: a0fbbd7ba979b8aaee701e0997115f89b361b920)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 23:37:45 +01:00
Saul Wold
a2280512b8 libzypp: add libproxy to DEPENDS
libzypp uses proxy.h to handle proxies

[YOCTO #2306]

(From OE-Core rev: 03cfc6ea6df9d1fbf5520c9707a725e38d2e377b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 23:30:49 +01:00
Otavio Salvador
51f9cb0840 distrodata.bbclass: fix comment typo
Fixes:

  - xf86-intput-synaptics-12.6.9.tar.gz
  + xf86-input-synaptics-12.6.9.tar.gz

(From OE-Core rev: 96800c4801fc7a89d3510763d007fd7854f1a9e3)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:59:08 +01:00
Otavio Salvador
5612bf3339 flex: backport Debian patches to fix generated code warnings
The generated parser had warnings regarding signess and return check
which makes Linux Kernel's perf tool from 3.4 release to fail without
those patches.

(From OE-Core rev: f3d7197252d1ede627a561fbd5b3b7fb759bf75b)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:59:08 +01:00
Paul Eggleton
a5afc58319 connman-gnome: fix segfault on connect
Fixes a segfault in the properties application when connecting to a WiFi
service succeeds.

(From OE-Core rev: 767ec69e6ca633e5bde604241a598147075b1ac0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
b6cbf1e48c automake-nativesdk: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes automake-nativesdk build on such distros to put perl
interpreter path in the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by automake-nativesdk-1.11.2-r2.x86_64
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

The second sed command is for such a case:

eval 'case $# in 0) exec /bin/perl -S "$0";; *) exec /bin/perl -S "$0" "$@";; esac'

This line has two "/bin/perl" and we can't use a line number to tell
sed which line it is since the line numbers in different files are
defferent.

[YOCTO #2304]

(From OE-Core rev: ee7a86c06c2289f01aa5f1da958ce51523495572)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
59348455a7 autoconf-nativesdk: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes autoconf-nativesdk build on such distros to put perl
interpreter path in the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by autoconf-nativesdk-2.68-r6.x86_64.rpm
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

The second sed command is for such a case:

eval 'case $# in 0) exec /bin/perl -S "$0";; *) exec /bin/perl -S "$0" "$@";; esac'

This line has two "/bin/perl" and we can't use a line number to tell
sed which line it is since the line numbers in different files are
defferent.

[YOCTO #2304]

(From OE-Core rev: 393908e53b243b16ab984da7f073be371e062946)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Robert Yang
ca14115a12 glib-2.0: fix builds on fedora 17
Generally distros keep perl at /usr/bin/perl
Fedora 17 also has /bin/perl

this causes glib-2.0 build on such distros to put perl interpreter path in
the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by libglib-2.0-utils-2.30.3-r0.ppc603e
NOTE: package meta-toolchain-gmae-1.0-r7: task do_populate_sdk: Failed

[YOCTO #2304]

(From OE-Core rev: 13e6e316d751d0ea3107d5547f6bdd2b74919cad)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:53:00 +01:00
Paul Eggleton
b99e2f2f33 perl: fix re-execution of patch/configure
The perl recipe's do_configure() does some manual sed replacements over
the entire WORKDIR. Fix the following issues with this:

* Skip patches, which fixes re-execution of do_patch after do_configure
  has run once
* Ensure that the replacement operation does nothing if do_configure is
  re-executed
* Avoid unnecessarily modifying /usr/include paths within documentation
  that will end up being packaged
* Fix a quoting issue in the expression used in the grep command that
  ended up causing files that did not contain .*\.h after /usr/include
  to be matched and modified.

The files modified during do_configure have been compared before and
after this patch to ensure there are no unexpected changes. Some
/usr/include paths that are not within documentation are no longer
being substituted however these are all within comments or scripts for
other Unix operating systems that are not applicable.

[YOCTO #2194]

(From OE-Core rev: 19255032e7744fce5cbe466e4869ded378d3b4f5)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Beth Flanagan
8046fd416f core-image-sato-sdk: typo in DESCRIPTION
Fix for a minor type in DESCRIPTION

(From OE-Core rev: 25a997ca9b24d9265b62717fd01ebb26e7d21bba)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Beth Flanagan
d2fca3db85 core-image-rt-*.bb: require munges DESCRIPTION
The require of core-image-minimal overrides the description.
The best fix for this would be conditional setting of DESCRIPTION
in the required images for all image descriptions, but that opens
a potential can of worms. Moving the require fixes this.

(From OE-Core rev: 0bd5f0a86370881b4eb2455df21b0575f6ffd008)

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:30:03 +01:00
Richard Purdie
15b16060c7 autogen-native: Fix sstate relocation issue when reusing libguile
This was found to cause issues on the Yocto autobuilders and fixes do_compile
failures when guile-native has been relocated.

(From OE-Core rev: d928e91a57e6e9dfa6a7d4e888e1e1064d7fc668)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 22:14:23 +01:00
Liming An
5326847ef8 Hob: fixed a little view issue about package selection page
In package selection page, treeview cell data callback function not cover the 'else' case, so parent item will render the pervious value.

(Bitbake rev: 98694c1dbc276cc151f393db67bfd43442da28ba)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Liming An
e966ae128a Hob: add the parent window to 'binb' popup window for managing it
The 'binb' popup window should be "set transient for" the main application
window which they were spawned from.

(Bitbake rev: a6f45b23851e22c7793d9a534fd197316bb5b9b8)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Liming An
6d7aae9e97 Hob: fixed the issue that the notebook overlay-scrollbar is overlapped
In those systems which had use gtk overlay-scrollbar feature,such as
Ubuntu 11.10, we have the issue with the multiple overlaped scrollbar in
'Recipe View' notebook or 'Package View' notebook, this patch is going to
fix it.

(Bitbake rev: f6be78d8a45dc501c2bbe1e1a399a342dabe11d5)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Dongxiao Xu
d5a9ff4b27 Hob: Fix contents in imagedetailsscreen
This commit fixes the contents in imagedetailsscreen, which lacks some
kind of image types, e.x., iso and hddimg.

(Bitbake rev: 4505097f4f7834857a6086d5dabeedb24b49cf4c)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:56:25 +01:00
Dongxiao Xu
e8ab6ab64b meta-yocto: Move OELAYOUT_ABI definition to poky.conf
The ABI version definition should go along with the DISTRO variable
since it impact the TMPDIR definition.

Otherwise, if a user used to work with pure OE-Core, and then he/she
added meta-yocto layer, it will report ABI version incompatibility
issue. This is because ABI is changed to "8" by adding meta-yocto layer,
however the DISTRO variable is not defined and TMPDIR is still
"tmp-eglibc".

Defining the OELAYOUT_ABI variable in poky.conf could fix this issue.

This fixes [YOCTO #2303]

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:26 +01:00
Dongxiao Xu
e737d01095 bitbake.conf: Include abi_version.conf in a early stage
We may define new OELAYOUT_ABI variable in ${DISTRO}.conf, therefore we
need to move the abi_version.conf before that.

(From OE-Core rev: 4e1a8ed1ab7e7bd950e511c79ddfe072cb280a6e)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:11 +01:00
Zhai Edwin
d1eba59ffd Multilib: Fix RDEPENDS in libc-package.bbclass, useradd.bbclass...
MLPREFIX is needed in RDEPENDS for multilib build

(From OE-Core rev: 380efadd5640e5b57e710549b1ae761d0d3b3792)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
f139832667 opkg-config-base/poky-feed-config-opkg: Always use ALL_MULTILIB_PACKAGE_ARCHS to build arch list
We need consistent configuration files for opkg so we might as well always use
the full list. This is equal to PACKAGE_ARCHS in the non-multilib case.

This fixes various multilib failures with ipk multilibs.

(From OE-Core rev: bc85abc5013d0c831cc3c3823df45536c293aaba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
d431ef2a30 dropbear: Allow tasks to be safely re-executed
Re-running the debug_patch task would cause the build to fail. This patch
moves the extra patch handling directly into SRC_URI and removes the need
for the separate task, allowing safe re-execution of each task.

[YOCTO #2194]

(From OE-Core rev: 1d6156e37ef0f36cf5ce8eeaaf23560215c86833)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
388bae1ac8 docbook-utils-native: Fix re-execution of the unpack task
If the do_unpack task is re-executed, the sed_done stamp was not removed, the
sed commands wouldn't re-run and the build would fail in do_compile. This
patch ensures the stamp is in ${S} and that we clean that directory
when unpack runs so it is a build from sctatch at that point.

[YOCTO #2194]

(From OE-Core rev: 2b190155d74d4369c61d26b1f4f0c3cce389ddbc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:10 +01:00
Richard Purdie
23f4288082 sgml-common: Fix re-execution of the compile task
The sed command run during do_compile isn't idempotent. This change fixes it
so that it is and the compile task can be re-executed.

[YOCTO #2194]

(From OE-Core rev: c9dcfbd87d749baa0a4948738055193982aad26d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
469d73a733 wget: Fix re-execution issue
The patch in this recipe patches both configure and configure.in which leads
to build failures once configure has executed and regenerated configure.

The fix to make patch re-executable is not to patch configure and
only patch configure.in.

[YOCTO #2194]

(From OE-Core rev: b3df34ba57284fa2c85f34be86d5d8e357becf7c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
ccc2b23191 python: Fix re-execution problem due to patching configure and configure.in
There was a patch patching both configure and configure.in. Since the recipes
all autoreconf, this is pointless and means subsequent patch tasks fail.

The fix is to only patch configure.in.

[YOCTO #2194]

(From OE-Core rev: 1d8c40d5f2119b4c4ae8a9b2645ae572ea9a54ff)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-16 12:52:09 +01:00
Richard Purdie
2ddf7d3e83 gcc-configure-common.inc: Stop gcc looking at build system paths
There were puzzling failures when you make a force recompile of any gcc
component. The error was in do_configure with cross-compilation badness
being detected in config.log files.

gcc is different in that many of the config.log files are generated during
the do_compile phase. This means this host contamination issue has always
been present but only shows up on a rebuild.

The fix is to force the appropriate configuration variable to "none required"
then gcc won't look in the bad locations.

[YOCTO #2279]

(From OE-Core rev: e7135f14f3ef37f93f5c28b319464f3d6dd9b8da)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 18:09:57 +01:00
Dongxiao Xu
f580ac6b30 gst-plugins-bad: add curl as build dependency
gst-plugins-bad needs curl.h to finish its build, so add curl as its
dependency.

(From OE-Core rev: daa4d625524dc330786858ade570918cff0bc5d3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:34:47 +01:00
Richard Purdie
239e8b9853 net-tools: Fix do_patch to be re-executable
This recipe's do_patch was not able to be re-executed due to its custom
patching functions. This fixes things so that it can be re-executed.

It also fixes the unpack task re-execution by ensuring ${S} is clean
before the unpack starts.

[YOCTO #2194]

(From OE-Core rev: 1cfddb17e0c2576e55f62c10612e7cbd73e5ac5e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
dcaea1447c man-pages: Fix to allow re-execution of tasks
The all target in the makefile triggers "screen" and "remove" targets,
neither of which do anything useful/sane for our usecases. The simplest
way to get the makefile to behave is to only use the install target.

Clean up the recipe a bit whilst making these changes and simplify things.

[YOCTO #2194]

(From OE-Core rev: 06f6ca50c0cffdaf828688e01fcc70265eafa093)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
f562e2a393 pseudo: Ensure the correct libraries are used at runtime
There can be a conflict between the nativesdk libc and the host system's
libc. It is assumed the nativesdk version is of an equal or higher version.
This is a particular issue for pseudo if its loading a system binary
since the system's libc might be used of an older verison which would
then confuse libpseudo.so when loaded as a preload.

To avoid this, set LD_LIBRARY_PATH so the nativesdk libc is always
used.

Since we now use --without-rpath, we can remove the MAKEOPTS RPATH workaround.

[YOCTO #2299]

(From OE-Core rev: a481fe3b9883aa744be3253e2b4b27e6e46eb059)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:59 +01:00
Richard Purdie
5c006a460f unfs-server: Fix do_configure so it can be re-executed safely
[YOCTO #2194]

(From OE-Core rev: 43e6fec78e36beb770fd47b0c4631d7382025d6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:58 +01:00
Shane Wang
2e01a44f3b Hob: add exception handling
Create a wrapper with exception handling to call self.server.runCommand() safely.
Again, add exception handling to load_template() and save_template()

(Bitbake rev: cb07a027d3366ed30b0f7e5e85d08c6fda4eb5b9)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Dongxiao Xu
e3e6d2a744 Hob: Simplify the init process
This commit merges some functionalities together and avoid unnecessary
signal handling. This can help to speed up the Hob startup.

(Bitbake rev: e5a6eb4f007bf270f2fddc814eb856da46e20eee)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Dongxiao Xu
74211e0372 Hob: Handle NoProvider event in runningbuild module
If NoProvider event is received, we will handle it in runningbuild
module and send notification to Hob instance, avoiding stepping into the
final page with no image built out.

This fixes [YOCTO #2249]

(Bitbake rev: 067bc46a0fbc542fef1fcaa406ad3737a4c5a55a)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 17:31:57 +01:00
Richard Purdie
a5210e47b0 guile: Fix binary relocation issue for precompiled guile objects
When guile-native was relocated, there were messages like:

;;; note: source file /srv/home/pokybuild/yocto-autobuilder/yocto-slave/emenlow/build/build/tmp/sysroots/x86_64-linux/usr/share/guile/2.0/ice-9/eval.scm
;;;       newer than compiled /srv/home/pokybuild/yocto-autobuilder/yocto-slave/fri2/build/build/tmp/sysroots/x86_64-linux/usr/lib/guile/2.0/ccache/ice-9/eval.go

and this confuses things like the autogen-native "guile --version"
check. This patch ensures the wrapper script sets the necessary
variables correctly.

(From OE-Core rev: 7a254d8294cfbe4b717d083c3d7fcc5515a5ab4f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 12:06:41 +01:00
Paul Eggleton
d979ee01b5 connman-gnome: connman 0.79 API fixes
Fix connman-gnome to work with connman 0.79, which made a number of
fairly serious DBus API changes. Also switch over to the newly
repopulated git repo on kernel.org in which the two previous patches
have been merged.

Fixes [YOCTO #2202].

(From OE-Core rev: 82744f56f8bfbdcc303034dee3d6e188cf8180b1)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-15 10:28:38 +01:00
Shane Wang
9ff001cba1 Hob: reset user recipe selection and package selection after settings are changed
Reset user recipe list and package list after the user changes the settings and
triggers recipe reparsing.

This is to continue to fix the bug [Yocto #2255]

[Yocto #2255]

(Bitbake rev: 95f4e9dc351f67442844ff52f90fc154fa95ba95)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:48:48 +01:00
Shane Wang
62c908c88b Hob: remember layers and settings between Hob sessions
This patch is to remember layers and settings between Hob sessions, which
includes:
 - Put some variables for the build details screen from Configuration to
   Parameters because they are not actually for build but for show
 - We create a dummy Configuration instance and a dummy Parameters instance
   in __init__ of builder
 - The two instances will be assigned the real values by
   update_configuration_parameters() after parsing (in the event callback)
 - When it is the first time to launch Hob in a build directory, nothing is
   remembered since everything is fresh.
 - The feature is implemented with templates, and based on the hook for Hob.
 - When the user changes the layers or the settings, a default template file
   is saved into ".hob/".
 - Later on, the layers and the settings are remembered by loading the default
   template automatically.

(Bitbake rev: f7c874ab930b9e7f95e79d0e84e62eb9b967f566)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:48:48 +01:00
Richard Purdie
58544debd5 grub: Add missing dependency on autogen-native to avoid build failures
(From OE-Core rev: 4396db54dba4afdb9f1099f4e386dc25c76f49fb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:42:31 +01:00
Scott Garman
4831503957 distro_tracking: add entries for several new recipes
Added distro tracking fileds for the following recipes:

qt-mobility-x11
gst-plugin-bluetooth
alsa-state
ocf-linux
avahi-ui
libjson
systemtap-uprobes
xf86-video-fbdev
u-boot-fw-utils
qt4-graphics-system
qt-mobility-embedded
lttng-tools
shadow-securetty

Also fixed a few minor typos in others (spelling of bluetooth and months)

(From OE-Core rev: c8fe4d6cde6fca736f8c00eac7a9cc217fa8a128)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:30:31 +01:00
Saul Wold
c393309707 distro_tracking: add some additional DISTRO_ALIASES
ltp
rgb
libksba
stat
directfb-example
libfakekey
builder
core-gtk-directfb
task-core-tools-*
task-self-hosted
sato-screenshot
libxxf86misc
qmmp
portmap

(From OE-Core rev: 740c34ce27ec5f992cd97f1d933c007ba55d651d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 23:30:29 +01:00
Tom Zanussi
d91b3f7639 yocto-bsp: fix x86_64 tuning for qemu arch
While testing the fix for [YOCTO #2222] I noticed that the tuning for
the qemu x86_64 target was using the wrong tuning file - it should be
x86_64 instead of i586.  Change the template to match.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
0258ba5e14 yocto-bsp: fix multi-provider error in qemu arch template
While testing the fix for [YOCTO #2222] I noticed a new build error
that wasn't there in previous testing:

ERROR: Multiple .bb files are due to be built which each provide virtual/libgl

The build still completed and produced a good image, but an error
message was displayed, which this patch removes.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
774afe86e8 yocto-bsp: fix qemuarch test for xserver-xf86-config.bbappend
While testing the fix for [YOCTO #2222] I noticed that the qemuarch
test was wrong - there is no 'x86' qemuarch, just 'i386'.  Change the
test to match.

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Tom Zanussi
6f527e23e0 yocto-bsp: enable property value display of nested properties
Previous versions of yocto-bsp mapped every input element to a unique
variable name, which is what the current property value display code
expects.  When that was changed to a nested form, the display code
wasn't updated to match - this updated does that.

Fixes [YOCTO #2222]

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
2012-04-14 22:58:14 +01:00
Richard Purdie
0a4a7578b8 mulitlib.bbclass: Ensure correct value of ALL_MULTILIB_PACKAGE_ARCHS is preserved
The value of ALL_MULTILIB_PACKAGE_ARCHS needs to be consistent both
in multilib extended recipes and in normal context. If this isn't the
case it can lead to inconsistent configuration files at a minimum.

This patch ensures the value is preserved during the class extension code
since computing it after that point is hard.

[YOCTO #2290]

(From OE-Core rev: 529bc145152bb36d9696226b93729377a3b6a240)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
6ea6facd66 update-alternatives: Fix for compatibility with multilib recipes
The PN == BPN test was designed to exclude native/nativesdk but also unfortunately
excludes multilib unintentionally. This change fixes this and allows multilib images
with alternatives to funciton correctly.

[YOCTO #2214]

(From OE-Core rev: 2878d19c4e19d76cb8be15825c40ff03f25f35f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
dc2192cabc external-poky-toolchain: This is broken and confusing now, remove it
This avoids a number of bogus preferred providers warnings too.

(From OE-Core rev: 823a2f96df84547216a26697838977a162f838c5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 22:54:50 +01:00
Richard Purdie
e024d40cd5 Remove stray unwanted file
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 17:55:51 +01:00
Dongxiao Xu
276b86509b Hob: Use BB_DEFAULT_TASK as build task instead of hardcoded "build"
Originally we use hardcoded "build" as the default task. This commit
fixes it by using BB_DEFAULT_TASK.

This fixes [YOCTO #2283]

(Bitbake rev: 7540f8d446345559ea9b47f4ff71d203ffdfaf8d)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Dongxiao Xu
fdb2027e6d Hob: Build selected image if not customized
If user selected a base image and didn't customize it, Hob will still
build the selected image instead of hob-image.

This fixes [YOCTO #2253]

(Bitbake rev: a74a6a033e66a0ae7b47c84d842bdd54066c69a1)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Dongxiao Xu
83cc0a118f Hob: Save the original image name into template
Previously we use the template file name as the image name. This commit
changes to use the original selected image into template file.

(Bitbake rev: 14a9da66fe08d181f45853c52e0c9f14773070a8)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:24 +01:00
Richard Purdie
ac998632f7 Hob: A minor fix on tooltip
(Bitbake rev: b1449ce6ccf4e33eb2fd34829d2c435a464ae88b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:43:23 +01:00
Richard Purdie
45da109439 systemtap: Ensure FILESPATH is set so systemtap-uprobes can find patches
This allows systemtap-uprobes to build again after the recently
added patch broke the builds.

(From OE-Core rev: 4bbe926f3ca68297d70849bab67177da624316d1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 14:31:26 +01:00
Nitin A Kamble
71b8383a6b eglibc: fix builds on fedora 17 alpha
Generally distros keep perl at /sur/bin/perl
Fedora 17 alpha also has /bin/perl

this causes eglibc build on such distros to put perl interpreter path in
the perl scripts as /bin/perl

But we set perl location for target as /usr/bin/perl

This mismatch of perl path causes failure of rootfs image creation
like this:

| error: Failed dependencies:
|       /bin/perl is needed by eglibc-utils-2.13-r23+svnr15508.i586
NOTE: package core-image-sato-1.0-r0: task do_rootfs: Failed
ERROR: Task 8
(/home/nitin/prj/poky.git/meta/recipes-sato/images/core-image-sato.bb,
do_rootfs) failed with exit code '1'

This Fixes bug : [YOCTO #2286]

RP: Updated to better account for -nativesdk
(From OE-Core rev: 381bf0d364da5970682502f8f124264907587b87)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:02 +01:00
Nitin A Kamble
fae4509e07 grub-1.99: fix configure error
This commit deals with this configure error.

configure:20306: checking whether `ccache i586-poky-linux-gcc  -m32
-march=core2 -msse3 -mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow' generates calls
to `__enable_execute_stack()'
configure:20320: ccache i586-poky-linux-gcc  -m32    -march=core2 -msse3
-mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow -O2 -pipe -g
-feliminate-unused-debug-types -Wall -W -Wshadow -Wpointer-arith
-Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1
-falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2
-mno-3dnow -mfpmath=387 -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines -falign-loops=1 -S
conftest.c
conftest.c:308:6: error: no previous prototype for 'g'
[-Werror=missing-prototypes]
cc1: all warnings being treated as errors
configure:20323: $? = 1
configure:20327: error: ccache i586-poky-linux-gcc  -m32    -march=core2
-msse3 -mtune=generic -mfpmath=sse
--sysroot=/builddisk/build/build0/tmp/sysroots/emenlow failed to produce
assembly code

(From OE-Core rev: edbfba73e3cea86d08d67b8623ab385ded44ed55)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Nitin A Kamble
3d23afdc7a grub-efi-native, grub: fix build with gcc 4.7
This fixes bug [YOCTO #2293]

These build failure caused by gcc4.7 is fixed with a backport of a
grub-1.99 patch from fedora 17 alpha plus two more new patches

| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"commands/efi/acpi.c\" -I. -I. -I.. -I.. -I../include
-I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -c -o commands/efi/acpi_module-acpi.o `test -f
'commands/efi/acpi.c' || echo './'`commands/efi/acpi.c
| gcc: error: unrecognized command line option '-melf_i386'
| make[3]: *** [trig.module] Error 1

| make[3]: Entering directory
`/home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/grub-1.99/grub-core'
| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/btrfs.c\" -I.
-I. -I.. -I.. -I../include -I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith
-Wmissing-prototypes -Wundef -Wstrict-prototypes -g -falign-jumps=1
-falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse -mno-sse2
-mno-3dnow
-fno-dwarf2-cfi-asm -m32 -fno-stack-protector -mno-stack-arg-probe
-Werror
-Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2
-pipe -c -o fs/btrfs_module-btrfs.o `test -f 'fs/btrfs.c' || echo
'./'`fs/btrfs.c
| fs/btrfs.c: In function 'grub_btrfs_read_logical':
| fs/btrfs.c:791:5: error: 'err' may be used uninitialized in this
function
[-Werror=maybe-uninitialized]
| fs/btrfs.c:592:18: note: 'err' was declared here
| cc1: all warnings being treated as errors
| make[3]: *** [fs/btrfs_module-btrfs.o] Error 1

| gcc -DHAVE_CONFIG_H -I. -I..  -Wall -W -I../include -I../include
-DGRUB_MACHINE_EFI=1 -DGRUB_MACHINE=I386_EFI -nostdinc -isystem
/usr/lib/gcc/x86_64-redhat-linux/4.7.0/include
-DGRUB_FILE=\"fs/zfs/zfs.c\" -I. -I. -I.. -I.. -I../include -I../include
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wshadow
-Wpointer-arith -Wmissing-prototypes -Wundef -Wstrict-prototypes -g
-falign-jumps=1 -falign-loops=1 -falign-functions=1 -mno-mmx -mno-sse
-mno-sse2 -mno-3dnow -fno-dwarf2-cfi-asm -m32 -fno-stack-protector
-mno-stack-arg-probe -Werror -Wno-trampolines          -ffreestanding
-isystem/home/nitin/builds/build0/tmp/sysroots/x86_64-linux/usr/include
-O2 -pipe -c -o fs/zfs/zfs_module-zfs.o `test -f 'fs/zfs/zfs.c' || echo
'./'`fs/zfs/zfs.c
| fs/zfs/zfs.c: In function 'get_filesystem_dnode':
| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1449:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'make_mdn':
| fs/zfs/zfs.c:1478:3: error: dereferencing type-punned pointer will
break strict-alERROR: Function failed: do_compile (see
/home/nitin/builds/build0/tmp/work/x86_64-linux/grub-efi-i586-native-1.99-r7/temp/log.do_compile.9293
for further information)
| iasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'dnode_get_fullpath':
| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1554:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:1571:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_open':
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2234:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'fill_fs_info':
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2362:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2395:3: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'iterate_zap':
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2420:5: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c: In function 'grub_zfs_dir':
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2483:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2484:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| fs/zfs/zfs.c:2502:7: error: dereferencing type-punned pointer will
break strict-aliasing rules [-Werror=strict-aliasing]
| cc1: all warnings being treated as errors
| make[3]: *** [fs/zfs/zfs_module-zfs.o] Error 1

(From OE-Core rev: b0f6dc60c926c2a653485e0016fbdc2ac5eb0cb4)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Nitin A Kamble
53d629496f grub-1.99: use gcc-cross for building the target binaries
It was using distro gcc to build binaries for target. This got detected
on fedora 17 alpha, on which it hit an gcc-4.7 issue.

This Fixes Bug: [Yocto #2291]

More information in the patch header

Thanks to Saul Wold for suggesting to remove the --target parameter from
EXTRA_OECONF var.

(From OE-Core rev: 26ae0e53411c1ea3afbb2e0c6d9dc2f1b0690751)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 13:26:01 +01:00
Dexuan Cui
7503db6713 nspr: fix package spliting
Here /usr/lib/lib*.so files are binaries rather than symbol links.
We should package them into ${PN} rather than ${PN}-dev, or else,
when a package, that rdepends on nspr, is packaged, we get a
"non-dev package rdepends on nspr-dev" ERROR.

(From OE-Core rev: be298b6f0168bbd6baf90602da35904c441deade)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:34:06 +01:00
Tom Zanussi
ffc9073db1 systemtap: disable document generation by default
Building the systemtap documentation adds significantly to the build
time, so disable it by default.

(From OE-Core rev: e37391a949fb0a6edf87eb910e93a17caf309119)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:33:47 +01:00
Tom Zanussi
3e3f774b8d systemtap: fix docproc build error
When building docs in systemtap, docproc is used to generate the
tapset documentation, but it gets built for the target, while it needs
to be build for the host instead.  This change causes that to happen.

Fixes [YOCTO #2193].

(From OE-Core rev: 6ef7112e339bb5c03dee862bc56c10fdf677be78)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-14 09:33:47 +01:00
Bruce Ashfield
ee71422b98 linux-yocto: allow .cfg, .scc, .patch and defconfigs to be processed in order
During testing/extension of the linux-yocto-tiny kernel it was found that
defconfigs were not always properly applied. This was due to two issues:

  - not being able to fully control the order of objects applied to the
    git tree on the SRC_URI
  - defconfigs triggering --allnoconfig before being applied

To fix this, the recipe space code that previously detected and generated
automatic features moves back to the kernel tools (where it was before) and
is updated to also process .cfg and defconfigs. Moving this back to the
tools allow other recipes to automatically benefit from the additional
support.

The second issue is addressed by allowing configme to take --alldefconfig
when a recipe wishes to pass a defconfig and override the default
behaviour.

Fixes [YOCTO: 2250]

(From OE-Core rev: 08c368b9980716e459d846dd7183940a5bf8bea4)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:46 +01:00
Bruce Ashfield
25b48c68df linux-yocto/3.2: add igb support to romley
Updating the 3.2 recipe SRCREVs to pickup the following meta change:

[
    meta: Add igb.scc to Romley

    Romley machine has 82580 Giga bit Ethernet Controller.
    Add the relavent Nic driver to it.

    (From OE-Core rev: d7c567816bf828da34fb9e315d4d76c4181337e9)

Signed-off-by: Kishore Bodke <kishore.k.bodke@intel.com>
]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:46 +01:00
Richard Purdie
bc5d68e30b Revert "eglibc: fix perl path in target scripts on fedora 17 alpha"
This reverts commit 7c95d554c431451f975e1e5d0336d1fb7d0ce7ae.

eglibc uses the PERL to execute things as well as encoding the path
in target scripts. We will therefore have to resort to sed on the scripts
at do_install time to fix the problems originally reported. This patch
causes various weird build failures and needs to be removed.

(From OE-Core rev: 160ee52b9563dac64941b5f6e2e072171ad396b8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:44:45 +01:00
Bruce Ashfield
60a7403f6c linux-yocto/meta-yocto: update hardware reference SRCREVs
commit 8cd31f9b0 linux-yocto/meta-yocto: update hardware reference boards to v3.0.24

Missed a merge commit on the hardware reference BSP branches.

As a result, validate_branches is adjusting the tree to build the
proper SRCREV. For machines with board specific commits this means
that some of their commits are missing, which leads to boot failure.

Bumping the SRCREVs fixes the problem

Fixes [YOCTO: #2292]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 22:43:59 +01:00
Andrei Gherzan
04b16f1038 rpm-native: Compile python rpm module (with-python)
This module is needed by python scripts from createrepo native package.

[YOCTO #2134]

RP: Add missing DEPENDS on python-native
(From OE-Core rev: 17f3cc1be0e8648cb4579793a9eb5a701deac85f)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:12 +01:00
Andrei Gherzan
5d41ccd2ca package-index: Force NATIVE python to use modules from STAGING_DIR_NATIVE
Export PYTHONHOME to ${STAGING_DIR_NATIVE}/usr. In this way python will search
for modules in native sysroot.

[YOCTO #2134]

(From OE-Core rev: 230b235329bcaca1a95afd89801d28768aff483b)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:12 +01:00
Andrei Gherzan
132b12b26e createrepo: Python scripts should use the python interpreter from env
Added path to modify the hardcoded path of python interpreter from python
scripts.
The python interpreter should be the one from native sysroot and not the
one from host machine.

[YOCTO #2134]

(From OE-Core rev: 164475b9669dc99c14461e1d749ec0626c62cb71)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Nitin A Kamble
0d7b909817 eglibc: fix perl path in target scripts on fedora 17 alpha
fedora 17 has /usr/bin/perl as well as /bin/perl, which results in
 the perl path set in thetarget  perl scripts as /bin/perl
While we install perl on target at ${bindir}/perl i.e. /usr/bin/perl
Hence the target perl scripts are broken when build is done on fedora 17.
Work around the issue by providing cached value of perl path to eglibc

This fixes bug [YOCTO #2286]

(From OE-Core rev: 7c95d554c431451f975e1e5d0336d1fb7d0ce7ae)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Venkata ramana gollamudi
cc69136bf3 eglibc: fix re-execution of task
Task do_patch_append calling do_fix_ia_headers is removing files using "rm" not "rm -f".
So first time execution of patch task is success, while re-execution of patch task
fails as it tries to remove the files already removed.

So changed "rm" to "rm -f".

[Yocto #2194]

(From OE-Core rev: f960da1b48bafb3ccdd58222fe9fc12c1bb6ed9b)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Venkata ramana gollamudi
396da97103 boost: fix re-execution of task
After building boost package, re-execution of boostconfig task followed by
re-execution of compile task is giving following error
"error: duplicate initialization of gcc with the following parameters" during compilation
It is because multiple entries of gcc are being added during boostconfig re-execution
there by failing the compilation.

The patch fixes adding multiple "Using gcc" entries into /tools/build/v2/user-config.jam

[Yocto #2194]

(From OE-Core rev: 291e20a51544c640d07767d1dc32d762f4370f41)

Signed-off-by: Venkata Ramana Gollamudi <ramana.gollamudi@huawei.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:11 +01:00
Andrei Gherzan
60cf19a36d PR bump packages with gdbm in DEPENDS
This is done because of this change in gdbm:
"gdbm: Package compat libs in gdbm-compat"

(From OE-Core rev: b91d8a07f736b7698650d25609245c89e0ed73d5)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:10 +01:00
Andrei Gherzan
996308a4ea gdbm: Package compat libs in gdbm-compat
In order to avoid breaking packages which depend on old package name libgdbm4 (>= 1.10),
compat libs are packaged into a separate package named gdbm-compat.

(From OE-Core rev: 703d7efdf7679040f19430458cd575cded5c600e)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 16:04:10 +01:00
Richard Purdie
54c6e07ffe Revert "default-distrovars: remove NO32LIBS setting"
We still need this value to keep the sanity testing working. The other
part of the change is still valid.

This reverts commit cb940f46efacddc7200581edba034e4201abb94a.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 15:50:38 +01:00
Richard Purdie
f09a5e176f opkg-utils: Update to include a fix for version comparision issues
This brings the version comparision within opkg-utils into sync with that
in opkg itself.

[YOCTO #2233]

(From OE-Core rev: 1964be5432c1c378e80d7f1dec0999a2be71853b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 14:57:50 +01:00
Richard Purdie
22aac28f28 gcc-4.6: Add fix for relocation problem and ccache
If the toolchain is reused from sstate and ccache is installed, build failures
were occuring due to gcc trying to access the original sysroot rather than the
new one, particularly if the old sysroot existed but was not readable by the
current user.

This turns out of the an issue inside gcc to do with preservation of the sysroot
option. See the gcc patch for more details. It only triggers when preprocessed
sources are used which happens when ccache is used.

The same issue occurs with c++ and c++-cpp-output so the same fix is applied there.

[YOCTO #2074]

(From OE-Core rev: d3a3e81869631ba69874f6fc172240e3aac388f5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 14:26:52 +01:00
Paul Eggleton
7b22df2e4b default-distrovars: remove NO32LIBS setting
The ??= assignment in pseudo.inc effectively nullifies this ??=
assignment here, so remove it.

(From OE-Core rev: cb940f46efacddc7200581edba034e4201abb94a)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Paul Eggleton
7cf26b2d3d pseudo: default NO32LIBS to 1
If this value is not set to 1, then systems with some 32-bit libraries
but no 32-bit version of libgcc installed will have pseudo-native fail
at do_compile. It should only really be set to 0 by those who know what
they are doing.

(From OE-Core rev: 489a36d3d6b67d706f5918638e1fbc05ccd59e21)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Richard Purdie
b4acabea99 base.bbclass: Fix PACKAGECONFIG issues with native and nativesdk BBCLASSEXTEND recipes (and multilib)
This patch fixes up the issues that were being seen where BBCLASSEXTEND and
PACKAGECONFIG were interacting badly. It also ensures PACKAGECONFIG interacts
properly with multilib builds.

Ideally some of this code will be abstracted into lib/oe/classextend.py but
at this point in release more invasive changes like this are inappropriate.

This patch also removed empty strings from expressions rather than
passing them around as this was complicating the additional code
unnecessarily.

The patch was verified against the OE-Core metadata where the return values of
expandFilter() were sanity checked by hand for native/nativesdk and
multilib combinations.

[YOCTO #2225]

(From OE-Core rev: 46db11c4a789034b7040faf127ab865148bedad8)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 13:49:35 +01:00
Robert Yang
898bee7a4e mklibs-native 0.1.33: include unistd.h to fix build for gcc 4.7
Many of the standard C++ library include files have been edited to no
longer include <unistd.h> to remove namespace pollution in gcc 4.7, so
we need include <unistd.h> manually sometimes.

More information:
http://gcc.gnu.org/gcc-4.7/porting_to.html

[YOCTO #2278]

(From OE-Core rev: 5e3c12313edc4b51ddd432ecbbd3b1f5295b3c14)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>

[Updated patch header - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:53 +01:00
Mark Hatle
100e3c9b75 rpm: Ensure that we check both providename and filepaths
In lib/rpmts.c we need to make sure to look for missing dependencies,
such as /bin/sh, in both the providename and filepaths DB.  Previously
the system would key off an initial '/' and only look in the filepaths DB.

This causes problems when a package such as "bash", has a Provides: /bin/sh.

(From OE-Core rev: 08fb526c42e85c89135960344745e878c5fb633a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:53 +01:00
Mark Hatle
554cac7d13 pseudo: Tell pseudo to avoid specifying an RPATH
[Yocto #2251]

Add --without-rpath to avoid embedding rpaths into the pseudo
components.

(From OE-Core rev: ae978e9671fdbcb31e306308bfb816b4bd2b2496)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:05:52 +01:00
Lianhao Lu
fb918fb4db Hob: Added required packages for toolchain.
Added the requried packages task-core-standalone-sdk-target(-dbg) for
building toolchain.

Fixed bug [YOCTO #2274]

(Bitbake rev: 434fdb3913cc78e2e9cdeede4c4fa7f1c8ef8892)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Lianhao Lu
811f7d8ebf bb.utils: Modifed vercmp() to meet Debian rules.
The version compare function vercmp() was not exatcly conforming to
Debian rules, e.g. it reported 'r1' > 'r1.1' but the Debian rules says
'r1' < 'r1.1'; it didn't support the "~" either.

Modified the vercmp() to meet Debian rules, so that it's compatible to
the rules used in opkg.

This part of the buf fixing of [YOCTO #2233].

(Bitbake rev: 97b610c54c60b5a40fa7f6a09fa23ce17b38f93a)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Shane Wang
4997801bad Hob: forbid users to exit Hob directly when Hob is busy
When Hob is busy with generating data, exiting Hob is not allowed.
That should be reasonable because at that time the mouse cursor is not a pointer.
If users want to exit, they can click "Stop" first and then do exit.

That is also a walkaround for [Yocto #2142]

(Bitbake rev: ad7f6bf3c7c4c15d546781aaefdaf03f00193f7c)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Dongxiao Xu
9c1dcdceb2 Hob: Implement Hob config parse hook
To make Hob's specific variable settings take effect, we add a Hob
config hook at the end of parsing for each configuration file, and in
the hook function, Hob will set its own variables to the data store.

This fixes:
[YOCTO #2210]
[YOCTO #2254]

(Bitbake rev: 0ec7d1bbfd2e09ae60f99e6134b20ffd1d9145b1)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:19 +01:00
Richard Purdie
302f2cc8ce ConfHandler.py: Add a hook for config parsing
To make the UI settings take effect, we need to hook at the end of each
config file parsing and set UI specific values.

(Bitbake rev: f54e733c7863110896f43900d9e4e791602f9d65)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-13 12:04:18 +01:00
Richard Purdie
6703173449 package_rpm.bbclass: Set tmppath for rpm to somewhere which won't conflict with the rootfs
If the rootfs has a specific layout in mind for /var/tmp, it should be
free to create this. Preinst scripts trigger rpm to create its tmppath
directory which could potentially conflict with this.

We're seeing issues if the provider of the /var/tmp wants to use a symlink
and a preinst script executes before it has been installed. This change
places tmppath as used by rpm somewhere safe which is already automatically
cleaned up too.

(From OE-Core rev: 71e95c744eaa4dda1b3237db2e13f666f121c92b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 21:25:10 +01:00
Shane Wang
d74c5aa2c9 Hob: fix the missing functions
The patch is to correct 7e5d41ab22
(Bitbake rev: b6e68019494044305ab28492a517d1eafea851c3) to fix the
missing functions.

[Yocto #2281]

(Bitbake rev: 3c2808b67384e92601cbd66877c36ca40df7c7ba)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 15:57:04 +01:00
Richard Purdie
c37faea947 libunistring: Fix parallel make issue
See patch header for the full description of the parallel make issue this resolves.

(From OE-Core rev: 1b576a2412647fbbf0a17e95171efdc458f4be16)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:37:52 +01:00
Richard Purdie
b2ae65f7d1 linux-dtb: Ensure dtb files are covered by sstate
The dtb files were not being installed into a location compatible with sstate and
the do_deploy task. This means in builds just using sstate, the dtb files disappeared.

This patch fixes the code to use the correct location for deploy files.

[YOCTO #2190]

(From OE-Core rev: 9815b7a95ac33d3234073cdd204d9389b4241189)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:37:52 +01:00
Scott Rifenbark
d6031bad2a documentation/yocto-project-qs/yocto-project-qs.xml: Added CentOS
New section in the Packages area for CentOS.

(From yocto-docs rev: 7ee9f2d09fe9b83bccdf4b4f431672f34c31aca7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:35:47 +01:00
Scott Rifenbark
853c5613ac documentation: Run-through changes for 1.2
Reading through the manual I discovered some inconsistencies with
how links were handled.  I fixed this in both the QS and one anchor
in the FAQ appendix of the YP Reference Manual.

(From yocto-docs rev: 32444e839a1541ab2c02fa31cd094605d1a2429a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:35:47 +01:00
Scott Rifenbark
17c4134ebd documentation/yocto-project-qs/yocto-project-qs.xml: fixed URL
In the "Super User" section I had the URL for the wget command
wrong.  Replaced the "." character with a "/" character.

(From yocto-docs rev: 87ec41694d6665c0dbaaab94679b1f22335aa070)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:35:47 +01:00
Elizabeth Flanagan
a9be1accab poky.ent: Updating for coming release
Flipping values for the upcoming release

(From yocto-docs rev: 00a7b706af352d6103db712ec3f1f0a1b08f0eff)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 12:35:46 +01:00
Richard Purdie
58d2ff3955 package_rpm.bbclass: Use the correct macros file to avoid empty solvedb path issues
(From OE-Core rev: f714f54df01e02a1115b42f3637f74a11eb51edb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 08:22:00 +01:00
Joshua Lock
7e5d41ab22 packageselectionpage: add missing method
This is just a copy of the same method from the recipeselectionpage so
that we can actually run hob again.

Fixes [YOCTO #2281]

(Bitbake rev: b6e68019494044305ab28492a517d1eafea851c3)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 08:12:07 +01:00
Saul Wold
376bf4a390 builder: fix missing \ for if continuation
(Bitbake rev: f44f12b812d246da994519bc39789bf2dcfbac4b)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 08:11:30 +01:00
Richard Purdie
0923ee40ae package_rpm: Fix useradd preinst ordering issues
We were already having occasional ordering issues with package_rpm.
Fixing the ldconfig postinstall issue pushed rpm over the cliff and
totally broke rpm builds with the packages getting installed in
effectively a random order and the useradd preinstalls getting executed
out of order and breaking.

The only explanation I can find for this is that rpm is special. It will
happily run a preinst for a package without any of that package's
dependencies being present regardless of whether there are any circular
dependency issues or not. I attempted various ways of solving this such
as ordering the total_solution.manifest in creative ways but the bottom
line is RPM ignores this. It takes little account of any request to
ignore /bin/sh dependencies for the purposes of constructing the final
image.

The end result is we're having to install the base-passwd, base-files
and shadow packages first (if there is a request to install them), then
install any other packages.

It this wasn't in the middle of a release I'd be rewriting this bbclass
file, its horrible.

(From OE-Core rev: 2c136255a7db8c57ab595a9c2ee1f32aebefc480)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-12 00:24:35 +01:00
Saul Wold
9789ed626b hig/builder: use the new which_terminal() function
Also adjusted the cmdline ordering to work correctly
with both xterm and vte.

(Bitbake rev: 4219e2ea033232d95117211947b751bdb5efafd4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 17:58:51 +01:00
Saul Wold
4be09eec6a ui/crumbs/utils.py: new file for choosing terminals
Adding this simple version of a terminal selector for use
hob since it's needed. Moving forward in the 1.3 release
the existing code in meta/lib/oe/termnial.py will be migrated
to core bitbake code and this will use that code.

(Bitbake rev: 359a9ea4c8d61247064db3eaefb816ef116d332a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 17:58:49 +01:00
Saul Wold
eaf299419a distro-tracking: Fix syslinux NO_UPDATE_REASON
(From OE-Core rev: 19e3c031ccbcce655e4a60c4a488e27b09259fba)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 15:38:11 +01:00
Noor Ahsan
75a604bbf5 insane.bbclass: Add missing variable bpn
* bpn variable was used but it was not defined. Add bpn to resolve that issue.

(From OE-Core rev: 5756d4a7d34fbb370ef54a99dff06afba7a80d8f)

Signed-off-by: Noor Ahsan <noor_ahsan@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 13:10:37 +01:00
Andrei Gherzan
00a6199b92 "The suite of statements in a function definition executes with a local namespace that is different from the global namespace. This means that all variables created within a function are local to that function. When the suite finishes, these working variables are discarded."
In this way the needs_ldconfig variable in linux_so never gets True in the statements
below this function. As global statement is generally discouraged, a return value
would be a clean and fast way to solve this issue.

[YOCTO #2205]

RP: Added logic to ensure the value doesn't get overwritten once set
(From OE-Core rev: 6d39af4f85220f20bad09b0fdd3ee0a7ec19c12d)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>---
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:57:17 +01:00
Lianhao Lu
f03d66bcc1 python: multilib header support.
Add intercept multilib header for pyconfig.h in python.
This is part of the bug fixing [YOCTO #2216].

(From OE-Core rev: 99591085186c465f2ddfaef08f419ec7584d4522)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:48:37 +01:00
Yang Shi
b23b2b42a0 initrdscripts: fix init-live.sh and use unionfs
[YOCTO #1487]

When booting up with liveCD image, init scripts can't work well on read-only filesystem. Unionfs,
which is supported in Yocto kernel, allows a filesystem to appear as writeable, but without
actually allowing writes to change the filesystem.

Use unionfs to mount rootfs and make root file system can be writen when using liveCD to boot up.
Set UNION_FS variable depending on kernel config, so that it can work with kernel which doesn't
have unionfs feature.

[RP: Mark recipe as machine specific due to kernel dependency]
(From OE-Core rev: b7f4e8d153c2aebbcf6556e7e926f6b94801d6aa)

Signed-off-by: Yang Shi <yang.shi@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:15:32 +01:00
Nitin A Kamble
88b399bb2c tclibc-eglibc.inc: make locale packages dependency conditional
Only add locale package dependencies if the eglibc is configured
with locale support.
  This avoids dependencies issues for distros such as poky-tiny

[RP: Add PR bump]
(From OE-Core rev: bcaea8ec9c9c333f76b368225f60d4fb54c1c7b2)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:12:43 +01:00
Bruce Ashfield
6abc4c46fd linux-yocto/meta-yocto: update hardware reference boards to v3.0.24
The meta-yocto hardware reference boards missed a SRCREV update when the
base recipe when to v3.0.24. This updates the SRCREVs to ensure that the
kernel that is built and booted matches the version information conveyed
from the base recipe.

Fixes [YOCTO #2265]

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2012-04-11 12:10:14 +01:00
Robert Yang
0f21f39fad beagleboard.conf: fix hardcode of virtual/xserver
Here is the message from the bug 2260:

meta-yocto/conf/machine/beagleboard.conf hardcodes the virtual/xserver
provider, i.e., it includes the following:

PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg-lite"

I don't think machine conf is the correct place for selecting what is
essentially a distro feature, but at least this should use the '?='
operator; as is to select a different provider one must provide a
complete beagleboard.conf file.

[YOCTO #2260]

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
2012-04-11 12:10:14 +01:00
Nitin A Kamble
8c48ab6183 poky-tiny.conf: adjust eglibc options for poky-tiny
Avoid errors for building meta-toolchain for poky-tiny

This Fixes Bug: [YOCTO #2259]

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
2012-04-11 12:10:13 +01:00
Richard Purdie
06a7ffdeca python: Fix host contamination issue
python-nativesdk could fail with:

| /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/sysroots/x86_64-linux/usr/bin/python: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-ppc/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/python-nativesdk-2.7.2-r1.9/Python-2.7.2/libpython2.7.so.1.0)
| make: *** [sharedmods] Error 1

which is caused by the fact LD_LIBRARY_PATH is being set to include WORKDIR
when calling HOSTPYTHON. HOSTPYTHON is from python-native and needs no such
help so the easiest fix here is not to set crazy LD_LIBRARY_PATH values
since we should never be running anything from WORKDIR given the way we build
things.

The patch clears out the RUNSHARED variable which would contain the
LD_LIBRARY_PATH value prior to this patch.

(From OE-Core rev: 546175abbac8a3c7ec4b5a4d014b05378bbb092f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:14 +01:00
Xiaofeng Yan
5fb36b041c archiver.bbclass: Amend the problem for moving tarballs in ${DL_DIR} to ${DEPLOY_DIR}/source when enable archiver
When running "bitbake core-imamge-minmal", the error information like the following  will appear:
ERROR: Error executing a python function in
/buildarea2/yzhao-test/poky-test/meta/recipes-core/zlib/zlib_1.2.6.bb:
IOError: [Errno 2] No such file or directory:
'/buildarea2/yzhao-test/poky-test/build-archive/downloads/zlib-1.2.6.tar.bz2'

An absolute path from variable "file" pointed to tarballs in ${DL_DIR} \
cause this problem. So return base-name of "file" for fixing this bug here.

[YOCTO #2272]

(From OE-Core rev: 40c34087dea6869e5ec9a655980de3c3baa01960)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:14 +01:00
Andreas Oberritter
acdcb3c7e0 busybox: fix options -b, -a and -P
* busybox-udhcpc-no_deconfig.patch broke the options,
  preventing udhcpc from forking into the background
  if no lease can be obtained.

(From OE-Core rev: 24ad7ca9bd99cd6cd11f7d2d49a79fe3521cbcec)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:14 +01:00
Paul Eggleton
91a77020eb classes/package_deb: create .gz index instead of .bz2
apt is looking for Packages.gz files instead of the .bz2 files we are
currently creating and failing when they cannot be found. It is not
immediately obvious how to make the current version use the .bz2
indexes; thus create .gz indexes for now which allows us to
successfully create images.

Tested on both a Fedora 14 and an Ubuntu 11.10 host machine.

Fixes [YOCTO #1858].

(From OE-Core rev: 518f4af617f91b209086acb51454393147aa92dd)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:14 +01:00
Saul Wold
0dca188d2d task-self-hosted: Add vte and eglibc-gconv-ibm850
Adding vte for a more full featured terminal
adding eglibc-gconv-ibm850 for mcopy

(From OE-Core rev: b30a6eb08640b25bb0b0530f51a8cb749de1c311)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:14 +01:00
Saul Wold
394445fdf9 boot-directdisk: remove the default setting of SYSLINUXCFG and SYSLINUXMENU
These two should get setup in {S} and installed into {HDDDIR}, by
having them defined with {HDDDIR} they try to get created when the
directory does not exist yet.

(From OE-Core rev: 215ea5ea8b97270a3602b3f20469226a56442552)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:13 +01:00
Lianhao Lu
73aab2c289 connman: add ofono dependency.
Added dependency to ofono because we always enable ofono plug-in.

We did this because the 1.2 release cycle is coming to an end. We should
use PACKAGECONFIG in 1.3.

This is part of the 1.2 bug fixing [YOCTO #2216].

(From OE-Core rev: bfd6bf92ddf371d9be937ec0605e08667749fd88)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 12:08:13 +01:00
Liming An
9067f7bfc2 Hob:Fixed some incorrect values of Build configuration tab
Because some variables not be updated when building started, so add them
to the updating function of configuration class, and add reset function of
configurate treeview of building detail page

[YOCTO #2244]

(Bitbake rev: 06ce753fd4680a204ccc63949ace637dc1c115e2)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:23 +01:00
Shane Wang
6486d39fb1 Hob: show those appliable buttons on the image details page only
We don't use "grayed out" but use "show/hide" for those appliable buttons
in the image details page.

[Yocto #2143]

(Bitbake rev: df1564d78d081ceab51d628d227e57b7a197259b)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:23 +01:00
Shane Wang
ccf4f7653b Hob: forget selected_recipes and selected_packages after users change the machine
The patch is to fix [Yocto #2255]. Now the logic is:

- If users change the machine, the image combo is empty for users to select.
- If users load the template, the image combo should set the value of
  selected_image specified in the template.
- After loading a template, if users change the machine, the selected_image
  specified in the template should be removed from the image combo because
  it is probably invalid for a new machine.
- If users customize the recipe/package list, and change the settings which
  causes reparsing, selected_recipes and selected_packages should be remembered.
- If users add more layers, selected_recipes and selected_packages should be
  remembered.

(Bitbake rev: e549b11f4f31863393f62a253ee96bead4594523)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:22 +01:00
Shane Wang
793058e6f2 Hob: add tooltips into image details screen
[Yocto #2243]

(Bitbake rev: 543e81b87b48de9c5285b81c856376c9f52d7902)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:22 +01:00
Shane Wang
0043ed8fa6 Hob: tooltip change for "Build image" button
[Yocto #2242]

(Bitbake rev: a36bd8ddf62397c554dadb97841532e260b01b91)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:22 +01:00
Shane Wang
59cd6a56e3 Hob: clean up and reword stop_parse()
(Bitbake rev: f6e0d93c96d1626e7da298e296b1be9e425173b2)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:22 +01:00
Shane Wang
62e5a4df09 Hob: clean up generate_configuration()
(Bitbake rev: 569d5ac3a3e89c7a8d69ec611b69edbae414b5fe)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:22 +01:00
Shane Wang
655476f9d1 Hob: clean up cancel_build()
(Bitbake rev: ef441d51700f73577e72c106ee2a0ecd4eceda08)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:21 +01:00
Shane Wang
c5964a79c7 Hob: clean up request_package_info_async()
(Bitbake rev: e95b52820f26a7a35865e8978ea752053dccd4b1)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:21 +01:00
Shane Wang
2176e14894 Hob: clean up and unify get_parameters() to be get_parameters_sync()
(Bitbake rev: 16fecd0d0f95285bf774030cd24006206185faee)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:21 +01:00
Shane Wang
f511b8cd07 Hob: clean up to call clear_busy() in hobeventhandler.py
(Bitbake rev: 7b6414e2b82666c3cfa5432ce8fe8c348b227441)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:05:21 +01:00
Shane Wang
21901e0ada Hob: clean up and unify the steps for IMAGE_GENERATING to call generate_image_async()
For the steps in IMAGE_GENERATING, the patch consolidates them into
generate_image_async() to call.

(Bitbake rev: d4f2335e40d4d667847d3faed79bcee74baeea37)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:45 +01:00
Shane Wang
35317bd2c2 Hob: clean up and unify the steps for PACKAGE_GENERATING and FAST_IMAGE_GENERATING to call generate_packages_async() and fast_generate_image_async()
For the steps in PACKAGE_GENERATING, the patch consolidates them into
generate_packages_async() to call.

For the steps in FAST_IMAGE_GENERATING, the patch also consolidates them
into fast_generate_image_async() to call.

(Bitbake rev: 1ec53d41774528ab01e835d1cf4166f0202a7c38)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:45 +01:00
Shane Wang
47caae2f21 Hob: clean up and unify the steps for RCPPKGINFO_POPULATING to call populate_recipe_package_info_async()
For the steps in RCPPKGINFO_POPULATING, This patch consolidates them into
populate_recipe_package_info_async() to call.

(Bitbake rev: ed2aa6f235e1b789af8a33729302a4269674c6b4)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:45 +01:00
Shane Wang
27caa6b89d Hob: clean up and unify the steps for CONFIG_UPDATE to call update_config_async()
For the steps in CONFIG_UPDATE, the patch consolidates them into
update_config_async() to call.
consequently remove CONFIG_UPDATE since MACHINE_SELECTION covers it.

(Bitbake rev: f583d43e87c049bdee88890e289f14520c7c31a1)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:45 +01:00
Shane Wang
8d353411c1 Hob: clean up and unify the steps for new build to call initiate_new_build_async()
initiate_new_build() (changed the function name into initiate_new_build_async()
to indicate it is an async function) or the similar sub-functions are called at
different places.

This patch is unify to call initiate_new_build_async().

(Bitbake rev: ec42be626a5d6362a09f12f4f4025ad92d70c89b)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:44 +01:00
Shane Wang
e2c1092905 Hob: correct indent
(Bitbake rev: 684e0eddfbbb4618a1adcf179296f3f1066ae1c0)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:44 +01:00
Liming An
4495a73abc Hob: Add the tooltips for recipe view page as request
[YOCTO #2229]

(Bitbake rev: 37c969164a6ef9adcaa743a3909102b005a55163)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:44 +01:00
Liming An
e1d463eb39 Hob: add fadeout display effection for package view include page
[YOCTO #2100]

(Bitbake rev: c0c81647dc5e72fe3abb1fb3b65a978aa4b226a5)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:44 +01:00
Liming An
a46aafb8b2 Hob: add fadeout display effection for recipe view include page
As UI request, in recipes selection page, if user exclude a item,
the related depends recipes will be excluded together,so the view
clearly to add it.

[YOCTO #2100]

(Bitbake rev: c9eed04c6275ef2c694f89e047f85c7de76f89b6)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:44 +01:00
Dongxiao Xu
9fd56fad6c Hob: Add an extra 50M space if zypper is selected
If zypper is selected, RPM packaging will add extra 50M free space to
the final image. We need to reflect it in package selection page.

(Bitbake rev: 22344f13d5e201be0d6381c6542d05c6fde7eec3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:43 +01:00
Dongxiao Xu
44b08a96b8 Hob: Fix tooltips in Settings dialog
This fixes [YOCTO #2229]

(Bitbake rev: 0f57e1d1d85a2c86d68e604e294ea4b0ceff03ca)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:43 +01:00
Dongxiao Xu
f9d7043b62 Hob: Fix tooltips in image configuration page
This fixes [YOCTO #2228]

(Bitbake rev: f99e90726716bc89bdd980a3db027f1c3a66f2fa)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:43 +01:00
Dongxiao Xu
4c72ee98c2 Hob: Fix the pattern patch for image name
Sometimes, users may open an image that is not built by Hob, therefore
its image name is not started with "hob-image-". This commit sets a
looser rule for runnable image matching.

This fixes [YOCTO #2240]

(Bitbake rev: 7b81389566cb27451557ca11ec8ed40ef2630543)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:43 +01:00
Dongxiao Xu
c546037dc9 Hob: Change base image to "Create your own image" if customized
Once user did customization to his base image, we change the base image
to be "Create your own image" to avoid some issues caused by the
relationship between base image and its default recipes and packages.

This fixes [YOCTO #2211]

(Bitbake rev: 8edad8d282b69896237e956a00c66cd4d10ef494)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:42 +01:00
Joshua Lock
0aff9a5824 selectionpage: show persistent tooltips on click
Requiring a double click to show the tooltips isn't very intuitive, add
a callback to show the persistent tooltips on button release.

(Bitbake rev: 80af7e72a9404044910fca7f9265e66354f747a6)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:42 +01:00
Joshua Lock
df64e7f884 lib/bb/ui/crumbs/[recipe|package]selectionpage: fixed width Included col
Set the expand property on all columns other than the 'Included' column
so that the included column remains at the max size set.

(Bitbake rev: e1406d75c0643a2e65bb61649958e05e730fb332)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:42 +01:00
Joshua Lock
4cf1aa5ae4 lib/bb/ui/crumbs/recipeselectionpage: include 'Group' in 'Included' view
The 'Included' tab of the notebook should show the 'Group' a recipe
belongs to, per the design.

(Bitbake rev: 4f45d791644e383b11cbcfd4fb02866518cb9c04)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:42 +01:00
Joshua Lock
49cd60e3c3 lib/bb/ui/crumbs: only display one 'Brought in by' item in Hob trees
The design calls for a single 'Brought in by' item to be shown in the
tree views with any extra items to be shown in the tooltip.

(Bitbake rev: 6866271da738237d3a119e291ac8f9d2c517e124)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:41 +01:00
Joshua Lock
e5a63fd66b hob: update required versions of (py)gtk et al
With the previous two changes we now work on Gtk+ 2.18 and PyGtk 2.16

(Bitbake rev: 5ccbcdf8c47f2f20655a3ea0f60e5870cdba6f83)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:41 +01:00
Joshua Lock
0d001e8c04 lib/bb/ui/crumbs/hobwidget: replace new API
The gtk.Widget.get_sensitive() convenience method is only available
in Gtk+ 2.22 or later, instead use the sensitive property of the
gobject to determine whether the widget is sensitive or not.

(Bitbake rev: 82ea0619e9ecf9107b75692385bcf1434ea8a307)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:41 +01:00
Joshua Lock
b2fb7ddedd lib/bb/ui/crumbs/persistenttooltip: replace 2.22 API
CentOS 6.x doesn't ship with new enough pygtk for this API.

(Bitbake rev: 2b6ce54cdc23c5fc1325e42634287134f55aacbf)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:41 +01:00
Robert Yang
0d5e808777 diskspace monitor: assign a default value when only of the interval is set
Assign a default value to the other one when either disk space interval
or amount of inodes interval value is set for example:

BB_DISKMON_WARNINTERVAL = "50M,"
or
BB_DISKMON_WARNINTERVAL = ",5K"

The diskspace monitor would not enable in the past, that seemed
unreasonable, assign a default value to the other one currently, so the
monitor will be enabled, and will warn both of diskspace and free
amount of inode if they have been set in BB_DISKMON_DIRS.

(Bitbake rev: 09592c119550550edcc59c871f754536d5b7bf65)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-11 00:04:40 +01:00
Scott Rifenbark
c0a812c222 documentation/bsp-guide/bsp.xml: Added a info about meta-intel layer
I put a bit of explanation in the "BSP Layers" section about
meta-intel being a layer that in fact contains other BSP layers.

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

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:45 +01:00
Scott Rifenbark
ec33e21004 documentation/bsp-guide/bsp.xml: Edits to intro sections
Adding the new section "Customizing a Recipe for a BSP" has added
enough sections to this book such that the introductory area needed
some attention.  I pared down the intro text to basically just
cover the manual's organization and a bit about BSPs.  I moved
all the introductory common form stuff into the section that
just addresses the BSP form.  This is better organization for the
manual as it is evolving.

(From yocto-docs rev: 9aec4ce47fb090ae2f6c5bed93da03e77ae49a4c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:45 +01:00
Scott Rifenbark
273e05bb0d documentation/bsp-guide/bsp.xml: Added new section
Fixes [YOCTO #1962]

Added a new section called "Customizing a Recipe for a BSP".
The text was rooted in Darren Hart's comments.  I implemented
them and then we iterated a bit on it.

Reported-by: Joshua Lock <joshua.lock@intel.com>
(From yocto-docs rev: f5e51d60312d9335a790023f193cae1ba76277ae)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:44 +01:00
Darren Hart
adc13fc925 hello-mod: Move hello-mod from meta to meta-skeleton
Fixes [YOCTO #1501]

hello-mod is an example kernel module, and does not provide any real
functionality. As such, it would be better placed under meta-skeleton than
meta.

(From OE-Core rev: bde1744018afd4616e114b20ffdc21b9abddcedc)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:02 +01:00
Darren Hart
13d62101f6 syslinux: Update distro-tracking fields
Add reason for not updating syslinux this release.

(From OE-Core rev: d037060e2fec073ccfb33c83d426c9775b331457)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:02 +01:00
Saul Wold
5d3d7537dd at: Fix origin location of install pam.conf from from ${P} -> ${BP}
This patch changes P to BP to address where a file is installed
from when building with PAM enabled and using multi-lib.

[YOCTO #2224]

(From OE-Core rev: 7304874058011360070ab28f14423273aa99360e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:01 +01:00
Martin Jansa
c397384ef4 gdb: add --with-libexpat-prefix
* otherwise it sometimes finds host's expat

(From OE-Core rev: 19d034963cc16392a12db144e04c55cbab245576)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:01 +01:00
Xiaofeng Yan
547cb70473 opkg: Add the condition for the content of arch.conf when enable multilib
After successfully installed some lib32 multilib packages into the
x86-64 image, we just found that the file content of /var/lib/opkg/status in
rootfs changed after the very 1st boot, many lib32 related packages information
are missing in that file.

The missing arch "x86" in arch.conf cause the above problem. Adding the
condition for the content of arch.conf when enable multilib. If build
multilib image, "ALL_MULTILIB_PACKAGE_ARCHS" will be used instead of
"PACKAGE_ARCHS".

[YOCTO #1522]

(From OE-Core rev: 700fc9a5d25ebb1f85cb9db11e41ba502744fe7e)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:01 +01:00
Lianhao Lu
aedff44a9a adt-installer: Fixed ppc kernel naming.
1. Fixed the ppc kernel naming.
2. Disabled opkg shared library to avoid runtime opkg-cl launching
error.
3. Adjusted the variable sequence in adt-installer.conf

Fixed bug [YOCTO #2233]

(From OE-Core rev: fdf65d9f12d67f4290b83253efdbb34e5551fbb2)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:01 +01:00
Robert Yang
a0ccc1fb24 meta-toolchain: runqemu falied on FC16/Opensuse12.1 x86_64
runqemu can't launch a target image on Fedora 16 64bit or Opensuse 12.1
64bit, this is because runqemu needs the host's libGL.so, which requires
GLIBC_2.14 which is defined in libc.so.6, but our default libc.so.6 is
version 2.13, here is the message from Richard:

The easiest solution would be to change the nativesdk libc to 2.15. I don't
think we plan to do this for the target libc for 1.2 but we could change
nativesdk's version if its well tested

[YOCTO #1968]

(From OE-Core rev: 5f1becfba0b801eeacb1c626659fe46cd6df25bf)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:00 +01:00
Robert Yang
b0550403d4 git 1.7.7: remove perl.mak before compile
The git may fail to rebuild when perl's Config.pm or config.h changes,
this is because Makefile detects that perl/perl.mak is out of date.
Remove perl.mak to let Makefile regenerate it would fix the error.
Both git and git-native have this problem.

To reproduce the error: (On x86_64 host)

$ bitbake git-native
$ touch tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.14.2/Config.pm
$ bitbake git-native -ccompile -f

[YOCTO #2156]

(From OE-Core rev: 7f9a3eb4e81f708573cfd5123655441d3b9532a5)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:00 +01:00
Darren Hart
c13afae688 grub-efi: Include GPT partition EXT FS support
Fixes [YOCTO 2257]

GPT partitions are common for EFI systems. Add support for them by
including the part_gpt partition module in the grub-efi image. In
order to allow for loading a Linux kernel from an EXT* filesystem,
include the ext2 module as well.

With this fix applied, I was able to boot from a USB key using a
GPT partition table with the following layout:

  $ sudo gdisk -l /dev/sdc
  GPT fdisk (gdisk) version 0.8.2

  Partition table scan:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present

  Found valid GPT with protective MBR; using GPT.
  Disk /dev/sdc: 7669824 sectors, 3.7 GiB
  Logical sector size: 512 bytes
  Disk identifier (GUID): 68FA7CD4-E0C3-4A8E-82B5-1331C9B17A3C
  Partition table holds up to 128 entries
  First usable sector is 34, last usable sector is 7669790
  Partitions will be aligned on 2-sector boundaries
  Total free space is 7428816 sectors (3.5 GiB)

  Number  Start (sector)    End (sector)  Size       Code  Name
     1              34           32801   16.0 MiB    0700      # FAT16
     2           32802          240974   101.6 MiB   0700      # EXT3

From within GRUB, booted as bootia32.efi from the BOOT partition, I
booted the OS with the following commands:

  grub> linux (hd0,gpt2)/vmlinuz rootwait root=/dev/sda2 console=ttyS0,115200
  grub> boot

This change will enable BSP developers to use the grub-efi image in
their own images as well as enable upcoming changes to the installer
to support EFI.

(From OE-Core rev: a2c6687410f00623efe8dfcb22385cbbc7f2e1a9)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Kishore Bodke <kishore.k.bodke@intel.com>
CC: Rahul Saxena <rahul.saxena@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:32:00 +01:00
Zhai Edwin
fe0b3333a5 qemu: Fix gl failure from 64b target on 32b host
Data from 64b target is truncated by 32b host. This patch makes type of data
buf in host same as target.

[YOCTO #2221] got fixed.

(From OE-Core rev: d9f12cee3847cbf1cf9fc20cb614f8cd67d2a2ee)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>

[Bumped PR - sgw]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:31:59 +01:00
Scott Garman
c54831fa89 shadow-native: disable logging to syslog
Disable use of syslog to prevent sysroot user and group additions
from writing entries to the host's syslog.

This fixes [YOCTO #2012]

(From OE-Core rev: e5aee0a2f5973a7aef81d0f38307a93791f616c6)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:31:59 +01:00
Joshua Lock
73e3fd88b4 mesa-common: package gl.pc in libgl-dev
gl.pc should be packaged in libgl-dev not the mesa-dev package

Fixes [YOCTO #2059]

(From OE-Core rev: d9d4fe9885e398df2062b3f2aed3fc274c656736)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:31:58 +01:00
Darren Hart
177171ccf1 create-pull-request: Assume remote branch from local branch
It is common to use the same remote branch name as the local branch
name. In this case, it would be nice not to have to specify the
remote branch name.

Make the -b argument optional and assume the remote branch is the same
name as the local branch. Print a NOTE to this effect so as not to
catch the user by surprise:

NOTE: Assuming remote branch 'notthere', use -b to override.

If the remote branch doesn't exist, a WARNING is displayed just as if
the user had used -b to specify a non-existent branch:

WARNING: Branch 'notthere' was not found on the contrib git tree.
         Please check your remote and branch parameter before sending.

(From OE-Core rev: 62570b7e3db44fbc3461f650abe6c4613940e068)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-10 13:31:58 +01:00
Saul Wold
190f6d791d runqemu-internal: Add console=tty for qemuppc and NFS
Adding this to the nfs to match the ext3 kernelcmdline, this re-enables
keyboard input on the qemuppc.

[YOCTO #2058]

Thanks to Yi Zhao <yi.zhao@windriver.com> for the initial patch suggestion

(From OE-Core rev: 1a82989345fb98becb487d270fd93a5e6dffeb47)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:47 +01:00
Paul Eggleton
07c0a12d72 self-hosted-image: use Clearlooks theme
Use a nicer theme (Clearlooks) to improve Hob's appearance in the self
hosted image and fix the progress bar not changing colour when the build
fails.

Fixes [YOCTO #2208]

(From OE-Core rev: 19a13ecceac1f48fcfe1552e88df18edd96e1bea)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:47 +01:00
Paul Eggleton
0f497f3dcd self-hosted-image: decrease reserved space to 0.5%
The default amount of reserved space for ext2/3 is 5% - this amounts to
about 2GB of a 40GB filesystem that the builder user can't make use of.
We don't need this much reserved so peg it back to 0.5% which should be
more than enough.

(From OE-Core rev: c62d6d119c107fc60894ba25e83c96536a1b423c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:47 +01:00
Dexuan Cui
91983593f4 self-hosted-image: use the correct location of the file sudoers
(From OE-Core rev: 2abeafa7a43736d6fd8b8ecb22c6f3c840093870)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:47 +01:00
Lianhao Lu
a405ca246e connman: Fixed multilib support.
1. Corrected the package content of connman-test.

This is part of the bug fixing [YOCTO #2216].

(From OE-Core rev: 4df39d673156cc63b94531515d8f92ca4d0da77f)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>

Removed ofono addtion - sgw

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:47 +01:00
Lianhao Lu
c7283aa15f package_ipk.bbclass: fixing muttilib prefix extracting.
Fixed an error in multilib prefix extracting.

(From OE-Core rev: 0e66900cbe6438b9b3ecfef1c348a5575bd27c41)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:46 +01:00
Stefan Herbrechtsmeier
df21414331 u-boot: add machine name to spl image name
(From OE-Core rev: 794225ed3b6fe7878595b7452259cc9bf1973213)

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:46 +01:00
Stefan Herbrechtsmeier
885485f74c linux-firmware: keep version string in libertas firmware
Recent Linux kernel tries to load the libertas firmware with the version
string in its name first. This results in a delayed firmware load on
system boot. Keep the default libertas firmware name and add a link for
older driver versions.

(From OE-Core rev: baa1323dfff35ccd5aebc036ca97925a1f1a604e)

Signed-off-by: Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:46 +01:00
Martin Jansa
aed4211cf2 package_ipk: don't generate Packages.filelist
* it works only with 'new' packages and with fixed opkg-utils it will unpack
  *all* packages, because filelist doesn't support 'cache' like Packages does

(From OE-Core rev: ad77d367e1526a805c383ce20f8f81ef3082c3d8)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:46 +01:00
Elizabeth Flanagan
c9173dab9a Hob: Modify Image Descriptions
Fixes [YOCTO #2227]

I've updated the image descriptions per the bug description.

(From OE-Core rev: 479b020edbc609c3ae1e3846e9e0d1643ac10059)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:46 +01:00
Andreas Oberritter
f4e27505b4 gst-plugins-base: fix build of subparse plugin
* Fixes the following configure error by prefixing
  PKG_CONFIG_SYSROOT_DIR:

| grep: /usr/include/gstreamer-0.10/gst/gstconfig.h: No such file or directory

(From OE-Core rev: 3c77f7a3bbd47d33dd7cac7ba536675357991c5f)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:45 +01:00
Darren Hart
d103dae12b syslinux: Avoid using linux.ext2_fs.h if possible
Fixes [YOCTO 2236]

With recent Linux kernel headers, such as 3.3 in Fedora 16, the linux/ext2_fs.h
header has been removed. This causes compile failures for syslinux-native.
Backport a fix to address this from syslinux-4.06-pre3.

(From OE-Core rev: bc875f685f38024ea96ba8570550d4e505a1e4b0)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Ross Burton <ross.burton@intel.com>
CC: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:45 +01:00
Andrei Gherzan
0dacda90b9 gdbm: Activate -enable-libgdbm-compat and add symlinks to headers in include/gdbm
ndbm.h is needed by python for dbm module. This is why -enable-libgdbm-compat was added
to configure.
The second change is because python is looking for the gdbm headers in include/gdbm.
The easiest way to solve this issue is to add symlinks in include/gdbm.

[YOCTO #1937]

(From OE-Core rev: e4d2ee00419f675ba8b7fb5d75256762253d8b32)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:45 +01:00
Robert P. J. Day
98291b5ed2 Fix typo in user manual: "incarantion" -> "incarnation"
(Bitbake rev: dd15a92a0932d3e177c0ca7b2923da1d72046e51)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-06 01:12:42 +01:00
Robert P. J. Day
cb63e37c8f scripts: Clarify "help" info for yocto-bsp and yocto-kernel
Tweak the help info for both "yocto-bsp" and "yocto-kernel" to
emphasize that those are the *complete* lists of commands, not just
the most commonly used ones.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
2012-04-06 01:10:32 +01:00
Shane Wang
1cf4440aae Hob: a minor fix on pmake
params["pmake"] should be in the format "-j int".
When loading/saving "PARALLEL_MAKE" into templates, configuration.pmake will be
converted into "-j int", as "PACKAGE_CLASSES" and "BBLAYERS" do.

For "PACKAGE_CLASSES" and "BBLAYERS", params["pclass"] and params["layer"] are
also strings rather than the types of configuration.curr_package_format and
configuration.layers.

(Bitbake rev: d49db15badb77855cef855ee73430fcbc16b6916)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:08 +01:00
Shane Wang
3d9f67c2d6 Hob: a minor fix on image_fstypes
image_fstypes in the configuration has been changed into a string rather than
a list. Here we correct it in __init__() of class Configuration. At other places,
image_fstypes are all strings.

(Bitbake rev: 59dd7e91c11e0348f967578f32e13f5984c6a452)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:08 +01:00
Shane Wang
0d76c5b9c5 Hob: avoid the empty white space appearing on top of the gtk.ComboBox
Avoid the empty white space appearing on top of the machine selection combo
box and the image selection combo box in the "Image configuration" screen

[Yocto #2166]

(Bitbake rev: 9d30ad56803c67d2dc7ebddd7c339038438f02ba)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:07 +01:00
Shane Wang
5cad18b188 Hob: unify _size_to_string() and _string_to_size()
We call intsize_to_string (and string_to_intsize) in 3 different places.
We unify the implementations into one place.

(Bitbake rev: 578ce86a9ac2110f5b128aae582c6e0b3e739cec)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:07 +01:00
Shane Wang
b9accbb42a Hob: handle exceptions when loading templates
Handle exceptions during type conversion to integers.

(Bitbake rev: bb3a4e2d40486a347c13563d73e4df6d015a3c6c)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:07 +01:00
Shane Wang
36164b9a9b Hob: handle exceptions in get_parameters() from the bitbake
Handle exceptions during type conversion into integers.

(Bitbake rev: e03da8876045af545303db2b8044a17657337140)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 18:48:07 +01:00
Dongxiao Xu
041cc16dd9 Hob: Check "dummy" image while update_image_combo
We also need to check if the selected image is "Create your own image"
and set it as active.

Besides, to avoid the impact of set_active(), we need to move the
connect signal in the end of the update_image_combo() function.

(Bitbake rev: 54ae7ddac450b4717e5ccae3bfe9acb479449451)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 15:13:41 +01:00
Dongxiao Xu
cda92e27b4 Hob: Remove the recipe/task type for multilib
We will not display multilib recipes and tasks in separate tabs,
therefore remove the specific types.

(Bitbake rev: da69e665196714b0f2039c11f9f232db7b58bce3)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 15:13:40 +01:00
Joshua Lock
a84e353282 lib/bb/ui/hob: exit cleanly if the required pygtk version isn't available
Hob uses API from pygtk 2.22, therefore check to see whether this
version is available and exit cleanly if not.

(Bitbake rev: 192d5fdf9ea27cdc8b043204857ae5b21173a011)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:01:28 +01:00
Shane Wang
d2402f6c8e Hob: reset issue indication and build status before build starts on build details screen
(Bitbake rev: 5fed953105fd58f09e42dce233aab2c6eced7c37)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:27 +01:00
Shane Wang
3d594b7749 Hob: remove grab_default() for deploy button
When the deploy button is disabled since there is no deployable image,
the console will show the warning message:

WARNING: /home/yocto-build5/poky-contrib/bitbake/lib/bb/ui/crumbs/imagedetailspage.py:333:
GtkWarning: /build/buildd/gtk+2.0-2.22.0/gtk/gtkwidget.c:5684: widget not within a GtkWindow
  self.deploy_button.grab_default()

This patch is to remove the warning message.

(Bitbake rev: 51a9a5557bb798b559874a4e6dc9924380b5d9a4)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:27 +01:00
Shane Wang
17db3877d1 Hob: add the "info" indication icon for "information" in the dialogs.
Previously we reused the info display file which is for indication of tooltips.
But it is too small, when it is shown on the dialog as the dialog indication icon,
it becomes unclear after being stretched out. So, we replace it with a larger
icon.

(Bitbake rev: 87282847f1ba56420b0c6dbf04bea6e518962398)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:27 +01:00
Dongxiao Xu
c15d4a2dde Hob: fix IMAGE_INSTALL setting while save template
If save every selected package into IMAGE_INSTALL field, and then build
the saved bb file by bitbake command line, it will report errors since
some packages could not be found since they are dynamically generated.
With this commit, Hob will only save those packages into the
IMAGE_INSTALL variable which are brought in by user.

(Bitbake rev: 6c970d07422bb9a8fcf339315587cfc9b207a44e)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
7b560745f2 Hob: Fix toolchain build
Originally we added -dev and -dbg postfixes to our selected packages as
toolchain packages. However, some package names are modified in recipes,
so we could not rely on its base name. The new approach is to detect if
a package is selected, then include those packages under the same recipe
endswith "-dev" and "-dbg".

This fixes [YOCTO #2185]

(Bitbake rev: f99c66071bce63780301e1639d74316503ca934c)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
f414dbbaa0 Hob: Set stop button sensitive after task started
(Bitbake rev: e62a5cfbf21d22ab9f88dcd954132c1c52802360)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
048aa0d472 Hob: Remove duplication for certain bitbake variables
Sometimes, certain variables have duplicated values inside, for example,
IMAGE_FSTYPES = "tar.bz2 ext3 tar.bz2 ext3"

We need to remove the redundancy for those values.

(Bitbake rev: 98849cf9201239b23bbbe9247db4d6901f0ed905)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
20ea123c28 Hob: Remove some calling of initiate_new_build()
initiate_new_build() function is in async mode and could not be called
before another async function.

Also we could not initialize the build if user simply change a setting,
therefore remove this function.

(Bitbake rev: c184cefe90115623e2312ad2bbe34ea95788c129)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
9cc1e86356 Hob: Update the cache when setting changed
If values in advanced is changed, we also need to reparse the cache to
get the latest value.

(Bitbake rev: 7b2f6744201511060f26cd2761e9556efec4b9a2)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Dongxiao Xu
c77321180b Hob: Fix MACHINE setting
Define the empty curr_mach to be "" instead of None.
Fix the judgement for ' if self.curr_mach == "" ' to be
' if self.curr_mach '.
Also set machine to bitbake server when "MACHINE" is not empty.

(Bitbake rev: 662fa1b126d5b9b3a80193205c22b2fe29305185)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-05 14:00:26 +01:00
Saul Wold
5607729d99 self-hosted-image: Increase space for build and allow builder user sudo access
We need to have about 40G to do a full sato build even with rm_work enabled
Add sudo priveleges inorder to allow the builder user to setup the tap/tun
devices needed by runqemu

(From OE-Core rev: 3e4562500956550dbae5467a5fe9289f1d32f775)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:55 +01:00
Mark Hatle
af74a8f627 conf/machine/include: Update SH tunings to match README
Update the experimental SH tunings to match the tunings README.

These tunings have not been tested, and are experimental!

(From OE-Core rev: 603a15bf4c838e4b6352e31f70a958d93f91138f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:55 +01:00
Mark Hatle
449dae1e03 conf/machine/include: Cleanup ARM tunings to match README
Cleanup the ARM tunings to match the new tunings README file.

The ARM tunings define TUNE_PKGARCH in a way that only one main
arm architecture, i.e. armv6, may be defined at the same time.  We
may have to revise these settings in the future, as well as figure
out a way to better differentiate various optimize tunings in the
package arch.  (This was not done, to preserve existing behavior!)

Fix a number of minor issues w/ the armv5 tunings where DSP variants
were referenced but not defined.

Fix incorrect armv7 entries in armv7a.

Fix PACKAGE_EXTRA_ARCHS definitions inside of tune-cortexm3 and tune-cortexr4.

(From OE-Core rev: 0e71abea5458122188d5eddef2c17147f61ff895)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:55 +01:00
Mark Hatle
78e1a7c0d1 conf/machine/include: Cleanup PowerPC tunings to match README
Cleanup the PowerPC tunings to match the new tuning README file.

Default PowerPC to using TUNE_PKGARCH = ${TUNE_PKGARCH_tune-<tune>}

Fix AVAILTUNE settings in ppc603e, and ppce500mc to be addative.

Correct potentially overlapping "spe" definitions in ppce500 and ppce500v2.

(From OE-Core rev: f81f71bcff4bb1032b034b068efe6065113ca9e7)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:55 +01:00
Mark Hatle
d328ae22b7 conf/machine/include: Cleanup MIPS tunings to match README
Cleanup the MIPS tunings to match the new tuning README file.  Also
add a MIPS specific README file to explain the MIPS specifical
architectural issues.

Finally correct the variant configurations within the tune-mips32.inc.

(From OE-Core rev: efbfa2ace3362393a20340af93e8dcab17a8619a)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:54 +01:00
Mark Hatle
d6e7ebb209 conf/machine/include: Cleanup IA tunings to match README
We perform a basic cleanup of the IA32 architecture and related
tunings in order to match the rules and descriptions within the
new tuning README file.

A number of small issues were corrected in the "c3" tuning to
bring it inline with the README.

(From OE-Core rev: ab77d3401908964f3249c761969600b5ec1bfbd0)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:54 +01:00
Mark Hatle
62331ff46b conf/machine/include/README: Add readme to explain cpu tunings
Add a new README that covers the basic items used with various cpu
tunings.  The goal is to better help people understand the various
settings and where things should or should not be defined.

Corresponding architecture README files will also be generated to
explain the particulars of architectural tunings.

Also remove the default TUNE_PKGARCH setting in bitbake.conf.  This
was done to ensure an error occurs if an invalid tuning is defined.

(From OE-Core rev: e138f9f7e48e0af94c5c88045c4f0581cc68248d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:54 +01:00
Xiaofeng Yan
c87b50ea9d archive-patched-source.bbclass: Archive patched source
This bbclass inherits archiver.bbclass to archive patched source

[YOCTO #1977]

(From OE-Core rev: 8f25bf3881ee568bbe03132d2205da5382fa7dd6)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:54 +01:00
Robert P. J. Day
db7f5c4e94 Remove redundant reference to "task-self-hosted" from self-hosted-image.bb
This recipe already includes "task-self-hosted" in the IMAGE_INSTALL
line:

IMAGE_INSTALL = "task-core-boot task-core-apps-console task-core-ssh-openssh task-self-hosted"

so there's no apparent need to include it again further down.

(From OE-Core rev: bbc7f24d463c11b16f000462528c18bbb86b1e88)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:53 +01:00
Khem Raj
ca0831d92d qt-4.7.4: Fix build with gcc 4.7
g++ 4.7 is detecting inheritence problems
which we solve by explictly specifying
elements in constructors

(From OE-Core rev: 553ac1bf0ebf2ecf4e45ace4016b50c810ef7b26)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:53 +01:00
Khem Raj
30b2b8fdf1 qt-mobility: Fix build with gcc 4.7
C getpid needs unistd.h for getting
its signature

(From OE-Core rev: da89bb83298eaf28faebcc8782f207927fbe190a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:53 +01:00
Khem Raj
6228ba6848 webkit: Fix build with gcc-4.7
Include unistd.h for all linux and not
just for android.

(From OE-Core rev: c870606c9da2fa90df2cd7c4a198e3bf5340304b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:52 +01:00
Xiaofeng Yan
0aaddbc32b archiver.bbclass: enhance code readability
The modification is as follow:

- Modify some codes with more preferable readability and vague description.
- Use existed functions instead of custom functions.

(From OE-Core rev: 514319c4a15156cd63a4ac3c6ee903f64c98884e)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:52 +01:00
Nitin A Kamble
6c73e458da eglibc packaging: locale packaging configuration
The PACKAGE_NO_GCONV var manipulations ware happening in the
eglibc-options.inc file, and the eglibc-locale recipe do not
see it. Moving that into the libc-package.bbclass which is
common to eglibc & eglibc-locale recipes.

This fixes bug: [YOCTO #2089]

This avoids this error for poky-tiny
NOTE: package eglibc-locale-2.13-r19: task do_populate_sysroot: Started
ERROR: Error executing a python function in
/opt/poky.git/meta/recipes-core/eglibc/eglibc-locale_2.13.bb:
OSError: [Errno 2] No such file or directory:
'/home/rchatre/concordia/dev/ccd-distro-work/tmp/work/core2-poky-linux/eglibc-locale-2.13-r19/package/usr/lib/gconv'

ERROR: The stack trace of python calls that resulted in this exception/failure
was:
ERROR:   File "package_do_split_gconvs", line 264, in <module>
ERROR:·
ERROR:   File "package_do_split_gconvs", line 45, in package_do_split_gconvs
ERROR:·
ERROR:   File "package.bbclass", line 30, in do_split_packages
ERROR:·
ERROR: The code that was being executed was:
ERROR:      0260:»------»-------bb.note("generation of binary locales disabled.
this may break i18n!")
ERROR:      0261:
ERROR:      0262:
ERROR:      0263:
ERROR:  *** 0264:package_do_split_gconvs(d)
ERROR:      0265:
ERROR: (file: 'package_do_split_gconvs', lineno: 264, function: <module>)
ERROR:      0041:»------»-------»-------d.setVar('RPROVIDES_%s' % pkg,
pkg.replace(bpn, 'glibc'))
ERROR:      0042:
ERROR:      0043:»------do_split_packages(d, gconv_libdir,
file_regex='^(.*)\.so$', output_pattern=bpn+'-gconv-%s', \
ERROR:      0044:»------»-------description='gconv module for character set
%s', hook=calc_gconv_deps, \
ERROR:  *** 0045:»------»-------extra_depends=bpn+'-gconv')
ERROR:      0046:
ERROR:      0047:»------def calc_charmap_deps(fn, pkg, file_regex,
output_pattern, group):
ERROR:      0048:»------»-------deps = []
ERROR:      0049:»------»-------f = open(fn, "r")
ERROR: (file: 'package_do_split_gconvs', lineno: 45, function:
package_do_split_gconvs)
ERROR: Function failed: package_do_split_gconvs
ERROR: Logfile of failure stored in:
/home/rchatre/concordia/dev/ccd-distro-work/tmp/work/core2-poky-linux/eglibc-locale-2.13-r19/temp/log.do_package.31042
NOTE: package eglibc-locale-2.13-r19: task do_package: Failed
ERROR: Task 552 (/opt/poky.git/meta/recipes-core/eglibc/eglibc-locale_2.13.bb,
do_package) failed with exit code '1'

Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:52 +01:00
Nitin A Kamble
834a17d6d8 gcc-cross-intermediate: fix do_install for x32
This Fixes [Ycoto #2223] bug.

The gcc osdir is obtained in the do_install by invocation of
command "gcc -print-multi-os-directory". For x32 it returns gcc
osdir for the default abi which is x86_64. Fix this by adding
target abi parameter to the gcc command line to get correct gcc
osdir with invocation of command "gcc -mx32 -print-multi-os-directory"

(From OE-Core rev: e65b6a4282d5c4882d0565b79ccba99db90161ff)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:52 +01:00
Andreas Oberritter
8b797c6b6e package_{deb,ipk,rpm}: apply umask to files generated in do_package_write_{deb,ipk,rpm}
* Explicitly set umask to 022. Otherwise the build system's
  umask may leak into the image.

(From OE-Core rev: d2a54427481856238bdfec9723cf575088320512)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:51 +01:00
Eric Bénard
9ce92e439f copyleft_compliance: also print the reason for including a package
(From OE-Core rev: 20996da46aff03e61de50444ab3a0ab46c057dfd)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:51 +01:00
Eric Bénard
029f3c6dec license.py: fix behaviour of copyleft_compliance
actually if a package has a license in its LICENSE variable
which is not in the whitelist nor in the blacklist and even
if an other license in this variable is in the whitelist,
the package gets excluded and is not taken in account in the
copyleft_compliance.
This patch solves this by excluding a recipe _only_ if the
LICENSE variable includes a pattern from the blacklist and
including a recipe only if it includes a variable from the
whitelist _and_ none from the blacklist.

Example in busybox which has LICENSE="GPLv2 & BSD-4-Clause",
with the actual behaviour (where he blacklist contains only
CLOSED Proprietary) we get :
DEBUG: copyleft: busybox-1.19.4 is excluded: recipe has excluded licenses: BSD-4-Clause
which is not sane because busybox is covered by a copyleft license
which is GPLv2 and should match the default whitelist which is
GPL* LGPL*.

(From OE-Core rev: 987d06447d2eacf2e01f08e29469c00fbb0ef1db)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:51 +01:00
Andrei Gherzan
1dc560c9d2 license.bbclass: Check if copyfile succeeded with isfile
A cleaner way to check if copyfile suceeded is to use os.path.isfile.
In this way we can omit warns in some python versions where copyfile
return the same non-0 value even is this action is successfull.

(From OE-Core rev: fa51fe19a1dc1ddc4c9ec879a782953fd6a15117)

Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:51 +01:00
Mark Hatle
fedad51cb4 binutils: Inform binutils that armv5e really is valid!
A comment in the binutils sources indicate that it should support all of the
-march= parameters that gcc supports.  The tune validations noted that
gas failed on -march=armv5e.

It is not yet clear to me if this patch belongs upstream or not.

(From OE-Core rev: 4f2503ebdb5c491b758cbdf6eb7df96d4295c24f)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 17:17:50 +01:00
Scott Rifenbark
cd4d346c0e documentation/yocto-project-qs/yocto-project-qs.xml: Added CentOS distro
Reported-by: David Stewart <david.c.stewart@intel.com>
(From yocto-docs rev: 4df12f3437488f6d8dbfb54dd3de25f5636162c1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 00:34:03 +01:00
Robert P. J. Day
4c35d05623 documentation/bsp-guide/bsp.xml: Patch to fix small issues
Applied a patch from Robert P. J. Day to fix some small issues
in the BSP manual.

(From yocto-docs rev: 7744d5101fd2b5a46a53707976b8899eb03f1c08)

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-04 00:34:03 +01:00
Paul Eggleton
46600e37cf elfutils: disable lzma (and bzip2 for native)
Fix some library dependency issues:
* Disable lzma as xz-native is unstated in DEPENDS
* Disable bzip2 for native as it is in ASSUME_PROVIDED and thus isn't
  available when elfutils-native is normally built, but if it gets
  rebuilt the link will be made; plus we don't need it.

(From OE-Core rev: 1634d736c55f767fe82a46bbb7f83c32006fece9)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 21:32:34 +01:00
Andreas Oberritter
2c20a915c8 gdb: build with expat, add missing RRECOMMENDS_gdbserver
* Fixes communication between gdbserver and gdb-cross
  by using the same expat settings for both recipes.
* Adds missing build dependencies for expat/expat-native.
* Adds missing glibc-thread-db runtime recommendation
  to gdbserver, which was set only for gdb.

(From OE-Core rev: 38ee88e3b32b7444d7f1eb64f1b4f69a48fe0458)

Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:13:28 +01:00
Lianhao Lu
4fbc283c00 eglibc: SDK_GLIBC_ADDONS for eglibc-nativesdk.
Use SDK_GLIBC_ADDONS for eglibc-nativesdk so that it is not
dependant on the target eglibc's GLIBC_ADDONS settings.

(From OE-Core rev: e165203a6a7eb1fd47a20c3ede4d5a20ad49487f)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:08:02 +01:00
Scott Rifenbark
7819e67a9b documentation/dev-manual/dev-manual-common-tasks.xml: removed MULTILIB_IMAGE_INSTALL
Fixes [YOCTO #1980].

Changed MULTILIB_IMAGE_INSTALL to IMAGE_INSTALL in the multilib
example.  This variable is no longer used.

Reported-by: Matthew McClintock <msm@freescale.com>
(From yocto-docs rev: dfcbecf945b19e559b39b5824dc6b8bb37c18702)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:59 +01:00
Scott Rifenbark
7ebbe699cb documentation/dev-manual/dev-manual-common-tasks.xml: Edit to md5sum
Example corrected.

(From yocto-docs rev: 844ffad1e3b998d62ea7c10273785d710dc3541e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:59 +01:00
Scott Rifenbark
f64aae0500 documentation/dev-manual/dev-manual-common-tasks.xml: Updated makefile section
Fixes [YOCTO #1888]

Per Darren Hart I swapped in the real example and added some text
explaining what the user needs to do if their source is from a
tarball.

Reported-by: Darren Hart <darren.hart@intel.com>
(From yocto-docs rev: a1991f0b6f32a0a296ae4d115a834ed61042720b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:58 +01:00
Scott Rifenbark
12e5386477 documentation/bsp-guide/bsp.xml: Added some front-matter
Due to the addition of the BSP Tools section, I needed to add a bit
of front-matter to the start of the chapter indicating that we provide
information on how to create and manage a BSP Layer.

(From yocto-docs rev: 7ae34fa58aba6b17866a5379bdcdffd83491ff20)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:58 +01:00
Tom Zanussi
3c566581bd documentation/bsp-guide/bsp.xml: Removed Note
Remove the 'note' that says that the BSP Guide doesn't show how to
create a new BSP.  With the addition of the Yocto BSP Tools section,
that's no longer true.

Also, the wiki page mentioned is out-of-date and probably shouldn't be
pointed to any longer for that reason.

(From yocto-docs rev: 972c2d2bc9f50f5f65b296b7396dc640710ad5b2)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:58 +01:00
Scott Rifenbark
23e85906e0 documentation/bsp-guide/bsp.xml: Edits to the BSP Tools section
I have scrubbed the new section for the BSP Tools.  Changes reflect
re-wordings, formatting, etc.

(From yocto-docs rev: c13d5a42665d256c6da6d663611291eef9617f1f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:58 +01:00
Tom Zanussi
0be0e3b350 documentation/bsp-guide/bsp.xml: New section on using BSP tools.
Some documentation introducing and helping get people started with the
Yocto BSP Tools (yocto-bsp and yocto-kernel).

(From yocto-docs rev: 56a6db181f5cdf3c23daa021fe1e9ecb15843678)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-03 14:04:57 +01:00
Richard Purdie
723c91297d gettext: Fix sysroot conflict over owner of macros
gettext-minimal-native andgettext-native are trampling over each other's files. This can
be reproduced with:

bitbake gettext-minimal-native
bitbake gettext-native
bitbake gettext-native -c clean
bitbake shadow-native

which will fail since the aclocal gettext macros will have disappeared. This patch
fixes the problem by giving ownership of them to gettext-minimal-native and ensuring
there is a correct dependency on this.

(From OE-Core rev: 5bcb68a232539cf11a30e3b812b2fbd6d7d76e35)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 12:54:45 +01:00
Richard Purdie
5dcac2b359 gst-ffmpeg: Fix build failures from sstate relocation
This is a similar situation to:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=3c96a5386355969428163ddb60216cc989e00b3d

Builds were failing with a failure in configure:

| checking for i586-poky-linux-gcc... ccache  i586-poky-linux-gcc  -m32   -march=i586 -L/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib
| checking whether the C compiler works... no
| configure: error: in `/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/work/i586-poky-linux/gst-ffmpeg-0.10.13-r2/gst-ffmpeg-0.10.13':
| configure: error: C compiler cannot create executables
| See `config.log' for more details

config.log shows:

configure:3976: ccache  i586-poky-linux-gcc  -m32   -march=i586 -L/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/qemux86/usr/lib -O2 -pipe -g -feliminate-unused-debug-types  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed conftest.c  >&5
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/../../libexec/i586-poky-linux/gcc/i586-poky-linux/4.6.4/ld: cannot find crt1.o: No such file or directory
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/../../libexec/i586-poky-linux/gcc/i586-poky-linux/4.6.4/ld: cannot find crti.o: No such file or directory
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/../../libexec/i586-poky-linux/gcc/i586-poky-linux/4.6.4/ld: cannot find crtbegin.o: No such file or directory
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/../../libexec/i586-poky-linux/gcc/i586-poky-linux/4.6.4/ld: cannot find -lgcc
/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-world/build/build/tmp/sysroots/x86_64-linux/usr/bin/i586-poky-linux/../../libexec/i586-poky-linux/gcc/i586-poky-linux/4.6.4/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

The reason being the --sysroot option is missing from the gcc commandline and
its looking in nightly-x86, not nightly-world in this case.

There is no reason to add extra -L options to the compiler, the sysroot already
takes care of this. We can therefore simply remove this incorrect CC line.

(From OE-Core rev: 78299c87eafbea8331fa062f61095dd8de429109)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 12:54:44 +01:00
Khem Raj
ce69eb9341 gst-ffmpeg: Fix build with gcc 4.7
A cmp instruction with two constants is invalid, therefore 'g' constraint
is not correct but must be "rm" instead.

(From OE-Core rev: 1161c40a26146629613bd6a17b263175a492b751)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:54:17 +01:00
Khem Raj
9d526462fe apt: Fix a latent bug exposed by gcc 4.7
Further Details are in patch itself

(From OE-Core rev: 0dc952e35da00a753317a4f878b23eab8bb7bc4a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:54:17 +01:00
Darren Hart
38ba438303 tiny: Update linux-yocto-tiny to 3.2
Migrate linux-yocto-tiny from 3.0 to 3.2. The 3.0 recipe was
based entirely on recipe-space fragments and was only a proof of concept.
The 3.2 linux-yocto meta-data now has a proper tiny KTYPE defined.

By default this recipe supports only the qemux86 machine, which builds the
common-pc support (including networking, sound, USB, VGA and serial consoles,
etc.). New machines can be added and will use the tiny KTYPE, but will need to
add any desired hardware support as the base config is very minimal.

No filesystems are supported by default, only the initramfs.

(From OE-Core rev: 44c556f5300b1d811a1ae71f501320d1a6b0fb2e)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:35:35 +01:00
Bruce Ashfield
126c5c0c57 linux-yocto: update tiny meta and configuration for kernel 3.2
Updating the META SRCREV to pickup these commits:

  59f350e meta: Add common-pc-tiny.scc
  0996ca9 tiny: Minimize the tiny config
  d6b57bb meta: common-pc add dependencies to cfg

Which update the configuration for the tiny profile of the kernel
for the 3.2 release.

cc: Darren Hart <dvhart@linux.intel.com>
(From OE-Core rev: df3b8f716cc9203251cd4d4b5e673d7ecab5111b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:33:27 +01:00
Dexuan Cui
2cf38f0d76 self-hosted-image: fix indentation: 8 spaces --> Tab
(From OE-Core rev: 80e1cf4deb2a875449876f947a7a8ba29d6def5b)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:49 +01:00
Dexuan Cui
ac10ef7cfc builder: uncomment the settings for BB_NUMBER_THREADS and PARALLEL_MAKE
We use sed to enable the 2 settingis in conf/local.conf.

(From OE-Core rev: eb985d333eb0f13e142da43b4b2b9ec5ad40ff30)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:48 +01:00
Dexuan Cui
5b9b6a4541 self-hosted-image: renew the poky src's SRCREV that's installed into the target
(From OE-Core rev: 826918b634deaa2b7201f3068d6f1410c5641d63)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:48 +01:00
Dexuan Cui
cf6b3fb482 self-hosted-image: improve do_populate_poky_src
1) remove the assumption ${DL_DIR} ends with downloads/.
Thanks Paul Eggleton for pointing this out.

2) remove downloads/git2_* tarballs to speed up the rootfs creation.
This is ok since we still have the git2/.
Thanks Richard Purdie for suggesting this.

(From OE-Core rev: 58ba59f034941bf167e70ae6c08117e5184a20ec)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:48 +01:00
Dexuan Cui
79c806cb40 genext2fs: support large files and filesystems without using large amounts of memory
update_to_1.95.patch was generated by making a diff bewteen the 1.4.1 release
and the latest 1.9.5 version in the cvs repo:
http://genext2fs.cvs.sourceforge.net/viewvc/genext2fs/genext2fs/genext2fs.c?revision=1.95

The patches 0001-0019 come from mailing list of genext2fs-devel
http://sourceforge.net/mailarchive/forum.php?forum_name=genext2fs-devel&max_rows=100&style=flat&viewmonth=201106

(From OE-Core rev: 8f17e499cf91191727c8767e839738cb39c21655)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:48 +01:00
Zhai Edwin
84b7541abc qemugl: Fix GL apps failure on Ubuntu 11 host with nVidia GLX driver
Previous version of nVidia GLX driver in Ubuntu 10 cause qemu segfault, so we
fall back to Mesa GLX driver if detecting nVidia driver installed. From Ubuntu
11, nVidia GLX driver works well, while previous work around cause GL apps
failure. So this work around is limited in Ubuntu 10 only, and will be removed
in future.

[YOCTO #1886] got fixed.

(From OE-Core rev: b3ccc630e6c12a75111b1f7ca877e17d8d4e1dc7)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:47 +01:00
Koen Kooi
2592a11bde buildhistory: make seperate commits for every changed top level entry in the buildhistory dir
This seperates out image changes from package changes making the image diffs a lot easier to read.

(From OE-Core rev: fba198ac7efe476a25c5761878ef2fcee97bf9f1)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:47 +01:00
Koen Kooi
bcd3db5b02 buildhistory: record all builds
When nothing has changed an empty commit prefixed with "No changes" will get generated so that the commit log of the buildhistory repo provides a complete log of all builds performed, not just those that resulted in changes.

(From OE-Core rev: 2e40558cc33c5c566a9a742c32eda3ea017f8607)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:47 +01:00
Koen Kooi
7e7600f0ff buildhistory: remove duplicate entries from dot graph
There are various conditions that lead to duplicate entries in the dot graph which need to get fixed, but this patch is a catchall. A previous attempt to address this only works on rpm which gives a \n seperated output, opkg doesn't.

Another benefit is that the sort order is now know, leading to less spurious diffs in buildhistory commits.

(From OE-Core rev: 479ae1e9b74aa2f04fb5da2f3541c3de0aa9de87)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:47 +01:00
Darren Hart
869dfaee18 linux-yocto-tiny: Prefer 3.2
With the move to 3.2 from 3.0 in oe-core, the 3.0 no longer exists.
Prefer 3.2 instead.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-02 04:31:35 +01:00
Paul Eggleton
6a11c78757 README.hardware: extend USB-ZIP instructions
* Note that on some machines booting just stops after the SYSLINUX
  version banner is displayed
* Add an instruction to show how to get the geometry information for
  the disk
* Specify the number of cylinders when running mkdiskimage as it is
  sometimes unable to detect it automatically
* Create the temporary mountpoints before attempting to use them
* Add an instruction to unmount the disk before removing it

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-01 12:52:03 +01:00
Bob Cochran
501f0da47f README.hardware for mpc8315erdb incorrectly specified a null modem serial cable
I noticed this while beta testing 1.2. but patch is against master
(latest commit: bcd4d14425).

Instructions specified a null modem.  This isn't the case.  A straight
serial cable is required.  I verified it with my own setup and
Freescale's user manual.

Signed-off-by: Robert Cochran<yocto@mindchasers.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-04-01 12:44:45 +01:00
Nitin A Kamble
8691a58826 cross-canadian.bbclass: fix rpath for sdk executables
This makes the libraries located in places like this findable:
/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib

Which avoids linking cross canadian sdk executables with host libraries like this:

$ ldd /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/bin/x86_64-oe-linux/x86_64-oe-linux-gdb
        linux-vdso.so.1 =>  (0x00007fffb7fff000)
        libreadline.so.6 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/x86_64-oe-linux/../libreadline.so.6 (0x00007fbfb5511000)
        libdl.so.2 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libdl.so.2 (0x00007fbfb530c000)
        libncurses.so.5 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libncurses.so.5 (0x00007fbfb50e9000)
        libtinfo.so.5 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libtinfo.so.5 (0x00007fbfb4ec2000)
        libz.so.1 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/x86_64-oe-linux/../libz.so.1 (0x00007fbfb4cac000)
        libm.so.6 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libm.so.6 (0x00007fbfb4a2a000)
        libpthread.so.0 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libpthread.so.0 (0x00007fbfb480d000)
        libutil.so.1 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libutil.so.1 (0x00007fbfb4609000)
        libexpat.so.1 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/x86_64-oe-linux/../libexpat.so.1 (0x00007fbfb43e0000)
        libc.so.6 => /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/libc.so.6 (0x00007fbfb4059000)
        /usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x0000003f05000000)

[RP: Whitespace tweaks]
(From OE-Core rev: c97f7f4e4ecd6c431712059c34ebc17b68b055ae)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 18:00:59 +01:00
Denys Dmytriyenko
e008fc154f tune-cortexa8/9: fix PACKAGE tunes being all armv7at even for non-Thumb ones
All PACKAGE_EXTRA_ARCHS for cortexa8, cortexa8t and cortexa8-neon have typo in
referencing tune-armv7at even for non-Thumb modes. Probably a copy/paste error.
That's not the case for recently-added hard-fp tunes.

Same for cortexa9.

(From OE-Core rev: 4e91c00bb3a171bebdb716451b901f5f099a04bc)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:10 +01:00
Paul Eggleton
1482da4f3a scripts/bitbake: add/fix some comments
Add some comments explaining what this script does, fix one grammatical
error in a comment and make the tar-replacement-native comment give the
full reason why it is needed.

(From OE-Core rev: aa946e1d054d3a0b7097339e0fb74ee60bd94a78)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:10 +01:00
Paul Eggleton
43d819c890 scripts/bitbake: allow switching between build directories
The recent addition of the check to ensure the user was in their build
directory disabled the ability to switch between build directories
without re-running the build environment setup script. We can rely
upon checking for conf/bblayers.conf instead, so use this check.

This does allow BUILDDIR (which is normally set by the environment
script) to be unset; however if it is set then it is assumed to be the
correct build directory and will be used in the error message that is
shown when we can't find conf/bblayers.conf.

(From OE-Core rev: 769384decb095fb3c49eb13b8f7f69c978d0bcba)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:09 +01:00
Paul Eggleton
299f890f6d scripts/bitbake: try harder to check if pseudo exists
If pseudodone doesn't exist, we can get STAGING_BINDIR_NATIVE by calling
bitbake -e and use that as the path to check for pseudo before we give
up and try to build it explicitly first.

This is useful for people who share TMPDIR between multiple build
directories.

(From OE-Core rev: 07b0dddab901510208fab44bbc2566d3c3baae93)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:09 +01:00
Nitin A Kamble
6302003eb4 nasm: fix issue with repeat configure
This Fixes bug: [YOCTO #2176]

This fixes the following issue as mentioned in the bug:
If nasm-native has to be rebuilt (due to a signature change) it will fail:

| checking for a BSD-compatible install... /usr/bin/install -c
| /media/large/tmp/work/x86_64-linux/nasm-native-2.07-r1/nasm-2.07/configure:
line 4261: syntax error near unexpected token `-W'
| /media/large/tmp/work/x86_64-linux/nasm-native-2.07-r1/nasm-2.07/configure:
line 4261: `PA_ADD_CFLAGS(-W)'
| ERROR: oe_runconf failed
NOTE: package nasm-native-2.07-r1: task do_configure: Failed

The failure appears to be caused by do_patch_fixaclocal being run a second time

(From OE-Core rev: 2d26b1a4f83a635f96072589289a389675abb305)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:09 +01:00
Lianhao Lu
15e797ccdb pkgconfig.bbclass: corrected dependency for -nativesdk.
For -nativesdk, the dependency should be pkgconfig-nativesdk instead of
pkgconfig.

(From OE-Core rev: 36c0d1fdc71f9c63699049911aeddb07a746ca4a)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:09 +01:00
Lianhao Lu
6333c5fb7f autotools.bbclass: Drop -nativesdk dependency to lib-cross.
-nativesdk recipes should not have dependency to lib-cross, which is
never used. This unnecessary dependency would result different task hash
values in sstate for different MACHINE settings.

(From OE-Core rev: 313deb802c5411c6c88655057f05a7d8823d999c)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:08 +01:00
Lianhao Lu
3180dd2b14 crosssdk.bbclass: Set TUNE_PKGARCH to SDK_PKGARCH.
The TUNE_PKGARCH of crosssdk should be set to SDK_ARCH, not the one
from target machine's configuration.

Fixed bug [YOCTO #2206]

(From OE-Core rev: e809b6657c53616a82e73d2f20ec23bc50ccebc9)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:08 +01:00
Lianhao Lu
404cced0c2 nativesdk.bbclass: Set PACKAGE_ARCHS to SDK_PACKAGE_ARCHS.
This patch fixed the issue of reading incorrect pkgdata files. Previous
appending '-nativesdk' suffix to PACKAGE_ARCHS would result the
i686-nativesdk recipes reading in x86_64-nativesdk pkgdata files if the
MACHINE is set to qemux86-64.

Fixed bug [YOCTO #2203].

(From OE-Core rev: 951a68731f655f597c5dfa541fc913d399eabfb9)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 17:59:08 +01:00
Richard Purdie
d55db7b058 bitbake/cooker.py: Bring into sync with upstream bitbake (trivial difference)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-31 08:07:49 +01:00
Scott Rifenbark
06fc2d2ec8 documentation/dev-manual/dev-manual-common-tasks.xml: Title change
Changed title pre Richard.

Reported-by: Richard Purdie <richard.purdie@intel.com>
(From yocto-docs rev: 2ec1368c4bdf5d61e3a7d60d3293ba878939321d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:51 +01:00
Scott Rifenbark
60d48922fa documentation/dev-manual/dev-manual-common-tasks.xml: edits to BBMASK
Some edits to the text of this moved section.

(From yocto-docs rev: 69ba05bbdc8a6fb74efdfbb3214a562e564f5a68)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:51 +01:00
Scott Rifenbark
fdf7db7606 documentation/dev-manual/dev-manual-common-tasks.xml: moved BBMASK
Per Richard Purdie's suggestion, I moved the discussion on using
BBMASK out from the "Customizing Images" section and placed it into
a section of its own titled "Excluding Packages from the Build."

(From yocto-docs rev: edb01b30779117f92e710b8afefa9a5d8a3e78fa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:51 +01:00
Scott Rifenbark
d19c8c8315 documentation/dev-manual/dev-manual-common-tasks.xml: moved section
Placed the "Customizing Images" section in front of the
"Adding a Package" section.

Reported-by: Rudolf Streif <rstreif@linuxfoundation.org>
(From yocto-docs rev: 68a7ef421b9b66cc7f0a2180c1ef17c8c4ec2ed4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:51 +01:00
Steffen Sledz
3eb0125bde docbook-utils-native: fix syntax problem in jw.in
Fix runtime error occurred e.g. with docbook-to-man calls:

  grep: character class syntax is [[:space:]], not [:space:]
  grep: character class syntax is [[:space:]], not [:space:]
  jw: There is no frontend called "/docbook/utils-0.6.14/frontends/docbook".

See also:

   <https://qa.mandriva.com/show_bug.cgi?id=61127>

(From OE-Core rev: 627998726ca3ee2ed2510c0f666747f688d06c56)

Signed-off-by: Steffen Sledz <sledz@dresearch-fe.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:24 +01:00
Zhai Edwin
5cdb58f683 virtual/libgl: use mesa-xlib for qemuarm/qemumips/qemuppc
Still need mesa-xlib for emulation of GLX interface on qemuarm/mips/ppc, where
mesa-dri doesn't work for pure qemu emulator.

[YOCTO #2066] fixed.

(From OE-Core rev: 22775b5f1d9c6d9860a579245bf7a48a982ab62f)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:24 +01:00
Lianhao Lu
899aa3f216 adt-installer: Adapted environment file name for powerpc.
Adpated to the new environment file name for powerpc, due to the oe-core
commit c2d96179.

Fixed bug [YOCTO #2055].

(From OE-Core rev: bebcac5e6eaceb7bdafa6432e42fe8073a42c6d2)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:24 +01:00
Martin Jansa
caf3f82098 arch-armv7a.inc: fix PACKAGE_EXTRA_ARCHS after armv7.inc was removed
(From OE-Core rev: d1ffae623ea9a6be3d2cb9067f64f33cc1fd1e8a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:23 +01:00
Richard Purdie
9cb1f86301 gdk-pixbuf: Fix checksum warning issue
(From OE-Core rev: 6a7ea3cf81f3600fec01bdd4af96ed149398a1a1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:23 +01:00
Robert Yang
24f5fe8210 sstate-cache-management.sh: fixes and enhancement
Fix a few problems and enhance its functions, it shoud be more useful
than before.

* Search in meta and meta-* for archs, and grep AVAILTUNES for archs,
  (only search meta, and grep DEFAULTTUNE before), add the host arch.
  and also can search in extra layers with --extra-layer.

* Reduce the analyzing time when remove duplicated files. It would cost
  more than 10 minutes to analyze 11,000 files before, now only needs
  about 50 seconds.

* Check the access time rather than create time.

* Need the user's confirm before really remove the file, or use --yes to
  assume yes.

* Add --stamps-dir to keep sstate files which are used by the build
  directory, and remove others this can make the sstate cache dir clean,
  it is faster and should be useful than the --remove-duplicated.

* Add --verbose to explain what is being done.

* Add "-d" which is short for --remove-duplicated

[YOCTO #2198]

(From OE-Core rev: 769a000428e4b2462a4e6d8f179b5816b8ec2417)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:23 +01:00
Martin Jansa
debd5d5bb1 rootfs_ipk: don't echo opkg-cl output to log.do_rootfs
* log_check can find some files with ERR or Fail substring e.g. in "Source: " field

(From OE-Core rev: 76c83f107d4a4688a879e30821ab70812052bbdc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:23 +01:00
Liming An
525275dcfd Hob: In building log page, fixed the issue about 'endpath' not clear when next to start build
Fixed the issue about the building log scrollbar can not auto scroll to page end sometimes

[YOCTO #2098]

(Bitbake rev: 035e146ff92236a3eda71ad71e8389737f91753b)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:21 +01:00
Shane Wang
984c23f7d7 runqueue: wait and deal with those <defunct> sub-processes as soon as they are os.killed() when "Force stop"
When "Force stop" is performed during the build stage, after os.kill() kills the build sub-processes, there are many <defunct> python processes in the system. In Hob, when the user initiates a new build, os.waitpid() in runqueue_process_waitpid() will be called, and the pids of those <defunct> processes will be returned as result[0], then self.build_pids[result[0]] will throw KeyError exception because now for the new build self.build_pids is empty.

This patch is to address the above issue to collect the results and handle the sub-processes as soon as they are killed.

[Yocto #2186]

(Bitbake rev: e9f4ca467e795bbc520d12b0e7a5985b6ff0a20e)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:21 +01:00
Joshua Lock
35acc9edc8 lib/bb/ui/crumbs/hoblistmodel: fix sorting of RecipeListModel
Sort in ascending order on the recipe name (A-Z) and unset the default sort
function so that there's no third (unsorted) state.

(Bitbake rev: c6ab6c7caf16c04e2a0c0f2aefd3377f781206c7)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:20 +01:00
Joshua Lock
b9b0ff98a2 lib/bb/ui/crumbs/hobpages: change title from HOB to Hob
(Bitbake rev: 2ecbd68abbf564be15707f330f80e811d92ef87d)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:20 +01:00
Joshua Lock
8c5536543f Hob: tweak font sizes and layout
Switch to proportional font sizes and tweak padding and layout based on
feedback from design team.

(Bitbake rev: 356f190bb3f0ee9a15df900714edcb85593d6989)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-30 17:20:20 +01:00
Noor Ahsan
bcd4d14425 libc-packgae.bbclass: Add i686 support in locale_arch_options
* While building for i686 architecture an error was coming that
locale_arch_options does not have support for i686. Add missing support.
* Verified on intel architecture.

(From OE-Core rev: c8afc79b5d3205355ad61d2589221bf8babe8395)

Signed-off-by: Noor Ahsan <noor_ahsan@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 22:57:30 +01:00
Denys Dmytriyenko
1fd8c6fe08 bc: use update-alternatives to make dc play nice with busybox
busybox' default configuration enables dc app, which bc also provides,
setup update-alternatives to resolve the conflict.

(From OE-Core rev: f8456e7a0fd8559497db8292c87fee4fd95eb9c6)

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 22:57:30 +01:00
Gary Thomas
dd4d49b20f gstreamer: Provide easy way to enable runtime debugging
The gstreamer framework has a very useful debugging setup which is
essential for debugging pipelines and plugins.  This patch makes
it simple to enable this (disabled by default).  To enable debugging,
just add this line to local.conf
  GSTREAMER_DEBUG = "--enable-debug"

(From OE-Core rev: 947c00c78732da48a111228e1325ad42cf57a370)

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 22:57:30 +01:00
Scott Garman
3af7e95d69 runqemu: set console=ttyS0 when running with nographic option
When passing the nograhic option to the runqemu script, set
console=ttyS0 in the kernel options so the user can view
the kernel boot messages.

This fixes [YOCTO #1475]

(From OE-Core rev: 28f05bf6e5da9cd8f01cff50c317233e3064e3cb)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 22:57:29 +01:00
Tom Rini
db4c830328 qemu.inc: Use '+=' for IMAGE_FSTYPES
As per
http://lists.linuxtogo.org/pipermail/openembedded-core/2012-March/020053.html
a machine conf file should use '+=' to set IMAGE_FSTYPES.

(From OE-Core rev: b04f6504fe049e3e9dd3998377d1fc2d1ef9a13b)

Signed-off-by: Tom Rini <trini@ti.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 22:57:29 +01:00
Richard Purdie
64d9976cdc knotty: Add back getTasks() call to ensure we don't repeat messges
(Bitbake rev: 8fed4fdf4bbbc9ef036ff96755c0bfe15c3a9dd0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:38:37 +01:00
Liming An
b5dad0e563 Hob: in build details page, change error icon to denied icon
For make icongraphy consistently to change the original gtk-icon to hob-icon

[YOCTO #2108]

(Bitbake rev: 8c3401bc11c6f3708b8ee9c0175f389399fdff5a)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:55 +01:00
Liming An
2e6ea8565a Hob: fixed the 'error' icon source picture and adjusted corresponding showed icon size
The error source picture is not right, so fixed it and adjusted its size.

[YOCTO #2097]

(Bitbake rev: ce680f10037b42831179a4598a69fb39688fb238)

Signed-off-by: Liming An <limingx.l.an@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:55 +01:00
Shane Wang
f717cd64cd Hob: some color style changes to make HobTabBar more close to visual design
The change includes:
 - remove the colors which are not used
 - change the background of indicators to deep red
 - change the color style of the texts on HobTabBar, i.e., the tab text and the indicator background are gray when the tab is the current tab; the tab text is white and the indicator background is deep red when the tab is not the current tab.

(Bitbake rev: 95acecbf50cee906dca4abd5ce758701e5761668)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:55 +01:00
Shane Wang
ad8fe62cee Hob: make ORANGE to be the same as the color on the dialog
(Bitbake rev: a50d884ebe1af2b9b2a5a54289181bccb751ddab)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:55 +01:00
Shane Wang
59ca1af3a1 Hob: Change "Just bake" to "Build image" as required
[Yocto #2160]

(Bitbake rev: 4ed5b8b862027755d5e9e480fd8a1d0250f7a3b7)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Shane Wang
407c93d3e8 Hob: Change icon to error because parsing error is an error
(Bitbake rev: 66fcc8cdf8fb3365cd4a056b94fe3aa3e1aedc86)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Shane Wang
1ea547c154 Hob: clear the building state after a successful build, as a failed build does
(Bitbake rev: afd51c524006e8e6db1542cc2ebc5decab3faa1b)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Dongxiao Xu
00e262e490 Hob: Replace "local.conf" in error message
(Bitbake rev: c8dac1eefab79b12243468986c37f391c3421134)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Dongxiao Xu
1c3ff8623f Hob: Fix the setting hash calculation
Sometimes even setting are not changed, the hash values differs due to
variable order issue. This commit fixes the issue.

(Bitbake rev: 1fe0996f89952af72cbdc46ca7c6495868d27a56)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Dongxiao Xu
f5fd769f5a Hob: Change the format to store image_fstype variable
Use string format to store image_fstype instead of a list.

(Bitbake rev: c91fe7f9d21939fd437dbd79a923499f90fc95c6)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:54 +01:00
Dongxiao Xu
a8c0323034 Hob: Remember user settings when reparse config
When config reparse is issued (e.x, adding a layer), we will firstly
remember the past user settings by setting them to bitbake server,
and then do the reparse.

(Bitbake rev: 8a1f6953a082d8002585bfd9e8a67d2a7f69d6aa)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:53 +01:00
Dongxiao Xu
e24f10e275 Hob: Update configuration after parsing
We need to update the parameters stored in Hob side after
configuration is parsed.

(Bitbake rev: 9560e4ccef497e878f2cb8624136ab8f193c061a)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:53 +01:00
Dongxiao Xu
d30b75fecf Hob: Inherit image_types.bbclass in set_user_config()
(Bitbake rev: f34cb901bd9b3598f4da528cc54f6faa57c9d389)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:53 +01:00
Dongxiao Xu
72bc345f85 Hob: Improve for init a new build
After a successful build, user can initiate a new build by clicking
"Build a new image" button. The previous solution is simply switch to
the first screen and unset MACHINE. This commit will try to re-init
everything for the new build.

(Bitbake rev: df63e15c41d129fe0cff6b8ab3c97434c4809c83)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:53 +01:00
Dongxiao Xu
1da504536a command.py: Move triggerEvent to command async class
The parameters in triggerEvent function is an event object, and it may
cost some time to pass this object through pipe, causing the pipe's
poll() function timeout. Change it to async mode.

(Bitbake rev: 3b5909ebc86a12dedfb30e5446aa81eb58921760)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:53 +01:00
Dongxiao Xu
f73ea0e40d Hob: Improve the matching for runnable machine type
(Bitbake rev: 1b14488bcfb345a3258b15ebfdaa2e1235a5fe87)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:52 +01:00
Dongxiao Xu
abcb2e0916 Hob: Define a variable to store the image name and toolchain
(Bitbake rev: d0b64d901b33c9e5247dbb2b05c89a1d65abbf8b)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:52 +01:00
Dongxiao Xu
345a2dd01c Hob: Fix adding duplicated meta-hob layer
While adding meta-hob layer, we need to detect whether it already
exists in current layers.

(Bitbake rev: b195823d19bcb71bd5eef19acfe22b2dd670d90a)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:52 +01:00
Dongxiao Xu
8b26fdcb3a Hob: Remove un-used signal and functions
(Bitbake rev: 9c632467eddc267ed54b78a40d5b1413287e3032)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:25:52 +01:00
Joshua Lock
71c1de347e lib/bb/ui/crumbs/hig: fix layers_changed test
Because we sort the treeview to list specific layers at the top, and
therefore implicitly change the sorting of the underlying model, we can't
be certain that the original layer list will equal the new layer list
despite the included layers being the same.

To ensure we can do a simple equality test to determine whether the layers
have been modified first sort the lists to ensure we're comparing based on
contents alone.

(Bitbake rev: ae86cd8b4ef1e43b79230326ccba69e2900d074f)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Joshua Lock
57434b40b8 lib/bb/ui/crumbs: hob progress bar should not be red when user stops build
If the user explicitly stops the build telling them the build failed is a
misnomer.

(Bitbake rev: 722f4f0e31f9debf5ad20a91da759a8c25151567)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Joshua Lock
7463dd803a lib/bb/ui/crumbs/builder: allow user to cancel Layer selection dialogue
Because layer changes may take some time allow the user to cancel out of
the dialogue and prevent Hob from applying any of the changes made.

(Bitbake rev: a2d1c035a5dd3d112a887e4386dfaf9b0c37c104)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Joshua Lock
c489990f82 lib/bb/ui/crumbs/hobwidget: change text sizes in HobImageButton
(Bitbake rev: 4301cc1e859a68d93eba3122be099bfaa90fbdfb)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Joshua Lock
25e9e16a39 lib/bb/ui/crumbs/imageconfigurationpage: add extra space between widgets
Add space between the target machine combo and the 'Layers' button.

(Bitbake rev: bdd50d92e90f96bf7ff433bb539cdde4b0d21cdb)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Joshua Lock
366bf755ac lib/bb/ui/crumbs/hobwidget: add padding to HobImageButton
Add more padding between the icon and the text

(Bitbake rev: a81f6a33cf1fa9fe869ac617f2d14d66e07009ff)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:57 +01:00
Shane Wang
19a5489f4c Hob: change some words in settings dialog to make them consistent
(Bitbake rev: 1def8d4d8e725bd9fc4330179557604dda27b917)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:56 +01:00
Shane Wang
96be713241 Hob: change some words on recipes screen and package screen to make them consistent
(Bitbake rev: 63bfa397059823bea6fa453703cf0653fc123f0b)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:56 +01:00
Shane Wang
3ac86ce2ea Hob: change some words on image configuration screen to make them consistent
(Bitbake rev: 6d5bcf80afbd081d41572985b724c615bd3a16b6)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:56 +01:00
Shane Wang
2aa1468054 Hob: change some words for build configurations on build details screen
This patch is to change some words of variables to make them consistent with the GUI.

(Bitbake rev: 4af7ab24ff3b170dfa74159c057e7110a615a8d3)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:56 +01:00
Shane Wang
ff43873706 Hob: add Templates and Settings on image details screen
This patch is to add Templates and Settings tool buttons on the image
details screen, which makes things easier and simplier.

In order to fulfill that, the code splits the functions
show_load_template_dialog() and show_adv_settings_dialog() in builder.py
because they will possibly be called from different screens later.

[Yocto #2163]

(Bitbake rev: 29bea7b7076a7b74d36237da86a4eff6605d17ec)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:56 +01:00
Shane Wang
3038c0c65d Hob: Set one of deployable images or runnable images as the default toggled item
With this patch, even though there are a lot of images built out, a default image
which is either deployable or runnable is toggled by default. So, for users, one
more action to select an image before running qemu or deploying is not needed any more.

Note: If there are more than one runnable or deployable images (such as ext2, ext3,
jffs2 and btrfs), only the first image is toggled by default for run-qemu or
deployment. If the user wants to run or deploy others, he/she needs to toggle them
manually.

[Yocto #2155]

(Bitbake rev: 4568dfbd5e693cce0e6e947f323eaf08a3176744)

Signed-off-by: Shane Wang <shane.wang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 21:12:55 +01:00
Richard Purdie
eeb0529e13 ui/knotty: Add a footer to the build output for interactive terminals as knotty2 UI
On terminals which support it, add summary information to the end of the
build output about the number of tasks currently running and how many tasks
we've run so far.

This provides a summary at a glace of what the current state of the build is
and what the build is currently doing which is lacking in the current UI.

Also disable echo of characters on stdin since this corrupts the disable,
particularly Crtl+C.

The "waiting for X tasks" code can be merged into this code too since
that is only useful on interactive terminals and this improves the
readability of that output too.

Improvements since v0:

* The tasks are ordered in execution order.
* The display is only updated when the list of tasks changes or there
  is output above the footer.
* Running task x oy y and package messages are supressed from the console

This UI can be accessed with "bitbake -u knotty2".

(From Poky rev: e38b4569648f2916c4370871c79e6a6090eb8bc1)

(Bitbake rev: 156189c799d2bb1f69bdaa04b5cd718fe7881425)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 19:44:01 +01:00
Richard Purdie
5b84c902eb uihelper: Keep track of pids in execution order
(Bitbake rev: cec2f3eaa45a6fd8d3c53c09aaf010ac6101e7ba)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 19:43:04 +01:00
Eric Bénard
3774cf0fdc license.bbclass: remove existing license.manifest before appending new data
without this fix, we append license each time we build again the same image,
ending with a large not up to date file.

(From OE-Core rev: 2d49a8f659694b60cdb706e8993cd9550e2002bd)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 16:50:06 +01:00
Richard Purdie
331f7fa3f2 ghostscript: Fix remaining CP_ prallel make races
(From OE-Core rev: 8fe53bdc807184bc41469d8587368b31192e6252)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 09:44:46 +01:00
Christopher Larson
4d16bc3c5e bb.build: use relative log links, not absolute
Using symlinks to absolute paths isn't gaining us anything, and can cause
problems in situations such as automated build systems when they try to
resolve the link, depending on the mechanism used to pull the build artifacts
(e.g. nfs).

(Bitbake rev: f9cf2671c0ecad153db11bca1aebe151213bfb42)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-29 09:44:45 +01:00
598 changed files with 23449 additions and 5192 deletions

25
.gitignore vendored
View File

@@ -1,5 +1,6 @@
*.pyc
*.pyo
/*.patch
build*/conf/local.conf
build*/conf/bblayers.conf
build*/downloads
@@ -16,5 +17,25 @@ meta-*
*.orig
*.rej
*~
documentation/adt-manual/adt-manual.html
documentation/adt-manual/adt-manual.pdf
documentation/adt-manual/adt-manual.tgz
documentation/dev-manual/dev-manual.html
documentation/dev-manual/dev-manual.pdf
documentation/dev-manual/dev-manual.tgz
documentation/poky-ref-manual/poky-ref-manual.html
documentation/poky-ref-manual/poky-ref-manual.pdf
documentation/poky-ref-manual/poky-ref-manual.tgz
documentation/poky-ref-manual/bsp-guide.html
documentation/poky-ref-manual/bsp-guide.pdf
documentation/bsp-guide/bsp-guide.html
documentation/bsp-guide/bsp-guide.pdf
documentation/bsp-guide/bsp-guide.tgz
documentation/yocto-project-qs/yocto-project-qs.html
documentation/yocto-project-qs/yocto-project-qs.tgz
documentation/kernel-manual/kernel-manual.html
documentation/kernel-manual/kernel-manual.tgz
documentation/kernel-manual/kernel-manual.pdf
documentation/mega-manual/mega-manual.html
documentation/mega-manual/mega-manual.pdf
documentation/mega-manual/mega-manual.tgz

View File

@@ -96,8 +96,9 @@ USB Device:
# dd if=core-image-minimal-atom-pc.hddimg of=/dev/sdb
If the device fails to boot with "Boot error" displayed, it is likely the BIOS
cannot understand the physical layout of the disk (or rather it expects a
If the device fails to boot with "Boot error" displayed, or apparently
stops just after the SYSLINUX version banner, it is likely the BIOS cannot
understand the physical layout of the disk (or rather it expects a
particular layout and cannot handle anything else). There are two possible
solutions to this problem:
@@ -106,26 +107,47 @@ USB Device:
geometry from the device.
2. Without such an option, the BIOS generally boots the device in USB-ZIP
mode.
mode. To write an image to a USB device that will be bootable in
USB-ZIP mode, carry out the following actions:
a. Configure the USB device for USB-ZIP mode:
a. Determine the geometry of your USB device using fdisk:
# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 4011 MB, 4011491328 bytes
124 heads, 62 sectors/track, 1019 cylinders, total 7834944 sectors
...
Command (m for help): q
b. Configure the USB device for USB-ZIP mode:
# mkdiskimage -4 /dev/sdb 0 63 62
# mkdiskimage -4 /dev/sdb 1019 124 62
Where 63 and 62 are the head and sector count as reported by fdisk.
Remove and reinsert the device to allow the kernel to detect the new
partition layout.
Where 1019, 124 and 62 are the cylinder, head and sectors/track counts
as reported by fdisk (substitute the values reported for your device).
When the operation has finished and the access LED (if any) on the
device stops flashing, remove and reinsert the device to allow the
kernel to detect the new partition layout.
b. Copy the contents of the poky image to the USB-ZIP mode device:
c. Copy the contents of the poky image to the USB-ZIP mode device:
# mkdir /tmp/image
# mkdir /tmp/usbkey
# mount -o loop core-image-minimal-atom-pc.hddimg /tmp/image
# mount /dev/sdb4 /tmp/usbkey
# cp -rf /tmp/image/* /tmp/usbkey
c. Install the syslinux boot loader:
d. Install the syslinux boot loader:
# syslinux /dev/sdb4
e. Unmount everything:
# umount /tmp/image
# umount /tmp/usbkey
Install the boot device in the target board and configure the BIOS to boot
from it.
@@ -241,8 +263,8 @@ Setup instructions
You will need the following:
* NFS root setup on your workstation
* TFTP server installed on your workstation
* Null modem cable connected from your workstation to the first serial port
on the board
* Straight-thru 9-conductor serial cable (DB9, M/F) connected from your
PC to UART1
* Ethernet connected to the first ethernet port on the board
--- Preparation ---

View File

@@ -40,7 +40,7 @@ from bb import cooker
from bb import ui
from bb import server
__version__ = "1.15.1"
__version__ = "1.15.2"
logger = logging.getLogger("BitBake")
@@ -69,7 +69,7 @@ def get_ui(config):
return getattr(module, interface).main
except AttributeError:
sys.exit("FATAL: Invalid user interface '%s' specified.\n"
"Valid interfaces: depexp, goggle, ncurses, knotty [default]." % interface)
"Valid interfaces: depexp, goggle, ncurses, hob, knotty [default], knotty2." % interface)
# Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""

View File

@@ -9,6 +9,7 @@
import cmd
import logging
import warnings
import os
import sys
import fnmatch
@@ -28,6 +29,7 @@ import bb.fetch2
logger = logging.getLogger('BitBake')
warnings.filterwarnings("ignore", category=DeprecationWarning)
def main(args):
# Set up logging

View File

@@ -251,7 +251,7 @@ of the event and the content of the <varname>FILE</varname> variable.</para>
<section>
<title>Variants</title>
<para>Two BitBake features exist to facilitate the creation of multiple buildable incarnations from a single recipe file.</para>
<para>The first is <varname>BBCLASSEXTEND</varname>. This variable is a space separated list of classes used to "extend" the recipe for each variant. As an example, setting <screen>BBCLASSEXTEND = "native"</screen> results in a second incarnation of the current recipe being available. This second incarantion will have the "native" class inherited.</para>
<para>The first is <varname>BBCLASSEXTEND</varname>. This variable is a space separated list of classes used to "extend" the recipe for each variant. As an example, setting <screen>BBCLASSEXTEND = "native"</screen> results in a second incarnation of the current recipe being available. This second incarnation will have the "native" class inherited.</para>
<para>The second feature is <varname>BBVERSIONS</varname>. This variable allows a single recipe to build multiple versions of a project from a single recipe file, and allows you to specify conditional metadata (using the <varname>OVERRIDES</varname> mechanism) for a single version, or an optionally named range of versions:</para>
<para><screen>BBVERSIONS = "1.0 2.0 git"
SRC_URI_git = "git://someurl/somepath.git"</screen></para>

View File

@@ -21,7 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
__version__ = "1.15.1"
__version__ = "1.15.2"
import sys
if sys.version_info < (2, 6, 0):

View File

@@ -291,12 +291,13 @@ def _exec_task(fn, task, d, quieterr):
bb.utils.mkdirhier(tempdir)
loglink = os.path.join(tempdir, 'log.{0}'.format(task))
logfn = os.path.join(tempdir, 'log.{0}.{1}'.format(task, os.getpid()))
logbase = 'log.{0}.{1}'.format(task, os.getpid())
logfn = os.path.join(tempdir, logbase)
if loglink:
bb.utils.remove(loglink)
try:
os.symlink(logfn, loglink)
os.symlink(logbase, loglink)
except OSError:
pass
@@ -457,6 +458,24 @@ def del_stamp(task, d, file_name = None):
stamp = stamp_internal(task, d, file_name)
bb.utils.remove(stamp)
def write_taint(task, d, file_name = None):
"""
Creates a "taint" file which will force the specified task and its
dependents to be re-run the next time by influencing the value of its
taskhash.
(d can be a data dict or dataCache)
"""
import uuid
if file_name:
taintfn = d.stamp[file_name] + '.' + task + '.taint'
else:
taintfn = d.getVar('STAMP', True) + '.' + task + '.taint'
bb.utils.mkdirhier(os.path.dirname(taintfn))
# The specific content of the taint file is not really important,
# we just need it to be random, so a random UUID is used
with open(taintfn, 'w') as taintf:
taintf.write(str(uuid.uuid4()))
def stampfile(taskname, d, file_name = None):
"""
Return the stamp for a given task

View File

@@ -179,12 +179,12 @@ class CommandsSync:
"""
return bb.utils.cpu_count()
def triggerEvent(self, command, params):
def setConfFilter(self, command, params):
"""
Trigger a certain event
Set the configuration file parsing filter
"""
event = params[0]
bb.event.fire(eval(event), command.cooker.configuration.data)
filterfunc = params[0]
bb.parse.parse_py.ConfHandler.confFilters.append(filterfunc)
class CommandsAsync:
"""
@@ -359,3 +359,13 @@ class CommandsAsync:
command.cooker.parseConfigurationFiles(prefiles, postfiles)
command.finishAsyncCommand()
parseConfigurationFiles.needcache = False
def triggerEvent(self, command, params):
"""
Trigger a certain event
"""
event = params[0]
bb.event.fire(eval(event), command.cooker.configuration.data)
command.currentAsyncCommand = None
triggerEvent.needcache = False

View File

@@ -178,7 +178,7 @@ class BBCooker:
self.configuration.data = bb.data.init()
if not self.server_registration_cb:
bb.data.setVar("BB_WORKERCONTEXT", "1", self.configuration.data)
self.configuration.data.setVar("BB_WORKERCONTEXT", "1")
filtered_keys = bb.utils.approved_variables()
bb.data.inheritFromOS(self.configuration.data, self.savedenv, filtered_keys)
@@ -1066,10 +1066,10 @@ class BBCooker:
self.status.rundeps[fn] = []
self.status.runrecs[fn] = []
# Remove stamp for target if force mode active
# Invalidate task for target if force mode active
if self.configuration.force:
logger.verbose("Remove stamp %s, %s", task, fn)
bb.build.del_stamp('do_%s' % task, self.status, fn)
logger.verbose("Invalidate task %s, %s", task, fn)
bb.parse.siggen.invalidate_task('do_%s' % task, self.status, fn)
# Setup taskdata structure
taskdata = bb.taskdata.TaskData(self.configuration.abort)
@@ -1175,7 +1175,7 @@ class BBCooker:
return
if self.state in (state.shutdown, state.stop):
self.parser.shutdown(clean=False)
self.parser.shutdown(clean=False, force = True)
sys.exit(1)
if self.state != state.parsing:
@@ -1608,10 +1608,13 @@ class CookerParser(object):
self.parser_quit.put(None)
self.jobs.cancel_join_thread()
sys.exit(1)
for process in self.processes:
process.join()
if force:
process.join(.1)
process.terminate()
else:
process.join()
self.feeder.join()
sync = threading.Thread(target=self.bb_cache.sync)
@@ -1641,6 +1644,8 @@ class CookerParser(object):
yield result
def parse_next(self):
result = []
parsed = None
try:
parsed, result = self.results.next()
except StopIteration:

View File

@@ -462,13 +462,14 @@ class DataSmart(MutableMapping):
self.delVar(var)
def get_hash(self):
data = ""
data = {}
config_whitelist = set((self.getVar("BB_HASHCONFIG_WHITELIST", True) or "").split())
keys = set(key for key in iter(self) if not key.startswith("__"))
for key in keys:
if key in config_whitelist:
continue
value = self.getVar(key, False) or ""
data = data + key + ': ' + str(value) + '\n'
data.update({key:value})
return hashlib.md5(data).hexdigest()
data_str = str([(k, data[k]) for k in sorted(data.keys())])
return hashlib.md5(data_str).hexdigest()

View File

@@ -517,3 +517,21 @@ class PackageInfo(Event):
def __init__(self, pkginfolist):
Event.__init__(self)
self._pkginfolist = pkginfolist
class SanityCheck(Event):
"""
Event to issue sanity check
"""
class SanityCheckPassed(Event):
"""
Event to indicate sanity check is passed
"""
class SanityCheckFailed(Event):
"""
Event to indicate sanity check has failed
"""
def __init__(self, msg):
Event.__init__(self)
self._msg = msg

View File

@@ -174,7 +174,8 @@ def encodeurl(decoded):
def uri_replace(ud, uri_find, uri_replace, d):
if not ud.url or not uri_find or not uri_replace:
logger.debug(1, "uri_replace: passed an undefined value, not replacing")
logger.error("uri_replace: passed an undefined value, not replacing")
return None
uri_decoded = list(decodeurl(ud.url))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
@@ -200,8 +201,10 @@ def uri_replace(ud, uri_find, uri_replace, d):
if basename and not result_decoded[loc].endswith(basename):
result_decoded[loc] = os.path.join(result_decoded[loc], basename)
else:
return ud.url
return None
result = encodeurl(result_decoded)
if result == ud.url:
return None
logger.debug(2, "For url %s returning %s" % (ud.url, result))
return result
@@ -446,6 +449,90 @@ def check_network_access(d, info = "", url = None):
else:
logger.debug(1, "Fetcher accessed the network with the command %s" % info)
def build_mirroruris(origud, mirrors, ld):
uris = []
uds = []
def adduri(uri, ud, uris, uds):
for line in mirrors:
try:
(find, replace) = line
except ValueError:
continue
newuri = uri_replace(ud, find, replace, ld)
if not newuri or newuri in uris or newuri == origud.url:
continue
try:
newud = FetchData(newuri, ld)
newud.setup_localpath(ld)
except bb.fetch2.BBFetchException as e:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
pass
continue
uris.append(newuri)
uds.append(newud)
adduri(newuri, newud, uris, uds)
adduri(None, origud, uris, uds)
return uris, uds
def try_mirror_url(newuri, origud, ud, ld, check = False):
# Return of None or a value means we're finished
# False means try another url
try:
if check:
found = ud.method.checkstatus(newuri, ud, ld)
if found:
return found
return False
os.chdir(ld.getVar("DL_DIR", True))
if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
ud.method.download(newuri, ud, ld)
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(newuri, ud, ld)
if not ud.localpath or not os.path.exists(ud.localpath):
return False
if ud.localpath == origud.localpath:
return ud.localpath
# We may be obtaining a mirror tarball which needs further processing by the real fetcher
# If that tarball is a local file:// we need to provide a symlink to it
dldir = ld.getVar("DL_DIR", True)
if origud.mirrortarball and os.path.basename(ud.localpath) == os.path.basename(origud.mirrortarball) \
and os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
open(ud.donestamp, 'w').close()
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
return None
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
os.symlink(ud.localpath, origud.localpath)
update_stamp(newuri, origud, ld)
return ud.localpath
except bb.fetch2.NetworkAccess:
raise
except bb.fetch2.BBFetchException as e:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
ud.method.clean(ud, ld)
except UnboundLocalError:
pass
return False
def try_mirrors(d, origud, mirrors, check = False):
"""
Try to use a mirrored version of the sources.
@@ -456,61 +543,13 @@ def try_mirrors(d, origud, mirrors, check = False):
mirrors is the list of mirrors we're going to try
"""
ld = d.createCopy()
for line in mirrors:
try:
(find, replace) = line
except ValueError:
continue
newuri = uri_replace(origud, find, replace, ld)
if newuri == origud.url:
continue
try:
ud = FetchData(newuri, ld)
ud.setup_localpath(ld)
if check:
found = ud.method.checkstatus(newuri, ud, ld)
if found:
return found
continue
uris, uds = build_mirroruris(origud, mirrors, ld)
if not os.path.exists(ud.donestamp) or ud.method.need_update(newuri, ud, ld):
ud.method.download(newuri, ud, ld)
open(ud.donestamp, 'w').close()
if hasattr(ud.method,"build_mirror_data"):
ud.method.build_mirror_data(newuri, ud, ld)
if not ud.localpath or not os.path.exists(ud.localpath):
continue
if ud.localpath == origud.localpath:
return ud.localpath
# We may be obtaining a mirror tarball which needs further processing by the real fetcher
# If that tarball is a local file:// we need to provide a symlink to it
dldir = ld.getVar("DL_DIR", True)
if os.path.basename(ud.localpath) != os.path.basename(origud.localpath):
dest = os.path.join(dldir, os.path.basename(ud.localpath))
if not os.path.exists(dest):
os.symlink(ud.localpath, dest)
return None
# Otherwise the result is a local file:// and we symlink to it
if not os.path.exists(origud.localpath):
os.symlink(ud.localpath, origud.localpath)
return ud.localpath
except bb.fetch2.NetworkAccess:
raise
except bb.fetch2.BBFetchException as e:
logger.debug(1, "Mirror fetch failure for url %s (original url: %s)" % (newuri, origud.url))
logger.debug(1, str(e))
try:
if os.path.isfile(ud.localpath):
bb.utils.remove(ud.localpath)
except UnboundLocalError:
pass
continue
for index, uri in enumerate(uris):
ret = try_mirror_url(uri, origud, uds[index], ld, check)
if ret != False:
return ret
return None
def srcrev_internal_helper(ud, d, name):
@@ -900,14 +939,14 @@ class Fetch(object):
self.ud = {}
fn = d.getVar('FILE', True)
if cache and fn in urldata_cache:
if cache and fn and fn in urldata_cache:
self.ud = urldata_cache[fn]
for url in urls:
if url not in self.ud:
self.ud[url] = FetchData(url, d)
if cache:
if fn and cache:
urldata_cache[fn] = self.ud
def localpath(self, url):
@@ -961,6 +1000,8 @@ class Fetch(object):
if premirroronly:
self.d.setVar("BB_NO_NETWORK", "1")
os.chdir(self.d.getVar("DL_DIR", True))
firsterr = None
if not localpath and ((not os.path.exists(ud.donestamp)) or m.need_update(u, ud, self.d)):
try:
@@ -1020,7 +1061,7 @@ class Fetch(object):
except:
# Finally, try checking uri, u, from MIRRORS
mirrors = mirror_from_string(self.d.getVar('MIRRORS', True))
ret = try_mirrors (self.d, ud, mirrors, True)
ret = try_mirrors(self.d, ud, mirrors, True)
if not ret:
raise FetchError("URL %s doesn't work" % u, u)

View File

@@ -136,10 +136,13 @@ def getInterval(configuration):
""" Get the disk space interval """
# The default value is 50M and 5K.
spaceDefault = 50 * 1024 * 1024
inodeDefault = 5 * 1024
interval = configuration.getVar("BB_DISKMON_WARNINTERVAL", True)
if not interval:
# The default value is 50M and 5K.
return 50 * 1024 * 1024, 5 * 1024
return spaceDefault, inodeDefault
else:
# The disk space or inode interval is optional, but it should
# have a correct value once it is specified
@@ -151,12 +154,16 @@ def getInterval(configuration):
if not intervalSpace:
printErr("Invalid disk space interval value in BB_DISKMON_WARNINTERVAL: %s" % intervalRe.group(1))
return None, None
else:
intervalSpace = spaceDefault
intervalInode = intervalRe.group(2)
if intervalInode:
intervalInode = convertGMK(intervalInode)
if not intervalInode:
printErr("Invalid disk inode interval value in BB_DISKMON_WARNINTERVAL: %s" % intervalRe.group(2))
return None, None
else:
intervalInode = inodeDefault
return intervalSpace, intervalInode
else:
printErr("Invalid interval value in BB_DISKMON_WARNINTERVAL: %s" % interval)

View File

@@ -71,6 +71,14 @@ def include(oldfn, fn, lineno, data, error_out):
raise ParseError("Could not %(error_out)s file %(fn)s" % vars(), oldfn, lineno)
logger.debug(2, "CONF file '%s' not found", fn)
# We have an issue where a UI might want to enforce particular settings such as
# an empty DISTRO variable. If configuration files do something like assigning
# a weak default, it turns out to be very difficult to filter out these changes,
# particularly when the weak default might appear half way though parsing a chain
# of configuration files. We therefore let the UIs hook into configuration file
# parsing. This turns out to be a hard problem to solve any other way.
confFilters = []
def handle(fn, data, include):
init(data)
@@ -107,6 +115,9 @@ def handle(fn, data, include):
if oldfile:
data.setVar('FILE', oldfile)
for f in confFilters:
f(fn, data)
return data
def feeder(lineno, s, fn, statements):

View File

@@ -705,6 +705,12 @@ class RunQueueData:
continue
self.runq_setscene.append(task)
# Invalidate task if force mode active
if self.cooker.configuration.force:
for (fn, target) in self.target_pairs:
logger.verbose("Invalidate task %s, %s", target, fn)
bb.parse.siggen.invalidate_task(target, self.dataCache, fn)
# Interate over the task list and call into the siggen code
dealtwith = set()
todeal = set(range(len(self.runq_fnid)))
@@ -731,12 +737,6 @@ class RunQueueData:
deps.append(depidentifier)
self.hash_deps[identifier] = deps
# Remove stamps for targets if force mode active
if self.cooker.configuration.force:
for (fn, target) in self.target_pairs:
logger.verbose("Remove stamp %s, %s", target, fn)
bb.build.del_stamp(target, self.dataCache, fn)
return len(self.runq_fnid)
def dump_data(self, taskQueue):
@@ -1068,6 +1068,7 @@ class RunQueueExecute:
for k, v in self.build_pids.iteritems():
try:
os.kill(-k, signal.SIGTERM)
os.waitpid(-1, 0)
except:
pass
for pipe in self.build_pipes:

View File

@@ -50,6 +50,10 @@ class SignatureGenerator(object):
def dump_sigtask(self, fn, task, stampbase, runtime):
return
def invalidate_task(self, task, d, fn):
bb.build.del_stamp(task, d, fn)
class SignatureGeneratorBasic(SignatureGenerator):
"""
"""
@@ -148,6 +152,15 @@ class SignatureGeneratorBasic(SignatureGenerator):
return False
return True
def read_taint(self, fn, task, stampbase):
taint = None
try:
with open(stampbase + '.' + task + '.taint', 'r') as taintf:
taint = taintf.read()
except IOError:
pass
return taint
def get_taskhash(self, fn, task, deps, dataCache):
k = fn + "." + task
data = dataCache.basetaskhash[k]
@@ -161,6 +174,11 @@ class SignatureGeneratorBasic(SignatureGenerator):
bb.fatal("%s is not in taskhash, caller isn't calling in dependency order?", dep)
data = data + self.taskhash[dep]
self.runtaskdeps[k].append(dep)
taint = self.read_taint(fn, task, dataCache.stamp[fn])
if taint:
data = data + taint
h = hashlib.md5(data).hexdigest()
self.taskhash[k] = h
#d.setVar("BB_TASKHASH_task-%s" % task, taskhash[task])
@@ -201,9 +219,14 @@ class SignatureGeneratorBasic(SignatureGenerator):
for dep in data['runtaskdeps']:
data['runtaskhashes'][dep] = self.taskhash[dep]
taint = self.read_taint(fn, task, stampbase)
if taint:
data['taint'] = taint
p = pickle.Pickler(file(sigfile, "wb"), -1)
p.dump(data)
def dump_sigs(self, dataCache):
for fn in self.taskdeps:
for task in self.taskdeps[fn]:
@@ -230,6 +253,10 @@ class SignatureGeneratorBasicHash(SignatureGeneratorBasic):
h = self.basehash[k]
return ("%s.%s.%s.%s" % (stampbase, taskname, h, extrainfo)).rstrip('.')
def invalidate_task(self, task, d, fn):
bb.note("Tainting hash to force rebuild of task %s, %s" % (fn, task))
bb.build.write_taint(task, d, fn)
def dump_this_task(outfile, d):
import bb.parse
fn = d.getVar("BB_FILENAME", True)
@@ -330,6 +357,11 @@ def compare_sigfiles(a, b):
for dep in changed:
print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep])
a_taint = a_data.get('taint', None)
b_taint = b_data.get('taint', None)
if a_taint != b_taint:
print "Taint (by forced/invalidated task) changed from %s to %s" % (a_taint, b_taint)
def dump_sigfile(a):
p1 = pickle.Unpickler(file(a, "rb"))
a_data = p1.load()
@@ -354,3 +386,6 @@ def dump_sigfile(a):
if 'runtaskhashes' in a_data:
for dep in a_data['runtaskhashes']:
print "Hash for dependent task %s is %s" % (dep, a_data['runtaskhashes'][dep])
if 'taint' in a_data:
print "Tainted (by forced/invalidated task): %s" % a_data['taint']

View File

@@ -83,15 +83,15 @@ class BuildConfigurationTreeView(gtk.TreeView):
def show(self, src_config_info, src_params):
vars = []
vars.append(self.set_vars("BB VERSION:", src_params.bb_version))
vars.append(self.set_vars("TARGET_ARCH:", src_params.target_arch))
vars.append(self.set_vars("TARGET_OS:", src_params.target_os))
vars.append(self.set_vars("MACHINE:", src_config_info.curr_mach))
vars.append(self.set_vars("DISTRO:", src_config_info.curr_distro))
vars.append(self.set_vars("DISTRO_VERSION:", src_params.distro_version))
vars.append(self.set_vars("SDK_MACHINE:", src_config_info.curr_sdk_machine))
vars.append(self.set_vars("TUNE_FEATURE:", src_params.tune_pkgarch))
vars.append(self.set_vars("LAYERS:", src_config_info.layers))
vars.append(self.set_vars("BB version:", src_params.bb_version))
vars.append(self.set_vars("Target arch:", src_params.target_arch))
vars.append(self.set_vars("Target OS:", src_params.target_os))
vars.append(self.set_vars("Machine:", src_config_info.curr_mach))
vars.append(self.set_vars("Distro:", src_config_info.curr_distro))
vars.append(self.set_vars("Distro version:", src_params.distro_version))
vars.append(self.set_vars("SDK machine:", src_config_info.curr_sdk_machine))
vars.append(self.set_vars("Tune features:", src_params.tune_pkgarch))
vars.append(self.set_vars("Layers:", src_config_info.layers))
for path in src_config_info.layers:
import os, os.path
@@ -99,12 +99,15 @@ class BuildConfigurationTreeView(gtk.TreeView):
f = os.popen('cd %s; git branch 2>&1 | grep "^* " | tr -d "* "' % path)
if f:
branch = f.readline().lstrip('\n').rstrip('\n')
vars.append(self.set_vars("BRANCH:", branch))
vars.append(self.set_vars("Branch:", branch))
f.close()
break
self.set_config_model(vars)
def reset(self):
self.set_model(None)
#
# BuildDetailsPage
#
@@ -133,6 +136,7 @@ class BuildDetailsPage (HobPage):
self.progress_hbox.pack_start(self.progress_bar, expand=True, fill=True)
self.stop_button = HobAltButton("Stop")
self.stop_button.connect("clicked", self.stop_button_clicked_cb)
self.stop_button.set_sensitive(False)
self.progress_hbox.pack_end(self.stop_button, expand=False, fill=False)
self.notebook = HobNotebook()
@@ -140,7 +144,7 @@ class BuildDetailsPage (HobPage):
self.scrolled_view_config = gtk.ScrolledWindow ()
self.scrolled_view_config.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
self.scrolled_view_config.add(self.config_tv)
self.notebook.append_page(self.scrolled_view_config, gtk.Label("Build Configuration"))
self.notebook.append_page(self.scrolled_view_config, gtk.Label("Build configuration"))
self.failure_tv = BuildFailureTreeView()
self.failure_model = self.builder.handler.build.model.failure_model()
@@ -169,9 +173,11 @@ class BuildDetailsPage (HobPage):
recipe = os.path.basename(recipe_path).rstrip(".bb")
tsk_msg = "<b>Running task %s of %s:</b> %s\n<b>Recipe:</b> %s" % (current, total, recipe_task, recipe)
self.task_status.set_markup(tsk_msg)
self.stop_button.set_sensitive(True)
def reset_build_status(self):
self.task_status.set_markup("\n") # to ensure layout is correct
self.endpath = (0,)
def show_issues(self):
self.num_of_issues += 1
@@ -205,6 +211,7 @@ class BuildDetailsPage (HobPage):
self.box_group_area.pack_start(self.vbox, expand=True, fill=True)
self.progress_bar.reset()
self.config_tv.reset()
self.vbox.pack_start(self.progress_box, expand=False, fill=False)
self.vbox.pack_start(self.notebook, expand=True, fill=True)
@@ -213,7 +220,10 @@ class BuildDetailsPage (HobPage):
self.show_all()
self.back_button.hide()
def update_progress_bar(self, title, fraction, status=True):
self.reset_build_status()
self.reset_issues()
def update_progress_bar(self, title, fraction, status=None):
self.progress_bar.update(fraction)
self.progress_bar.set_title(title)
self.progress_bar.set_rcstyle(status)
@@ -228,13 +238,15 @@ class BuildDetailsPage (HobPage):
self.builder.stop_build()
def hide_stop_button(self):
self.stop_button.set_sensitive(False)
self.stop_button.hide()
def scroll_to_present_row(self, model, path, iter, v_adj, treeview):
if treeview and v_adj:
if path[0] > self.endpath[0]: # check the event is a new row append or not
self.endpath = path
if v_adj.value == (v_adj.upper - v_adj.page_size): # check the gtk.adjustment position is at end boundary or not
# check the gtk.adjustment position is at end boundary or not
if (v_adj.upper <= v_adj.page_size) or (v_adj.value == v_adj.upper - v_adj.page_size):
treeview.scroll_to_cell(path)
def show_configurations(self, configurations, params):

View File

@@ -21,6 +21,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import glib
import gtk
import copy
import os
@@ -32,23 +33,58 @@ from bb.ui.crumbs.recipeselectionpage import RecipeSelectionPage
from bb.ui.crumbs.packageselectionpage import PackageSelectionPage
from bb.ui.crumbs.builddetailspage import BuildDetailsPage
from bb.ui.crumbs.imagedetailspage import ImageDetailsPage
from bb.ui.crumbs.hobwidget import hwc, HobButton, HobAltButton
from bb.ui.crumbs.hobwidget import hwc, HobButton, HobAltButton, hcc
from bb.ui.crumbs.hig import CrumbsMessageDialog, ImageSelectionDialog, \
AdvancedSettingDialog, LayerSelectionDialog, \
DeployImageDialog
from bb.ui.crumbs.persistenttooltip import PersistentTooltip
import bb.ui.crumbs.utils
class Configuration:
'''Represents the data structure of configuration.'''
def __init__(self, params):
# Settings
def __init__(self):
self.curr_mach = ""
# settings
self.curr_distro = ""
self.dldir = self.sstatedir = self.sstatemirror = ""
self.pmake = self.bbthread = 0
self.curr_package_format = ""
self.image_rootfs_size = self.image_extra_size = 0
self.image_overhead_factor = 1
self.incompat_license = ""
self.curr_sdk_machine = ""
self.conf_version = self.lconf_version = ""
self.extra_setting = {}
self.toolchain_build = False
self.image_fstypes = ""
# bblayers.conf
self.layers = []
# image/recipes/packages
self.clear_selection()
self.user_selected_packages = []
self.default_task = "build"
# proxy settings
self.all_proxy = self.http_proxy = self.ftp_proxy = self.https_proxy = ""
self.git_proxy_host = self.git_proxy_port = ""
self.cvs_proxy_host = self.cvs_proxy_port = ""
self.enable_proxy = None
def clear_selection(self):
self.selected_image = None
self.selected_recipes = []
self.selected_packages = []
def update(self, params):
# settings
self.curr_distro = params["distro"]
self.dldir = params["dldir"]
self.sstatedir = params["sstatedir"]
self.sstatemirror = params["sstatemirror"]
self.pmake = params["pmake"]
self.pmake = int(params["pmake"].split()[1])
self.bbthread = params["bbthread"]
self.curr_package_format = " ".join(params["pclass"].split("package_")).strip()
self.image_rootfs_size = params["image_rootfs_size"]
@@ -58,17 +94,16 @@ class Configuration:
self.curr_sdk_machine = params["sdk_machine"]
self.conf_version = params["conf_version"]
self.lconf_version = params["lconf_version"]
self.extra_setting = {}
self.toolchain_build = False
self.image_fstypes = params["image_fstypes"].split()
self.image_fstypes = params["image_fstypes"]
# self.extra_setting/self.toolchain_build
# bblayers.conf
self.layers = params["layer"].split()
# image/recipes/packages
self.selected_image = None
self.selected_recipes = []
self.selected_packages = []
self.default_task = params["default_task"]
# proxy settings
self.enable_proxy = params["http_proxy"] != "" or params["https_proxy"] != "" or params["ftp_proxy"] != "" \
or params["git_proxy_host"] != "" or params["git_proxy_port"] != "" \
or params["cvs_proxy_host"] != "" or params["cvs_proxy_port"] != "" or params["all_proxy"] != ""
self.all_proxy = params["all_proxy"]
self.http_proxy = params["http_proxy"]
self.ftp_proxy = params["ftp_proxy"]
@@ -85,10 +120,22 @@ class Configuration:
self.dldir = template.getVar("DL_DIR")
self.sstatedir = template.getVar("SSTATE_DIR")
self.sstatemirror = template.getVar("SSTATE_MIRROR")
self.pmake = int(template.getVar("PARALLEL_MAKE").split()[1])
self.bbthread = int(template.getVar("BB_NUMBER_THREADS"))
self.image_rootfs_size = int(template.getVar("IMAGE_ROOTFS_SIZE"))
self.image_extra_size = int(template.getVar("IMAGE_EXTRA_SPACE"))
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:
pass
try:
self.image_extra_size = int(template.getVar("IMAGE_EXTRA_SPACE"))
except:
pass
# image_overhead_factor is read-only.
self.incompat_license = template.getVar("INCOMPATIBLE_LICENSE")
self.curr_sdk_machine = template.getVar("SDKMACHINE")
@@ -96,7 +143,7 @@ class Configuration:
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").split()
self.image_fstypes = template.getVar("IMAGE_FSTYPES")
# bblayers.conf
self.layers = template.getVar("BBLAYERS").split()
# image/recipes/packages
@@ -104,6 +151,7 @@ class Configuration:
self.selected_recipes = template.getVar("DEPENDS").split()
self.selected_packages = template.getVar("IMAGE_INSTALL").split()
# proxy
self.enable_proxy = eval(template.getVar("enable_proxy"))
self.all_proxy = template.getVar("all_proxy")
self.http_proxy = template.getVar("http_proxy")
self.ftp_proxy = template.getVar("ftp_proxy")
@@ -113,11 +161,12 @@ class Configuration:
self.cvs_proxy_host = template.getVar("CVS_PROXY_HOST")
self.cvs_proxy_port = template.getVar("CVS_PROXY_PORT")
def save(self, template, filename):
def save(self, template, defaults=False):
# bblayers.conf
template.setVar("BBLAYERS", " ".join(self.layers))
# local.conf
template.setVar("MACHINE", self.curr_mach)
if not defaults:
template.setVar("MACHINE", self.curr_mach)
template.setVar("DISTRO", self.curr_distro)
template.setVar("DL_DIR", self.dldir)
template.setVar("SSTATE_DIR", self.sstatedir)
@@ -133,13 +182,14 @@ class Configuration:
template.setVar("LCONF_VERSION", self.lconf_version)
template.setVar("EXTRA_SETTING", self.extra_setting)
template.setVar("TOOLCHAIN_BUILD", self.toolchain_build)
template.setVar("IMAGE_FSTYPES", " ".join(self.image_fstypes).lstrip(" "))
# image/recipes/packages
self.selected_image = filename
template.setVar("__SELECTED_IMAGE__", self.selected_image)
template.setVar("DEPENDS", self.selected_recipes)
template.setVar("IMAGE_INSTALL", self.selected_packages)
template.setVar("IMAGE_FSTYPES", self.image_fstypes)
if not defaults:
# image/recipes/packages
template.setVar("__SELECTED_IMAGE__", self.selected_image)
template.setVar("DEPENDS", self.selected_recipes)
template.setVar("IMAGE_INSTALL", self.user_selected_packages)
# proxy
template.setVar("enable_proxy", self.enable_proxy)
template.setVar("all_proxy", self.all_proxy)
template.setVar("http_proxy", self.http_proxy)
template.setVar("ftp_proxy", self.ftp_proxy)
@@ -152,34 +202,74 @@ class Configuration:
class Parameters:
'''Represents other variables like available machines, etc.'''
def __init__(self, params):
def __init__(self):
# Variables
self.max_threads = 65535
self.core_base = ""
self.image_addr = ""
self.image_types = []
self.runnable_image_types = []
self.runnable_machine_patterns = []
self.deployable_image_types = []
self.tmpdir = ""
self.all_machines = []
self.all_package_formats = []
self.all_distros = []
self.all_sdk_machines = []
self.max_threads = params["max_threads"]
self.all_layers = []
self.core_base = params["core_base"]
self.image_names = []
# for build log to show
self.bb_version = ""
self.target_arch = ""
self.target_os = ""
self.distro_version = ""
self.tune_pkgarch = ""
def update(self, params):
self.max_threads = params["max_threads"]
self.core_base = params["core_base"]
self.image_addr = params["image_addr"]
self.image_types = params["image_types"].split()
self.runnable_image_types = params["runnable_image_types"].split()
self.runnable_machine_patterns = params["runnable_machine_patterns"].split()
self.deployable_image_types = params["deployable_image_types"].split()
self.tmpdir = params["tmpdir"]
self.distro_version = params["distro_version"]
self.target_os = params["target_os"]
self.target_arch = params["target_arch"]
self.tune_pkgarch = params["tune_pkgarch"]
# for build log to show
self.bb_version = params["bb_version"]
self.tune_arch = params["tune_arch"]
self.enable_proxy = False
self.target_arch = params["target_arch"]
self.target_os = params["target_os"]
self.distro_version = params["distro_version"]
self.tune_pkgarch = params["tune_pkgarch"]
def hob_conf_filter(fn, data):
if fn.endswith("/local.conf"):
distro = data.getVar("DISTRO_HOB")
if distro:
if distro != "defaultsetup":
data.setVar("DISTRO", distro)
else:
data.delVar("DISTRO")
keys = ["MACHINE_HOB", "SDKMACHINE_HOB", "PACKAGE_CLASSES_HOB", \
"BB_NUMBER_THREADS_HOB", "PARALLEL_MAKE_HOB", "DL_DIR_HOB", \
"SSTATE_DIR_HOB", "SSTATE_MIRROR_HOB", "INCOMPATIBLE_LICENSE_HOB"]
for key in keys:
var_hob = data.getVar(key)
if var_hob:
data.setVar(key.split("_HOB")[0], var_hob)
return
if fn.endswith("/bblayers.conf"):
layers = data.getVar("BBLAYERS_HOB")
if layers:
data.setVar("BBLAYERS", layers)
return
class Builder(gtk.Window):
(MACHINE_SELECTION,
LAYER_CHANGED,
RCPPKGINFO_POPULATING,
RCPPKGINFO_POPULATED,
BASEIMG_SELECTED,
@@ -192,7 +282,7 @@ class Builder(gtk.Window):
IMAGE_GENERATED,
MY_IMAGE_OPENED,
BACK,
END_NOOP) = range(15)
END_NOOP) = range(14)
(IMAGE_CONFIGURATION,
RECIPE_DETAILS,
@@ -203,7 +293,6 @@ class Builder(gtk.Window):
__step2page__ = {
MACHINE_SELECTION : IMAGE_CONFIGURATION,
LAYER_CHANGED : IMAGE_CONFIGURATION,
RCPPKGINFO_POPULATING : IMAGE_CONFIGURATION,
RCPPKGINFO_POPULATED : IMAGE_CONFIGURATION,
BASEIMG_SELECTED : IMAGE_CONFIGURATION,
@@ -221,11 +310,18 @@ class Builder(gtk.Window):
def __init__(self, hobHandler, recipe_model, package_model):
super(Builder, self).__init__()
self.hob_image = "hob-image"
self.hob_toolchain = "hob-toolchain"
# handler
self.handler = hobHandler
self.template = None
# configuration and parameters
self.configuration = Configuration()
self.parameters = Parameters()
# build step
self.current_step = None
self.previous_step = None
@@ -236,6 +332,12 @@ class Builder(gtk.Window):
self.recipe_model = recipe_model
self.package_model = package_model
# Indicate whether user has customized the image
self.customized = False
# Indicate whether the UI is working
self.sensitive = True
# create visual elements
self.create_visual_elements()
@@ -245,7 +347,6 @@ class Builder(gtk.Window):
self.package_model.connect("package-selection-changed", self.packagelist_changed_cb)
self.handler.connect("config-updated", self.handler_config_updated_cb)
self.handler.connect("package-formats-updated", self.handler_package_formats_updated_cb)
self.handler.connect("layers-updated", self.handler_layers_updated_cb)
self.handler.connect("parsing-started", self.handler_parsing_started_cb)
self.handler.connect("parsing", self.handler_parsing_cb)
self.handler.connect("parsing-completed", self.handler_parsing_completed_cb)
@@ -254,16 +355,18 @@ class Builder(gtk.Window):
self.handler.build.connect("build-failed", self.handler_build_failed_cb)
self.handler.build.connect("task-started", self.handler_task_started_cb)
self.handler.build.connect("log-error", self.handler_build_failure_cb)
self.handler.build.connect("no-provider", self.handler_no_provider_cb)
self.handler.connect("generating-data", self.handler_generating_data_cb)
self.handler.connect("data-generated", self.handler_data_generated_cb)
self.handler.connect("command-succeeded", self.handler_command_succeeded_cb)
self.handler.connect("command-failed", self.handler_command_failed_cb)
self.handler.connect("sanity-failed", self.handler_sanity_failed_cb)
self.handler.connect("recipe-populated", self.handler_recipe_populated_cb)
self.handler.connect("package-populated", self.handler_package_populated_cb)
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.handler.parse_config()
self.handler.set_config_filter(hob_conf_filter)
self.switch_page(self.MACHINE_SELECTION)
self.initiate_new_build_async()
def create_visual_elements(self):
self.set_title("Hob")
@@ -299,21 +402,99 @@ class Builder(gtk.Window):
self.show_all()
self.nb.set_current_page(0)
def initiate_new_build_async(self):
self.switch_page(self.MACHINE_SELECTION)
if self.load_template(TemplateMgr.convert_to_template_pathfilename("default", ".hob/")) == None:
self.handler.init_cooker()
self.handler.set_extra_inherit("image_types")
self.handler.generate_configuration()
def update_config_async(self):
self.switch_page(self.MACHINE_SELECTION)
self.set_user_config()
self.handler.generate_configuration()
def sanity_check(self):
self.handler.trigger_sanity_check()
def populate_recipe_package_info_async(self):
self.switch_page(self.RCPPKGINFO_POPULATING)
# Parse recipes
self.set_user_config()
self.handler.generate_recipes()
def generate_packages_async(self):
self.switch_page(self.PACKAGE_GENERATING)
# Build packages
_, all_recipes = self.recipe_model.get_selected_recipes()
self.set_user_config()
self.handler.reset_build()
self.handler.generate_packages(all_recipes, self.configuration.default_task)
def fast_generate_image_async(self):
self.switch_page(self.FAST_IMAGE_GENERATING)
# Build packages
_, all_recipes = self.recipe_model.get_selected_recipes()
self.set_user_config()
self.handler.reset_build()
self.handler.generate_packages(all_recipes, self.configuration.default_task)
def generate_image_async(self):
self.switch_page(self.IMAGE_GENERATING)
self.handler.reset_build()
# Build image
self.set_user_config()
toolchain_packages = []
if self.configuration.toolchain_build:
toolchain_packages = self.package_model.get_selected_packages_toolchain()
if self.configuration.selected_image == self.recipe_model.__dummy_image__:
packages = self.package_model.get_selected_packages()
image = self.hob_image
else:
packages = []
image = self.configuration.selected_image
self.handler.generate_image(image,
self.hob_toolchain,
packages,
toolchain_packages,
self.configuration.default_task)
def get_parameters_sync(self):
return self.handler.get_parameters()
def request_package_info_async(self):
self.handler.request_package_info()
def cancel_build_sync(self, force=False):
self.handler.cancel_build(force)
def cancel_parse_sync(self):
self.handler.cancel_parse()
def load_template(self, path):
if not os.path.isfile(path):
return None
self.template = TemplateMgr()
self.template.load(path)
self.configuration.load(self.template)
try:
self.template.load(path)
self.configuration.load(self.template)
except Exception as e:
self.show_error_dialog("Hob Exception - %s" % (str(e)))
self.reset()
finally:
self.template.destroy()
self.template = None
for layer in self.configuration.layers:
if not os.path.exists(layer+'/conf/layer.conf'):
return False
self.switch_page(self.LAYER_CHANGED)
self.save_defaults() # remember layers and settings
self.update_config_async()
return True
self.template.destroy()
self.template = None
def save_template(self, path):
def save_template(self, path, defaults=False):
if path.rfind("/") == -1:
filename = "default"
path = "."
@@ -322,12 +503,22 @@ class Builder(gtk.Window):
path = path[0:path.rfind("/")]
self.template = TemplateMgr()
self.template.open(filename, path)
self.configuration.save(self.template, filename)
try:
self.template.open(filename, path)
self.configuration.save(self.template, defaults)
self.template.save()
self.template.destroy()
self.template = None
self.template.save()
except Exception as e:
self.show_error_dialog("Hob Exception - %s" % (str(e)))
self.reset()
finally:
self.template.destroy()
self.template = None
def save_defaults(self):
if not os.path.exists(".hob/"):
os.mkdir(".hob/")
self.save_template(".hob/default", True)
def switch_page(self, next_step):
# Main Workflow (Business Logic)
@@ -336,16 +527,10 @@ class Builder(gtk.Window):
if next_step == self.MACHINE_SELECTION: # init step
self.image_configuration_page.show_machine()
elif next_step == self.LAYER_CHANGED:
# after layers is changd by users
self.image_configuration_page.show_machine()
self.handler.refresh_layers(self.configuration.layers)
elif next_step == self.RCPPKGINFO_POPULATING:
# MACHINE CHANGED action or SETTINGS CHANGED
# show the progress bar
self.image_configuration_page.show_info_populating()
self.generate_recipes()
elif next_step == self.RCPPKGINFO_POPULATED:
self.image_configuration_page.show_info_populated()
@@ -362,7 +547,6 @@ class Builder(gtk.Window):
elif next_step == self.PACKAGE_GENERATING or next_step == self.FAST_IMAGE_GENERATING:
# both PACKAGE_GENEATING and FAST_IMAGE_GENERATING share the same page
self.build_details_page.show_page(next_step)
self.generate_packages()
elif next_step == self.PACKAGE_GENERATED:
pass
@@ -371,7 +555,6 @@ class Builder(gtk.Window):
# after packages are generated, selected_packages need to
# be updated in package_model per selected_image in recipe_model
self.build_details_page.show_page(next_step)
self.generate_image()
elif next_step == self.IMAGE_GENERATED:
self.image_details_page.show_page(next_step)
@@ -402,14 +585,22 @@ class Builder(gtk.Window):
self.handler.set_image_fstypes(self.configuration.image_fstypes)
self.handler.set_extra_config(self.configuration.extra_setting)
self.handler.set_extra_inherit("packageinfo")
self.handler.set_extra_inherit("image_types")
# set proxies
if self.parameters.enable_proxy:
if self.configuration.enable_proxy == True:
self.handler.set_http_proxy(self.configuration.http_proxy)
self.handler.set_https_proxy(self.configuration.https_proxy)
self.handler.set_ftp_proxy(self.configuration.ftp_proxy)
self.handler.set_all_proxy(self.configuration.all_proxy)
self.handler.set_git_proxy(self.configuration.git_proxy_host, self.configuration.git_proxy_port)
self.handler.set_cvs_proxy(self.configuration.cvs_proxy_host, self.configuration.cvs_proxy_port)
elif self.configuration.enable_proxy == False:
self.handler.set_http_proxy('')
self.handler.set_https_proxy('')
self.handler.set_ftp_proxy('')
self.handler.set_all_proxy('')
self.handler.set_git_proxy('', '')
self.handler.set_cvs_proxy('', '')
def update_recipe_model(self, selected_image, selected_recipes):
self.recipe_model.set_selected_image(selected_image)
@@ -419,25 +610,16 @@ class Builder(gtk.Window):
left = self.package_model.set_selected_packages(selected_packages)
self.configuration.selected_packages += left
def generate_packages(self):
# Build packages
_, all_recipes = self.recipe_model.get_selected_recipes()
self.set_user_config()
self.handler.reset_build()
self.handler.generate_packages(all_recipes)
def generate_recipes(self):
# Parse recipes
self.set_user_config()
self.handler.generate_recipes()
def generate_image(self):
# Build image
self.set_user_config()
all_packages = self.package_model.get_selected_packages()
self.handler.reset_build()
self.handler.generate_image(all_packages, self.configuration.toolchain_build)
def update_configuration_parameters(self, params):
if params:
self.configuration.update(params)
self.parameters.update(params)
def reset(self):
self.configuration.curr_mach = ""
self.configuration.clear_selection()
self.image_configuration_page.switch_machine_combo()
self.switch_page(self.MACHINE_SELECTION)
# Callback Functions
def handler_config_updated_cb(self, handler, which, values):
@@ -452,22 +634,17 @@ class Builder(gtk.Window):
def handler_package_formats_updated_cb(self, handler, formats):
self.parameters.all_package_formats = formats
def handler_layers_updated_cb(self, handler, layers):
self.parameters.all_layers = layers
def handler_command_succeeded_cb(self, handler, initcmd):
if initcmd == self.handler.PARSE_CONFIG:
# settings
params = self.handler.get_parameters()
self.configuration = Configuration(params)
self.parameters = Parameters(params)
self.handler.generate_configuration()
elif initcmd == self.handler.GENERATE_CONFIGURATION:
if initcmd == self.handler.GENERATE_CONFIGURATION:
self.update_configuration_parameters(self.get_parameters_sync())
self.sanity_check()
elif initcmd == self.handler.SANITY_CHECK:
self.image_configuration_page.switch_machine_combo()
elif initcmd in [self.handler.GENERATE_RECIPES,
self.handler.GENERATE_PACKAGES,
self.handler.GENERATE_IMAGE]:
self.handler.request_package_info_async()
self.update_configuration_parameters(self.get_parameters_sync())
self.request_package_info_async()
elif initcmd == self.handler.POPULATE_PACKAGEINFO:
if self.current_step == self.RCPPKGINFO_POPULATING:
self.switch_page(self.RCPPKGINFO_POPULATED)
@@ -476,25 +653,26 @@ class Builder(gtk.Window):
self.rcppkglist_populated()
if self.current_step == self.FAST_IMAGE_GENERATING:
self.switch_page(self.IMAGE_GENERATING)
elif self.current_step == self.PACKAGE_GENERATING:
self.switch_page(self.PACKAGE_GENERATED)
elif self.current_step == self.IMAGE_GENERATING:
self.switch_page(self.IMAGE_GENERATED)
self.generate_image_async()
def show_error_dialog(self, msg):
lbl = "<b>Error</b>\n"
lbl = lbl + "%s\n\n" % glib.markup_escape_text(msg)
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
response = dialog.run()
dialog.destroy()
def handler_command_failed_cb(self, handler, msg):
if msg:
lbl = "<b>Error</b>\n"
lbl = lbl + "%s\n\n" % msg
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_WARNING)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
response = dialog.run()
dialog.destroy()
self.handler.clear_busy()
self.configuration.curr_mach = None
self.image_configuration_page.switch_machine_combo()
self.switch_page(self.MACHINE_SELECTION)
self.show_error_dialog(msg)
self.reset()
def handler_sanity_failed_cb(self, handler, msg):
msg = msg.replace("your local.conf", "Settings")
self.show_error_dialog(msg)
self.reset()
def window_sensitive(self, sensitive):
self.image_configuration_page.machine_combo.set_sensitive(sensitive)
@@ -515,6 +693,7 @@ class Builder(gtk.Window):
self.get_root_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.LEFT_PTR))
else:
self.get_root_window().set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
self.sensitive = sensitive
def handler_generating_data_cb(self, handler):
@@ -528,11 +707,8 @@ class Builder(gtk.Window):
selected_recipes = self.configuration.selected_recipes[:]
selected_packages = self.configuration.selected_packages[:]
self.recipe_model.image_list_append(selected_image,
" ".join(selected_recipes),
" ".join(selected_packages))
self.image_configuration_page.update_image_combo(self.recipe_model, selected_image)
self.image_configuration_page.update_image_desc(selected_image)
self.update_recipe_model(selected_image, selected_recipes)
self.update_package_model(selected_packages)
@@ -542,6 +718,12 @@ class Builder(gtk.Window):
def packagelist_changed_cb(self, package_model):
self.package_details_page.refresh_selection()
def handler_recipe_populated_cb(self, handler):
self.image_configuration_page.update_progress_bar("Populated recipes", 0.99)
def handler_package_populated_cb(self, handler):
self.image_configuration_page.update_progress_bar("Populated packages", 1.0)
def handler_parsing_started_cb(self, handler, message):
if self.current_step != self.RCPPKGINFO_POPULATING:
return
@@ -561,7 +743,7 @@ class Builder(gtk.Window):
fraction = message["current"] * 1.0/message["total"]
if message["eventname"] == "TreeDataPreparationProgress":
fraction = 0.6 + 0.4 * fraction
fraction = 0.6 + 0.38 * fraction
else:
fraction = 0.6 * fraction
self.image_configuration_page.update_progress_bar(message["title"], fraction)
@@ -571,7 +753,7 @@ class Builder(gtk.Window):
return
if message["eventname"] == "TreeDataPreparationCompleted":
fraction = 1.0
fraction = 0.98
else:
fraction = 0.6
self.image_configuration_page.update_progress_bar(message["title"], fraction)
@@ -587,8 +769,6 @@ class Builder(gtk.Window):
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 0
self.build_details_page.update_progress_bar("Build Started: ", fraction)
self.build_details_page.reset_build_status()
self.build_details_page.reset_issues()
self.build_details_page.show_configurations(self.configuration, self.parameters)
def build_succeeded(self):
@@ -597,24 +777,42 @@ class Builder(gtk.Window):
elif self.current_step == self.IMAGE_GENERATING:
fraction = 1.0
self.parameters.image_names = []
linkname = 'hob-image-' + self.configuration.curr_mach
selected_image = self.recipe_model.get_selected_image()
if selected_image == self.recipe_model.__dummy_image__:
linkname = 'hob-image-' + self.configuration.curr_mach
else:
linkname = selected_image + '-' + self.configuration.curr_mach
for image_type in self.parameters.image_types:
linkpath = self.parameters.image_addr + '/' + linkname + '.' + image_type
if os.path.exists(linkpath):
self.parameters.image_names.append(os.readlink(linkpath))
for real_image_type in hcc.SUPPORTED_IMAGE_TYPES[image_type]:
linkpath = self.parameters.image_addr + '/' + linkname + '.' + real_image_type
if os.path.exists(linkpath):
self.parameters.image_names.append(os.readlink(linkpath))
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 1.0
self.build_details_page.update_progress_bar("Build Completed: ", fraction)
self.handler.build_succeeded_async()
self.stopping = False
def build_failed(self):
if self.current_step == self.FAST_IMAGE_GENERATING:
fraction = 0.9
if self.current_step == self.PACKAGE_GENERATING:
self.switch_page(self.PACKAGE_GENERATED)
elif self.current_step == self.IMAGE_GENERATING:
fraction = 1.0
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 1.0
self.build_details_page.update_progress_bar("Build Failed: ", fraction, False)
self.switch_page(self.IMAGE_GENERATED)
def build_failed(self):
if self.stopping:
status = "stop"
message = "Build stopped: "
fraction = self.build_details_page.progress_bar.get_fraction()
else:
if self.current_step == self.FAST_IMAGE_GENERATING:
fraction = 0.9
elif self.current_step == self.IMAGE_GENERATING:
fraction = 1.0
elif self.current_step == self.PACKAGE_GENERATING:
fraction = 1.0
status = "fail"
message = "Build failed: "
self.build_details_page.update_progress_bar(message, fraction, status)
self.build_details_page.show_back_button()
self.build_details_page.hide_stop_button()
self.handler.build_failed_async()
@@ -630,6 +828,14 @@ class Builder(gtk.Window):
def handler_build_failed_cb(self, running_build):
self.build_failed()
def handler_no_provider_cb(self, running_build, msg):
dialog = CrumbsMessageDialog(self, glib.markup_escape_text(msg), gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
dialog.run()
dialog.destroy()
self.build_failed()
def handler_task_started_cb(self, running_build, message):
fraction = message["current"] * 1.0/message["total"]
title = "Build packages"
@@ -662,6 +868,8 @@ class Builder(gtk.Window):
self.build_details_page.show_issues()
def destroy_window_cb(self, widget, event):
if not self.sensitive:
return True
lbl = "<b>Do you really want to exit the Hob image creator?</b>"
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_INFO)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
@@ -688,7 +896,7 @@ class Builder(gtk.Window):
dialog.run()
dialog.destroy()
return
self.switch_page(self.PACKAGE_GENERATING)
self.generate_packages_async()
def build_image(self):
selected_packages = self.package_model.get_selected_packages()
@@ -701,7 +909,7 @@ class Builder(gtk.Window):
dialog.run()
dialog.destroy()
return
self.switch_page(self.IMAGE_GENERATING)
self.generate_image_async()
def just_bake(self):
selected_image = self.recipe_model.get_selected_image()
@@ -718,11 +926,11 @@ class Builder(gtk.Window):
dialog.destroy()
return
self.switch_page(self.FAST_IMAGE_GENERATING)
self.fast_generate_image_async()
def show_binb_dialog(self, binb):
markup = "<b>Brought in by:</b>\n%s" % binb
ptip = PersistentTooltip(markup)
ptip = PersistentTooltip(markup, self)
ptip.show()
@@ -734,14 +942,17 @@ class Builder(gtk.Window):
flags = gtk.DIALOG_MODAL
| gtk.DIALOG_DESTROY_WITH_PARENT
| gtk.DIALOG_NO_SEPARATOR)
button = dialog.add_button("Close", gtk.RESPONSE_YES)
button = dialog.add_button("Cancel", gtk.RESPONSE_NO)
HobAltButton.style_button(button)
button = dialog.add_button("OK", gtk.RESPONSE_YES)
HobButton.style_button(button)
response = dialog.run()
if response == gtk.RESPONSE_YES:
self.configuration.layers = dialog.layers
self.save_defaults() # remember layers
# DO refresh layers
if dialog.layers_changed:
self.switch_page(self.LAYER_CHANGED)
self.update_config_async()
dialog.destroy()
def show_load_template_dialog(self):
@@ -757,10 +968,11 @@ class Builder(gtk.Window):
dialog.add_filter(filter)
response = dialog.run()
path = None
if response == gtk.RESPONSE_YES:
path = dialog.get_filename()
self.load_template(path)
dialog.destroy()
return response == gtk.RESPONSE_YES, path
def show_save_template_dialog(self):
dialog = gtk.FileChooserDialog("Save Template Files", self,
@@ -810,7 +1022,6 @@ class Builder(gtk.Window):
all_distros = self.parameters.all_distros,
all_sdk_machines = self.parameters.all_sdk_machines,
max_threads = self.parameters.max_threads,
enable_proxy = self.parameters.enable_proxy,
parent = self,
flags = gtk.DIALOG_MODAL
| gtk.DIALOG_DESTROY_WITH_PARENT
@@ -820,16 +1031,21 @@ class Builder(gtk.Window):
button = dialog.add_button("Save", gtk.RESPONSE_YES)
HobButton.style_button(button)
response = dialog.run()
settings_changed = False
if response == gtk.RESPONSE_YES:
self.parameters.enable_proxy = dialog.enable_proxy
self.configuration = dialog.configuration
# DO reparse recipes
if dialog.settings_changed:
if self.configuration.curr_mach == "":
self.switch_page(self.MACHINE_SELECTION)
else:
self.switch_page(self.RCPPKGINFO_POPULATING)
self.save_defaults() # remember settings
settings_changed = dialog.settings_changed
dialog.destroy()
return response == gtk.RESPONSE_YES, settings_changed
def reparse_post_adv_settings(self):
if not self.configuration.curr_mach:
self.update_config_async()
else:
self.configuration.clear_selection()
# DO reparse recipes
self.populate_recipe_package_info_async()
def deploy_image(self, image_name):
if not image_name:
@@ -887,12 +1103,13 @@ class Builder(gtk.Window):
if response == gtk.RESPONSE_YES:
source_env_path = os.path.join(self.parameters.core_base, "oe-init-build-env")
tmp_path = self.parameters.tmpdir
cmdline = bb.ui.crumbs.utils.which_terminal()
if os.path.exists(image_path) and os.path.exists(kernel_path) \
and os.path.exists(source_env_path) and os.path.exists(tmp_path):
cmdline = "/usr/bin/xterm -e "
cmdline += "\" export OE_TMPDIR=" + tmp_path + "; "
and os.path.exists(source_env_path) and os.path.exists(tmp_path) \
and cmdline:
cmdline += "\' bash -c \"export OE_TMPDIR=" + tmp_path + "; "
cmdline += "source " + source_env_path + " " + os.getcwd() + "; "
cmdline += "runqemu " + kernel_path + " " + image_path + "; bash\""
cmdline += "runqemu " + kernel_path + " " + image_path + "\"\'"
subprocess.Popen(shlex.split(cmdline))
else:
lbl = "<b>Path error</b>\nOne of your paths is wrong,"
@@ -901,6 +1118,7 @@ class Builder(gtk.Window):
lbl = lbl + "kernel path:" + kernel_path + "\n"
lbl = lbl + "source environment path:" + source_env_path + "\n"
lbl = lbl + "tmp path: " + tmp_path + "."
lbl = lbl + "You may be missing either xterm or vte for terminal services."
dialog = CrumbsMessageDialog(self, lbl, gtk.STOCK_DIALOG_ERROR)
button = dialog.add_button("Close", gtk.RESPONSE_OK)
HobButton.style_button(button)
@@ -921,7 +1139,7 @@ class Builder(gtk.Window):
response = dialog.run()
dialog.destroy()
if response == gtk.RESPONSE_YES:
self.switch_page(self.PACKAGE_GENERATING)
self.generate_packages_async()
else:
self.switch_page(self.PACKAGE_SELECTION)
else:
@@ -930,17 +1148,9 @@ class Builder(gtk.Window):
def show_recipes(self):
self.switch_page(self.RECIPE_SELECTION)
def initiate_new_build(self):
self.configuration.curr_mach = ""
self.image_configuration_page.switch_machine_combo()
self.switch_page(self.MACHINE_SELECTION)
def show_configuration(self):
self.switch_page(self.BASEIMG_SELECTED)
def stop_parse(self):
self.handler.cancel_parse()
def stop_build(self):
if self.stopping:
lbl = "<b>Force Stop build?</b>\nYou've already selected Stop once,"
@@ -974,6 +1184,6 @@ class Builder(gtk.Window):
if response != gtk.RESPONSE_CANCEL:
self.stopping = True
if response == gtk.RESPONSE_OK:
self.handler.cancel_build()
self.cancel_build_sync()
elif response == gtk.RESPONSE_YES:
self.handler.cancel_build(True)
self.cancel_build_sync(True)

View File

@@ -30,6 +30,7 @@ import shlex
from bb.ui.crumbs.hobcolor import HobColors
from bb.ui.crumbs.hobwidget import hcc, hic, HobViewTable, HobInfoButton, HobButton, HobAltButton, HobIconChecker
from bb.ui.crumbs.progressbar import HobProgressBar
import bb.ui.crumbs.utils
"""
The following are convenience classes for implementing GNOME HIG compliant
@@ -182,7 +183,7 @@ class AdvancedSettingDialog (CrumbsDialog):
check_hbox.pack_start(check_button, expand=False, fill=False)
check_hbox.show_all()
def gen_pkgfmt_widget(self, curr_package_format, all_package_format, tooltip=""):
def gen_pkgfmt_widget(self, curr_package_format, all_package_format, tooltip_combo="", tooltip_extra=""):
pkgfmt_hbox = gtk.HBox(False, 24)
rootfs_vbox = gtk.VBox(False, 6)
@@ -195,8 +196,7 @@ class AdvancedSettingDialog (CrumbsDialog):
if curr_package_format:
rootfs_format = curr_package_format.split()[0]
tooltip = "Package format that is used to generate rootfs"
rootfs_format_widget, rootfs_combo = self.gen_combo_widget(rootfs_format, all_package_format, tooltip)
rootfs_format_widget, rootfs_combo = self.gen_combo_widget(rootfs_format, all_package_format, tooltip_combo)
rootfs_vbox.pack_start(rootfs_format_widget, expand=False, fill=False)
extra_vbox = gtk.VBox(False, 6)
@@ -214,8 +214,7 @@ class AdvancedSettingDialog (CrumbsDialog):
check_button.set_active(is_active)
check_hbox.pack_start(check_button, expand=False, fill=False)
tooltip = "Extra package formats to build"
info = HobInfoButton(tooltip, self)
info = HobInfoButton(tooltip_extra, self)
check_hbox.pack_end(info, expand=False, fill=False)
rootfs_combo.connect("changed", self.rootfs_combo_changed_cb, all_package_format, check_hbox)
@@ -310,7 +309,7 @@ class AdvancedSettingDialog (CrumbsDialog):
def __init__(self, title, configuration, all_image_types,
all_package_formats, all_distros, all_sdk_machines,
max_threads, enable_proxy, parent, flags, buttons=None):
max_threads, parent, flags, buttons=None):
super(AdvancedSettingDialog, self).__init__(title, parent, flags, buttons)
# class members from other objects
@@ -321,7 +320,6 @@ class AdvancedSettingDialog (CrumbsDialog):
self.all_distros = all_distros
self.all_sdk_machines = all_sdk_machines
self.max_threads = max_threads
self.enable_proxy = enable_proxy
# class members for internal use
self.distro_combo = None
@@ -337,19 +335,40 @@ class AdvancedSettingDialog (CrumbsDialog):
self.setting_store = None
self.image_types_checkbuttons = {}
self.variables = {}
self.variables["PACKAGE_FORMAT"] = self.configuration.curr_package_format
self.variables["INCOMPATIBLE_LICENSE"] = self.configuration.incompat_license
self.variables["IMAGE_FSTYPES"] = self.configuration.image_fstypes
for key in self.configuration.extra_setting.keys():
self.variables[key] = self.configuration.extra_setting[key]
self.md5 = hashlib.md5(str(sorted(self.variables.items()))).hexdigest()
self.md5 = self.config_md5()
self.settings_changed = False
# create visual elements on the dialog
self.create_visual_elements()
self.connect("response", self.response_cb)
def _get_sorted_value(self, var):
return " ".join(sorted(str(var).split())) + "\n"
def config_md5(self):
data = ""
data += ("PACKAGE_CLASSES: " + self.configuration.curr_package_format + '\n')
data += ("DISTRO: " + self._get_sorted_value(self.configuration.curr_distro))
data += ("IMAGE_ROOTFS_SIZE: " + self._get_sorted_value(self.configuration.image_rootfs_size))
data += ("IMAGE_EXTRA_SIZE: " + self._get_sorted_value(self.configuration.image_extra_size))
data += ("INCOMPATIBLE_LICENSE: " + self._get_sorted_value(self.configuration.incompat_license))
data += ("SDK_MACHINE: " + self._get_sorted_value(self.configuration.curr_sdk_machine))
data += ("TOOLCHAIN_BUILD: " + self._get_sorted_value(self.configuration.toolchain_build))
data += ("IMAGE_FSTYPES: " + self._get_sorted_value(self.configuration.image_fstypes))
data += ("ENABLE_PROXY: " + self._get_sorted_value(self.configuration.enable_proxy))
if self.configuration.enable_proxy:
data += ("ALL_PROXY: " + self._get_sorted_value(self.configuration.all_proxy))
data += ("HTTP_PROXY: " + self._get_sorted_value(self.configuration.http_proxy))
data += ("HTTPS_PROXY: " + self._get_sorted_value(self.configuration.https_proxy))
data += ("FTP_PROXY: " + self._get_sorted_value(self.configuration.ftp_proxy))
data += ("GIT_PROXY_HOST: " + self._get_sorted_value(self.configuration.git_proxy_host))
data += ("GIT_PROXY_PORT: " + self._get_sorted_value(self.configuration.git_proxy_port))
data += ("CVS_PROXY_HOST: " + self._get_sorted_value(self.configuration.cvs_proxy_host))
data += ("CVS_PROXY_PORT: " + self._get_sorted_value(self.configuration.cvs_proxy_port))
for key in self.configuration.extra_setting.keys():
data += (key + ": " + self._get_sorted_value(self.configuration.extra_setting[key]))
return hashlib.md5(data).hexdigest()
def create_visual_elements(self):
self.nb = gtk.Notebook()
self.nb.set_show_tabs(True)
@@ -372,7 +391,7 @@ class AdvancedSettingDialog (CrumbsDialog):
table = gtk.Table(rows + 1, 10, True)
advanced_vbox.pack_start(table, expand=False, fill=False)
tooltip = "Select image file system types that will be used."
tooltip = "Image file system types you want."
info = HobInfoButton(tooltip, self)
label = self.gen_label_widget("<span weight=\"bold\">Select image types:</span>")
table.attach(label, 0, 9, 0, 1)
@@ -382,9 +401,12 @@ class AdvancedSettingDialog (CrumbsDialog):
j = 1
for image_type in self.image_types:
self.image_types_checkbuttons[image_type] = gtk.CheckButton(image_type)
self.image_types_checkbuttons[image_type].set_tooltip_text("Build an %s image" % image_type)
article = ""
if image_type.startswith(("a", "e", "i", "o", "u")):
article = "n"
self.image_types_checkbuttons[image_type].set_tooltip_text("Build a%s %s image" % (article, image_type))
table.attach(self.image_types_checkbuttons[image_type], j, j + 4, i, i + 1)
if image_type in self.configuration.image_fstypes:
if image_type in self.configuration.image_fstypes.split():
self.image_types_checkbuttons[image_type].set_active(True)
i += 1
if i > rows:
@@ -399,26 +421,26 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Packaging Format:</span>")
tooltip = "Select package formats that will be used. "
tooltip += "The first format will be used for final image"
pkgfmt_widget, self.rootfs_combo, self.check_hbox = self.gen_pkgfmt_widget(self.configuration.curr_package_format, self.all_package_formats, tooltip)
label = self.gen_label_widget("<span weight=\"bold\">Packaging format:</span>")
tooltip_combo = "Selects the package format used to generate rootfs."
tooltip_extra = "Selects extra package formats to build"
pkgfmt_widget, self.rootfs_combo, self.check_hbox = self.gen_pkgfmt_widget(self.configuration.curr_package_format, self.all_package_formats, tooltip_combo, tooltip_extra)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(pkgfmt_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Image Rootfs Size: (MB)</span>")
tooltip = "Sets the size of your target image.\nThis is the basic size of your target image, unless your selected package size exceeds this value, or you set value to \"Image Extra Size\"."
rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 1024, tooltip)
label = self.gen_label_widget("<span weight=\"bold\">Image rootfs size: (MB)</span>")
tooltip = "Sets the basic size of your target image.\nThis is the basic size of your target image unless your selected package size exceeds this value or you select \'Image Extra Size\'."
rootfs_size_widget, self.rootfs_size_spinner = self.gen_spinner_widget(int(self.configuration.image_rootfs_size*1.0/1024), 0, 65536, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(rootfs_size_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Image Extra Size: (MB)</span>")
tooltip = "Sets the extra free space of your target image.\nDefaultly, system will reserve 30% of your image size as your free space. If your image contains zypper, it will bring in 50MB more space. The maximum free space is 1024MB."
extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 1024, tooltip)
label = self.gen_label_widget("<span weight=\"bold\">Image extra size: (MB)</span>")
tooltip = "Sets the extra free space of your target image.\nBy default, the system reserves 30% of your image size as free space. If your image contains zypper, it brings in 50MB more space. The maximum free space is 64GB."
extra_size_widget, self.extra_size_spinner = self.gen_spinner_widget(int(self.configuration.image_extra_size*1.0/1024), 0, 65536, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(extra_size_widget, expand=False, fill=False)
@@ -432,12 +454,12 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_hbox = gtk.HBox(False, 6)
advanced_vbox.pack_start(sub_hbox, expand=False, fill=False)
self.toolchain_checkbox = gtk.CheckButton("Build Toolchain")
self.toolchain_checkbox = gtk.CheckButton("Build toolchain")
self.toolchain_checkbox.set_tooltip_text("Check this box to build the related toolchain with your image")
self.toolchain_checkbox.set_active(self.configuration.toolchain_build)
sub_hbox.pack_start(self.toolchain_checkbox, expand=False, fill=False)
tooltip = "This is the Host platform you would like to run the toolchain"
tooltip = "Selects the host platform for which you want to run the toolchain"
sdk_machine_widget, self.sdk_machine_combo = self.gen_combo_widget(self.configuration.curr_sdk_machine, self.all_sdk_machines, tooltip)
sub_hbox.pack_start(sdk_machine_widget, expand=False, fill=False)
@@ -449,31 +471,35 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Select Distro:</span>")
tooltip = "This is the Yocto distribution you would like to use"
label = self.gen_label_widget("<span weight=\"bold\">Select distro:</span>")
tooltip = "Selects the Yocto Project distribution you want"
distro_widget, self.distro_combo = self.gen_combo_widget(self.configuration.curr_distro, self.all_distros, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(distro_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">BB_NUMBER_THREADS:</span>")
tooltip = "Sets the number of threads that bitbake tasks can run simultaneously"
label = self.gen_label_widget("<span weight=\"bold\">BB number threads:</span>")
tooltip = "Sets the number of threads that BitBake tasks can simultaneously run. See the <a href=\""
tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/"
tooltip += "poky-ref-manual.html#var-BB_NUMBER_THREADS\">Poky reference manual</a> for information"
bbthread_widget, self.bb_spinner = self.gen_spinner_widget(self.configuration.bbthread, 1, self.max_threads, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(bbthread_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">PARALLEL_MAKE:</span>")
tooltip = "Sets the make parallism, as known as 'make -j'"
label = self.gen_label_widget("<span weight=\"bold\">Parallel make:</span>")
tooltip = "Sets the maximum number of threads the host can use during the build. See the <a href=\""
tooltip += "http://www.yoctoproject.org/docs/current/poky-ref-manual/"
tooltip += "poky-ref-manual.html#var-PARALLEL_MAKE\">Poky reference manual</a> for information"
pmake_widget, self.pmake_spinner = self.gen_spinner_widget(self.configuration.pmake, 1, self.max_threads, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(pmake_widget, expand=False, fill=False)
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set Download Directory:</span>")
label = self.gen_label_widget("<span weight=\"bold\">Select download directory:</span>")
tooltip = "Select a folder that caches the upstream project source code"
dldir_widget, self.dldir_text = self.gen_entry_widget(self.configuration.dldir, self, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
@@ -481,7 +507,7 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Select SSTATE Directory:</span>")
label = self.gen_label_widget("<span weight=\"bold\">Select SSTATE directory:</span>")
tooltip = "Select a folder that caches your prebuilt results"
sstatedir_widget, self.sstatedir_text = self.gen_entry_widget(self.configuration.sstatedir, self, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
@@ -489,8 +515,8 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Select SSTATE Mirror:</span>")
tooltip = "Select the prebuilt mirror that will fasten your build speed"
label = self.gen_label_widget("<span weight=\"bold\">Select SSTATE mirror:</span>")
tooltip = "Select the pre-built mirror that will speed your build"
sstatemirror_widget, self.sstatemirror_text = self.gen_entry_widget(self.configuration.sstatemirror, self, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(sstatemirror_widget, expand=False, fill=False)
@@ -503,57 +529,57 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=False, fill=False)
self.proxy_checkbox = gtk.CheckButton("Enable Proxy")
self.proxy_checkbox = gtk.CheckButton("Enable proxy")
self.proxy_checkbox.set_tooltip_text("Check this box to setup the proxy you specified")
self.proxy_checkbox.set_active(self.enable_proxy)
self.proxy_checkbox.set_active(self.configuration.enable_proxy)
self.proxy_checkbox.connect("toggled", self.proxy_checkbox_toggled_cb)
sub_vbox.pack_start(self.proxy_checkbox, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set all proxy:</span>")
tooltip = "Set the all proxy that will be used if the proxy for a URL isn't specified."
proxy_widget, self.all_proxy_text = self.gen_entry_widget(self.configuration.all_proxy, self, tooltip, False)
self.all_proxy_text.set_editable(self.enable_proxy)
self.all_proxy_text.set_sensitive(self.enable_proxy)
self.all_proxy_text.set_editable(self.configuration.enable_proxy)
self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set http proxy:</span>")
tooltip = "Set the http proxy that will be used in do_fetch() source code"
proxy_widget, self.http_proxy_text = self.gen_entry_widget(self.configuration.http_proxy, self, tooltip, False)
self.http_proxy_text.set_editable(self.enable_proxy)
self.http_proxy_text.set_sensitive(self.enable_proxy)
self.http_proxy_text.set_editable(self.configuration.enable_proxy)
self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set https proxy:</span>")
tooltip = "Set the https proxy that will be used in do_fetch() source code"
proxy_widget, self.https_proxy_text = self.gen_entry_widget(self.configuration.https_proxy, self, tooltip, False)
self.https_proxy_text.set_editable(self.enable_proxy)
self.https_proxy_text.set_sensitive(self.enable_proxy)
self.https_proxy_text.set_editable(self.configuration.enable_proxy)
self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set ftp proxy:</span>")
tooltip = "Set the ftp proxy that will be used in do_fetch() source code"
proxy_widget, self.ftp_proxy_text = self.gen_entry_widget(self.configuration.ftp_proxy, self, tooltip, False)
self.ftp_proxy_text.set_editable(self.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.enable_proxy)
self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set git proxy:</span>")
tooltip = "Set the git proxy that will be used in do_fetch() source code"
proxy_widget, self.git_proxy_text = self.gen_entry_widget(self.configuration.git_proxy_host + ':' + self.configuration.git_proxy_port, self, tooltip, False)
self.git_proxy_text.set_editable(self.enable_proxy)
self.git_proxy_text.set_sensitive(self.enable_proxy)
self.git_proxy_text.set_editable(self.configuration.enable_proxy)
self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
label = self.gen_label_widget("<span weight=\"bold\">Set cvs proxy:</span>")
tooltip = "Set the cvs proxy that will be used in do_fetch() source code"
proxy_widget, self.cvs_proxy_text = self.gen_entry_widget(self.configuration.cvs_proxy_host + ':' + self.configuration.cvs_proxy_port, self, tooltip, False)
self.cvs_proxy_text.set_editable(self.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.enable_proxy)
self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(proxy_widget, expand=False, fill=False)
@@ -566,7 +592,7 @@ class AdvancedSettingDialog (CrumbsDialog):
sub_vbox = gtk.VBox(False, 6)
advanced_vbox.pack_start(sub_vbox, expand=True, fill=True)
label = self.gen_label_widget("<span weight=\"bold\">Add your own variables:</span>")
tooltip = "This is the key/value pair for your extra settings"
tooltip = "These are key/value pairs for your extra settings. Click \'Add\' and then directly edit the key and the value"
setting_widget, self.setting_store = self.gen_editable_settings(self.configuration.extra_setting, tooltip)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(setting_widget, expand=True, fill=True)
@@ -574,30 +600,27 @@ class AdvancedSettingDialog (CrumbsDialog):
return advanced_vbox
def proxy_checkbox_toggled_cb(self, button):
self.enable_proxy = self.proxy_checkbox.get_active()
self.all_proxy_text.set_editable(self.enable_proxy)
self.all_proxy_text.set_sensitive(self.enable_proxy)
self.http_proxy_text.set_editable(self.enable_proxy)
self.http_proxy_text.set_sensitive(self.enable_proxy)
self.https_proxy_text.set_editable(self.enable_proxy)
self.https_proxy_text.set_sensitive(self.enable_proxy)
self.ftp_proxy_text.set_editable(self.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.enable_proxy)
self.git_proxy_text.set_editable(self.enable_proxy)
self.git_proxy_text.set_sensitive(self.enable_proxy)
self.cvs_proxy_text.set_editable(self.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.enable_proxy)
self.configuration.enable_proxy = self.proxy_checkbox.get_active()
self.all_proxy_text.set_editable(self.configuration.enable_proxy)
self.all_proxy_text.set_sensitive(self.configuration.enable_proxy)
self.http_proxy_text.set_editable(self.configuration.enable_proxy)
self.http_proxy_text.set_sensitive(self.configuration.enable_proxy)
self.https_proxy_text.set_editable(self.configuration.enable_proxy)
self.https_proxy_text.set_sensitive(self.configuration.enable_proxy)
self.ftp_proxy_text.set_editable(self.configuration.enable_proxy)
self.ftp_proxy_text.set_sensitive(self.configuration.enable_proxy)
self.git_proxy_text.set_editable(self.configuration.enable_proxy)
self.git_proxy_text.set_sensitive(self.configuration.enable_proxy)
self.cvs_proxy_text.set_editable(self.configuration.enable_proxy)
self.cvs_proxy_text.set_sensitive(self.configuration.enable_proxy)
def response_cb(self, dialog, response_id):
self.variables = {}
package_format = []
package_format.append(self.rootfs_combo.get_active_text())
for child in self.check_hbox:
if isinstance(child, gtk.CheckButton) and child.get_active():
package_format.append(child.get_label())
self.configuration.curr_package_format = " ".join(package_format)
self.variables["PACKAGE_FORMAT"] = self.configuration.curr_package_format
self.configuration.curr_distro = self.distro_combo.get_active_text()
self.configuration.dldir = self.dldir_text.get_text()
@@ -608,11 +631,11 @@ class AdvancedSettingDialog (CrumbsDialog):
self.configuration.image_rootfs_size = self.rootfs_size_spinner.get_value_as_int() * 1024
self.configuration.image_extra_size = self.extra_size_spinner.get_value_as_int() * 1024
self.configuration.image_fstypes = []
self.configuration.image_fstypes = ""
for image_type in self.image_types:
if self.image_types_checkbuttons[image_type].get_active():
self.configuration.image_fstypes.append(image_type)
self.variables["IMAGE_FSTYPES"] = self.configuration.image_fstypes
self.configuration.image_fstypes += (" " + image_type)
self.configuration.image_fstypes.strip()
if self.gplv3_checkbox.get_active():
if "GPLv3" not in self.configuration.incompat_license.split():
@@ -622,7 +645,6 @@ class AdvancedSettingDialog (CrumbsDialog):
self.configuration.incompat_license = self.configuration.incompat_license.split().remove("GPLv3")
self.configuration.incompat_license = " ".join(self.configuration.incompat_license or [])
self.configuration.incompat_license = self.configuration.incompat_license.strip()
self.variables["INCOMPATIBLE_LICENSE"] = self.configuration.incompat_license
self.configuration.toolchain_build = self.toolchain_checkbox.get_active()
@@ -632,7 +654,6 @@ class AdvancedSettingDialog (CrumbsDialog):
key = self.setting_store.get_value(it, 0)
value = self.setting_store.get_value(it, 1)
self.configuration.extra_setting[key] = value
self.variables[key] = value
it = self.setting_store.iter_next(it)
self.configuration.all_proxy = self.all_proxy_text.get_text()
@@ -642,7 +663,7 @@ class AdvancedSettingDialog (CrumbsDialog):
self.configuration.git_proxy_host, self.configuration.git_proxy_port = self.git_proxy_text.get_text().split(':')
self.configuration.cvs_proxy_host, self.configuration.cvs_proxy_port = self.cvs_proxy_text.get_text().split(':')
md5 = hashlib.md5(str(sorted(self.variables.items()))).hexdigest()
md5 = self.config_md5()
self.settings_changed = (self.md5 != md5)
#
@@ -731,11 +752,12 @@ class DeployImageDialog (CrumbsDialog):
if response_id == gtk.RESPONSE_YES:
combo_item = self.usb_combo.get_active_text()
if combo_item and combo_item != self.__dummy_usb__:
cmdline = "/usr/bin/xterm -e "
cmdline += "\"sudo dd if=" + self.image_path + " of=" + combo_item + "; bash\""
subprocess.Popen(args=shlex.split(cmdline))
cmdline = bb.ui.crumbs.utils.which_terminal()
if cmdline:
cmdline += "\"sudo dd if=" + self.image_path + " of=" + combo_item + "\""
subprocess.Popen(args=shlex.split(cmdline))
def update_progress_bar(self, title, fraction, status=True):
def update_progress_bar(self, title, fraction, status=None):
self.progress_bar.update(fraction)
self.progress_bar.set_title(title)
self.progress_bar.set_rcstyle(status)
@@ -952,7 +974,10 @@ class LayerSelectionDialog (CrumbsDialog):
layers.append(model.get_value(it, 0))
it = model.iter_next(it)
self.layers_changed = (self.layers != layers)
orig_layers = sorted(self.layers)
layers.sort()
self.layers_changed = (orig_layers != layers)
self.layers = layers
"""
@@ -1091,7 +1116,7 @@ class ImageSelectionDialog (CrumbsDialog):
for image_type in self.image_types:
for real_image_type in hcc.SUPPORTED_IMAGE_TYPES[image_type]:
if f.endswith('.' + real_image_type):
imageset.add(f.rsplit('.' + real_image_type)[0])
imageset.add(f.rsplit('.' + real_image_type)[0].rsplit('.rootfs')[0])
self.image_list.append(f)
for image in imageset:

View File

@@ -21,17 +21,15 @@
class HobColors:
WHITE = "#ffffff"
PALE_GREEN = "#aaffaa"
ORANGE = "#ff7c24"
ORANGE = "#eb8e68"
PALE_RED = "#ffaaaa"
GRAY = "#aaaaaa"
LIGHT_GRAY = "#dddddd"
DEEP_GRAY = "#7c7c77"
SLIGHT_DARK = "#5f5f5f"
DARK = "#3c3b37"
BLACK = "#000000"
LIGHT_ORANGE = "#f7a787"
YELLOW = "#ffff00"
PALE_BLUE = "#53b8ff"
DEEP_RED = "#aa3e3e"
OK = WHITE
RUNNING = PALE_GREEN

View File

@@ -30,9 +30,6 @@ class HobHandler(gobject.GObject):
This object does BitBake event handling for the hob gui.
"""
__gsignals__ = {
"layers-updated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
"package-formats-updated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
@@ -45,6 +42,9 @@ class HobHandler(gobject.GObject):
"command-failed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING,)),
"sanity-failed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_STRING,)),
"generating-data" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
@@ -60,10 +60,16 @@ class HobHandler(gobject.GObject):
"parsing-completed" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
"recipe-populated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
"package-populated" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
}
(PARSE_CONFIG, GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO) = range(6)
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(10)
(GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK) = range(6)
(SUB_PATH_LAYERS, SUB_FILES_DISTRO, SUB_FILES_MACH, SUB_FILES_SDKMACH, SUB_MATCH_CLASS, SUB_PARSE_CONFIG, SUB_SANITY_CHECK, SUB_GNERATE_TGTS, SUB_GENERATE_PKGINFO, SUB_BUILD_RECIPES, SUB_BUILD_IMAGE) = range(11)
def __init__(self, server, recipe_model, package_model):
super(HobHandler, self).__init__()
@@ -94,6 +100,15 @@ class HobHandler(gobject.GObject):
self.emit("data-generated")
self.generating = False
def runCommand(self, commandline):
try:
return self.server.runCommand(commandline)
except Exception as e:
self.commands_async = []
self.clear_busy()
self.emit("command-failed", "Hob Exception - %s" % (str(e)))
return None
def run_next_command(self, initcmd=None):
if initcmd != None:
self.initcmd = initcmd
@@ -108,37 +123,39 @@ class HobHandler(gobject.GObject):
return
if next_command == self.SUB_PATH_LAYERS:
self.server.runCommand(["findConfigFilePath", "bblayers.conf"])
self.runCommand(["findConfigFilePath", "bblayers.conf"])
elif next_command == self.SUB_FILES_DISTRO:
self.server.runCommand(["findConfigFiles", "DISTRO"])
self.runCommand(["findConfigFiles", "DISTRO"])
elif next_command == self.SUB_FILES_MACH:
self.server.runCommand(["findConfigFiles", "MACHINE"])
self.runCommand(["findConfigFiles", "MACHINE"])
elif next_command == self.SUB_FILES_SDKMACH:
self.server.runCommand(["findConfigFiles", "MACHINE-SDK"])
self.runCommand(["findConfigFiles", "MACHINE-SDK"])
elif next_command == self.SUB_MATCH_CLASS:
self.server.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
self.runCommand(["findFilesMatchingInDir", "rootfs_", "classes"])
elif next_command == self.SUB_PARSE_CONFIG:
self.server.runCommand(["parseConfigurationFiles", "", ""])
self.runCommand(["parseConfigurationFiles", "", ""])
elif next_command == self.SUB_GNERATE_TGTS:
self.server.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
self.runCommand(["generateTargetsTree", "classes/image.bbclass", []])
elif next_command == self.SUB_GENERATE_PKGINFO:
self.server.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
self.runCommand(["triggerEvent", "bb.event.RequestPackageInfo()"])
elif next_command == self.SUB_SANITY_CHECK:
self.runCommand(["triggerEvent", "bb.event.SanityCheck()"])
elif next_command == self.SUB_BUILD_RECIPES:
self.clear_busy()
self.building = True
self.server.runCommand(["buildTargets", self.recipe_queue, "build"])
self.runCommand(["buildTargets", self.recipe_queue, self.default_task])
self.recipe_queue = []
elif next_command == self.SUB_BUILD_IMAGE:
self.clear_busy()
self.building = True
targets = ["hob-image"]
self.server.runCommand(["setVariable", "LINGUAS_INSTALL", ""])
self.server.runCommand(["setVariable", "PACKAGE_INSTALL", " ".join(self.package_queue)])
if self.toolchain_build:
pkgs = self.package_queue + [i+'-dev' for i in self.package_queue] + [i+'-dbg' for i in self.package_queue]
self.server.runCommand(["setVariable", "TOOLCHAIN_TARGET_TASK", " ".join(pkgs)])
targets.append("hob-toolchain")
self.server.runCommand(["buildTargets", targets, "build"])
targets = [self.image]
if self.package_queue:
self.runCommand(["setVariable", "LINGUAS_INSTALL", ""])
self.runCommand(["setVariable", "PACKAGE_INSTALL", " ".join(self.package_queue)])
if self.toolchain_packages:
self.runCommand(["setVariable", "TOOLCHAIN_TARGET_TASK", " ".join(self.toolchain_packages)])
targets.append(self.toolchain)
self.runCommand(["buildTargets", targets, self.default_task])
def handle_event(self, event):
if not event:
@@ -150,20 +167,26 @@ class HobHandler(gobject.GObject):
if isinstance(event, bb.event.PackageInfo):
self.package_model.populate(event._pkginfolist)
self.emit("package-populated")
self.run_next_command()
elif(isinstance(event, logging.LogRecord)):
elif isinstance(event, bb.event.SanityCheckPassed):
self.run_next_command()
elif isinstance(event, bb.event.SanityCheckFailed):
self.emit("sanity-failed", event._msg)
elif isinstance(event, logging.LogRecord):
if event.levelno >= logging.ERROR:
self.error_msg += event.msg + '\n'
formatter = bb.msg.BBLogFormatter()
formatter.format(event)
self.error_msg += event.message + '\n'
elif isinstance(event, bb.event.TargetsTreeGenerated):
self.current_phase = "data generation"
if event._model:
self.recipe_model.populate(event._model)
elif isinstance(event, bb.event.CoreBaseFilesFound):
self.current_phase = "configuration lookup"
paths = event._paths
self.emit('layers-updated', paths)
self.emit("recipe-populated")
elif isinstance(event, bb.event.ConfigFilesFound):
self.current_phase = "configuration lookup"
var = event._variable
@@ -187,31 +210,13 @@ class HobHandler(gobject.GObject):
elif isinstance(event, bb.command.CommandCompleted):
self.current_phase = None
self.run_next_command()
# TODO: Currently there are NoProvider issues when generate
# universe tree dependency for non-x86 architecture.
# Comment the follow code to enable the build of non-x86
# architectures in Hob.
#elif isinstance(event, bb.event.NoProvider):
# if event._runtime:
# r = "R"
# else:
# r = ""
# if event._dependees:
# self.error_msg += " Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)" % (r, event._item, ", ".join(event._dependees), r)
# else:
# self.error_msg += " Nothing %sPROVIDES '%s'" % (r, event._item)
# if event._reasons:
# for reason in event._reasons:
# self.error_msg += " %s" % reason
# self.commands_async = []
# self.emit("command-failed", self.error_msg)
# self.error_msg = ""
elif isinstance(event, bb.command.CommandFailed):
self.commands_async = []
self.clear_busy()
self.emit("command-failed", self.error_msg)
self.error_msg = ""
if self.building:
self.building = False
elif isinstance(event, (bb.event.ParseStarted,
bb.event.CacheLoadStarted,
bb.event.TreeDataPreparationStarted,
@@ -244,100 +249,98 @@ class HobHandler(gobject.GObject):
return
def init_cooker(self):
self.server.runCommand(["initCooker"])
def parse_config(self):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.run_next_command(self.PARSE_CONFIG)
def refresh_layers(self, bblayers):
self.init_cooker()
self.set_bblayers(bblayers)
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.generate_configuration()
self.runCommand(["initCooker"])
def set_extra_inherit(self, bbclass):
inherits = self.server.runCommand(["getVariable", "INHERIT"]) or ""
inherits = self.runCommand(["getVariable", "INHERIT"]) or ""
inherits = inherits + " " + bbclass
self.server.runCommand(["setVariable", "INHERIT", inherits])
self.runCommand(["setVariable", "INHERIT", inherits])
def set_bblayers(self, bblayers):
self.server.runCommand(["setVariable", "BBLAYERS", " ".join(bblayers)])
self.runCommand(["setVariable", "BBLAYERS_HOB", " ".join(bblayers)])
def set_machine(self, machine):
self.server.runCommand(["setVariable", "MACHINE", machine])
if machine:
self.runCommand(["setVariable", "MACHINE_HOB", machine])
def set_sdk_machine(self, sdk_machine):
self.server.runCommand(["setVariable", "SDKMACHINE", sdk_machine])
self.runCommand(["setVariable", "SDKMACHINE_HOB", sdk_machine])
def set_image_fstypes(self, image_fstypes):
self.server.runCommand(["setVariable", "IMAGE_FSTYPES", " ".join(image_fstypes).lstrip(" ")])
self.runCommand(["setVariable", "IMAGE_FSTYPES", image_fstypes])
def set_distro(self, distro):
if distro != "defaultsetup":
self.server.runCommand(["setVariable", "DISTRO", distro])
self.runCommand(["setVariable", "DISTRO_HOB", distro])
def set_package_format(self, format):
package_classes = ""
for pkgfmt in format.split():
package_classes += ("package_%s" % pkgfmt + " ")
self.server.runCommand(["setVariable", "PACKAGE_CLASSES", package_classes])
self.runCommand(["setVariable", "PACKAGE_CLASSES_HOB", package_classes])
def set_bbthreads(self, threads):
self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", threads])
self.runCommand(["setVariable", "BB_NUMBER_THREADS_HOB", threads])
def set_pmake(self, threads):
pmake = "-j %s" % threads
self.server.runCommand(["setVariable", "PARALLEL_MAKE", pmake])
self.runCommand(["setVariable", "PARALLEL_MAKE_HOB", pmake])
def set_dl_dir(self, directory):
self.server.runCommand(["setVariable", "DL_DIR", directory])
self.runCommand(["setVariable", "DL_DIR_HOB", directory])
def set_sstate_dir(self, directory):
self.server.runCommand(["setVariable", "SSTATE_DIR", directory])
self.runCommand(["setVariable", "SSTATE_DIR_HOB", directory])
def set_sstate_mirror(self, url):
self.server.runCommand(["setVariable", "SSTATE_MIRROR", url])
self.runCommand(["setVariable", "SSTATE_MIRROR_HOB", url])
def set_extra_size(self, image_extra_size):
self.server.runCommand(["setVariable", "IMAGE_ROOTFS_EXTRA_SPACE", str(image_extra_size)])
self.runCommand(["setVariable", "IMAGE_ROOTFS_EXTRA_SPACE", str(image_extra_size)])
def set_rootfs_size(self, image_rootfs_size):
self.server.runCommand(["setVariable", "IMAGE_ROOTFS_SIZE", str(image_rootfs_size)])
self.runCommand(["setVariable", "IMAGE_ROOTFS_SIZE", str(image_rootfs_size)])
def set_incompatible_license(self, incompat_license):
self.server.runCommand(["setVariable", "INCOMPATIBLE_LICENSE", incompat_license])
self.runCommand(["setVariable", "INCOMPATIBLE_LICENSE_HOB", incompat_license])
def set_extra_config(self, extra_setting):
for key in extra_setting.keys():
value = extra_setting[key]
self.server.runCommand(["setVariable", key, value])
self.runCommand(["setVariable", key, value])
def set_config_filter(self, config_filter):
self.runCommand(["setConfFilter", config_filter])
def set_http_proxy(self, http_proxy):
self.server.runCommand(["setVariable", "http_proxy", http_proxy])
self.runCommand(["setVariable", "http_proxy", http_proxy])
def set_https_proxy(self, https_proxy):
self.server.runCommand(["setVariable", "https_proxy", https_proxy])
self.runCommand(["setVariable", "https_proxy", https_proxy])
def set_ftp_proxy(self, ftp_proxy):
self.server.runCommand(["setVariable", "ftp_proxy", ftp_proxy])
self.runCommand(["setVariable", "ftp_proxy", ftp_proxy])
def set_all_proxy(self, all_proxy):
self.server.runCommand(["setVariable", "all_proxy", all_proxy])
self.runCommand(["setVariable", "all_proxy", all_proxy])
def set_git_proxy(self, host, port):
self.server.runCommand(["setVariable", "GIT_PROXY_HOST", host])
self.server.runCommand(["setVariable", "GIT_PROXY_PORT", port])
self.runCommand(["setVariable", "GIT_PROXY_HOST", host])
self.runCommand(["setVariable", "GIT_PROXY_PORT", port])
def set_cvs_proxy(self, host, port):
self.server.runCommand(["setVariable", "CVS_PROXY_HOST", host])
self.server.runCommand(["setVariable", "CVS_PROXY_PORT", port])
self.runCommand(["setVariable", "CVS_PROXY_HOST", host])
self.runCommand(["setVariable", "CVS_PROXY_PORT", port])
def request_package_info_async(self):
def request_package_info(self):
self.commands_async.append(self.SUB_GENERATE_PKGINFO)
self.run_next_command(self.POPULATE_PACKAGEINFO)
def trigger_sanity_check(self):
self.commands_async.append(self.SUB_SANITY_CHECK)
self.run_next_command(self.SANITY_CHECK)
def generate_configuration(self):
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_PATH_LAYERS)
self.commands_async.append(self.SUB_FILES_DISTRO)
self.commands_async.append(self.SUB_FILES_MACH)
@@ -350,132 +353,168 @@ class HobHandler(gobject.GObject):
self.commands_async.append(self.SUB_GNERATE_TGTS)
self.run_next_command(self.GENERATE_RECIPES)
def generate_packages(self, tgts):
def generate_packages(self, tgts, default_task="build"):
targets = []
targets.extend(tgts)
self.recipe_queue = targets
self.default_task = default_task
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_BUILD_RECIPES)
self.run_next_command(self.GENERATE_PACKAGES)
def generate_image(self, tgts, toolchain_build=False):
self.package_queue = tgts
self.toolchain_build = toolchain_build
def generate_image(self, image, toolchain, image_packages=[], toolchain_packages=[], default_task="build"):
self.image = image
self.toolchain = toolchain
self.package_queue = image_packages
self.toolchain_packages = toolchain_packages
self.default_task = default_task
self.commands_async.append(self.SUB_PARSE_CONFIG)
self.commands_async.append(self.SUB_BUILD_IMAGE)
self.run_next_command(self.GENERATE_IMAGE)
def build_succeeded_async(self):
self.building = False
def build_failed_async(self):
self.initcmd = None
self.commands_async = []
self.building = False
def cancel_parse(self):
self.server.runCommand(["stateStop"])
self.runCommand(["stateStop"])
def cancel_build(self, force=False):
if force:
# Force the cooker to stop as quickly as possible
self.server.runCommand(["stateStop"])
self.runCommand(["stateStop"])
else:
# Wait for tasks to complete before shutting down, this helps
# leave the workdir in a usable state
self.server.runCommand(["stateShutdown"])
self.runCommand(["stateShutdown"])
def reset_build(self):
self.build.reset()
def _remove_redundant(self, string):
ret = []
for i in string.split():
if i not in ret:
ret.append(i)
return " ".join(ret)
def get_parameters(self):
# retrieve the parameters from bitbake
params = {}
params["core_base"] = self.server.runCommand(["getVariable", "COREBASE"]) or ""
params["core_base"] = self.runCommand(["getVariable", "COREBASE"]) or ""
hob_layer = params["core_base"] + "/meta-hob"
params["layer"] = (self.server.runCommand(["getVariable", "BBLAYERS"]) or "") + " " + hob_layer
params["dldir"] = self.server.runCommand(["getVariable", "DL_DIR"]) or ""
params["machine"] = self.server.runCommand(["getVariable", "MACHINE"]) or ""
params["distro"] = self.server.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
params["pclass"] = self.server.runCommand(["getVariable", "PACKAGE_CLASSES"]) or ""
params["sstatedir"] = self.server.runCommand(["getVariable", "SSTATE_DIR"]) or ""
params["sstatemirror"] = self.server.runCommand(["getVariable", "SSTATE_MIRROR"]) or ""
params["layer"] = self.runCommand(["getVariable", "BBLAYERS"]) or ""
if hob_layer not in params["layer"].split():
params["layer"] += (" " + hob_layer)
params["dldir"] = self.runCommand(["getVariable", "DL_DIR"]) or ""
params["machine"] = self.runCommand(["getVariable", "MACHINE"]) or ""
params["distro"] = self.runCommand(["getVariable", "DISTRO"]) or "defaultsetup"
params["pclass"] = self.runCommand(["getVariable", "PACKAGE_CLASSES"]) or ""
params["sstatedir"] = self.runCommand(["getVariable", "SSTATE_DIR"]) or ""
params["sstatemirror"] = self.runCommand(["getVariable", "SSTATE_MIRROR"]) or ""
num_threads = self.server.runCommand(["getCpuCount"])
num_threads = self.runCommand(["getCpuCount"])
if not num_threads:
num_threads = 1
max_threads = 65536
else:
num_threads = int(num_threads)
max_threads = 16 * num_threads
try:
num_threads = int(num_threads)
max_threads = 16 * num_threads
except:
num_threads = 1
max_threads = 65536
params["max_threads"] = max_threads
bbthread = self.server.runCommand(["getVariable", "BB_NUMBER_THREADS"])
bbthread = self.runCommand(["getVariable", "BB_NUMBER_THREADS"])
if not bbthread:
bbthread = num_threads
else:
bbthread = int(bbthread)
try:
bbthread = int(bbthread)
except:
bbthread = num_threads
params["bbthread"] = bbthread
pmake = self.server.runCommand(["getVariable", "PARALLEL_MAKE"])
pmake = self.runCommand(["getVariable", "PARALLEL_MAKE"])
if not pmake:
pmake = num_threads
elif isinstance(pmake, int):
pass
else:
pmake = int(pmake.lstrip("-j "))
params["pmake"] = pmake
try:
pmake = int(pmake.lstrip("-j "))
except:
pmake = num_threads
params["pmake"] = "-j %s" % pmake
params["image_addr"] = self.server.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"]) or ""
params["image_addr"] = self.runCommand(["getVariable", "DEPLOY_DIR_IMAGE"]) or ""
image_extra_size = self.server.runCommand(["getVariable", "IMAGE_ROOTFS_EXTRA_SPACE"])
image_extra_size = self.runCommand(["getVariable", "IMAGE_ROOTFS_EXTRA_SPACE"])
if not image_extra_size:
image_extra_size = 0
else:
image_extra_size = int(image_extra_size)
try:
image_extra_size = int(image_extra_size)
except:
image_extra_size = 0
params["image_extra_size"] = image_extra_size
image_rootfs_size = self.server.runCommand(["getVariable", "IMAGE_ROOTFS_SIZE"])
image_rootfs_size = self.runCommand(["getVariable", "IMAGE_ROOTFS_SIZE"])
if not image_rootfs_size:
image_rootfs_size = 0
else:
image_rootfs_size = int(image_rootfs_size)
try:
image_rootfs_size = int(image_rootfs_size)
except:
image_rootfs_size = 0
params["image_rootfs_size"] = image_rootfs_size
image_overhead_factor = self.server.runCommand(["getVariable", "IMAGE_OVERHEAD_FACTOR"])
image_overhead_factor = self.runCommand(["getVariable", "IMAGE_OVERHEAD_FACTOR"])
if not image_overhead_factor:
image_overhead_factor = 1
else:
image_overhead_factor = float(image_overhead_factor)
try:
image_overhead_factor = float(image_overhead_factor)
except:
image_overhead_factor = 1
params['image_overhead_factor'] = image_overhead_factor
params["incompat_license"] = self.server.runCommand(["getVariable", "INCOMPATIBLE_LICENSE"]) or ""
params["sdk_machine"] = self.server.runCommand(["getVariable", "SDKMACHINE"]) or self.server.runCommand(["getVariable", "SDK_ARCH"]) or ""
params["incompat_license"] = self._remove_redundant(self.runCommand(["getVariable", "INCOMPATIBLE_LICENSE"]) or "")
params["sdk_machine"] = self.runCommand(["getVariable", "SDKMACHINE"]) or self.runCommand(["getVariable", "SDK_ARCH"]) or ""
params["image_fstypes"] = self.server.runCommand(["getVariable", "IMAGE_FSTYPES"]) or ""
params["image_fstypes"] = self._remove_redundant(self.runCommand(["getVariable", "IMAGE_FSTYPES"]) or "")
params["image_types"] = self.server.runCommand(["getVariable", "IMAGE_TYPES"]) or ""
params["image_types"] = self._remove_redundant(self.runCommand(["getVariable", "IMAGE_TYPES"]) or "")
params["conf_version"] = self.server.runCommand(["getVariable", "CONF_VERSION"]) or ""
params["lconf_version"] = self.server.runCommand(["getVariable", "LCONF_VERSION"]) or ""
params["conf_version"] = self.runCommand(["getVariable", "CONF_VERSION"]) or ""
params["lconf_version"] = self.runCommand(["getVariable", "LCONF_VERSION"]) or ""
params["runnable_image_types"] = self.server.runCommand(["getVariable", "RUNNABLE_IMAGE_TYPES"]) or ""
params["runnable_machine_patterns"] = self.server.runCommand(["getVariable", "RUNNABLE_MACHINE_PATTERNS"]) or ""
params["deployable_image_types"] = self.server.runCommand(["getVariable", "DEPLOYABLE_IMAGE_TYPES"]) or ""
params["tmpdir"] = self.server.runCommand(["getVariable", "TMPDIR"]) or ""
params["distro_version"] = self.server.runCommand(["getVariable", "DISTRO_VERSION"]) or ""
params["target_os"] = self.server.runCommand(["getVariable", "TARGET_OS"]) or ""
params["target_arch"] = self.server.runCommand(["getVariable", "TARGET_ARCH"]) or ""
params["tune_pkgarch"] = self.server.runCommand(["getVariable", "TUNE_PKGARCH"]) or ""
params["bb_version"] = self.server.runCommand(["getVariable", "BB_MIN_VERSION"]) or ""
params["tune_arch"] = self.server.runCommand(["getVariable", "TUNE_ARCH"]) or ""
params["runnable_image_types"] = self._remove_redundant(self.runCommand(["getVariable", "RUNNABLE_IMAGE_TYPES"]) or "")
params["runnable_machine_patterns"] = self._remove_redundant(self.runCommand(["getVariable", "RUNNABLE_MACHINE_PATTERNS"]) or "")
params["deployable_image_types"] = self._remove_redundant(self.runCommand(["getVariable", "DEPLOYABLE_IMAGE_TYPES"]) or "")
params["tmpdir"] = self.runCommand(["getVariable", "TMPDIR"]) or ""
params["distro_version"] = self.runCommand(["getVariable", "DISTRO_VERSION"]) or ""
params["target_os"] = self.runCommand(["getVariable", "TARGET_OS"]) or ""
params["target_arch"] = self.runCommand(["getVariable", "TARGET_ARCH"]) or ""
params["tune_pkgarch"] = self.runCommand(["getVariable", "TUNE_PKGARCH"]) or ""
params["bb_version"] = self.runCommand(["getVariable", "BB_MIN_VERSION"]) or ""
params["git_proxy_host"] = self.server.runCommand(["getVariable", "GIT_PROXY_HOST"]) or ""
params["git_proxy_port"] = self.server.runCommand(["getVariable", "GIT_PROXY_PORT"]) or ""
params["default_task"] = self.runCommand(["getVariable", "BB_DEFAULT_TASK"]) or "build"
params["http_proxy"] = self.server.runCommand(["getVariable", "http_proxy"]) or ""
params["ftp_proxy"] = self.server.runCommand(["getVariable", "ftp_proxy"]) or ""
params["https_proxy"] = self.server.runCommand(["getVariable", "https_proxy"]) or ""
params["all_proxy"] = self.server.runCommand(["getVariable", "all_proxy"]) or ""
params["git_proxy_host"] = self.runCommand(["getVariable", "GIT_PROXY_HOST"]) or ""
params["git_proxy_port"] = self.runCommand(["getVariable", "GIT_PROXY_PORT"]) or ""
params["cvs_proxy_host"] = self.server.runCommand(["getVariable", "CVS_PROXY_HOST"]) or ""
params["cvs_proxy_port"] = self.server.runCommand(["getVariable", "CVS_PROXY_PORT"]) or ""
params["http_proxy"] = self.runCommand(["getVariable", "http_proxy"]) or ""
params["ftp_proxy"] = self.runCommand(["getVariable", "ftp_proxy"]) or ""
params["https_proxy"] = self.runCommand(["getVariable", "https_proxy"]) or ""
params["all_proxy"] = self.runCommand(["getVariable", "all_proxy"]) or ""
params["cvs_proxy_host"] = self.runCommand(["getVariable", "CVS_PROXY_HOST"]) or ""
params["cvs_proxy_port"] = self.runCommand(["getVariable", "CVS_PROXY_PORT"]) or ""
return params

View File

@@ -22,6 +22,7 @@
import gtk
import gobject
from bb.ui.crumbs.hobpages import HobPage
#
# PackageListModel
@@ -33,7 +34,7 @@ class PackageListModel(gtk.TreeStore):
providing convenience functions to access gtk.TreeModel subclasses which
provide filtered views of the data.
"""
(COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC) = range(11)
(COL_NAME, COL_VER, COL_REV, COL_RNM, COL_SEC, COL_SUM, COL_RDEP, COL_RPROV, COL_SIZE, COL_BINB, COL_INC, COL_FADE_INC) = range(12)
__gsignals__ = {
"package-selection-changed" : (gobject.SIGNAL_RUN_LAST,
@@ -41,6 +42,8 @@ class PackageListModel(gtk.TreeStore):
()),
}
__toolchain_required_packages__ = ["task-core-standalone-sdk-target", "task-core-standalone-sdk-target-dbg"]
def __init__(self):
self.contents = None
@@ -61,6 +64,7 @@ class PackageListModel(gtk.TreeStore):
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN,
gobject.TYPE_BOOLEAN)
@@ -175,10 +179,8 @@ class PackageListModel(gtk.TreeStore):
if pkgsize == "0" and not allow_empty:
continue
if len(pkgsize) > 3:
size = '%.1f' % (int(pkgsize)*1.0/1024) + ' MB'
else:
size = pkgsize + ' KB'
# 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)
@@ -342,6 +344,23 @@ class PackageListModel(gtk.TreeStore):
self.selection_change_notification()
return left
def get_user_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):
binb = self.get_value(child_it, self.COL_BINB)
if not binb or binb == "User Selected":
name = self.get_value(child_it, self.COL_NAME)
packagelist.append(name)
child_it = self.iter_next(child_it)
it = self.iter_next(it)
return packagelist
def get_selected_packages(self):
packagelist = []
@@ -357,8 +376,24 @@ class PackageListModel(gtk.TreeStore):
return packagelist
def get_selected_packages_toolchain(self):
packagelist = []
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)
it = self.iter_next(it)
return list(set(packagelist + self.__toolchain_required_packages__));
"""
Return the selected package size, unit is KB.
Return the selected package size, unit is B.
"""
def get_packages_size(self):
packages_size = 0
@@ -371,16 +406,11 @@ class PackageListModel(gtk.TreeStore):
if not str_size:
continue
unit = str_size.split()
if unit[1] == 'MB':
size = float(unit[0])*1024
else:
size = float(unit[0])
packages_size += size
packages_size += HobPage._string_to_size(str_size)
child_it = self.iter_next(child_it)
it = self.iter_next(it)
return "%f" % packages_size
return packages_size
"""
Empty self.contents by setting the include of each entry to None
@@ -400,6 +430,19 @@ class PackageListModel(gtk.TreeStore):
self.selection_change_notification()
"""
Resync the state of included items to a backup column before performing the fadeout visible effect
"""
def resync_fadeout_column(self, model_first_iter=None):
it = model_first_iter
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)
#
# RecipeListModel
#
@@ -410,7 +453,7 @@ class RecipeListModel(gtk.ListStore):
providing convenience functions to access gtk.TreeModel subclasses which
provide filtered views of the data.
"""
(COL_NAME, COL_DESC, COL_LIC, COL_GROUP, COL_DEPS, COL_BINB, COL_TYPE, COL_INC, COL_IMG, COL_INSTALL, COL_PN) = range(11)
(COL_NAME, COL_DESC, COL_LIC, COL_GROUP, COL_DEPS, COL_BINB, COL_TYPE, COL_INC, COL_IMG, COL_INSTALL, COL_PN, COL_FADE_INC) = range(12)
__dummy_image__ = "Create your own image"
@@ -434,7 +477,8 @@ class RecipeListModel(gtk.ListStore):
gobject.TYPE_BOOLEAN,
gobject.TYPE_BOOLEAN,
gobject.TYPE_STRING,
gobject.TYPE_STRING)
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN)
"""
Find the model path for the item_name
@@ -471,21 +515,25 @@ class RecipeListModel(gtk.ListStore):
return True
def sort_func(self, model, iter1, iter2):
val1 = model.get_value(iter1, RecipeListModel.COL_NAME)
val2 = model.get_value(iter2, RecipeListModel.COL_NAME)
return val1 > val2
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))
"""
Create, if required, and return a filtered gtk.TreeModelSort
containing only the items which are items specified by filter
"""
def tree_model(self, filter):
def tree_model(self, filter, excluded_items_ahead=False):
model = self.filter_new()
model.set_visible_func(self.tree_model_filter, filter)
sort = gtk.TreeModelSort(model)
sort.set_default_sort_func(self.sort_func)
if excluded_items_ahead:
sort.set_default_sort_func(self.exclude_item_sort_func)
else:
sort.set_sort_column_id(RecipeListModel.COL_NAME, gtk.SORT_ASCENDING)
sort.set_default_sort_func(None)
return sort
def convert_vpath_to_path(self, view_model, view_path):
@@ -517,7 +565,9 @@ class RecipeListModel(gtk.ListStore):
# dummy image for prompt
self.set(self.append(), self.COL_NAME, self.__dummy_image__,
self.COL_DESC, "",
self.COL_DESC, "Use the 'View recipes' and 'View packages' " \
"options to select what you want to include " \
"in your image.",
self.COL_LIC, "", self.COL_GROUP, "",
self.COL_DEPS, "", self.COL_BINB, "",
self.COL_TYPE, "image", self.COL_INC, False,
@@ -534,10 +584,7 @@ class RecipeListModel(gtk.ListStore):
depends = event_model["depends"].get(item, []) + event_model["rdepends-pn"].get(item, [])
if ('task-' in name):
if ('lib32-' in name or 'lib64-' in name):
atype = 'mltask'
else:
atype = 'task'
atype = 'task'
elif ('image.bbclass' in " ".join(inherits)):
if name != "hob-image":
atype = 'image'
@@ -547,10 +594,7 @@ class RecipeListModel(gtk.ListStore):
elif (name == 'dummy-image' or name == 'dummy-toolchain'):
atype = 'dummy'
else:
if ('lib32-' in name or 'lib64-' in name):
atype = 'mlrecipe'
else:
atype = 'recipe'
atype = 'recipe'
self.set(self.append(), self.COL_NAME, item, self.COL_DESC, desc,
self.COL_LIC, lic, self.COL_GROUP, group,
@@ -575,22 +619,6 @@ class RecipeListModel(gtk.ListStore):
def path_included(self, item_path):
return self[item_path][self.COL_INC]
"""
Append a certain image into the combobox
"""
def image_list_append(self, name, deps, install):
# check whether a certain image is there
if not name or self.find_path_for_item(name):
return
it = self.append()
self.set(it, self.COL_NAME, name, self.COL_DESC, "",
self.COL_LIC, "", self.COL_GROUP, "",
self.COL_DEPS, deps, self.COL_BINB, "",
self.COL_TYPE, "image", self.COL_INC, False,
self.COL_IMG, False, self.COL_INSTALL, install,
self.COL_PN, name)
self.pn_path[name] = self.get_path(it)
"""
Add this item, and any of its dependencies, to the image contents
"""

View File

@@ -35,7 +35,7 @@ class HobPage (gtk.VBox):
self.builder_width, self.builder_height = self.builder.size_request()
if not title:
self.title = "HOB -- Image Creator"
self.title = "Hob -- Image Creator"
else:
self.title = title
@@ -59,7 +59,7 @@ class HobPage (gtk.VBox):
hbox = gtk.HBox()
label = gtk.Label()
label.set_markup("<span font_desc=\'14\'>%s</span>" % self.title)
label.set_markup("<span size='x-large'>%s</span>" % self.title)
hbox.pack_start(label, expand=False, fill=False, padding=20)
if widget:
@@ -69,8 +69,8 @@ class HobPage (gtk.VBox):
return eventbox
def span_tag(self, px="12px", weight="normal", forground="#1c1c1c"):
span_tag = "weight=\'%s\' foreground=\'%s\' font_desc=\'%s\'" % (weight, forground, px)
def span_tag(self, size="medium", weight="normal", forground="#1c1c1c"):
span_tag = "weight='%s' foreground='%s' size='%s'" % (weight, forground, size)
return span_tag
def append_toolbar_button(self, toolbar, buttonname, icon_disp, icon_hovor, tip, cb):
@@ -83,3 +83,42 @@ class HobPage (gtk.VBox):
tip_text = tip
button = toolbar.append_item(buttonname, tip, None, icon, cb)
return button
@staticmethod
def _size_to_string(size):
try:
if not size:
size_str = "0 B"
else:
if len(str(int(size))) > 6:
size_str = '%.1f' % (size*1.0/(1024*1024)) + ' MB'
elif len(str(int(size))) > 3:
size_str = '%.1f' % (size*1.0/1024) + ' KB'
else:
size_str = str(size) + ' B'
except:
size_str = "0 B"
return size_str
@staticmethod
def _string_to_size(str_size):
try:
if not str_size:
size = 0
else:
unit = str_size.split()
if len(unit) > 1:
if unit[1] == 'MB':
size = float(unit[0])*1024*1024
elif unit[1] == 'KB':
size = float(unit[0])*1024
elif unit[1] == 'B':
size = float(unit[0])
else:
size = 0
else:
size = float(unit[0])
except:
size = 0
return size

View File

@@ -52,7 +52,7 @@ class hic:
ICON_INFO_DISPLAY_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_display.png'))
ICON_INFO_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('info/info_hover.png'))
ICON_INDI_CONFIRM_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/confirmation.png'))
ICON_INDI_ERROR_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/error.png'))
ICON_INDI_ERROR_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/denied.png'))
ICON_INDI_REMOVE_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/remove.png'))
ICON_INDI_REMOVE_HOVER_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/remove-hover.png'))
ICON_INDI_ADD_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/add.png'))
@@ -60,6 +60,7 @@ class hic:
ICON_INDI_REFRESH_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/refresh.png'))
ICON_INDI_ALERT_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/alert.png'))
ICON_INDI_TICK_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/tick.png'))
ICON_INDI_INFO_FILE = os.path.join(HOB_ICON_BASE_DIR, ('indicators/info.png'))
class hcc:
@@ -104,6 +105,11 @@ class HobViewTable (gtk.VBox):
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,
gobject.TYPE_PYOBJECT,)),
"cell-fadeinout-stopped" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,
gobject.TYPE_PYOBJECT,
gobject.TYPE_PYOBJECT,)),
}
def __init__(self, columns):
@@ -126,6 +132,8 @@ class HobViewTable (gtk.VBox):
col.set_min_width(column['col_min'])
if 'col_max' in column.keys():
col.set_max_width(column['col_max'])
if 'expand' in column.keys():
col.set_expand(True)
self.table_tree.append_column(col)
if (not 'col_style' in column.keys()) or column['col_style'] == 'text':
@@ -133,9 +141,10 @@ class HobViewTable (gtk.VBox):
col.pack_start(cell, True)
col.set_attributes(cell, text=column['col_id'])
elif column['col_style'] == 'check toggle':
cell = gtk.CellRendererToggle()
cell = HobCellRendererToggle()
cell.set_property('activatable', True)
cell.connect("toggled", self.toggled_cb, i, self.table_tree)
cell.connect_render_state_changed(self.stop_cell_fadeinout_cb, self.table_tree)
self.toggle_id = i
col.pack_end(cell, True)
col.set_attributes(cell, active=column['col_id'])
@@ -149,13 +158,26 @@ class HobViewTable (gtk.VBox):
col.pack_end(cell, True)
col.set_attributes(cell, active=column['col_id'])
self.toggle_columns.append(column['col_name'])
elif column['col_style'] == 'binb':
cell = gtk.CellRendererText()
col.pack_start(cell, True)
col.set_cell_data_func(cell, self.display_binb_cb, column['col_id'])
scroll = gtk.ScrolledWindow()
scroll.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS)
scroll.set_shadow_type(gtk.SHADOW_IN)
scroll.add(self.table_tree)
self.pack_start(scroll, True, True, 0)
def display_binb_cb(self, col, cell, model, it, col_id):
binb = model.get_value(it, col_id)
# Just display the first item
if binb:
bin = binb.split(', ')
cell.set_property('text', bin[0])
else:
cell.set_property('text', "")
return True
def set_model(self, tree_model):
self.table_tree.set_model(tree_model)
@@ -179,6 +201,9 @@ class HobViewTable (gtk.VBox):
if not view_column.get_title() in self.toggle_columns:
self.emit("row-activated", tree.get_model(), path)
def stop_cell_fadeinout_cb(self, ctrl, cell, tree):
self.emit("cell-fadeinout-stopped", ctrl, cell, tree)
"""
A method to calculate a softened value for the colour of widget when in the
provided state.
@@ -240,7 +265,7 @@ class HobAltButton(gtk.Button):
"""
@staticmethod
def desensitise_on_state_change_cb(button, state):
if button.get_state() == gtk.STATE_INSENSITIVE:
if not button.get_property("sensitive"):
HobAltButton.set_text(button, False)
else:
HobAltButton.set_text(button, True)
@@ -254,7 +279,7 @@ class HobAltButton(gtk.Button):
colour = HobColors.PALE_BLUE
else:
colour = HobColors.LIGHT_GRAY
button.set_label("<span color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(button.text)))
button.set_label("<span size='large' color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(button.text)))
button.child.set_use_markup(True)
@staticmethod
@@ -281,7 +306,7 @@ class HobImageButton(gtk.Button):
self.icon_path = icon_path
self.hover_icon_path = hover_icon_path
hbox = gtk.HBox(False, 3)
hbox = gtk.HBox(False, 10)
hbox.show()
self.add(hbox)
self.icon = gtk.Image()
@@ -295,7 +320,7 @@ class HobImageButton(gtk.Button):
label = gtk.Label()
label.set_alignment(0.0, 0.5)
colour = soften_color(label)
mark = "%s\n<span fgcolor='%s'><small>%s</small></span>" % (primary_text, colour, secondary_text)
mark = "<span size='x-large'>%s</span>\n<span size='medium' fgcolor='%s' weight='ultralight'>%s</span>" % (primary_text, colour, secondary_text)
label.set_markup(mark)
label.show()
hbox.pack_start(label, True, True, 0)
@@ -400,6 +425,7 @@ class HobTabBar(gtk.DrawingArea):
self.connect("expose-event", self.on_draw)
self.connect("button-press-event", self.button_pressed_cb)
self.connect("button-release-event", self.button_released_cb)
self.connect("query-tooltip", self.query_tooltip_cb)
self.show_all()
def button_released_cb(self, widget, event):
@@ -463,7 +489,7 @@ class HobTabBar(gtk.DrawingArea):
child["g"] = color.green
child["b"] = color.blue
def append_tab_child(self, title, page):
def append_tab_child(self, title, page, tooltip=""):
num = len(self.children) + 1
self.tab_width = self.tab_width * len(self.children) / num
@@ -488,8 +514,11 @@ class HobTabBar(gtk.DrawingArea):
"title" : title,
"indicator_show" : False,
"indicator_number" : 0,
"tooltip_markup" : tooltip,
}
self.children.append(new_one)
if tooltip and (not self.props.has_tooltip):
self.props.has_tooltip = True
# set the default current child
if not self.current_child:
self.current_child = new_one
@@ -558,7 +587,10 @@ class HobTabBar(gtk.DrawingArea):
off_y = (self.tab_height - fonth) / 2
x = child["x"] + off_x
y = child["y"] + off_y
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), pangolayout)
if not child == self.current_child:
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), pangolayout, gtk.gdk.Color(HobColors.WHITE))
else:
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), pangolayout)
def draw_toggled_tab(self, cr):
if not self.current_child:
@@ -616,7 +648,10 @@ class HobTabBar(gtk.DrawingArea):
y = tab_y + self.tab_height/2 - dest_h/2
r = min(dest_w, dest_h)/2
color = cr.set_source_color(gtk.gdk.color_parse(HobColors.ORANGE))
if not child == self.current_child:
color = cr.set_source_color(gtk.gdk.color_parse(HobColors.DEEP_RED))
else:
color = cr.set_source_color(gtk.gdk.color_parse(HobColors.GRAY))
# check round back area can contain the text or not
back_round_can_contain_width = float(2 * r * 0.707)
if float(textw) > back_round_can_contain_width:
@@ -635,7 +670,7 @@ class HobTabBar(gtk.DrawingArea):
x = x + (dest_w/2)-(textw/2)
y = y + (dest_h/2) - (texth/2)
cr.move_to(x, y)
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), layout)
self.window.draw_layout(self.style.fg_gc[gtk.STATE_NORMAL], int(x), int(y), layout, gtk.gdk.Color(HobColors.WHITE))
def show_indicator_icon(self, child, number):
child["indicator_show"] = True
@@ -652,6 +687,18 @@ class HobTabBar(gtk.DrawingArea):
return gtk.gdk.Rectangle(x, y, w, h)
def query_tooltip_cb(self, widget, x, y, keyboardtip, tooltip):
if keyboardtip or (not tooltip):
return False
# check which tab be clicked
for child in self.children:
if (child["x"] < x) and (x < child["x"] + self.tab_width) \
and (child["y"] < y) and (y < child["y"] + self.tab_height):
tooltip.set_markup(child["tooltip_markup"])
return True
return False
class HobNotebook(gtk.VBox):
def __init__(self):
@@ -736,13 +783,15 @@ class HobNotebook(gtk.VBox):
if not notebook:
return
title = notebook.get_tab_label_text(notebook_child)
label = notebook.get_tab_label(notebook_child)
tooltip_markup = label.get_tooltip_markup()
if not title:
return
for child in self.tabbar.children:
if child["title"] == title:
child["toggled_page"] = page
return
self.tabbar.append_tab_child(title, page)
self.tabbar.append_tab_child(title, page, tooltip_markup)
def page_removed_cb(self, notebook, notebook_child, page, title=""):
for child in self.tabbar.children:
@@ -820,7 +869,7 @@ class HobIconChecker(hic):
"""
def check_stock_icon(self, stock_name=""):
HOB_CHECK_STOCK_NAME = {
('hic-dialog-info', 'gtk-dialog-info', 'dialog-info') : self.ICON_INFO_DISPLAY_FILE,
('hic-dialog-info', 'gtk-dialog-info', 'dialog-info') : self.ICON_INDI_INFO_FILE,
('hic-ok', 'gtk-ok', 'ok') : self.ICON_INDI_TICK_FILE,
('hic-dialog-error', 'gtk-dialog-error', 'dialog-error') : self.ICON_INDI_ERROR_FILE,
('hic-dialog-warning', 'gtk-dialog-warning', 'dialog-warning') : self.ICON_INDI_ALERT_FILE,
@@ -836,14 +885,23 @@ class HobIconChecker(hic):
return valid_stock_id
class RefreshRuningController(gobject.GObject):
def __init__(self, widget=None, iter=None):
class HobCellRendererController(gobject.GObject):
(MODE_CYCLE_RUNNING, MODE_ONE_SHORT) = range(2)
__gsignals__ = {
"run-timer-stopped" : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
}
def __init__(self, runningmode=MODE_CYCLE_RUNNING, is_draw_row=False):
gobject.GObject.__init__(self)
self.timeout_id = None
self.current_angle_pos = 0.0
self.step_angle = 0.0
self.tree_headers_height = 0
self.running_cell_areas = []
self.running_mode = runningmode
self.is_queue_draw_row_area = is_draw_row
self.force_stop_enable = False
def is_active(self):
if self.timeout_id:
@@ -851,10 +909,10 @@ class RefreshRuningController(gobject.GObject):
else:
return False
def reset(self):
self.force_stop(True)
def reset_run(self):
self.force_stop()
self.running_cell_areas = []
self.current_angle_pos = 0.0
self.timeout_id = None
self.step_angle = 0.0
''' time_iterval: (1~1000)ms, which will be as the basic interval count for timer
@@ -874,15 +932,16 @@ class RefreshRuningController(gobject.GObject):
self.timeout_id = gobject.timeout_add(int(time_iterval),
self.make_image_on_progressing_cb, tree)
self.tree_headers_height = self.get_treeview_headers_height(tree)
self.force_stop_enable = False
def force_stop(self, after_hide_or_not=False):
def force_stop(self):
self.emit("run-timer-stopped")
self.force_stop_enable = True
if self.timeout_id:
gobject.source_remove(self.timeout_id)
self.timeout_id = None
if self.running_cell_areas:
self.running_cell_areas = []
if gobject.source_remove(self.timeout_id):
self.timeout_id = None
def on_draw_cb(self, pixbuf, cr, x, y, img_width, img_height, do_refresh=True):
def on_draw_pixbuf_cb(self, pixbuf, cr, x, y, img_width, img_height, do_refresh=True):
if pixbuf:
r = max(img_width/2, img_height/2)
cr.translate(x + r, y + r)
@@ -892,6 +951,16 @@ class RefreshRuningController(gobject.GObject):
cr.set_source_pixbuf(pixbuf, -img_width/2, -img_height/2)
cr.paint()
def on_draw_fadeinout_cb(self, cr, color, x, y, width, height, do_fadeout=True):
if do_fadeout:
alpha = self.current_angle_pos * 0.8
else:
alpha = (1.0 - self.current_angle_pos) * 0.8
cr.set_source_rgba(color.red, color.green, color.blue, alpha)
cr.rectangle(x, y, width, height)
cr.fill()
def get_treeview_headers_height(self, tree):
if tree and (tree.get_property("headers-visible") == True):
height = tree.get_allocation().height - tree.get_bin_window().get_size()[1]
@@ -901,13 +970,24 @@ class RefreshRuningController(gobject.GObject):
def make_image_on_progressing_cb(self, tree):
self.current_angle_pos += self.step_angle
if (self.current_angle_pos >= 1):
self.current_angle_pos = self.step_angle
if self.running_mode == self.MODE_CYCLE_RUNNING:
if (self.current_angle_pos >= 1):
self.current_angle_pos = self.step_angle
else:
if self.current_angle_pos > 1:
self.force_stop()
return False
for rect in self.running_cell_areas:
tree.queue_draw_area(rect.x, rect.y + self.tree_headers_height, rect.width, rect.height)
if self.is_queue_draw_row_area:
for path in self.running_cell_areas:
rect = tree.get_cell_area(path, tree.get_column(0))
row_x, _, row_width, _ = tree.get_visible_rect()
tree.queue_draw_area(row_x, rect.y + self.tree_headers_height, row_width, rect.height)
else:
for rect in self.running_cell_areas:
tree.queue_draw_area(rect.x, rect.y + self.tree_headers_height, rect.width, rect.height)
return True
return (not self.force_stop_enable)
def append_running_cell_area(self, cell_area):
if cell_area and (cell_area not in self.running_cell_areas):
@@ -917,16 +997,17 @@ class RefreshRuningController(gobject.GObject):
if cell_area in self.running_cell_areas:
self.running_cell_areas.remove(cell_area)
if not self.running_cell_areas:
self.reset()
self.reset_run()
gobject.type_register(RefreshRuningController)
gobject.type_register(HobCellRendererController)
class HobCellRendererPixbuf(gtk.CellRendererPixbuf):
def __init__(self):
gtk.CellRendererPixbuf.__init__(self)
self.control = RefreshRuningController()
self.control = HobCellRendererController()
# add icon checker for make the gtk-icon transfer to hob-icon
self.checker = HobIconChecker()
self.set_property("stock-size", gtk.ICON_SIZE_DND)
def get_pixbuf_from_stock_icon(self, widget, stock_id="", size=gtk.ICON_SIZE_DIALOG):
if widget and stock_id and gtk.icon_factory_lookup_default(stock_id):
@@ -974,18 +1055,73 @@ class HobCellRendererPixbuf(gtk.CellRendererPixbuf):
if stock_id == 'hic-task-refresh':
self.control.append_running_cell_area(cell_area)
if self.control.is_active():
self.control.on_draw_cb(pix, window.cairo_create(), x, y, w, h, True)
self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, True)
else:
self.control.start_run(200, 0, 0, 1000, 200, tree)
self.control.start_run(200, 0, 0, 1000, 150, tree)
else:
self.control.remove_running_cell_area(cell_area)
self.control.on_draw_cb(pix, window.cairo_create(), x, y, w, h, False)
self.control.on_draw_pixbuf_cb(pix, window.cairo_create(), x, y, w, h, False)
def on_get_size(self, widget, cell_area):
if self.props.icon_name or self.props.pixbuf or self.props.stock_id:
w, h = gtk.icon_size_lookup(self.props.stock_size)
return 0, 0, w, h
calc_width = self.get_property("xpad") * 2 + w
calc_height = self.get_property("ypad") * 2 + h
x_offset = 0
y_offset = 0
if cell_area and w > 0 and h > 0:
x_offset = self.get_property("xalign") * (cell_area.width - calc_width - self.get_property("xpad"))
y_offset = self.get_property("yalign") * (cell_area.height - calc_height - self.get_property("ypad"))
return x_offset, y_offset, w, h
return 0, 0, 0, 0
gobject.type_register(HobCellRendererPixbuf)
class HobCellRendererToggle(gtk.CellRendererToggle):
def __init__(self):
gtk.CellRendererToggle.__init__(self)
self.ctrl = HobCellRendererController(is_draw_row=True)
self.ctrl.running_mode = self.ctrl.MODE_ONE_SHORT
self.cell_attr = {"fadeout": False}
def do_render(self, window, widget, background_area, cell_area, expose_area, flags):
if (not self.ctrl) or (not widget):
return
if self.ctrl.is_active():
path = widget.get_path_at_pos(cell_area.x + cell_area.width/2, cell_area.y + cell_area.height/2)
# sometimes the parameters of cell_area will be a negative number,such as pull up down the scroll bar
# it's over the tree container range, so the path will be bad
if not path: return
path = path[0]
if path in self.ctrl.running_cell_areas:
cr = window.cairo_create()
color = gtk.gdk.Color(HobColors.WHITE)
row_x, _, row_width, _ = widget.get_visible_rect()
border_y = self.get_property("ypad")
self.ctrl.on_draw_fadeinout_cb(cr, color, row_x, cell_area.y - border_y, row_width, \
cell_area.height + border_y * 2, self.cell_attr["fadeout"])
return gtk.CellRendererToggle.do_render(self, window, widget, background_area, cell_area, expose_area, flags)
'''delay: normally delay time is 1000ms
cell_list: whilch cells need to be render
'''
def fadeout(self, tree, delay, cell_list=None):
if (delay < 200) or (not tree):
return
self.cell_attr["fadeout"] = True
self.ctrl.running_cell_areas = cell_list
self.ctrl.start_run(200, 0, 0, delay, (delay * 200 / 1000), tree)
def connect_render_state_changed(self, func, usrdata=None):
if not func:
return
if usrdata:
self.ctrl.connect("run-timer-stopped", func, self, usrdata)
else:
self.ctrl.connect("run-timer-stopped", func, self)
gobject.type_register(HobCellRendererToggle)

View File

@@ -37,6 +37,10 @@ class ImageConfigurationPage (HobPage):
super(ImageConfigurationPage, self).__init__(builder, "Image configuration")
self.image_combo_id = None
# we use machine_combo_changed_by_manual to identify the machine is changed by code
# or by manual. If by manual, all user's recipe selection and package selection are
# cleared.
self.machine_combo_changed_by_manual = True
self.create_visual_elements()
def create_visual_elements(self):
@@ -49,19 +53,19 @@ class ImageConfigurationPage (HobPage):
"Templates",
hic.ICON_TEMPLATES_DISPLAY_FILE,
hic.ICON_TEMPLATES_HOVER_FILE,
"Load a hob building template saved before",
"Load a previously saved template",
self.template_button_clicked_cb)
my_images_button = self.append_toolbar_button(self.toolbar,
"My images",
"Images",
hic.ICON_IMAGES_DISPLAY_FILE,
hic.ICON_IMAGES_HOVER_FILE,
"Open images built out previously for running or deployment",
"Open previously built images",
self.my_images_button_clicked_cb)
settings_button = self.append_toolbar_button(self.toolbar,
"Settings",
hic.ICON_SETTINGS_DISPLAY_FILE,
hic.ICON_SETTINGS_HOVER_FILE,
"Other advanced settings for build",
"View additional build settings",
self.settings_button_clicked_cb)
self.config_top_button = self.add_onto_top_bar(self.toolbar)
@@ -105,7 +109,7 @@ class ImageConfigurationPage (HobPage):
self.set_config_machine_layout(show_progress_bar = False)
self.show_all()
def update_progress_bar(self, title, fraction, status=True):
def update_progress_bar(self, title, fraction, status=None):
self.progress_bar.update(fraction)
self.progress_bar.set_title(title)
self.progress_bar.set_rcstyle(status)
@@ -133,16 +137,17 @@ class ImageConfigurationPage (HobPage):
def create_config_machine(self):
self.machine_title = gtk.Label()
self.machine_title.set_alignment(0.0, 0.5)
mark = "<span %s>Select a machine</span>" % self.span_tag('24px', 'bold')
mark = "<span %s>Select a machine</span>" % self.span_tag('x-large', 'bold')
self.machine_title.set_markup(mark)
self.machine_title_desc = gtk.Label()
self.machine_title_desc.set_alignment(0, 0.5)
mark = ("<span %s>This is the profile of the target machine for which you"
" are building the image.\n</span>") % (self.span_tag(px='14px'))
self.machine_title_desc.set_alignment(0.0, 0.5)
mark = ("<span %s>Your selection is the profile of the target machine for which you"
" are building the image.\n</span>") % (self.span_tag('medium'))
self.machine_title_desc.set_markup(mark)
self.machine_combo = gtk.combo_box_new_text()
self.machine_combo.set_wrap_width(1)
self.machine_combo.connect("changed", self.machine_combo_changed_cb)
icon_file = hic.ICON_LAYERS_DISPLAY_FILE
@@ -154,8 +159,8 @@ class ImageConfigurationPage (HobPage):
markup = "Layers are a powerful mechanism to extend the Yocto Project "
markup += "with your own functionality.\n"
markup += "For more on layers, check the <a href=\""
markup += "http://www.yoctoproject.org/docs/current/poky-ref-manual/"
markup += "poky-ref-manual.html#usingpoky-changes-layers\">reference manual</a>."
markup += "http://www.yoctoproject.org/docs/current/dev-manual/"
markup += "dev-manual.html#understanding-and-using-layers\">reference manual</a>."
self.layer_info_icon = HobInfoButton(markup, self.get_parent())
self.progress_box = gtk.HBox(False, 6)
@@ -170,37 +175,38 @@ class ImageConfigurationPage (HobPage):
def set_config_machine_layout(self, show_progress_bar = False):
self.gtable.attach(self.machine_title, 0, 40, 0, 4)
self.gtable.attach(self.machine_title_desc, 0, 40, 4, 6)
self.gtable.attach(self.machine_combo, 0, 12, 6, 9)
self.gtable.attach(self.layer_button, 12, 36, 6, 11)
self.gtable.attach(self.layer_info_icon, 36, 40, 6, 10)
self.gtable.attach(self.machine_combo, 0, 12, 7, 10)
self.gtable.attach(self.layer_button, 14, 36, 7, 12)
self.gtable.attach(self.layer_info_icon, 36, 40, 7, 11)
if show_progress_bar:
self.gtable.attach(self.progress_box, 0, 40, 13, 17)
self.gtable.attach(self.machine_separator, 0, 40, 12, 13)
self.gtable.attach(self.progress_box, 0, 40, 15, 19)
self.gtable.attach(self.machine_separator, 0, 40, 13, 14)
def create_config_baseimg(self):
self.image_title = gtk.Label()
self.image_title.set_alignment(0, 1.0)
mark = "<span %s>Select a base image</span>" % self.span_tag('24px', 'bold')
mark = "<span %s>Select a base image</span>" % self.span_tag('x-large', 'bold')
self.image_title.set_markup(mark)
self.image_title_desc = gtk.Label()
self.image_title_desc.set_alignment(0, 0.5)
mark = ("<span %s>Base images are a starting point for the type of image you want. "
"You can build them as \n"
"they are or customize them to your specific needs.\n</span>") % self.span_tag('14px')
"they are or customize them to your specific needs.\n</span>") % self.span_tag('medium')
self.image_title_desc.set_markup(mark)
self.image_combo = gtk.combo_box_new_text()
self.image_combo.set_wrap_width(1)
self.image_combo_id = self.image_combo.connect("changed", self.image_combo_changed_cb)
self.image_desc = gtk.Label()
self.image_desc.set_alignment(0, 0.5)
self.image_desc.set_alignment(0.0, 0.5)
self.image_desc.set_line_wrap(True)
# button to view recipes
icon_file = hic.ICON_RCIPE_DISPLAY_FILE
hover_file = hic.ICON_RCIPE_HOVER_FILE
self.view_recipes_button = HobImageButton("View Recipes",
self.view_recipes_button = HobImageButton("View recipes",
"Add/remove recipes and tasks",
icon_file, hover_file)
self.view_recipes_button.connect("clicked", self.view_recipes_button_clicked_cb)
@@ -208,7 +214,7 @@ class ImageConfigurationPage (HobPage):
# button to view packages
icon_file = hic.ICON_PACKAGES_DISPLAY_FILE
hover_file = hic.ICON_PACKAGES_HOVER_FILE
self.view_packages_button = HobImageButton("View Packages",
self.view_packages_button = HobImageButton("View packages",
"Add/remove previously built packages",
icon_file, hover_file)
self.view_packages_button.connect("clicked", self.view_packages_button_clicked_cb)
@@ -216,24 +222,24 @@ class ImageConfigurationPage (HobPage):
self.image_separator = gtk.HSeparator()
def set_config_baseimg_layout(self):
self.gtable.attach(self.image_title, 0, 40, 13, 17)
self.gtable.attach(self.image_title_desc, 0, 40, 18, 23)
self.gtable.attach(self.image_combo, 0, 12, 24, 27)
self.gtable.attach(self.image_desc, 14, 38, 24, 29)
self.gtable.attach(self.image_title, 0, 40, 15, 17)
self.gtable.attach(self.image_title_desc, 0, 40, 18, 22)
self.gtable.attach(self.image_combo, 0, 12, 23, 26)
self.gtable.attach(self.image_desc, 13, 38, 23, 28)
self.gtable.attach(self.image_separator, 0, 40, 35, 36)
def set_rcppkg_layout(self):
self.gtable.attach(self.view_recipes_button, 0, 20, 30, 35)
self.gtable.attach(self.view_packages_button, 20, 40, 30, 35)
self.gtable.attach(self.view_recipes_button, 0, 20, 28, 33)
self.gtable.attach(self.view_packages_button, 20, 40, 28, 33)
def create_config_build_button(self):
# Create the "Build packages" and "Just bake" buttons at the bottom
# Create the "Build packages" and "Build image" buttons at the bottom
button_box = gtk.HBox(False, 6)
# create button "Just bake"
just_bake_button = HobButton("Just bake")
# create button "Build image"
just_bake_button = HobButton("Build image")
just_bake_button.set_size_request(205, 49)
just_bake_button.set_tooltip_text("Build image to get your target image")
just_bake_button.set_tooltip_text("Build target image")
just_bake_button.connect("clicked", self.just_bake_button_clicked_cb)
button_box.pack_end(just_bake_button, expand=False, fill=False)
@@ -241,14 +247,15 @@ class ImageConfigurationPage (HobPage):
button_box.pack_end(label, expand=False, fill=False)
# create button "Build Packages"
build_packages_button = HobAltButton("Build Packages")
build_packages_button = HobAltButton("Build packages")
build_packages_button.connect("clicked", self.build_packages_button_clicked_cb)
build_packages_button.set_tooltip_text("Build recipes into packages")
button_box.pack_end(build_packages_button, expand=False, fill=False)
return button_box
def stop_button_clicked_cb(self, button):
self.builder.stop_parse()
self.builder.cancel_parse_sync()
def machine_combo_changed_cb(self, machine_combo):
combo_item = machine_combo.get_active_text()
@@ -256,8 +263,13 @@ class ImageConfigurationPage (HobPage):
return
self.builder.configuration.curr_mach = combo_item
if self.machine_combo_changed_by_manual:
self.builder.configuration.clear_selection()
# reset machine_combo_changed_by_manual
self.machine_combo_changed_by_manual = True
# Do reparse recipes
self.builder.switch_page(self.builder.RCPPKGINFO_POPULATING)
self.builder.populate_recipe_package_info_async()
def update_machine_combo(self):
all_machines = self.builder.parameters.all_machines
@@ -269,6 +281,7 @@ class ImageConfigurationPage (HobPage):
self.machine_combo.set_active(-1)
def switch_machine_combo(self):
self.machine_combo_changed_by_manual = False
model = self.machine_combo.get_model()
active = 0
while active < len(model):
@@ -278,6 +291,16 @@ class ImageConfigurationPage (HobPage):
active += 1
self.machine_combo.set_active(-1)
def update_image_desc(self, selected_image):
desc = ""
if selected_image and selected_image in self.builder.recipe_model.pn_path.keys():
image_path = self.builder.recipe_model.pn_path[selected_image]
image_iter = self.builder.recipe_model.get_iter(image_path)
desc = self.builder.recipe_model.get_value(image_iter, self.builder.recipe_model.COL_DESC)
mark = ("<span %s>%s</span>\n") % (self.span_tag('small'), desc)
self.image_desc.set_markup(mark)
def image_combo_changed_idle_cb(self, selected_image, selected_recipes, selected_packages):
self.builder.update_recipe_model(selected_image, selected_recipes)
self.builder.update_package_model(selected_packages)
@@ -289,14 +312,14 @@ class ImageConfigurationPage (HobPage):
if not selected_image:
return
self.builder.customized = False
selected_recipes = []
image_path = self.builder.recipe_model.pn_path[selected_image]
image_iter = self.builder.recipe_model.get_iter(image_path)
selected_packages = self.builder.recipe_model.get_value(image_iter, self.builder.recipe_model.COL_INSTALL).split()
mark = ("<span %s>%s</span>\n") % (self.span_tag('14px'), self.builder.recipe_model.get_value(image_iter, self.builder.recipe_model.COL_DESC))
self.image_desc.set_markup(mark)
self.update_image_desc(selected_image)
self.builder.recipe_model.reset()
self.builder.package_model.reset()
@@ -338,11 +361,17 @@ class ImageConfigurationPage (HobPage):
active = cnt
cnt = cnt + 1
self.image_combo.append_text(self.builder.recipe_model.__dummy_image__)
self._image_combo_connect_signal()
if selected_image == self.builder.recipe_model.__dummy_image__:
active = cnt
self.image_combo.set_active(-1)
self.image_combo.set_active(active)
if active != -1:
self.show_baseimg_selected()
self._image_combo_connect_signal()
def layer_button_clicked_cb(self, button):
# Create a layer selection dialog
self.builder.show_layer_selection_dialog()
@@ -360,11 +389,19 @@ class ImageConfigurationPage (HobPage):
self.builder.build_packages()
def template_button_clicked_cb(self, button):
self.builder.show_load_template_dialog()
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()
def settings_button_clicked_cb(self, button):
# Create an advanced settings dialog
self.builder.show_adv_settings_dialog()
response, settings_changed = self.builder.show_adv_settings_dialog()
if not response:
return
if settings_changed:
self.builder.reparse_post_adv_settings()

View File

@@ -113,6 +113,8 @@ class ImageDetailsPage (HobPage):
super(ImageDetailsPage, self).__init__(builder, "Image details")
self.image_store = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING, gobject.TYPE_BOOLEAN)
self.button_ids = {}
self.details_bottom_buttons = gtk.HBox(False, 6)
self.create_visual_elements()
def create_visual_elements(self):
@@ -122,12 +124,24 @@ 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,
"My images",
"Images",
hic.ICON_IMAGES_DISPLAY_FILE,
hic.ICON_IMAGES_HOVER_FILE,
"Open images built out previously for running or deployment",
"Open previously built images",
self.my_images_button_clicked_cb)
settings_button = self.append_toolbar_button(self.toolbar,
"Settings",
hic.ICON_SETTINGS_DISPLAY_FILE,
hic.ICON_SETTINGS_HOVER_FILE,
"View additional build settings",
self.settings_button_clicked_cb)
self.details_top_buttons = self.add_onto_top_bar(self.toolbar)
@@ -138,15 +152,9 @@ class ImageDetailsPage (HobPage):
children = self.box_group_area.get_children() or []
for child in children:
self.box_group_area.remove(child)
def _size_to_string(self, size):
if len(str(int(size))) > 6:
size_str = '%.1f' % (size*1.0/(1024*1024)) + ' MB'
elif len(str(int(size))) > 3:
size_str = '%.1f' % (size*1.0/1024) + ' KB'
else:
size_str = str(size) + ' B'
return size_str
children = self.details_bottom_buttons.get_children() or []
for child in children:
self.details_bottom_buttons.remove(child)
def show_page(self, step):
build_succeeded = (step == self.builder.IMAGE_GENERATED)
@@ -160,10 +168,15 @@ class ImageDetailsPage (HobPage):
else:
pkg_num = "N/A"
# remove
for button_id, button in self.button_ids.items():
button.disconnect(button_id)
self._remove_all_widget()
# repack
self.pack_start(self.details_top_buttons, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
self.build_result = None
if build_succeeded:
# building is the previous step
icon = gtk.Image()
@@ -173,26 +186,48 @@ class ImageDetailsPage (HobPage):
icon.set_from_pixbuf(pix_buffer)
varlist = [""]
vallist = ["Your image is ready"]
build_result = self.DetailBox(varlist=varlist, vallist=vallist, icon=icon, color=color)
self.box_group_area.pack_start(build_result, expand=False, fill=False)
self.build_result = self.DetailBox(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 build_succeeded:
self.buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"]
else: # get to this page from "My images"
self.buttonlist = ["Build new image", "Run image", "Deploy image"]
# Name
self.image_store.clear()
default_toggled = False
default_image_size = 0
i = 0
for image_name in image_names:
image_size = self._size_to_string(os.stat(os.path.join(image_addr, image_name)).st_size)
self.image_store.set(self.image_store.append(), 0, image_name, 1, image_size, 2, False)
image_size = HobPage._size_to_string(os.stat(os.path.join(image_addr, image_name)).st_size)
if not default_toggled:
default_toggled = (self.test_type_runnable(image_name) and self.test_mach_runnable(image_name)) \
or self.test_deployable(image_name)
if i == (len(image_names) - 1):
default_toggled = True
self.image_store.set(self.image_store.append(), 0, image_name, 1, image_size, 2, default_toggled)
if default_toggled:
default_image_size = image_size
self.create_bottom_buttons(self.buttonlist, image_name)
else:
self.image_store.set(self.image_store.append(), 0, image_name, 1, image_size, 2, False)
i = i + 1
image_table = HobViewTable(self.__columns__)
image_table.set_model(self.image_store)
image_size = self._size_to_string(os.stat(os.path.join(image_addr, image_names[0])).st_size)
image_table.connect("toggled", self.toggled_cb)
view_files_button = HobAltButton("View files")
view_files_button.connect("clicked", self.view_files_clicked_cb, image_addr)
self.box_group_area.pack_start(self.DetailBox(widget=image_table, button=view_files_button), expand=True, fill=True)
view_files_button.set_tooltip_text("Open the directory containing the image files")
self.image_detail = self.DetailBox(widget=image_table, button=view_files_button)
self.box_group_area.pack_start(self.image_detail, expand=True, fill=True)
# Machine, Base image and Layers
layer_num_limit = 15
varlist = ["Machine: ", "Base image: ", "Layers: "]
vallist = []
self.setting_detail = None
if build_succeeded:
vallist.append(machine)
vallist.append(base_image)
@@ -214,29 +249,27 @@ class ImageDetailsPage (HobPage):
i += 1
edit_config_button = HobAltButton("Edit configuration")
edit_config_button.set_tooltip_text("Edit machine, base image and recipes")
edit_config_button.connect("clicked", self.edit_config_button_clicked_cb)
setting_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_config_button)
self.box_group_area.pack_start(setting_detail, expand=False, fill=False)
self.setting_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_config_button)
self.box_group_area.pack_start(self.setting_detail, expand=False, fill=False)
# Packages included, and Total image size
varlist = ["Packages included: ", "Total image size: "]
vallist = []
vallist.append(pkg_num)
vallist.append(image_size)
vallist.append(default_image_size)
if build_succeeded:
edit_packages_button = HobAltButton("Edit packages")
edit_packages_button.set_tooltip_text("Edit the packages included in your image")
edit_packages_button.connect("clicked", self.edit_packages_button_clicked_cb)
else: # get to this page from "My images"
edit_packages_button = None
self.package_detail = self.DetailBox(varlist=varlist, vallist=vallist, button=edit_packages_button)
self.box_group_area.pack_start(self.package_detail, expand=False, fill=False)
if build_succeeded:
buttonlist = ["Build new image", "Save as template", "Run image", "Deploy image"]
else: # get to this page from "My images"
buttonlist = ["Build new image", "Run image", "Deploy image"]
details_bottom_buttons = self.create_bottom_buttons(buttonlist)
self.box_group_area.pack_end(details_bottom_buttons, expand=False, fill=False)
# pack the buttons at the bottom, at this time they are already created.
self.box_group_area.pack_end(self.details_bottom_buttons, expand=False, fill=False)
self.show_all()
@@ -246,6 +279,30 @@ class ImageDetailsPage (HobPage):
def refresh_package_detail_box(self, image_size):
self.package_detail.update_line_widgets("Total image size: ", image_size)
def test_type_runnable(self, image_name):
type_runnable = False
for t in self.builder.parameters.runnable_image_types:
if image_name.endswith(t):
type_runnable = True
break
return type_runnable
def test_mach_runnable(self, image_name):
mach_runnable = False
for t in self.builder.parameters.runnable_machine_patterns:
if t in image_name:
mach_runnable = True
break
return mach_runnable
def test_deployable(self, image_name):
deployable = False
for t in self.builder.parameters.deployable_image_types:
if image_name.endswith(t):
deployable = True
break
return deployable
def toggled_cb(self, table, cell, path, columnid, tree):
model = tree.get_model()
if not model:
@@ -259,80 +316,97 @@ class ImageDetailsPage (HobPage):
model[path][columnid] = True
self.refresh_package_detail_box(model[path][1])
type_runnable = False
mach_runnable = False
image_name = model[path][0]
for t in self.builder.parameters.runnable_image_types:
if image_name.endswith(t):
type_runnable = True
break
for t in self.builder.parameters.runnable_machine_patterns:
if t in image_name:
mach_runnable = True
break
# remove
for button_id, button in self.button_ids.items():
button.disconnect(button_id)
self._remove_all_widget()
# repack
self.pack_start(self.details_top_buttons, expand=False, fill=False)
self.pack_start(self.group_align, expand=True, fill=True)
if self.build_result:
self.box_group_area.pack_start(self.build_result, expand=False, fill=False)
self.box_group_area.pack_start(self.image_detail, expand=True, fill=True)
if self.setting_detail:
self.box_group_area.pack_start(self.setting_detail, expand=False, fill=False)
self.box_group_area.pack_start(self.package_detail, expand=False, fill=False)
self.create_bottom_buttons(self.buttonlist, image_name)
self.box_group_area.pack_end(self.details_bottom_buttons, expand=False, fill=False)
self.show_all()
self.run_button.set_sensitive(type_runnable and mach_runnable)
deployable = False
for t in self.builder.parameters.deployable_image_types:
if image_name.endswith(t):
deployable = True
break
self.deploy_button.set_sensitive(deployable)
def create_bottom_buttons(self, buttonlist):
def create_bottom_buttons(self, buttonlist, image_name):
# Create the buttons at the bottom
bottom_buttons = gtk.HBox(False, 6)
created = False
packed = False
self.button_ids = {}
# create button "Deploy image"
name = "Deploy image"
if name in buttonlist:
self.deploy_button = HobButton('Deploy image')
self.deploy_button.set_size_request(205, 49)
self.deploy_button.set_tooltip_text("Deploy image to get your target board")
self.deploy_button.set_flags(gtk.CAN_DEFAULT)
self.deploy_button.grab_default()
self.deploy_button.connect("clicked", self.deploy_button_clicked_cb)
bottom_buttons.pack_end(self.deploy_button, expand=False, fill=False)
if name in buttonlist and self.test_deployable(image_name):
deploy_button = HobButton('Deploy image')
deploy_button.set_size_request(205, 49)
deploy_button.set_tooltip_text("Burn a live image to a USB drive or flash memory")
deploy_button.set_flags(gtk.CAN_DEFAULT)
button_id = deploy_button.connect("clicked", self.deploy_button_clicked_cb)
self.button_ids[button_id] = deploy_button
self.details_bottom_buttons.pack_end(deploy_button, expand=False, fill=False)
created = True
packed = True
name = "Run image"
if name in buttonlist:
if name in buttonlist and self.test_type_runnable(image_name) and self.test_mach_runnable(image_name):
if created == True:
# separator
label = gtk.Label(" or ")
bottom_buttons.pack_end(label, expand=False, fill=False)
self.details_bottom_buttons.pack_end(label, expand=False, fill=False)
# create button "Run image"
self.run_button = HobAltButton("Run image")
self.run_button.connect("clicked", self.run_button_clicked_cb)
bottom_buttons.pack_end(self.run_button, expand=False, fill=False)
# create button "Run image"
run_button = HobAltButton("Run image")
else:
# create button "Run image" as the primary button
run_button = HobButton("Run image")
run_button.set_size_request(205, 49)
run_button.set_flags(gtk.CAN_DEFAULT)
packed = True
run_button.set_tooltip_text("Start up an image with qemu emulator")
button_id = run_button.connect("clicked", self.run_button_clicked_cb)
self.button_ids[button_id] = run_button
self.details_bottom_buttons.pack_end(run_button, expand=False, fill=False)
created = True
if not packed:
box = gtk.HBox(False, 6)
box.show()
subbox = gtk.HBox(False, 0)
subbox.set_size_request(205, 49)
subbox.show()
box.add(subbox)
self.details_bottom_buttons.pack_end(box, False, False)
name = "Save as template"
if name in buttonlist:
if created == True:
# separator
label = gtk.Label(" or ")
bottom_buttons.pack_end(label, expand=False, fill=False)
self.details_bottom_buttons.pack_end(label, expand=False, fill=False)
# create button "Save as template"
save_button = HobAltButton("Save as template")
save_button.connect("clicked", self.save_button_clicked_cb)
bottom_buttons.pack_end(save_button, expand=False, fill=False)
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"
build_new_button = HobAltButton("Build new image")
build_new_button.connect("clicked", self.build_new_button_clicked_cb)
bottom_buttons.pack_start(build_new_button, expand=False, fill=False)
return bottom_buttons
build_new_button.set_tooltip_text("Create a new image from scratch")
button_id = build_new_button.connect("clicked", self.build_new_button_clicked_cb)
self.button_ids[button_id] = build_new_button
self.details_bottom_buttons.pack_start(build_new_button, expand=False, fill=False)
def _get_selected_image(self):
image_name = ""
@@ -358,7 +432,7 @@ class ImageDetailsPage (HobPage):
self.builder.runqemu_image(image_name)
def build_new_button_clicked_cb(self, button):
self.builder.initiate_new_build()
self.builder.initiate_new_build_async()
def edit_config_button_clicked_cb(self, button):
self.builder.show_configuration()
@@ -366,5 +440,20 @@ 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()
def settings_button_clicked_cb(self, button):
# Create an advanced settings dialog
response, settings_changed = self.builder.show_adv_settings_dialog()
if not response:
return
if settings_changed:
self.builder.reparse_post_adv_settings()

View File

@@ -37,51 +37,56 @@ class PackageSelectionPage (HobPage):
'name' : 'Included',
'filter' : { PackageListModel.COL_INC : [True] },
'columns' : [{
'col_name' : 'Package Name',
'col_name' : 'Package name',
'col_id' : PackageListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 300
'col_max' : 300,
'expand' : 'True'
}, {
'col_name' : 'Brought in by',
'col_id' : PackageListModel.COL_BINB,
'col_style': 'text',
'col_style': 'binb',
'col_min' : 100,
'col_max' : 350
'col_max' : 350,
'expand' : 'True'
}, {
'col_name' : 'Size',
'col_id' : PackageListModel.COL_SIZE,
'col_style': 'text',
'col_min' : 100,
'col_max' : 300
'col_max' : 300,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : PackageListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 50,
'col_max' : 50
'col_min' : 100,
'col_max' : 100
}]
}, {
'name' : 'All packages',
'filter' : {},
'columns' : [{
'col_name' : 'Package Name',
'col_name' : 'Package name',
'col_id' : PackageListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Size',
'col_id' : PackageListModel.COL_SIZE,
'col_style': 'text',
'col_min' : 100,
'col_max' : 500
'col_max' : 500,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : PackageListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 50,
'col_max' : 50
'col_min' : 100,
'col_max' : 100
}]
}
]
@@ -90,6 +95,7 @@ class PackageSelectionPage (HobPage):
super(PackageSelectionPage, self).__init__(builder, "Packages")
# set invisiable members
self.recipe_model = self.builder.recipe_model
self.package_model = self.builder.package_model
# create visual elements
@@ -110,10 +116,10 @@ class PackageSelectionPage (HobPage):
tab = HobViewTable(columns)
filter = page['filter']
tab.set_model(self.package_model.tree_model(filter))
tab.connect("toggled", self.table_toggled_cb)
tab.connect("toggled", self.table_toggled_cb, page['name'])
if page['name'] == "Included":
tab.connect("row-activated", self.tree_row_activated_cb)
tab.connect("button-release-event", self.button_click_cb)
tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include)
label = gtk.Label(page['name'])
self.ins.append_page(tab, label)
self.tables.append(tab)
@@ -131,7 +137,7 @@ class PackageSelectionPage (HobPage):
self.build_image_button = HobButton('Build image')
self.build_image_button.set_size_request(205, 49)
self.build_image_button.set_tooltip_text("Build image to get your target image")
self.build_image_button.set_tooltip_text("Build target image")
self.build_image_button.set_flags(gtk.CAN_DEFAULT)
self.build_image_button.grab_default()
self.build_image_button.connect("clicked", self.build_image_clicked_cb)
@@ -141,10 +147,13 @@ class PackageSelectionPage (HobPage):
self.back_button.connect("clicked", self.back_button_clicked_cb)
button_box.pack_start(self.back_button, expand=False, fill=False)
def tree_row_activated_cb(self, table, tree_model, path):
binb = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB)
if binb:
self.builder.show_binb_dialog(binb)
def button_click_cb(self, widget, event):
path, col = widget.table_tree.get_cursor()
tree_model = widget.table_tree.get_model()
if path: # else activation is likely a removal
binb = tree_model.get_value(tree_model.get_iter(path), PackageListModel.COL_BINB)
if binb:
self.builder.show_binb_dialog(binb)
def build_image_clicked_cb(self, button):
self.builder.build_image()
@@ -160,44 +169,81 @@ class PackageSelectionPage (HobPage):
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)
selected_packages_size = float(self.package_model.get_packages_size())
selected_packages_size_str = self._size_to_string(selected_packages_size)
selected_packages_size = self.package_model.get_packages_size()
selected_packages_size_str = HobPage._size_to_string(selected_packages_size)
image_overhead_factor = self.builder.configuration.image_overhead_factor
image_rootfs_size = self.builder.configuration.image_rootfs_size
image_extra_size = self.builder.configuration.image_extra_size
image_rootfs_size = self.builder.configuration.image_rootfs_size * 1024 # image_rootfs_size is KB
image_extra_size = self.builder.configuration.image_extra_size * 1024 # image_extra_size is KB
base_size = image_overhead_factor * selected_packages_size
image_total_size = max(base_size, image_rootfs_size) + image_extra_size
image_total_size_str = self._size_to_string(image_total_size)
if "zypper" in self.builder.configuration.selected_packages:
image_total_size += (51200 * 1024)
image_total_size_str = HobPage._size_to_string(image_total_size)
self.label.set_text("Packages included: %s\nSelected packages size: %s\nTotal image size: %s" %
(selected_packages_num, selected_packages_size_str, image_total_size_str))
self.ins.show_indicator_icon("Included", selected_packages_num)
"""
Helper function to convert the package size to string format.
The unit of size is KB
"""
def _size_to_string(self, size):
if len(str(int(size))) > 3:
size_str = '%.1f' % (size*1.0/1024) + ' MB'
else:
size_str = str(size) + ' KB'
return size_str
def toggle_item_idle_cb(self, path):
def toggle_item_idle_cb(self, path, view_tree, cell, pagename):
if not self.package_model.path_included(path):
self.package_model.include_item(item_path=path, binb="User Selected")
else:
self.package_model.exclude_item(item_path=path)
if pagename == "Included":
self.pre_fadeout_checkout_include(view_tree)
self.package_model.exclude_item(item_path=path)
self.render_fadeout(view_tree, cell)
else:
self.package_model.exclude_item(item_path=path)
self.refresh_selection()
if not self.builder.customized:
self.builder.customized = True
self.builder.configuration.selected_image = self.recipe_model.__dummy_image__
self.builder.rcppkglist_populated()
self.builder.window_sensitive(True)
def table_toggled_cb(self, table, cell, view_path, toggled_columnid, view_tree):
def table_toggled_cb(self, table, cell, view_path, toggled_columnid, view_tree, pagename):
# Click to include a package
self.builder.window_sensitive(False)
view_model = view_tree.get_model()
path = self.package_model.convert_vpath_to_path(view_model, view_path)
glib.idle_add(self.toggle_item_idle_cb, path)
glib.idle_add(self.toggle_item_idle_cb, path, view_tree, cell, pagename)
def pre_fadeout_checkout_include(self, tree):
self.package_model.resync_fadeout_column(self.package_model.get_iter_first())
# Check out a model which base on the column COL_FADE_INC,
# it's save the prev state of column COL_INC before do exclude_item
filter = { PackageListModel.COL_FADE_INC : [True]}
new_model = self.package_model.tree_model(filter)
tree.set_model(new_model)
tree.expand_all()
def get_excluded_rows(self, to_render_cells, model, it):
while it:
path = model.get_path(it)
prev_cell_is_active = model.get_value(it, PackageListModel.COL_FADE_INC)
curr_cell_is_active = model.get_value(it, PackageListModel.COL_INC)
if (prev_cell_is_active == True) and (curr_cell_is_active == False):
to_render_cells.append(path)
if model.iter_has_child(it):
self.get_excluded_rows(to_render_cells, model, model.iter_children(it))
it = model.iter_next(it)
return to_render_cells
def render_fadeout(self, tree, cell):
if (not cell) or (not tree):
return
to_render_cells = []
view_model = tree.get_model()
self.get_excluded_rows(to_render_cells, view_model, view_model.get_iter_first())
cell.fadeout(tree, 1000, to_render_cells)
def after_fadeout_checkin_include(self, table, ctrl, cell, tree):
tree.set_model(self.package_model.tree_model(self.pages[0]['filter']))
tree.expand_all()

View File

@@ -35,7 +35,7 @@ class PersistentTooltip(gtk.Window):
markup: some Pango text markup to display in the tooltip
"""
def __init__(self, markup):
def __init__(self, markup, parent_win=None):
gtk.Window.__init__(self, gtk.WINDOW_POPUP)
# Inherit the system theme for a tooltip
@@ -76,6 +76,10 @@ class PersistentTooltip(gtk.Window):
# Ensure a reasonable minimum size
self.set_geometry_hints(self, 100, 50)
# Set this window as a transient window for parent(main window)
if parent_win:
self.set_transient_for(parent_win)
self.set_destroy_with_parent(True)
# Draw our label and close buttons
hbox = gtk.HBox(False, 0)
hbox.show()
@@ -87,7 +91,7 @@ class PersistentTooltip(gtk.Window):
self.button = gtk.Button()
self.button.set_image(img)
self.button.connect("clicked", self._dismiss_cb)
self.button.set_can_default(True)
self.button.set_flags(gtk.CAN_DEFAULT)
self.button.grab_focus()
self.button.show()
vbox = gtk.VBox(False, 0)
@@ -121,11 +125,17 @@ class PersistentTooltip(gtk.Window):
style.fg[gtk.STATE_NORMAL] = gtk.gdk.color_parse(val)
self.label.set_style(style)
break # we only care for the tooltip_fg_color
self.label.set_markup(markup)
self.label.show()
bin.add(self.label)
hbox.pack_end(bin, True, True, 6)
# add the original URL display for user reference
if 'a href' in markup:
hbox.set_tooltip_text(self.get_markup_url(markup))
hbox.show()
self.connect("key-press-event", self._catch_esc_cb)
"""
@@ -161,3 +171,16 @@ class PersistentTooltip(gtk.Window):
def hide(self):
self.shown = False
gtk.Window.hide(self)
"""
Called to get the hyperlink URL from markup text.
"""
def get_markup_url(self, markup):
url = "http:"
if markup and type(markup) == str:
s = markup
if 'http:' in s:
import re
url = re.search('(http:[^,\\ "]+)', s).group(0)
return url

View File

@@ -29,10 +29,12 @@ class HobProgressBar (gtk.ProgressBar):
def set_rcstyle(self, status):
rcstyle = gtk.RcStyle()
rcstyle.fg[2] = gtk.gdk.Color(HobColors.BLACK)
if status:
rcstyle.bg[3] = gtk.gdk.Color(HobColors.RUNNING)
else:
if status == "stop":
rcstyle.bg[3] = gtk.gdk.Color(HobColors.WARNING)
elif status == "fail":
rcstyle.bg[3] = gtk.gdk.Color(HobColors.ERROR)
else:
rcstyle.bg[3] = gtk.gdk.Color(HobColors.RUNNING)
self.modify_style(rcstyle)
def set_title(self, text=None):

View File

@@ -34,76 +34,93 @@ class RecipeSelectionPage (HobPage):
pages = [
{
'name' : 'Included',
'tooltip' : 'The recipes currently included for your image',
'filter' : { RecipeListModel.COL_INC : [True],
RecipeListModel.COL_TYPE : ['recipe', 'task'] },
'columns' : [{
'col_name' : 'Recipe Name',
'col_name' : 'Recipe name',
'col_id' : RecipeListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Brought in by',
'col_id' : RecipeListModel.COL_BINB,
'col_style': 'text',
'col_style': 'binb',
'col_min' : 100,
'col_max' : 500
}, {
'col_name' : 'Included',
'col_id' : RecipeListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 50,
'col_max' : 50
}]
}, {
'name' : 'All recipes',
'filter' : { RecipeListModel.COL_TYPE : ['recipe'] },
'columns' : [{
'col_name' : 'Recipe Name',
'col_id' : RecipeListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
}, {
'col_name' : 'License',
'col_id' : RecipeListModel.COL_LIC,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 500,
'expand' : 'True'
}, {
'col_name' : 'Group',
'col_id' : RecipeListModel.COL_GROUP,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 300,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : RecipeListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 50,
'col_max' : 50
'col_min' : 100,
'col_max' : 100
}]
}, {
'name' : 'Tasks',
'filter' : { RecipeListModel.COL_TYPE : ['task'] },
'name' : 'All recipes',
'tooltip' : 'All recipes available in the Yocto Project',
'filter' : { RecipeListModel.COL_TYPE : ['recipe'] },
'columns' : [{
'col_name' : 'Task Name',
'col_name' : 'Recipe name',
'col_id' : RecipeListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'License',
'col_id' : RecipeListModel.COL_LIC,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Group',
'col_id' : RecipeListModel.COL_GROUP,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : RecipeListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 100,
'col_max' : 100
}]
}, {
'name' : 'Tasks',
'tooltip' : 'All tasks available in the Yocto Project',
'filter' : { RecipeListModel.COL_TYPE : ['task'] },
'columns' : [{
'col_name' : 'Task name',
'col_id' : RecipeListModel.COL_NAME,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Description',
'col_id' : RecipeListModel.COL_DESC,
'col_style': 'text',
'col_min' : 100,
'col_max' : 400
'col_max' : 400,
'expand' : 'True'
}, {
'col_name' : 'Included',
'col_id' : RecipeListModel.COL_INC,
'col_style': 'check toggle',
'col_min' : 50,
'col_max' : 50
'col_min' : 100,
'col_max' : 100
}]
}
]
@@ -132,17 +149,22 @@ class RecipeSelectionPage (HobPage):
tab = HobViewTable(columns)
filter = page['filter']
tab.set_model(self.recipe_model.tree_model(filter))
tab.connect("toggled", self.table_toggled_cb)
tab.connect("toggled", self.table_toggled_cb, page['name'])
if page['name'] == "Included":
tab.connect("row-activated", self.tree_row_activated_cb)
tab.connect("button-release-event", self.button_click_cb)
tab.connect("cell-fadeinout-stopped", self.after_fadeout_checkin_include)
label = gtk.Label(page['name'])
label.set_selectable(False)
label.set_tooltip_text(page['tooltip'])
self.ins.append_page(tab, label)
self.tables.append(tab)
self.ins.set_entry("Search recipes:")
# set the search entry for each table
for tab in self.tables:
search_tip = "Enter a recipe's or task's name to find it"
self.ins.search.set_tooltip_text(search_tip)
self.ins.search.props.has_tooltip = True
tab.set_search_entry(0, self.ins.search)
# add all into the window
@@ -153,7 +175,7 @@ class RecipeSelectionPage (HobPage):
self.build_packages_button = HobButton('Build packages')
self.build_packages_button.set_size_request(205, 49)
self.build_packages_button.set_tooltip_text("Build packages for customization")
self.build_packages_button.set_tooltip_text("Build selected recipes into packages")
self.build_packages_button.set_flags(gtk.CAN_DEFAULT)
self.build_packages_button.grab_default()
self.build_packages_button.connect("clicked", self.build_packages_clicked_cb)
@@ -163,10 +185,13 @@ class RecipeSelectionPage (HobPage):
self.back_button.connect("clicked", self.back_button_clicked_cb)
button_box.pack_start(self.back_button, expand=False, fill=False)
def tree_row_activated_cb(self, table, tree_model, path):
binb = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_BINB)
if binb:
self.builder.show_binb_dialog(binb)
def button_click_cb(self, widget, event):
path, col = widget.table_tree.get_cursor()
tree_model = widget.table_tree.get_model()
if path: # else activation is likely a removal
binb = tree_model.get_value(tree_model.get_iter(path), RecipeListModel.COL_BINB)
if binb:
self.builder.show_binb_dialog(binb)
def build_packages_clicked_cb(self, button):
self.builder.build_packages()
@@ -180,18 +205,61 @@ class RecipeSelectionPage (HobPage):
self.label.set_text("Recipes included: %s" % len(self.builder.configuration.selected_recipes))
self.ins.show_indicator_icon("Included", len(self.builder.configuration.selected_recipes))
def toggle_item_idle_cb(self, path):
def toggle_item_idle_cb(self, path, view_tree, cell, pagename):
if not self.recipe_model.path_included(path):
self.recipe_model.include_item(item_path=path, binb="User Selected", image_contents=False)
else:
self.recipe_model.exclude_item(item_path=path)
if pagename == "Included":
self.pre_fadeout_checkout_include(view_tree)
self.recipe_model.exclude_item(item_path=path)
self.render_fadeout(view_tree, cell)
else:
self.recipe_model.exclude_item(item_path=path)
self.refresh_selection()
if not self.builder.customized:
self.builder.customized = True
self.builder.configuration.selected_image = self.recipe_model.__dummy_image__
self.builder.rcppkglist_populated()
self.builder.window_sensitive(True)
def table_toggled_cb(self, table, cell, view_path, toggled_columnid, view_tree):
def table_toggled_cb(self, table, cell, view_path, toggled_columnid, view_tree, pagename):
# Click to include a recipe
self.builder.window_sensitive(False)
view_model = view_tree.get_model()
path = self.recipe_model.convert_vpath_to_path(view_model, view_path)
glib.idle_add(self.toggle_item_idle_cb, path)
glib.idle_add(self.toggle_item_idle_cb, path, view_tree, cell, pagename)
def pre_fadeout_checkout_include(self, tree):
#resync the included items to a backup fade include column
it = self.recipe_model.get_iter_first()
while it:
active = self.recipe_model.get_value(it, self.recipe_model.COL_INC)
self.recipe_model.set(it, self.recipe_model.COL_FADE_INC, active)
it = self.recipe_model.iter_next(it)
# Check out a model which base on the column COL_FADE_INC,
# it's save the prev state of column COL_INC before do exclude_item
filter = { RecipeListModel.COL_FADE_INC : [True],
RecipeListModel.COL_TYPE : ['recipe', 'task'] }
new_model = self.recipe_model.tree_model(filter, excluded_items_ahead=True)
tree.set_model(new_model)
def render_fadeout(self, tree, cell):
if (not cell) or (not tree):
return
to_render_cells = []
model = tree.get_model()
it = model.get_iter_first()
while it:
path = model.get_path(it)
prev_cell_is_active = model.get_value(it, RecipeListModel.COL_FADE_INC)
curr_cell_is_active = model.get_value(it, RecipeListModel.COL_INC)
if (prev_cell_is_active == True) and (curr_cell_is_active == False):
to_render_cells.append(path)
it = model.iter_next(it)
cell.fadeout(tree, 1000, to_render_cells)
def after_fadeout_checkin_include(self, table, ctrl, cell, tree):
tree.set_model(self.recipe_model.tree_model(self.pages[0]['filter']))

View File

@@ -82,6 +82,9 @@ class RunningBuild (gobject.GObject):
'log-error' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
()),
'no-provider' : (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
(gobject.TYPE_PYOBJECT,)),
}
pids_to_task = {}
tasks_to_iter = {}
@@ -320,6 +323,20 @@ class RunningBuild (gobject.GObject):
message["title"] = ""
message["task"] = event.taskstring
self.emit("task-started", message)
elif isinstance(event, bb.event.NoProvider):
msg = ""
if event._runtime:
r = "R"
else:
r = ""
if event._dependees:
msg = "Nothing %sPROVIDES '%s' (but %s %sDEPENDS on or otherwise requires it)\n" % (r, event._item, ", ".join(event._dependees), r)
else:
msg = "Nothing %sPROVIDES '%s'\n" % (r, event._item)
if event._reasons:
for reason in event._reasons:
msg += ("%s\n" % reason)
self.emit("no-provider", msg)
return
@@ -425,7 +442,7 @@ class BuildFailureTreeView(gtk.TreeView):
self.get_selection().set_mode(gtk.SELECTION_SINGLE)
# The icon that indicates whether we're building or failed.
renderer = gtk.CellRendererPixbuf ()
renderer = HobCellRendererPixbuf ()
col = gtk.TreeViewColumn ("Status", renderer)
col.add_attribute (renderer, "icon-name", RunningBuildModel.COL_ICON)
self.append_column (col)

View File

@@ -136,11 +136,27 @@ class TemplateMgr(gobject.GObject):
self.local_conf = None
self.image_bb = None
@classmethod
def convert_to_template_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "template-", filename, ".hob")
@classmethod
def convert_to_bblayers_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "bblayers-", filename, ".conf")
@classmethod
def convert_to_local_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "local-", filename, ".conf")
@classmethod
def convert_to_image_pathfilename(cls, filename, path):
return "%s/%s%s%s" % (path, "hob-image-", filename, ".bb")
def open(self, filename, path):
self.template_hob = HobTemplateFile("%s/%s%s%s" % (path, "template-", filename, ".hob"))
self.bblayers_conf = ConfigFile("%s/%s%s%s" % (path, "bblayers-", filename, ".conf"))
self.local_conf = ConfigFile("%s/%s%s%s" % (path, "local-", filename, ".conf"))
self.image_bb = RecipeFile("%s/%s%s%s" % (path, "hob-image-", filename, ".bb"))
self.template_hob = HobTemplateFile(TemplateMgr.convert_to_template_pathfilename(filename, path))
self.bblayers_conf = ConfigFile(TemplateMgr.convert_to_bblayers_pathfilename(filename, path))
self.local_conf = ConfigFile(TemplateMgr.convert_to_local_pathfilename(filename, path))
self.image_bb = RecipeFile(TemplateMgr.convert_to_image_pathfilename(filename, path))
def setVar(self, var, val):
if var in TemplateMgr.__gLocalVars__:

View File

@@ -0,0 +1,33 @@
#
# BitBake UI Utils
#
# Copyright (C) 2012 Intel Corporation
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
# This utility method looks for xterm or vte and return the
# frist to exist, currently we are keeping this simple, but
# we will likely move the oe.terminal implementation into
# bitbake which will allow more flexibility.
import os
def which_terminal():
term = bb.utils.which(os.environ["PATH"], "xterm")
if term:
return term + " -e "
term = bb.utils.which(os.environ["PATH"], "vte")
if term:
return term + " -c "
return None

View File

@@ -20,10 +20,22 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import gobject
import gtk
import sys
import os
requirements = "FATAL: Gtk+, PyGtk and PyGobject are required to use Hob"
try:
import gobject
import gtk
import pygtk
pygtk.require('2.0') # to be certain we don't have gtk+ 1.x !?!
gtkver = gtk.gtk_version
pygtkver = gtk.pygtk_version
if gtkver < (2, 18, 0) or pygtkver < (2, 16, 0):
sys.exit("%s,\nYou have Gtk+ %s and PyGtk %s." % (requirements,
".".join(map(str, gtkver)),
".".join(map(str, pygtkver))))
except ImportError as exc:
sys.exit("%s (%s)." % (requirements, str(exc)))
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
try:
import bb

View File

@@ -3,7 +3,7 @@
#
# Handling output to TTYs or files (no TTY)
#
# Copyright (C) 2006-2007 Richard Purdie
# Copyright (C) 2006-2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
@@ -70,7 +70,41 @@ def pluralise(singular, plural, qty):
else:
return plural % qty
def main(server, eventHandler):
class TerminalFilter(object):
def __init__(self, main, helper, console, format):
self.main = main
self.helper = helper
def clearFooter(self):
return
def updateFooter(self):
if not main.shutdown or not self.helper.needUpdate:
return
activetasks = self.helper.running_tasks
runningpids = self.helper.running_pids
if len(runningpids) == 0:
return
self.helper.getTasks()
tasks = []
for t in runningpids:
tasks.append("%s (pid %s)" % (activetasks[t]["title"], t))
if main.shutdown:
print("Waiting for %s running tasks to finish:" % len(activetasks))
else:
print("Currently %s running tasks (%s of %s):" % (len(activetasks), self.helper.tasknumber_current, self.helper.tasknumber_total))
for tasknum, task in enumerate(tasks):
print("%s: %s" % (tasknum, task))
def finish(self):
return
def main(server, eventHandler, tf = TerminalFilter):
# Get values of variables which control our output
includelogs = server.runCommand(["getVariable", "BBINCLUDELOGS"])
@@ -106,32 +140,29 @@ def main(server, eventHandler):
print("XMLRPC Fault getting commandline:\n %s" % x)
return 1
parseprogress = None
cacheprogress = None
shutdown = 0
main.shutdown = 0
interrupted = False
return_value = 0
errors = 0
warnings = 0
taskfailures = []
termfilter = tf(main, helper, console, format)
while True:
try:
termfilter.updateFooter()
event = eventHandler.waitEvent(0.25)
if event is None:
if shutdown > 1:
if main.shutdown > 1:
break
continue
helper.eventHandler(event)
if isinstance(event, bb.runqueue.runQueueExitWait):
if not shutdown:
shutdown = 1
if shutdown and helper.needUpdate:
activetasks, failedtasks = helper.getTasks()
if activetasks:
print("Waiting for %s active tasks to finish:" % len(activetasks))
for tasknum, task in enumerate(activetasks):
print("%s: %s (pid %s)" % (tasknum, activetasks[task]["title"], task))
if not main.shutdown:
main.shutdown = 1
if isinstance(event, logging.LogRecord):
if event.levelno >= format.ERROR:
@@ -151,6 +182,7 @@ def main(server, eventHandler):
return_value = 1
logfile = event.logfile
if logfile and os.path.exists(logfile):
termfilter.clearFooter()
print("ERROR: Logfile of failure stored in: %s" % logfile)
if includelogs and not event.errprinted:
print("Log data follows:")
@@ -206,14 +238,14 @@ def main(server, eventHandler):
return_value = event.exitcode
errors = errors + 1
logger.error("Command execution failed: %s", event.error)
shutdown = 2
main.shutdown = 2
continue
if isinstance(event, bb.command.CommandExit):
if not return_value:
return_value = event.exitcode
continue
if isinstance(event, (bb.command.CommandCompleted, bb.cooker.CookerExit)):
shutdown = 2
main.shutdown = 2
continue
if isinstance(event, bb.event.MultipleProviders):
logger.info("multiple providers are available for %s%s (%s)", event._is_runtime and "runtime " or "",
@@ -281,18 +313,20 @@ def main(server, eventHandler):
logger.error("Unknown event: %s", event)
except EnvironmentError as ioerror:
termfilter.clearFooter()
# ignore interrupted io
if ioerror.args[0] == 4:
pass
except KeyboardInterrupt:
if shutdown == 1:
termfilter.clearFooter()
if main.shutdown == 1:
print("\nSecond Keyboard Interrupt, stopping...\n")
server.runCommand(["stateStop"])
if shutdown == 0:
if main.shutdown == 0:
interrupted = True
print("\nKeyboard Interrupt, closing down...\n")
server.runCommand(["stateShutdown"])
shutdown = shutdown + 1
main.shutdown = main.shutdown + 1
pass
summary = ""
@@ -315,4 +349,6 @@ def main(server, eventHandler):
if return_value == 0:
return_value = 1
termfilter.finish()
return return_value

View File

@@ -0,0 +1,109 @@
#
# BitBake (No)TTY UI Implementation (v2)
#
# Handling output to TTYs or files (no TTY)
#
# Copyright (C) 2012 Richard Purdie
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from bb.ui import knotty
import logging
import sys
logger = logging.getLogger("BitBake")
class InteractConsoleLogFilter(logging.Filter):
def __init__(self, tf, format):
self.tf = tf
self.format = format
def filter(self, record):
if record.levelno == self.format.NOTE and (record.msg.startswith("Running") or record.msg.startswith("package ")):
return False
self.tf.clearFooter()
return True
class TerminalFilter2(object):
def __init__(self, main, helper, console, format):
self.main = main
self.helper = helper
self.cuu = None
self.stdinbackup = None
self.interactive = sys.stdout.isatty()
self.footer_present = False
self.lastpids = []
if not self.interactive:
return
import curses
import termios
import copy
self.curses = curses
self.termios = termios
try:
fd = sys.stdin.fileno()
self.stdinbackup = termios.tcgetattr(fd)
new = copy.deepcopy(self.stdinbackup)
new[3] = new[3] & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSADRAIN, new)
curses.setupterm()
self.ed = curses.tigetstr("ed")
if self.ed:
self.cuu = curses.tigetstr("cuu")
except:
self.cuu = None
console.addFilter(InteractConsoleLogFilter(self, format))
def clearFooter(self):
if self.footer_present:
lines = self.footer_present
sys.stdout.write(self.curses.tparm(self.cuu, lines))
sys.stdout.write(self.curses.tparm(self.ed))
self.footer_present = False
def updateFooter(self):
if not self.cuu:
return
activetasks = self.helper.running_tasks
failedtasks = self.helper.failed_tasks
runningpids = self.helper.running_pids
if self.footer_present and (self.lastpids == runningpids):
return
if self.footer_present:
self.clearFooter()
if not activetasks:
return
lines = 1
tasks = []
for t in runningpids:
tasks.append("%s (pid %s)" % (activetasks[t]["title"], t))
if self.main.shutdown:
print("Waiting for %s running tasks to finish:" % len(activetasks))
else:
print("Currently %s running tasks (%s of %s):" % (len(activetasks), self.helper.tasknumber_current, self.helper.tasknumber_total))
for tasknum, task in enumerate(tasks):
print("%s: %s" % (tasknum, task))
lines = lines + 1
self.footer_present = lines
self.lastpids = runningpids[:]
def finish(self):
if self.stdinbackup:
fd = sys.stdin.fileno()
self.termios.tcsetattr(fd, self.termios.TCSADRAIN, self.stdinbackup)
def main(server, eventHandler):
bb.ui.knotty.main(server, eventHandler, TerminalFilter2)

View File

@@ -23,6 +23,8 @@ class BBUIHelper:
def __init__(self):
self.needUpdate = False
self.running_tasks = {}
# Running PIDs preserves the order tasks were executed in
self.running_pids = []
self.failed_tasks = []
self.tasknumber_current = 0
self.tasknumber_total = 0
@@ -30,16 +32,20 @@ class BBUIHelper:
def eventHandler(self, event):
if isinstance(event, bb.build.TaskStarted):
self.running_tasks[event.pid] = { 'title' : "%s %s" % (event._package, event._task) }
self.running_pids.append(event.pid)
self.needUpdate = True
if isinstance(event, bb.build.TaskSucceeded):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
self.needUpdate = True
if isinstance(event, bb.build.TaskFailedSilent):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
# Don't add to the failed tasks list since this is e.g. a setscene task failure
self.needUpdate = True
if isinstance(event, bb.build.TaskFailed):
del self.running_tasks[event.pid]
self.running_pids.remove(event.pid)
self.failed_tasks.append( { 'title' : "%s %s" % (event._package, event._task)})
self.needUpdate = True
if isinstance(event, bb.runqueue.runQueueTaskStarted):

View File

@@ -31,9 +31,6 @@ from contextlib import contextmanager
logger = logging.getLogger("BitBake.Util")
# Version comparison
separators = ".-"
# Context used in better_exec, eval
_context = {
"os": os,
@@ -48,15 +45,18 @@ def explode_version(s):
while (s != ''):
if s[0] in string.digits:
m = numeric_regexp.match(s)
r.append(int(m.group(1)))
r.append((0, int(m.group(1))))
s = m.group(2)
continue
if s[0] in string.letters:
m = alpha_regexp.match(s)
r.append(m.group(1))
r.append((1, m.group(1)))
s = m.group(2)
continue
r.append(s[0])
if s[0] == '~':
r.append((-1, s[0]))
else:
r.append((2, s[0]))
s = s[1:]
return r
@@ -77,33 +77,25 @@ def split_version(s):
def vercmp_part(a, b):
va = explode_version(a)
vb = explode_version(b)
sa = False
sb = False
while True:
if va == []:
ca = None
(oa, ca) = (0, None)
else:
ca = va.pop(0)
(oa, ca) = va.pop(0)
if vb == []:
cb = None
(ob, cb) = (0, None)
else:
cb = vb.pop(0)
if ca == None and cb == None:
(ob, cb) = vb.pop(0)
if (oa, ca) == (0, None) and (ob, cb) == (0, None):
return 0
if isinstance(ca, basestring):
sa = ca in separators
if isinstance(cb, basestring):
sb = cb in separators
if sa and not sb:
if oa < ob:
return -1
if not sa and sb:
elif oa > ob:
return 1
if ca > cb:
return 1
if ca < cb:
elif ca < cb:
return -1
elif ca > cb:
return 1
def vercmp(ta, tb):
(ea, va, ra) = ta

View File

@@ -82,7 +82,8 @@ ALLPREQ = html pdf tarball
#
# Note that the tarfile might produce the "Cannot stat: No such file or directory" error
# message for .PNG files that are not present when building a particular branch. The
# list of files is all-inclusive for all branches.
# list of files is all-inclusive for all branches. Note, if you don't provide a BRANCH
# option, it defaults to the latest stuff. This would be appropriate for "master" branch.
#
ifeq ($(BRANCH),edison)
@@ -94,13 +95,22 @@ TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/kernel-overview-3-edison.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
else
else ifeq ($(BRANCH),denzil)
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos.png \
figures/kernel-example-repos-denzil.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3.png \
figures/kernel-overview-3-denzil.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
else
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos-denzil.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3-denzil.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
endif
@@ -195,7 +205,7 @@ validate:
publish:
scp -r $(MANUALS) $(STYLESHEET) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)
cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)/figures
cd $(DOC); scp -r $(FIGURES) www.yoctoproject.org:/srv/www/www.yoctoproject.org-docs/$(VER)/$(DOC)
clean:
rm -f $(MANUALS)

View File

@@ -324,7 +324,7 @@
</para></listitem>
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
If you are using a stand-alone pre-built toolchain, you should be pointing to the
<filename>/opt/poky/1.1</filename> directory.
<filename>&YOCTO_ADTPATH_DIR;</filename> directory.
This is the location for toolchains installed by the ADT Installer or by hand.
Sections "<link linkend='configuring-and-running-the-adt-installer-script'>Configuring
and Running the ADT Installer Script</link>" and

View File

@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<book id='adt-manual' lang='en'
<book id='adt-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
@@ -10,10 +10,10 @@
<mediaobject>
<imageobject>
<imagedata fileref='figures/adt-title.png'
format='SVG'
<imagedata fileref='figures/adt-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</imageobject>
</mediaobject>
<title></title>
@@ -46,8 +46,18 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.1</revnumber>
<date>July 2012</date>
<revremark>Released with the Yocto Project 1.2.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.2</revnumber>
<date>January 2013</date>
<revremark>Released with the Yocto Project 1.2.2 Release.</revremark>
</revision>
</revhistory>
@@ -58,12 +68,13 @@
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
Permission is granted to copy, distribute and/or modify this document
under the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as
published by Creative Commons.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
documentation bundled in the release tarball and the
<ulink url='&YOCTO_DOCS_ADT_URL;'>
Application Developer's Toolkit (ADT) User's Guide</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
@@ -90,6 +101,6 @@
-->
</book>
<!--
vim: expandtab tw=80 ts=4
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<book id='bsp-guide' lang='en'
<book id='bsp-guide' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
@@ -10,13 +10,13 @@
<mediaobject>
<imageobject>
<imagedata fileref='figures/bsp-title.png'
format='SVG'
<imagedata fileref='figures/bsp-title.png'
format='SVG'
align='center' scalefit='1' width='100%'/>
</imageobject>
</imageobject>
</mediaobject>
<title></title>
<title></title>
<authorgroup>
<author>
@@ -58,8 +58,18 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.1</revnumber>
<date>July 2012</date>
<revremark>Released with the Yocto Project 1.2.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.2</revnumber>
<date>January 2013</date>
<revremark>Released with the Yocto Project 1.2.2 Release.</revremark>
</revision>
</revhistory>
@@ -70,12 +80,13 @@
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/">Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-nc-sa/2.0/uk/">Creative Commons Attribution-Non-Commercial-Share Alike 2.0 UK: England &amp; Wales</ulink> as
published by Creative Commons.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
documentation bundled in the release tarball and the
<ulink url='&YOCTO_DOCS_BSP_URL;'>
Board Support Package (BSP) Developer's Guide</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
@@ -93,6 +104,6 @@
-->
</book>
<!--
vim: expandtab tw=80 ts=4
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -19,46 +19,13 @@
</para>
<para>
This chapter (or document if you are reading the BSP Developer's Guide) defines
a structure for these components
so that BSPs follow a commonly understood layout.
Providing a common form allows end-users to understand and become familiar
with the layout.
A common form also encourages standardization
of software support of hardware.
</para>
<note>
The information here does not provide an example of how to create a BSP.
For examples on how to create a BSP, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#dev-manual-bsp-appendix'>BSP Development Example</ulink>"
section in The Yocto Project Development Manual.
You can also see the
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_creating_one_generic_Atom_BSP_from_another'>
wiki page</ulink>.
</note>
<para>
The proposed format does have elements that are specific to the Yocto Project and
OpenEmbedded build systems.
It is intended that this information can be
used by other systems besides Yocto Project and OpenEmbedded and that it will be simple
to extract information and convert it to other formats if required.
Yocto Project, through its standard layers mechanism, can directly accept the format
described as a layer.
The BSP captures all
the hardware-specific details in one place in a standard format, which is
useful for any person wishing to use the hardware platform regardless of
the build system they are using.
</para>
<para>
The BSP specification does not include a build system or other tools -
it is concerned with the hardware-specific components only.
At the end-distribution point, you can ship the BSP combined with a build system
and other tools.
However, it is important to maintain the distinction that these
are separate components that happen to be combined in certain end products.
This chapter (or document if you are reading the BSP Developer's Guide)
talks about BSP Layers, defines a structure for components
so that BSPs follow a commonly understood layout, discusses how to customize
a recipe for a BSP, addresses BSP licensing, and provides information that
shows you how to create and manage a
<link linkend='bsp-layers'>BSP Layer</link> using two Yocto Project
<link linkend='using-the-yocto-projects-bsp-tools'>BSP Tools</link>.
</para>
<section id='bsp-layers'>
@@ -99,13 +66,19 @@
top of the BSP's root layer in order to be functional.
For these cases, you also need to add those layers to the
<filename>BBLAYERS</filename> variable in order to build the BSP.
You must also specify in the "Dependiencies" section of the BSP's
You must also specify in the "Dependencies" section of the BSP's
<filename>README</filename> file any requirements for additional
layers and, preferably, any
build instructions that might be contained elsewhere
in the <filename>README</filename> file.
</para>
<para>
Some layers function as a layer to hold other BSP layers.
An example of this type of layer is the <filename>meta-intel</filename> layer.
The <filename>meta-intel</filename> layer contains over 10 individual BSP layers.
</para>
<para>
For more detailed information on layers, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding and Creating Layers</ulink>"
@@ -119,6 +92,44 @@
<section id="bsp-filelayout">
<title>Example Filesystem Layout</title>
<para>
Providing a common form allows end-users to understand and become familiar
with the layout.
A common format also encourages standardization of software support of hardware.
</para>
<para>
The proposed form does have elements that are specific to the Yocto Project and
OpenEmbedded build systems.
It is intended that this information can be
used by other systems besides Yocto Project and OpenEmbedded and that it will be simple
to extract information and convert it to other formats if required.
Yocto Project, through its standard layers mechanism, can directly accept the format
described as a layer.
The BSP captures all
the hardware-specific details in one place in a standard format, which is
useful for any person wishing to use the hardware platform regardless of
the build system they are using.
</para>
<para>
The BSP specification does not include a build system or other tools -
it is concerned with the hardware-specific components only.
At the end-distribution point, you can ship the BSP combined with a build system
and other tools.
However, it is important to maintain the distinction that these
are separate components that happen to be combined in certain end products.
</para>
<para>
Before looking at the common form for the file structure inside a BSP Layer,
you should be aware that some requirements do exist in order for a BSP to
be considered compliant with the Yocto Project.
For that list of requirements, see the
"<link linkend='released-bsp-requirements'>Released BSP Requirements</link>"
section.
</para>
<para>
Below is the common form for the file structure inside a BSP Layer.
While you can use this basic form for the standard, realize that the actual structures
@@ -128,10 +139,12 @@
meta-&lt;bsp_name&gt;/
meta-&lt;bsp_name&gt;/&lt;bsp_license_file&gt;
meta-&lt;bsp_name&gt;/README
meta-&lt;bsp_name&gt;/README.sources
meta-&lt;bsp_name&gt;/binary/&lt;bootable_images&gt;
meta-&lt;bsp_name&gt;/conf/layer.conf
meta-&lt;bsp_name&gt;/conf/machine/*.conf
meta-&lt;bsp_name&gt;/recipes-bsp/*
meta-&lt;bsp_name&gt;/recipes-core/*
meta-&lt;bsp_name&gt;/recipes-graphics/*
meta-&lt;bsp_name&gt;/recipes-kernel/linux/linux-yocto_&lt;kernel_rev&gt;.bbappend
</literallayout>
@@ -144,7 +157,7 @@
meta-crownbay/COPYING.MIT
meta-crownbay/README
meta-crownbay/README.sources
meta-crownbay/binary
meta-crownbay/binary/
meta-crownbay/conf/
meta-crownbay/conf/layer.conf
meta-crownbay/conf/machine/
@@ -158,8 +171,8 @@
meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay/machconfig
meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay-noemgd/
meta-crownbay/recipes-bsp/formfactor/formfactor/crownbay-noemgd/machconfig
meta-crownbay/recipes-core
meta-crownbay/recipes-core/tasks
meta-crownbay/recipes-core/
meta-crownbay/recipes-core/tasks/
meta-crownbay/recipes-core/tasks/task-core-tools-profile.bbappend
meta-crownbay/recipes-graphics/
meta-crownbay/recipes-graphics/xorg-xserver/
@@ -215,7 +228,7 @@
<para>
This file provides information on how to boot the live images that are optionally
included in the <filename>/binary</filename> directory.
included in the <filename>binary/</filename> directory.
The <filename>README</filename> file also provides special information needed for
building the image.
</para>
@@ -640,6 +653,255 @@
</section>
</section>
<section id='requirements-and-recommendations-for-released-bsps'>
<title>Requirements and Recommendations for Released BSPs</title>
<para>
Certain requirements exist for a released BSP to be considered
compliant with the Yocto Project.
Additionally, a single recommendation also exists.
This section describes the requirements and recommendation for
released BSPs.
</para>
<section id='released-bsp-requirements'>
<title>Released BSP Requirements</title>
<para>
Before looking at BSP requirements, you should consider the following:
<itemizedlist>
<listitem><para>The requirements here assume the BSP layer is a well-formed, "legal"
layer that can be added to the Yocto Project.
For guidelines on creating a Yocto Project layer that meets these base requirements, see the
"<link linkend='bsp-layers'>BSP Layers</link>" and the
"<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>Understanding
and Creating Layers"</ulink> in the Yocto Project Development Manual.</para></listitem>
<listitem><para>The requirements in this section apply regardless of how you
ultimately package a BSP.
You should consult the packaging and distribution guidelines for your
specific release process.
For an example of packaging and distribution requirements, see the
<ulink url='https://wiki.yoctoproject.org/wiki/Third_Party_BSP_Release_Process'>Third
Party BSP Release Process</ulink> wiki page.</para></listitem>
<listitem><para>The requirements for the BSP as it is made available to a developer
are completely independent of the released form of the BSP.
For example, the BSP metadata can be contained within a Git repository
and could have a directory structure completely different from what appears
in the officially released BSP layer.</para></listitem>
<listitem><para>It is not required that specific packages or package
modifications exist in the BSP layer, beyond the requirements for general
compliance with the Yocto Project.
For example, no requirement exists dictating that a specific kernel or
kernel version be used in a given BSP.</para></listitem>
</itemizedlist>
</para>
<para>
Following are the requirements for a released BSP that conforms to the
Yocto Project:
<itemizedlist>
<listitem><para><emphasis>Layer Name:</emphasis>
The BSP must have a layer name that follows the Yocto
Project standards.
For information on BSP layer names, see the
"<link linkend='bsp-layers'>BSP Layers</link>" section.
</para></listitem>
<listitem><para><emphasis>File System Layout:</emphasis>
When possible, use the same directory names in your
BSP layer as listed in the <filename>recipes.txt</filename> file.
In particular, you should place recipes
(<filename>.bb</filename> files) and recipe
modifications (<filename>.bbappend</filename> files) into
<filename>recipes-*</filename> subdirectories by functional area
as outlined in <filename>recipes.txt</filename>.
If you cannot find a category in <filename>recipes.txt</filename>
to fit a particular recipe, you can make up your own
<filename>recipe-*</filename> subdirectory.
You can find <filename>recipes.txt</filename> in the
<filename>meta</filename> directory of the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto
Project Files</ulink>, or in the OpenEmbedded Core Layer
(<filename>openembedded-core</filename>) found at
<ulink url='http://git.openembedded.org/openembedded-core/tree/meta'></ulink>.
</para>
<para>Within any particular <filename>recipes-*</filename> category, the layout
should match what is found in the OpenEmbedded Core
Git repository (<filename>openembedded-core</filename>)
or the Yocto Project Files (<filename>poky</filename>).
In other words, make sure you place related files in appropriately
related <filename>recipes-*</filename> subdirectories specific to the
recipe's function, or within a subdirectory containing a set of closely-related
recipes.
The recipes themselves should follow the general guidelines
for recipes used in the Yocto Project found in the
<ulink url='https://wiki.yoctoproject.org/wiki/Recipe_%26_Patch_Style_Guide'>Yocto
Recipe and Patch Style Guide</ulink>.</para></listitem>
<listitem><para><emphasis>License File:</emphasis>
You must include a license file in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This license covers the BSP metadata as a whole.
You must specify which license to use since there is no
default license if one is not specified.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/COPYING.MIT'><filename>COPYING.MIT</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para></listitem>
<listitem><para><emphasis>README File:</emphasis>
You must include a <filename>README</filename> file in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/README'><filename>README</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para>
<para>At a minimum, the <filename>README</filename> file should
contain the following:
<itemizedlist>
<listitem><para>A brief description about the hardware the BSP
targets.</para></listitem>
<listitem><para>A list of all the dependencies a
on which a BSP layer depends.
These dependencies are typically a list of required layers needed
to build the BSP.
However, the dependencies should also contain information regarding
any other dependencies the BSP might have.</para></listitem>
<listitem><para>Any required special licensing information.
For example, this information includes information on
special variables needed to satisfy a EULA,
or instructions on information needed to build or distribute
binaries built from the BSP metadata.</para></listitem>
<listitem><para>The name and contact information for the
BSP layer maintainer.
This is the person to whom patches and questions should
be sent.</para></listitem>
<listitem><para>Instructions on how to build the BSP using the BSP
layer.</para></listitem>
<listitem><para>Instructions on how to boot the BSP build from
the BSP layer.</para></listitem>
<listitem><para>Instructions on how to boot the binary images
contained in the <filename>/binary</filename> directory,
if present.</para></listitem>
<listitem><para>Information on any known bugs or issues that users
should know about when either building or booting the BSP
binaries.</para></listitem>
</itemizedlist></para></listitem>
<listitem><para><emphasis>README.sources File:</emphasis>
You must include a <filename>README.sources</filename> in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This file specifies exactly where you can find the sources used to
generate the binary images contained in the
<filename>/binary</filename> directory, if present.
See the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/meta-intel/tree/meta-fishriver/README.sources'><filename>README.sources</filename></ulink>
file for the Fish River BSP in the <filename>meta-fishriver</filename> BSP layer
as an example.</para></listitem>
<listitem><para><emphasis>Layer Configuration File:</emphasis>
You must include a <filename>conf/layer.conf</filename> in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
This file identifies the <filename>meta-&lt;bsp_name&gt;</filename>
BSP layer as a layer to the build system.</para></listitem>
<listitem><para><emphasis>Machine Configuration File:</emphasis>
You must include a <filename>conf/machine/&lt;bsp_name&gt;.conf</filename>
in the <filename>meta-&lt;bsp_name&gt;</filename> directory.
This configuration file defines a machine target that can be built
using the BSP layer.
Multiple machine configuration files define variations of machine
configurations that are supported by the BSP.
If a BSP supports more multiple machine variations, you need to
adequately describe each variation in the BSP
<filename>README</filename> file.
Do not use multiple machine configuration files to describe disparate
hardware.
Multiple machine configuration files should describe very similar targets.
If you do have very different targets, you should create a separate
BSP.
<note>It is completely possible for a developer to structure the
working repository as a conglomeration of unrelated BSP
files, and to possibly generate specifically targeted 'release' BSPs
from that directory using scripts or some other mechanism.
Such considerations are outside the scope of this document.</note>
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='released-bsp-recommendations'>
<title>Released BSP Recommendations</title>
<para>
Following are recommendations for a released BSP that conforms to the
Yocto Project:
<itemizedlist>
<listitem><para><emphasis>Bootable Images:</emphasis>
BSP releases
can contain one or more bootable images.
Including bootable images allows users to easily try out the BSP
on their own hardware.</para>
<para>In some cases, it might not be convenient to include a
bootable image.
In this case, you might want to make two versions of the
BSP available: one that contains binary images, and one
that does not.
The version that does not contain bootable images avoids
unnecessary download times for users not interested in the images.
</para>
<para>If you need to distribute a BSP and include bootable images or build kernel and
filesystems meant to allow users to boot the BSP for evaluation
purposes, you should put the images and artifacts within a
<filename>binary/</filename> subdirectory located in the
<filename>meta-&lt;bsp_name&gt;</filename> directory.
<note>If you do include a bootable image as part of the BSP and the image
was built by software covered by the GPL or other open source licenses,
it is your responsibility to understand
and meet all licensing requirements, which could include distribution
of source files.</note></para></listitem>
<listitem><para><emphasis>Use a Yocto Linux Kernel:</emphasis>
Kernel recipes in the BSP should be based on a Yocto Linux kernel.
Basing your recipes on these kernels reduces the costs for maintaining
the BSP and increases its scalability.
See the <filename>Yocto Linux Kernel</filename> category in the
<ulink url='&YOCTO_GIT_URL;/cgit.cgi'><filename>Yocto Source Repositories</filename></ulink>
for these kernels.</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id='customizing-a-recipe-for-a-bsp'>
<title>Customizing a Recipe for a BSP</title>
<para>
If you plan on customizing a recipe for a particular BSP, you need to do the
following:
<itemizedlist>
<listitem><para>Include within the BSP layer a <filename>.bbappend</filename>
file for the modified recipe.</para></listitem>
<listitem><para>Place the BSP-specific file in the BSP's recipe
<filename>.bbappend</filename> file path under a directory named
after the machine.</para></listitem>
</itemizedlist>
</para>
<para>
To better understand this, consider an example that customizes a recipe by adding
a BSP-specific configuration file named <filename>interfaces</filename> to the
<filename>netbase_4.47.bb</filename> recipe for machine "xyz".
Do the following:
<orderedlist>
<listitem><para>Edit the <filename>netbase_4.47.bbappend</filename> file so that it
contains the following:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
PRINC := "${@int(PRINC) + 2}"
</literallayout></para></listitem>
<listitem><para>Create and place the new <filename>interfaces</filename>
configuration file in the BSP's layer here:
<literallayout class='monospaced'>
meta-xyz/recipes-core/netbase/files/xyz/interfaces
</literallayout></para></listitem>
</orderedlist>
</para>
</section>
<section id='bsp-licensing-considerations'>
<title>BSP Licensing Considerations</title>
@@ -720,7 +982,7 @@
restart the build to continue where it left off.
During the build, the prompt will not appear again
since you have satisfied the requirement.</para>
<para>Once the appropriate license flags are whitelisted
<para>Once the appropriate license flags are on the white list
in the <filename>LICENSE_FLAGS_WHITELIST</filename> variable, you
can build the encumbered image with no change at all
to the normal build process.</para></listitem>
@@ -754,4 +1016,452 @@
You must eventually rebuild the image if you want to remove this restriction.
</note>
</section>
<section id='using-the-yocto-projects-bsp-tools'>
<title>Using the Yocto Project's BSP Tools</title>
<para>
The Yocto Project includes a couple of tools that enable
you to create a <link linkend='bsp-layers'>BSP layer</link>
from scratch and do basic configuration and maintenance
of the kernel without ever looking at a Yocto Project metadata file.
These tools are <filename>yocto-bsp</filename> and <filename>yocto-kernel</filename>,
respectively.
</para>
<para>
The following sections describe the common location and help features as well
as details for the <filename>yocto-bsp</filename> and <filename>yocto-kernel</filename>
tools.
</para>
<section id='common-features'>
<title>Common Features</title>
<para>
Designed to have a command interface somewhat like
<ulink url='&YOCTO_DOCS_DEV_URL;#git'>Git</ulink>, each
tool is structured as a set of sub-commands under a
top-level command.
The top-level command (<filename>yocto-bsp</filename>
or <filename>yocto-kernel</filename>) itself does
nothing but invoke or provide help on the sub-commands
it supports.
</para>
<para>
Both tools reside in the <filename>scripts/</filename> subdirectory
of the <ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-files'>Yocto Project
Files</ulink>.
Consequently, to use the scripts, you must <filename>source</filename> the
environment just as you would when invoking a build:
<literallayout class='monospaced'>
$ source oe-init-build-env [build_dir]
</literallayout>
</para>
<para>
The most immediately useful function is to get help on both tools.
The built-in help system makes it easy to drill down at
any time and view the syntax required for any specific command.
Simply enter the name of the command, or the command along with
<filename>help</filename> to display a list of the available sub-commands.
Here is an example:
<literallayout class='monospaced'>
$ yocto-bsp
$ yocto-bsp help
Usage:
Create a customized Yocto BSP layer.
usage: yocto-bsp [--version] [--help] COMMAND [ARGS]
The most commonly used 'yocto-bsp' commands are:
create Create a new Yocto BSP
list List available values for options and BSP properties
See 'yocto-bsp help COMMAND' for more information on a specific command.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-D, --debug output debug information
</literallayout>
</para>
<para>
Similarly, entering just the name of a sub-command shows the detailed usage
for that sub-command:
<literallayout class='monospaced'>
$ yocto-bsp create
Usage:
Create a new Yocto BSP
usage: yocto-bsp create &lt;bsp-name&gt; &lt;karch&gt; [-o &lt;DIRNAME&gt; | --outdir &lt;DIRNAME&gt;]
[-i &lt;JSON PROPERTY FILE&gt; | --infile &lt;JSON PROPERTY_FILE&gt;]
This command creates a Yocto BSP based on the specified parameters.
The new BSP will be a new Yocto BSP layer contained by default within
the top-level directory specified as 'meta-bsp-name'. The -o option
can be used to place the BSP layer in a directory with a different
name and location.
...
</literallayout>
</para>
<para>
For any sub-command, you can also use the word 'help' just before the
sub-command to get more extensive documentation:
<literallayout class='monospaced'>
$ yocto-bsp help create
NAME
yocto-bsp create - Create a new Yocto BSP
SYNOPSIS
yocto-bsp create &lt;bsp-name&gt; &lt;karch&gt; [-o &lt;DIRNAME&gt; | --outdir &lt;DIRNAME&gt;]
[-i &lt;JSON PROPERTY FILE&gt; | --infile &lt;JSON PROPERTY_FILE&gt;]
DESCRIPTION
This command creates a Yocto BSP based on the specified
parameters. The new BSP will be a new Yocto BSP layer contained
by default within the top-level directory specified as
'meta-bsp-name'. The -o option can be used to place the BSP layer
in a directory with a different name and location.
The value of the 'karch' parameter determines the set of files
that will be generated for the BSP, along with the specific set of
'properties' that will be used to fill out the BSP-specific
portions of the BSP.
...
NOTE: Once created, you should add your new layer to your
bblayers.conf file in order for it to be subsequently seen and
modified by the yocto-kernel tool.
NOTE for x86- and x86_64-based BSPs: The generated BSP assumes the
presence of the of the meta-intel layer, so you should also have a
meta-intel layer present and added to your bblayers.conf as well.
</literallayout>
</para>
<para>
Now that you know where these two commands reside and how to access information
on them, you should find it relatively straightforward to discover the commands
necessary to create a BSP and perform basic kernel maintenance on that BSP using
the tools.
The next sections provide a concrete starting point to expand on a few points that
might not be immediately obvious or that could use further explanation.
</para>
</section>
<section id='creating-a-new-bsp-layer-using-the-yocto-bsp-script'>
<title>Creating a new BSP Layer Using the yocto-bsp Script</title>
<para>
The <filename>yocto-bsp</filename> script creates a new
<link linkend='bsp-layers'>BSP layer</link> for any architecture supported
by the Yocto Project, as well as QEMU versions of the same.
The default mode of the script's operation is to prompt you for information needed
to generate the BSP layer.
For the current set of BSPs, the script prompts you for various important
parameters such as:
<itemizedlist>
<listitem><para>which kernel to use</para></listitem>
<listitem><para>which branch of that kernel to use (or re-use)</para></listitem>
<listitem><para>whether or not to use X, and if so, which drivers to use</para></listitem>
<listitem><para>whether to turn on SMP</para></listitem>
<listitem><para>whether the BSP has a keyboard</para></listitem>
<listitem><para>whether the BSP has a touchscreen</para></listitem>
<listitem><para>any remaining configurable items associated with the BSP</para></listitem>
</itemizedlist>
</para>
<para>
You use the <filename>yocto-bsp create</filename> sub-command to create
a new BSP layer.
This command requires you to specify a particular architecture on which to
base the BSP.
Assuming you have sourced the environment, you can use the
<filename>yocto-bsp list karch</filename> sub-command to list the
architectures available for BSP creation as follows:
<literallayout class='monospaced'>
$ yocto-bsp list karch
Architectures available:
arm
powerpc
i386
mips
x86_64
qemu
</literallayout>
</para>
<para>
The remainder of this section presents an example that uses
<filename>myarm</filename> as the machine name and <filename>qemu</filename>
as the machine architecture.
Of the available architectures, <filename>qemu</filename> is the only architecture
that causes the script to prompt you further for an actual architecture.
In every other way, this architecture is representative of how creating a BSP for
a 'real' machine would work.
The reason the example uses this architecture is because it is an emulated architecture
and can easily be followed without requiring actual hardware.
</para>
<para>
As the <filename>yocto-bsp create</filename> command runs, default values for
the prompts appear in brackets.
Pressing enter without supplying anything on the command line or pressing enter
and providing an invalid response causes the script to accept the default value.
</para>
<para>
Following is the complete example:
<literallayout class='monospaced'>
$ yocto-bsp create myarm qemu
Which qemu architecture would you like to use? [default: x86]
1) common 32-bit x86
2) common 64-bit x86
3) common 32-bit ARM
4) common 32-bit PowerPC
5) common 32-bit MIPS
3
Would you like to use the default (3.2) kernel? (Y/n)
Do you need a new machine branch for this BSP (the alternative is to re-use an existing branch)? [Y/n]
Getting branches from remote repo git://git.yoctoproject.org/linux-yocto-3.2...
Please choose a machine branch to base this BSP on => [default: standard/default/common-pc]
1) base
2) standard/base
3) standard/default/arm-versatile-926ejs
4) standard/default/base
5) standard/default/beagleboard
6) standard/default/cedartrailbsp (copy).xml
7) standard/default/common-pc-64/base
8) standard/default/common-pc-64/jasperforest
9) standard/default/common-pc-64/romley
10) standard/default/common-pc-64/sugarbay
11) standard/default/common-pc/atom-pc
12) standard/default/common-pc/base
13) standard/default/crownbay
14) standard/default/emenlow
15) standard/default/fishriver
16) standard/default/fri2
17) standard/default/fsl-mpc8315e-rdb
18) standard/default/mti-malta32-be
19) standard/default/mti-malta32-le
20) standard/default/preempt-rt
21) standard/default/qemu-ppc32
22) standard/default/routerstationpro
23) standard/preempt-rt/base
24) standard/preempt-rt/qemu-ppc32
25) standard/preempt-rt/routerstationpro
26) standard/tiny
3
Do you need SMP support? (Y/n)
Does your BSP have a touchscreen? (y/N)
Does your BSP have a keyboard? (Y/n)
New qemu BSP created in meta-myarm
</literallayout>
Let's take a closer look at the example now:
<orderedlist>
<listitem><para>For the <filename>qemu</filename> architecture,
the script first prompts you for which emulated architecture to use.
In the example, we use the <filename>arm</filename> architecture.
</para></listitem>
<listitem><para>The script then prompts you for the kernel.
The default kernel is 3.2 and is acceptable.
So, the example accepts the default.
If you enter 'n', the script prompts you to further enter the kernel
you do want to use (e.g. 3.0, 3.2_preempt-rt, etc.).</para></listitem>
<listitem><para>Next, the script asks whether you would like to have a new
branch created especially for your BSP in the local
<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>
Git repository .
If not, then the script re-uses an existing branch.</para>
<para>In this example, the default (or 'yes') is accepted.
Thus, a new branch is created for the BSP rather than using a common, shared
branch.
The new branch is the branch committed to for any patches you might later add.
The reason a new branch is the default is that typically
new BSPs do require BSP-specific patches.
The tool thus assumes that most of time a new branch is required.
<note>In the current implementation, creation or re-use of a branch does
not actually matter.
The reason is because the generated BSPs assume that patches and
configurations live in recipe-space, which is something that can be done
with or without a dedicated branch.
Generated BSPs, however, are different.
This difference becomes significant once the tool's 'publish' functionality
is implemented.</note></para></listitem>
<listitem><para>Regardless of which choice is made in the previous step,
you are now given the opportunity to select a particular machine branch on
which to base your new BSP-specific machine branch on
(or to re-use if you had elected to not create a new branch).
Because this example is generating an <filename>arm</filename> BSP, the example
uses <filename>#3</filename> at the prompt, which selects the arm-versatile branch.
</para></listitem>
<listitem><para>The remainder of the prompts are routine.
Defaults are accepted for each.</para></listitem>
<listitem><para>By default, the script creates the new BSP Layer in the
<ulink url='&YOCTO_DOCS_DEV_URL;#yocto-project-build-directory'>Yocto Project
Build Directory</ulink>.</para></listitem>
</orderedlist>
</para>
<para>
Once the BSP Layer is created, you must add it to your
<filename>bblayers.conf</filename> file.
Here is an example:
<literallayout class='monospaced'>
BBLAYERS = " \
/usr/local/src/yocto/meta \
/usr/local/src/yocto/meta-yocto \
/usr/local/src/yocto/meta-myarm \
"
</literallayout>
Adding the layer to this file allows the build system to build the BSP and
the <filename>yocto-kernel</filename> tool to be able to find the layer and
other metadata it needs on which to operate.
</para>
</section>
<section id='managing-kernel-patches-and-config-items-with-yocto-kernel'>
<title>Managing Kernel Patches and Config Items with yocto-kernel</title>
<para>
Assuming you have created a Yocto Project
<link linkend='bsp-layers'>BSP Layer</link> using
<link linkend='creating-a-new-bsp-layer-using-the-yocto-bsp-script'>
<filename>yocto-bsp</filename></link> and you added it to your
<ulink url='&YOCTO_DOCS_REF_URL;#var-BBLAYERS'><filename>BBLAYERS</filename></ulink>
variable in the <filename>bblayers.conf</filename> file, you can now use
the <filename>yocto-kernel</filename> script to add patches and configuration
items to the BSP's kernel.
</para>
<para>
The <filename>yocto-kernel</filename> script allows you to add, remove, and list patches
and kernel config settings to a Yocto Project BSP's kernel
<filename>.bbappend</filename> file.
All you need to do is use the appropriate sub-command.
Recall that the easiest way to see exactly what sub-commands are available
is to use the <filename>yocto-kernel</filename> built-in help as follows:
<literallayout class='monospaced'>
$ yocto-kernel
Usage:
Modify and list Yocto BSP kernel config items and patches.
usage: yocto-kernel [--version] [--help] COMMAND [ARGS]
The most commonly used 'yocto-kernel' commands are:
config list List the modifiable set of bare kernel config options for a BSP
config add Add or modify bare kernel config options for a BSP
config rm Remove bare kernel config options from a BSP
patch list List the patches associated with a BSP
patch add Patch the Yocto kernel for a BSP
patch rm Remove patches from a BSP
See 'yocto-kernel help COMMAND' for more information on a specific command.
</literallayout>
</para>
<para>
The <filename>yocto-kernel patch add</filename> sub-command allows you to add a
patch to a BSP.
The following example adds two patches to the <filename>myarm</filename> BSP:
<literallayout class='monospaced'>
$ yocto-kernel patch add myarm ~/test.patch
Added patches:
test.patch
$ yocto-kernel patch add myarm ~/yocto-testmod.patch
Added patches:
yocto-testmod.patch
</literallayout>
<note>Although the previous example adds patches one at a time, it is possible
to add multiple patches at the same time.</note>
</para>
<para>
You can verify patches have been added by using the
<filename>yocto-kernel patch list</filename> sub-command.
Here is an example:
<literallayout class='monospaced'>
$ yocto-kernel patch list myarm
The current set of machine-specific patches for myarm is:
1) test.patch
2) yocto-testmod.patch
</literallayout>
</para>
<para>
You can also use the <filename>yocto-kernel</filename> script to
remove a patch using the <filename>yocto-kernel patch rm</filename> sub-command.
Here is an example:
<literallayout class='monospaced'>
$ yocto-kernel patch rm myarm
Specify the patches to remove:
1) test.patch
2) yocto-testmod.patch
1
Removed patches:
test.patch
</literallayout>
</para>
<para>
Again, using the <filename>yocto-kernel patch list</filename> sub-command,
you can verify that the patch was in fact removed:
<literallayout class='monospaced'>
$ yocto-kernel patch list myarm
The current set of machine-specific patches for myarm is:
1) yocto-testmod.patch
</literallayout>
</para>
<para>
In a completely similar way, you can use the <filename>yocto-kernel config add</filename>
sub-command to add one or more kernel config item settings to a BSP.
The following commands add a couple of config items to the
<filename>myarm</filename> BSP:
<literallayout class='monospaced'>
$ yocto-kernel config add myarm CONFIG_MISC_DEVICES=y
Added items:
CONFIG_MISC_DEVICES=y
$ yocto-kernel config add myarm KCONFIG_YOCTO_TESTMOD=y
Added items:
CONFIG_YOCTO_TESTMOD=y
</literallayout>
<note>Although the previous example adds config items one at a time, it is possible
to add multiple config items at the same time.</note>
</para>
<para>
You can list the config items now associated with the BSP.
Doing so shows you the config items you added as well as others associated
with the BSP:
<literallayout class='monospaced'>
$ yocto-kernel config list myarm
The current set of machine-specific kernel config items for myarm is:
1) CONFIG_MISC_DEVICES=y
2) CONFIG_YOCTO_TESTMOD=y
</literallayout>
</para>
<para>
Finally, you can remove one or more config items using the
<filename>yocto-kernel config rm</filename> sub-command in a manner
completely analogous to <filename>yocto-kernel patch rm</filename>.
</para>
</section>
</section>
</chapter>

View File

@@ -43,10 +43,10 @@
$ git clone git://git.yoctoproject.org/poky
$ cd poky
</literallayout>
Alternatively, you can start with the downloaded Poky "edison" tarball.
Alternatively, you can start with the downloaded Poky "&DISTRO_NAME;" tarball.
These commands unpack the tarball into a Yocto Project File directory structure.
By default, the top-level directory of the file structure is named
<filename>poky-&YOCTO_POKY;</filename>:
<filename>&YOCTO_POKY;</filename>:
<literallayout class='monospaced'>
$ tar xfj &YOCTO_POKY_TARBALL;
$ cd &YOCTO_POKY;
@@ -54,7 +54,7 @@
<note><para>If you're using the tarball method, you can ignore all the following steps that
ask you to carry out Git operations.
You already have the results of those operations
in the form of the edison release tarballs.
in the form of the &DISTRO_NAME; release tarballs.
Consequently, there is nothing left to do other than extract those tarballs into the
proper locations.</para>
@@ -67,7 +67,7 @@
and keep changes in revision control.
See the
"<link linkend='repositories-tags-and-branches'>Repositories, Tags, and Branches</link>" section
for more discussion around these differneces.</para></note>
for more discussion around these differences.</para></note>
</para>
<para>
@@ -133,7 +133,8 @@
<para>
You need to have the base BSP layer on your development system.
Similar to the local Yocto Project files, you can get the BSP
Similar to the local <link linkend='yocto-project-files'>Yocto Project Files</link>,
you can get the BSP
layer in a couple of different ways:
download the BSP tarball and extract it, or set up a local Git repository that
has the Yocto Project BSP layers.
@@ -160,15 +161,15 @@
$ cd meta-intel
</literallayout>
Alternatively, you can start with the downloaded Crown Bay tarball.
You can download the edison version of the BSP tarball from the
You can download the &DISTRO_NAME; version of the BSP tarball from the
<ulink url='&YOCTO_HOME_URL;/download'>Download</ulink> page of the
Yocto Project website.
Here is the specific link for the tarball needed for this example:
<ulink url='&YOCTO_MACHINES_DL_URL;/crownbay-noemgd/crownbay-noemgd-&DISTRO_NAME;-6.0.0.tar.bz2'></ulink>.
<ulink url='&YOCTO_MACHINES_DL_URL;/crownbay-noemgd/crownbay-noemgd-&DISTRO_NAME;-&POKYVERSION;.tar.bz2'></ulink>.
Again, be sure that you are already in the <filename>poky</filename> directory
as described previously before installing the tarball:
<literallayout class='monospaced'>
$ tar xfj crownbay-noemgd-&DISTRO_NAME;-6.0.0.tar.bz2
$ tar xfj crownbay-noemgd-&DISTRO_NAME;-&POKYVERSION;.tar.bz2
$ cd meta-intel
</literallayout>
</para>
@@ -177,7 +178,7 @@
The <filename>meta-intel</filename> directory contains all the metadata
that supports BSP creation.
If you're using the Git method, the following
step will switch to the edison metadata.
step will switch to the &DISTRO_NAME; metadata.
If you're using the tarball method, you already have the correct metadata and can
skip to the next step.
Because <filename>meta-intel</filename> is its own Git repository, you will want
@@ -185,6 +186,7 @@
For this example we are going to use the <filename>&DISTRO_NAME;</filename> branch.
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
@@ -261,10 +263,10 @@
<para>
Note that inside the <filename>mymachine.conf</filename> is the
<filename>PREFERRED_PROVIDER_virtual/kernel</filename> statement.
<filename>PREFERRED_VERSION_linux-yocto</filename> statement.
This statement identifies the kernel that the BSP is going to use.
In this case, the BSP is using <filename>linux-yocto</filename>, which is the
current Linux Yocto kernel based on the Linux 3.0 release.
current Linux Yocto kernel based on the Linux 3.2 release.
</para>
<para>
@@ -283,6 +285,8 @@
BBFILE_COLLECTIONS += "crownbay"
BBFILE_PATTERN_crownbay := "^${LAYERDIR}/"
BBFILE_PRIORITY_crownbay = "6"
LAYERDEPENDS_crownbay = "intel"
</literallayout>
</para>
@@ -293,6 +297,8 @@
BBFILE_COLLECTIONS += "mymachine"
BBFILE_PATTERN_mymachine := "^${LAYERDIR}/"
BBFILE_PRIORITY_mymachine = "6"
LAYERDEPENDS_mymachine = "intel"
</literallayout>
</para>
</section>
@@ -391,7 +397,7 @@
The recipe for that kernel is not located in the
BSP layer but rather in the local Yocto Project files at
<filename>meta/recipes-kernel/linux</filename> and is
named <filename>linux-yocto_3.0.bb</filename>.
named <filename>linux-yocto_3.2.bb</filename>.
The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename>
statements point to the exact commits used by the Yocto Project development team
in their source repositories that identify the right kernel for our hardware.
@@ -404,7 +410,7 @@
<para>
However, in the <filename>meta-mymachine</filename> layer in
<filename>recipes-kernel/linux</filename> resides a <filename>.bbappend</filename>
file named <filename>linux-yocto_3.0.bbappend</filename> that
file named <filename>linux-yocto_3.2.bbappend</filename> that
appends information to the recipe of the same name in <filename>meta/recipes-kernel/linux</filename>.
Thus, the <filename>SRCREV</filename> statements in the append file override
the more general statements found in <filename>meta</filename>.
@@ -413,17 +419,20 @@
<para>
The <filename>SRCREV</filename> statements in the append file currently identify
the kernel that supports the Crown Bay BSP with and without EMGD support.
Here are the statements:
Here are the statements:
<note>The commit ID strings used in this manual might not match the actual commit
ID strings found in the <filename>linux-yocto_3.2.bbappend</filename> file.
For the example, this difference does not matter.</note>
<literallayout class='monospaced'>
SRCREV_machine_pn-linux-yocto_crownbay ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
"211fc7f4d10ec2b82b424286aabbaff9254b7cbd"
SRCREV_meta_pn-linux-yocto_crownbay ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"514847185c78c07f52e02750fbe0a03ca3a31d8f"
SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
"211fc7f4d10ec2b82b424286aabbaff9254b7cbd"
SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"514847185c78c07f52e02750fbe0a03ca3a31d8f"
</literallayout>
</para>
@@ -438,19 +447,19 @@
</para>
<para>
To fix this situation in <filename>linux-yocto_3.0.bbappend</filename>,
To fix this situation in <filename>linux-yocto_3.2.bbappend</filename>,
we delete the two <filename>SRCREV</filename> statements that support
EMGD (the top pair).
We also change the remaining pair to specify <filename>mymachine</filename>
and insert the commit identifiers to identify the kernel in which we
are interested, which will be based on the <filename>atom-pc-standard</filename>
kernel.
In this case, because we're working with the edison branch of everything, we
In this case, because we're working with the &DISTRO_NAME; branch of everything, we
need to use the <filename>SRCREV</filename> values for the atom-pc branch
that are associated with the edison release.
that are associated with the &DISTRO_NAME; release.
To find those values, we need to find the <filename>SRCREV</filename>
values that edison uses for the atom-pc branch, which we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
values that &DISTRO_NAME; uses for the atom-pc branch, which we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.2.bbappend</filename>
file.
</para>
@@ -459,23 +468,21 @@
<filename>SRCREV_machine_atom-pc</filename> variable.
The meta <filename>SRCREV</filename> isn't specified in this file, so it must be
specified in the base kernel recipe in the
<filename>poky/meta/recipes-kernel/linux/linux-yocto_3.0.bb</filename>
file, in the <filename>SRCREV_meta variable</filename> found there.
It happens to be the same as the value we already inherited from the
<filename>meta-crownbay</filename> BSP.
<filename>poky/meta/recipes-kernel/linux/linux-yocto_3.2.bb</filename>
file, in the <filename>SRCREV_meta</filename> variable found there.
Here are the final <filename>SRCREV</filename> statements:
<literallayout class='monospaced'>
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"f29531a41df15d74be5ad47d958e4117ca9e489e"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"b14a08f5c7b469a5077c10942f4e1aec171faa9d"
</literallayout>
</para>
<para>
In this example, we're using the <filename>SRCREV</filename> values we
found already captured in the edison release because we're creating a BSP based on
edison.
found already captured in the &DISTRO_NAME; release because we're creating a BSP based on
&DISTRO_NAME;.
If, instead, we had based our BSP on the master branches, we would want to use
the most recent <filename>SRCREV</filename> values taken directly from the kernel repo.
We will not be doing that for this example.
@@ -484,19 +491,19 @@
exact commit strings in the Yocto Project source repositories you need to change
the <filename>SRCREV</filename> statements.
You can find all the <filename>machine</filename> and <filename>meta</filename>
branch points (commits) for the <filename>linux-yocto-3.0</filename> kernel at
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/linux-yocto-3.0'></ulink>.
branch points (commits) for the <filename>linux-yocto-3.2</filename> kernel at
<ulink url='&YOCTO_GIT_URL;/cgit/cgit.cgi/linux-yocto-3.2'></ulink>.
</para>
<para>
If you need a little more assistance after going to the link then do the following:
<orderedlist>
<listitem><para>Expand the list of branches by clicking <filename>[…]</filename></para></listitem>
<listitem><para>Click on the <filename>yocto/standard/common-pc/atom-pc</filename>
<listitem><para>Click on the <filename>standard/default/common-pc/atom-pc</filename>
branch</para></listitem>
<listitem><para>Click on the commit column header to view the top commit</para></listitem>
<listitem><para>Copy the commit string for use in the
<filename>linux-yocto_3.0.bbappend</filename> file</para></listitem>
<filename>linux-yocto_3.2.bbappend</filename> file</para></listitem>
</orderedlist>
</para>
@@ -507,32 +514,34 @@
</para>
<para>
Also in the <filename>linux-yocto_3.0.bbappend</filename> file are
Also in the <filename>linux-yocto_3.2.bbappend</filename> file are
<filename>COMPATIBLE_MACHINE</filename>, <filename>KMACHINE</filename>,
and <filename>KERNEL_FEATURES</filename> statements.
and <filename>KBRANCH</filename> statements.
Two sets of these exist: one set supports EMGD and one set does not.
Because we are not interested in supporting EMGD those three can be deleted.
The remaining three must be changed so that <filename>mymachine</filename> replaces
<filename>crownbay-noemgd</filename> and <filename>crownbay</filename>.
Because we are using the atom-pc branch for this new BSP, we can also find
the exact branch we need for the KMACHINE variable in our new BSP from the value
Because we are using the <filename>atom-pc</filename> branch for this new BSP, we can also find
the exact branch we need for the <filename>KMACHINE</filename>
and <filename>KBRANCH</filename> variables in our new BSP from the value
we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.2.bbappend</filename>
file we looked at in a previous step.
In this case, the value we want is in the KMACHINE_atom-pc variable in that file.
Here is the final <filename>linux-yocto_3.0.bbappend</filename> file after all
In this case, the values we want are in the <filename>KMACHINE_atom-pc</filename> variable
and the <filename>KBRANCH_atom-pc</filename> variables in that file.
Here is the final <filename>linux-yocto_3.2.bbappend</filename> file after all
the edits:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE_mymachine = "mymachine"
KMACHINE_mymachine = "yocto/standard/common-pc/atom-pc"
KERNEL_FEATURES_append_mymachine += " cfg/smp.scc"
KMACHINE_mymachine = "atom-pc"
KBRANCH_mymachine = "standard/default/common-pc/atom-pc"
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
"f29531a41df15d74be5ad47d958e4117ca9e489e"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
"b14a08f5c7b469a5077c10942f4e1aec171faa9d"
</literallayout>
</para>
</section>
@@ -600,11 +609,12 @@
both the <filename>BB_NUMBER_THREADS</filename> and <filename>PARALLEL_MAKE</filename>
variables to twice the number of cores your system supports.</para></listitem>
<listitem><para>Update the <filename>bblayers.conf</filename> file so that it includes
the path to your new BSP layer.
In this example you need to include the pathname to <filename>meta-mymachine</filename>.
For this example the
<filename>BBLAYERS</filename> variable in the file would need to include the following path:
both the path to your new BSP layer and the path to the
<filename>meta-intel</filename> layer.
In this example, you need to include both these paths as part of the
<filename>BBLAYERS</filename> variable:
<literallayout class='monospaced'>
$HOME/poky/meta-intel
$HOME/poky/meta-intel/meta-mymachine
</literallayout></para></listitem>
</orderedlist>
@@ -682,12 +692,12 @@
</para>
<para>
For reference, the sato image produced by the previous steps for edison
For reference, the sato image produced by the previous steps for &DISTRO_NAME;
should look like the following in terms of size.
If your sato image is much different from this,
you probably made a mistake in one of the above steps:
<literallayout class='monospaced'>
358715392 2011-11-01 19:11 core-image-sato-mymachine-20111101223904.hddimg
260538368 2012-04-27 01:44 core-image-sato-mymachine-20120427025051.hddimg
</literallayout>
<note>The previous instructions are also present in the README that was copied
from meta-crownbay, which should also be updated to reflect the specifics of your

View File

@@ -188,7 +188,8 @@
<listitem><para>Store custom layers in a Git repository that uses the
<filename>meta-&lt;layer_name&gt;</filename> format.</para></listitem>
<listitem><para>Clone the repository alongside other <filename>meta</filename>
directories in the Yocto Project source files area.</para></listitem>
directories in
<link linkend='yocto-project-files'>Yocto Project Files</link>.</para></listitem>
</itemizedlist>
Following these recommendations keeps your Yocto Project files area and
its configuration entirely inside the Yocto Project's core base.
@@ -248,8 +249,8 @@
<para>
Append files files must have the same name as the underlying recipe.
For example, the append file <filename>someapp_1.1.bbappend</filename> must
apply to <filename>someapp_1.1.bb</filename>.
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.
If the underlying recipe is renamed to update to a newer version, the
corresponding <filename>.bbappend</filename> file must be renamed as well.
@@ -269,14 +270,14 @@
append file both from the
<link linkend='yocto-project-files'>Yocto Project Files</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/bsp-recipes/formfactor</filename>:
located in the meta layer at <filename>meta/recipes-bsp/formfactor</filename>:
<literallayout class='monospaced'>
DESCRIPTION = "Device formfactor information"
SECTION = "base"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r19"
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r20"
SRC_URI = "file://config file://machconfig"
S = "${WORKDIR}"
@@ -290,11 +291,12 @@
install -m 0644 ${S}/config ${D}${sysconfdir}/formfactor/
if [ -s "${S}/machconfig" ]; then
install -m 0644 ${S}/machconfig ${D}${sysconfdir}/formfactor/
fi
fi
}
</literallayout>
Here is the append file, which is named <filename>formfactor_0.0.bbappend</filename> and is from the
Crown Bay BSP Layer named <filename>meta-intel/meta-crownbay</filename>:
Crown Bay BSP Layer named <filename>meta-intel/meta-crownbay</filename>.
The file is in <filename>recipes-bsp/formfactor</filename>:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
@@ -445,6 +447,204 @@
</section>
</section>
<section id='usingpoky-extend-customimage'>
<title>Customizing Images</title>
<para>
You can customize Yocto Project images to satisfy particular requirements.
This section describes several methods and provides guidelines for each.
</para>
<section id='usingpoky-extend-customimage-custombb'>
<title>Customizing Images Using Custom .bb Files</title>
<para>
One way to get additional software into an image is to create a custom image.
The following example shows the form for the two lines you need:
<literallayout class='monospaced'>
IMAGE_INSTALL = "task-core-x11-base package1 package2"
inherit core-image
</literallayout>
</para>
<para>
By creating a custom image, a developer has total control
over the contents of the image.
It is important to use the correct names of packages in the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>
variable.
You must use the OpenEmbedded notation and not the Debian notation for the names
(e.g. <filename>eglibc-dev</filename> instead of <filename>libc6-dev</filename>).
</para>
<para>
The other method for creating a custom image is to base it on an existing image.
For example, if you want to create an image based on <filename>core-image-sato</filename>
but add the additional package <filename>strace</filename> to the image,
copy the <filename>meta/recipes-sato/images/core-image-sato.bb</filename> to a
new <filename>.bb</filename> and add the following line to the end of the copy:
<literallayout class='monospaced'>
IMAGE_INSTALL += "strace"
</literallayout>
</para>
</section>
<section id='usingpoky-extend-customimage-customtasks'>
<title>Customizing Images Using Custom Tasks</title>
<para>
For complex custom images, the best approach is to create a custom task package
that is used to build the image or images.
A good example of a tasks package is
<filename>meta/recipes-core/tasks/task-core-boot.bb</filename>
The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGES'>PACKAGES</ulink></filename>
variable lists the task packages to build along with the complementary
<filename>-dbg</filename> and <filename>-dev</filename> packages.
For each package added, you can use
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-RDEPENDS'>RDEPENDS</ulink></filename>
and
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS'>RRECOMMENDS</ulink></filename>
entries to provide a list of packages the parent task package should contain.
Following is an example:
<literallayout class='monospaced'>
DESCRIPTION = "My Custom Tasks"
PACKAGES = "\
task-custom-apps \
task-custom-apps-dbg \
task-custom-apps-dev \
task-custom-tools \
task-custom-tools-dbg \
task-custom-tools-dev \
"
RDEPENDS_task-custom-apps = "\
dropbear \
portmap \
psplash"
RDEPENDS_task-custom-tools = "\
oprofile \
oprofileui-server \
lttng-control \
lttng-viewer"
RRECOMMENDS_task-custom-tools = "\
kernel-module-oprofile"
</literallayout>
</para>
<para>
In the previous example, two task packages are created with their dependencies and their
recommended package dependencies listed: <filename>task-custom-apps</filename>, and
<filename>task-custom-tools</filename>.
To build an image using these task packages, you need to add
<filename>task-custom-apps</filename> and/or
<filename>task-custom-tools</filename> to
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>.
For other forms of image dependencies see the other areas of this section.
</para>
</section>
<section id='usingpoky-extend-customimage-imagefeatures'>
<title>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and
<filename>EXTRA_IMAGE_FEATURES</filename></title>
<para>
Ultimately users might want to add extra image features to the set used by
Yocto Project with the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename>
variable.
To create these features, the best reference is
<filename>meta/classes/core-image.bbclass</filename>, which shows how the
Yocto Project achieves this.
In summary, the file looks at the contents of the
<filename>IMAGE_FEATURES</filename>
variable and then maps that into a set of tasks or packages.
Based on this information the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename>
variable is generated automatically.
Users can add extra features by extending the class or creating a custom class for use
with specialized image <filename>.bb</filename> files.
You can also add more features by configuring the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename>
variable in the <filename>local.conf</filename> file found in the Yocto Project
files located in the build directory.
</para>
<para>
The Yocto Project ships with two SSH servers you can use in your images:
Dropbear and OpenSSH.
Dropbear is a minimal SSH server appropriate for resource-constrained environments,
while OpenSSH is a well-known standard SSH server implementation.
By default, the <filename>core-image-sato</filename> image is configured to use Dropbear.
The <filename>core-image-basic</filename> and <filename>core-image-lsb</filename>
images both include OpenSSH.
To change these defaults, edit the <filename>IMAGE_FEATURES</filename> variable
so that it sets the image you are working with to include
<filename>ssh-server-dropbear</filename> or <filename>ssh-server-openssh</filename>.
</para>
</section>
<section id='usingpoky-extend-customimage-localconf'>
<title>Customizing Images Using <filename>local.conf</filename></title>
<para>
It is possible to customize image contents by using variables from your
local configuration in your <filename>conf/local.conf</filename> file.
Because it is limited to local use, this method generally only allows you to
add packages and is not as flexible as creating your own customized image.
When you add packages using local variables this way, you need to realize that
these variable changes affect all images at the same time and might not be
what you require.
</para>
<para>
The simplest way to add extra packages to all images is by using the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>
variable with the <filename>_append</filename> operator:
<literallayout class='monospaced'>
IMAGE_INSTALL_append = " strace"
</literallayout>
Use of the syntax is important.
Specifically, the space between the quote and the package name, which is
<filename>strace</filename> in this example.
This space is required since the <filename>_append</filename>
operator does not add the space.
</para>
<para>
Furthermore, you must use <filename>_append</filename> instead of the <filename>+=</filename>
operator if you want to avoid ordering issues.
The reason for this is because doing so unconditionally appends to the variable and
avoids ordering problems due to the variable being set in image recipes and
<filename>.bbclass</filename> files with operators like <filename>?=</filename>.
Using <filename>_append</filename> ensures the operation takes affect.
</para>
<para>
As shown in its simplest use, <filename>IMAGE_INSTALL_append</filename> affects
all images.
It is possible to extend the syntax so that the variable applies to a specific image only.
Here is an example:
<literallayout class='monospaced'>
IMAGE_INSTALL_append_pn-core-image-minimal = " strace"
</literallayout>
This example adds <filename>strace</filename> to <filename>core-image-minimal</filename>
only.
</para>
<para>
You can add packages using a similar approach through the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-CORE_IMAGE_EXTRA_INSTALL'>CORE_IMAGE_EXTRA_INSTALL</ulink></filename>
variable.
If you use this variable, only <filename>core-image-*</filename> images are affected.
</para>
</section>
</section>
<section id='usingpoky-extend-addpkg'>
<title>Adding a Package</title>
@@ -550,7 +750,7 @@
The variable
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-LIC_FILES_CHKSUM'>LIC_FILES_CHKSUM</ulink></filename>
is used to track source license changes as described in the
"<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Track License Change</ulink>" section.
"<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-configuring-LIC_FILES_CHKSUM'>Track License Changes</ulink>" section.
You can quickly create Autotool-based recipes in a manner similar to the previous example.
</para>
</section>
@@ -590,25 +790,52 @@
SECTION = "base"
DEPENDS = "zlib lzo e2fsprogs util-linux"
HOMEPAGE = "http://www.linux-mtd.infradead.org/"
LICENSE = "GPLv2"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=v${PV}"
SRC_URI = "git://git.infradead.org/mtd-utils.git;protocol=git;tag=995cfe51b0a3cf32f381c140bf72b21bf91cef1b \
file://add-exclusion-to-mkfs-jffs2-git-2.patch"
S = "${WORKDIR}/git/"
EXTRA_OEMAKE = "'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' \
'BUILDDIR=${S}'"
PR = "r1"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' \
'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'BUILDDIR=${S}'"
do_install () {
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
INCLUDEDIR=${includedir}
install -d ${D}${includedir}/mtd/
for f in ${S}/include/mtd/*.h; do
install -m 0644 $f ${D}${includedir}/mtd/
done
oe_runmake install DESTDIR=${D} SBINDIR=${sbindir} MANDIR=${mandir} \
INCLUDEDIR=${includedir}
install -d ${D}${includedir}/mtd/
for f in ${S}/include/mtd/*.h; do
install -m 0644 $f ${D}${includedir}/mtd/
done
}
PARALLEL_MAKE = ""
BBCLASSEXTEND = "native"
</literallayout>
</para>
<para>
If your sources are available as a tarball instead of a Git repository, you
will need to provide the URL to the tarball as well as an
<filename>md5</filename> or <filename>sha256</filename> sum of
the download.
Here is an example:
<literallayout class='monospaced'>
SRC_URI="ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.4.9.tar.bz2"
SRC_URI[md5sum]="82b8e714b90674896570968f70ca778b"
</literallayout>
You can generate the <filename>md5</filename> or <filename>sha256</filename> sums
by using the <filename>md5sum</filename> or <filename>sha256sum</filename> commands
with the target file as the only argument.
Here is an example:
<literallayout class='monospaced'>
$ md5sum mtd-utils-1.4.9.tar.bz2
82b8e714b90674896570968f70ca778b mtd-utils-1.4.9.tar.bz2
</literallayout>
</para>
</section>
@@ -728,7 +955,7 @@
<filename>postinst</filename> script.
Normally
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PN'>PN</ulink></filename>
can be used, which automatically expands to PACKAGENAME.
can be used, which automatically expands to <filename>PACKAGENAME</filename>.
A post-installation function has the following structure:
<literallayout class='monospaced'>
pkg_postinst_PACKAGENAME () {
@@ -774,228 +1001,6 @@
</section>
</section>
<section id='usingpoky-extend-customimage'>
<title>Customizing Images</title>
<para>
You can customize Yocto Project images to satisfy particular requirements.
This section describes several methods and provides guidelines for each.
</para>
<section id='usingpoky-extend-customimage-custombb'>
<title>Customizing Images Using Custom .bb Files</title>
<para>
One way to get additional software into an image is to create a custom image.
The following example shows the form for the two lines you need:
<literallayout class='monospaced'>
IMAGE_INSTALL = "task-core-x11-base package1 package2"
inherit core-image
</literallayout>
</para>
<para>
By creating a custom image, a developer has total control
over the contents of the image.
It is important to use the correct names of packages in the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>
variable.
You must use the OpenEmbedded notation and not the Debian notation for the names
(e.g. <filename>eglibc-dev</filename> instead of <filename>libc6-dev</filename>).
</para>
<para>
The other method for creating a custom image is to modify an existing image.
For example, if a developer wants to add <filename>strace</filename> into
the <filename>core-image-sato</filename> image, they can use the following recipe:
<literallayout class='monospaced'>
require core-image-sato.bb
IMAGE_INSTALL += "strace"
</literallayout>
</para>
</section>
<section id='usingpoky-extend-customimage-customtasks'>
<title>Customizing Images Using Custom Tasks</title>
<para>
For complex custom images, the best approach is to create a custom task package
that is used to build the image or images.
A good example of a tasks package is
<filename>meta/recipes-sato/tasks/task-poky.bb</filename>.
The
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGES'>PACKAGES</ulink></filename>
variable lists the task packages to build along with the complementary
<filename>-dbg</filename> and <filename>-dev</filename> packages.
For each package added, you can use
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-RDEPENDS'>RDEPENDS</ulink></filename>
and
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-RRECOMMENDS'>RRECOMMENDS</ulink></filename>
entries to provide a list of packages the parent task package should contain.
Following is an example:
<literallayout class='monospaced'>
DESCRIPTION = "My Custom Tasks"
PACKAGES = "\
task-custom-apps \
task-custom-apps-dbg \
task-custom-apps-dev \
task-custom-tools \
task-custom-tools-dbg \
task-custom-tools-dev \
"
RDEPENDS_task-custom-apps = "\
dropbear \
portmap \
psplash"
RDEPENDS_task-custom-tools = "\
oprofile \
oprofileui-server \
lttng-control \
lttng-viewer"
RRECOMMENDS_task-custom-tools = "\
kernel-module-oprofile"
</literallayout>
</para>
<para>
In the previous example, two task packages are created with their dependencies and their
recommended package dependencies listed: <filename>task-custom-apps</filename>, and
<filename>task-custom-tools</filename>.
To build an image using these task packages, you need to add
<filename>task-custom-apps</filename> and/or
<filename>task-custom-tools</filename> to
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>.
For other forms of image dependencies see the other areas of this section.
</para>
</section>
<section id='usingpoky-extend-customimage-imagefeatures'>
<title>Customizing Images Using Custom <filename>IMAGE_FEATURES</filename> and
<filename>EXTRA_IMAGE_FEATURES</filename></title>
<para>
Ultimately users might want to add extra image features to the set used by
Yocto Project with the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_FEATURES'>IMAGE_FEATURES</ulink></filename>
variable.
To create these features, the best reference is
<filename>meta/classes/core-image.bbclass</filename>, which shows how the
Yocto Project achieves this.
In summary, the file looks at the contents of the
<filename>IMAGE_FEATURES</filename>
variable and then maps that into a set of tasks or packages.
Based on this information the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'> IMAGE_INSTALL</ulink></filename>
variable is generated automatically.
Users can add extra features by extending the class or creating a custom class for use
with specialized image <filename>.bb</filename> files.
You can also add more features by configuring the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-EXTRA_IMAGE_FEATURES'>EXTRA_IMAGE_FEATURES</ulink></filename>
variable in the <filename>local.conf</filename> file found in the Yocto Project
files located in the build directory.
</para>
<para>
The Yocto Project ships with two SSH servers you can use in your images:
Dropbear and OpenSSH.
Dropbear is a minimal SSH server appropriate for resource-constrained environments,
while OpenSSH is a well-known standard SSH server implementation.
By default, the <filename>core-image-sato</filename> image is configured to use Dropbear.
The <filename>core-image-basic</filename> and <filename>core-image-lsb</filename>
images both include OpenSSH.
To change these defaults, edit the <filename>IMAGE_FEATURES</filename> variable
so that it sets the image you are working with to include
<filename>ssh-server-dropbear</filename> or <filename>ssh-server-openssh</filename>.
</para>
</section>
<section id='usingpoky-extend-customimage-localconf'>
<title>Customizing Images Using <filename>local.conf</filename></title>
<para>
It is possible to customize image contents by using variables from your
local configuration in your <filename>conf/local.conf</filename> file.
Because it is limited to local use, this method generally only allows you to
add packages and is not as flexible as creating your own customized image.
When you add packages using local variables this way, you need to realize that
these variable changes affect all images at the same time and might not be
what you require.
</para>
<section id='adding-packages'>
<title>Adding Packages</title>
<para>
The simplest way to add extra packages to all images is by using the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_INSTALL'>IMAGE_INSTALL</ulink></filename>
variable with the <filename>_append</filename> operator:
<literallayout class='monospaced'>
IMAGE_INSTALL_append = " strace"
</literallayout>
Use of the syntax is important.
Specifically, the space between the quote and the package name, which is
<filename>strace</filename> in this example.
This space is required since the <filename>_append</filename>
operator does not add the space.
</para>
<para>
Furthermore, you must use <filename>_append</filename> instead of the <filename>+=</filename>
operator if you want to avoid ordering issues.
The reason for this is because doing so unconditionally appends to the variable and
avoids ordering problems due to the variable being set in image recipes and
<filename>.bbclass</filename> files with operators like <filename>?=</filename>.
Using <filename>_append</filename> ensures the operation takes affect.
</para>
<para>
As shown in its simplest use, <filename>IMAGE_INSTALL_append</filename> affects
all images.
It is possible to extend the syntax so that the variable applies to a specific image only.
Here is an example:
<literallayout class='monospaced'>
IMAGE_INSTALL_append_pn-core-image-minimal = " strace"
</literallayout>
This example adds <filename>strace</filename> to <filename>core-image-minimal</filename>
only.
</para>
<para>
You can add packages using a similar approach through the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-CORE_IMAGE_EXTRA_INSTALL'>CORE_IMAGE_EXTRA_INSTALL</ulink></filename>
variable.
If you use this variable, only <filename>core-image-*</filename> images are affected.
</para>
</section>
<section id='excluding-packages'>
<title>Excluding Packages</title>
<para>
It is possible to filter or mask out <filename>.bb</filename> and
<filename>.bbappend</filename> files such that BitBake ignores them during
the build.
You can do this by providing an expression with the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-BBMASK'>BBMASK</ulink></filename>
variable.
Here is an example:
<literallayout class='monospaced'>
BBMASK = ".*/meta-mymachine/recipes-maybe/"
</literallayout>
Here, all <filename>.bb</filename> and <filename>.bbappend</filename> files
in the directory that matches the expression are ignored during the build
process.
</para>
</section>
</section>
</section>
<section id="platdev-newmachine">
<title>Porting the Yocto Project to a New Machine</title>
@@ -1079,7 +1084,7 @@ so that there are some definite steps on how to do this. I need more detail her
<listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PREFERRED_PROVIDER'>
PREFERRED_PROVIDER</ulink></filename>_virtual/kernel (see below)</para></listitem>
<listitem><para><filename><ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE_FEATURES'>
MACHINE_FEATURES</ulink></filename> (e.g. "kernel26 apm screen wifi")</para></listitem>
MACHINE_FEATURES</ulink></filename> (e.g. "apm screen wifi")</para></listitem>
</itemizedlist>
</para>
@@ -1587,7 +1592,7 @@ so that there are some definite steps on how to do this. I need more detail her
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
MULTILIB_IMAGE_INSTALL = "lib32-connman"
IMAGE_INSTALL = "lib32-connman"
</literallayout>
This example enables an
additional library named <filename>lib32</filename> alongside the
@@ -2013,6 +2018,33 @@ so that there are some definite steps on how to do this. I need more detail her
build directory that is different than the source directory.
</para>
</section>
<section id='excluding-recipes-from-the-build'>
<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.
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.
</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>
variable.
Here is an example:
<literallayout class='monospaced'>
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.
</para>
</section>
</chapter>
<!--

View File

@@ -127,6 +127,14 @@
<ulink url='&YOCTO_HOME_URL;/download/yocto/yocto-project-1.1-release-notes-poky-&POKYVERSION;'>
Release Notes</ulink>:</emphasis> Features, updates and known issues for the current
release of the Yocto Project.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_HOME_URL;/projects/hob'>
Hob</ulink>:</emphasis> A graphical user interface for BitBake.
Hob's primary goal is to enable a user to perform common tasks more easily.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>
Build Appliance</ulink>:</emphasis> Allows you to build and boot a custom embedded Linux
image with the Yocto Project using a non-Linux development system.</para></listitem>
<listitem><para><emphasis>
<ulink url='&YOCTO_BUGZILLA_URL;'>Bugzilla</ulink>:</emphasis>
The bug tracking application the Yocto Project uses.

View File

@@ -71,7 +71,7 @@
</para>
<para>
<imagedata fileref="figures/kernel-example-repos.png" width="7in" depth="5in"
<imagedata fileref="figures/kernel-example-repos-denzil.png" width="7in" depth="5in"
align="center" scale="100" />
</para>
@@ -155,13 +155,13 @@
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1 Release code named "edison",
which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>edison</filename>
This example uses the Yocto Project &DISTRO; Release code named "&DISTRO_NAME;",
which maps to the <filename>&DISTRO_NAME;</filename> branch in the repository.
The following commands create and checkout the local <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch edison set up to track remote branch &DISTRO_NAME; from origin.
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
@@ -178,13 +178,28 @@
<filename>poky-extras</filename> Git Repository</link>"
for information on how to get the <filename>poky-extras</filename> repository.
</para>
<para>
Because this example uses the Yocto Project &DISTRO; Release code
named "&DISTRO_NAME;", which maps to the <filename>&DISTRO_NAME;</filename>
branch in the repository, you need to be sure you are using that
branch for <filename>poky-extra</filename>.
The following commands create and checkout the local
branch you are using for the <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
</section>
<section id='setting-up-the-bare-clone-and-its-copy'>
<title>Setting Up the Bare Clone and its Copy</title>
<para>
This example modifies the <filename>linux-yocto-3.0-1.1.x</filename> kernel.
This example modifies the <filename>linux-yocto-3.2</filename> kernel.
Thus, you need to create a bare clone of that kernel and then make a copy of the
bare clone.
See the bulleted item
@@ -196,15 +211,16 @@
The bare clone exists for the kernel build tools and simply as the receiving end
of <filename>git push</filename>
commands after you make edits and commits inside the copy of the clone.
The copy (<filename>my-linux-yocto-3.0-1.1.x-work</filename> in this example) has to have
The copy (<filename>my-linux-yocto-3.2-work</filename> in this example) has to have
a local branch created and checked out for your work.
This example uses <filename>common-pc-base</filename> as the local branch.
The following commands create and checkout the branch:
<literallayout class='monospaced'>
$ cd ~/my-linux-yocto-3.0-1.1.x-work
$ git checkout -b common-pc-base origin/yocto/standard/common-pc/base
$ cd ~/my-linux-yocto-3.2-work
$ git checkout -b common-pc-base origin/standard/default/common-pc/base
Checking out files: 100% (532/532), done.
Branch common-pc-base set up to track remote branch
yocto/standard/common-pc/base from origin.
standard/default/common-pc/base from origin.
Switched to a new branch 'common-pc-base'
</literallayout>
</para>
@@ -296,7 +312,7 @@
<para>
The file you change in this example is named <filename>calibrate.c</filename>
and is located in the <filename>my-linux-yocto-3.0-1.1.x-work</filename> Git repository
and is located in the <filename>my-linux-yocto-3.2-work</filename> Git repository
(the copy of the bare clone) in <filename>init</filename>.
This example simply inserts several <filename>printk</filename> statements
at the beginning of the <filename>calibrate_delay</filename> function.
@@ -307,10 +323,11 @@
<literallayout class='monospaced'>
void __cpuinit calibrate_delay(void)
{
unsigned long lpj;
static bool printed;
unsigned long lpj;
static bool printed;
int this_cpu = smp_processor_id();
if (preset_lpj) {
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
.
.
.
@@ -319,19 +336,21 @@
<para>
Here is the altered code showing five new <filename>printk</filename> statements
just after initializing <filename>lps_precision</filename>:
near the top of the function:
<literallayout class='monospaced'>
void __cpuinit calibrate_delay(void)
{
unsigned long lpj;
static bool printed;
unsigned long lpj;
static bool printed;
int this_cpu = smp_processor_id();
printk("*************************************\n");
printk("* *\n");
printk("* HELLO YOCTO KERNEL *\n");
printk("* *\n");
printk("*************************************\n");
if (preset_lpj) {
if (per_cpu(cpu_loops_per_jiffy, this_cpu)) {
.
.
.
@@ -357,7 +376,7 @@
<para>
The following command pushes the changes to the bare clone:
<literallayout class='monospaced'>
$ git push origin common-pc-base:yocto/standard/common-pc/base
$ git push origin common-pc-base:standard/default/common-pc/base
</literallayout>
</para>
</section>
@@ -416,24 +435,24 @@
"
</literallayout></para></listitem>
<listitem><para><emphasis>Identify Your Source Files:</emphasis> In the
<filename>linux-yocto_3.0.bbappend</filename> file located in the
<filename>linux-yocto_3.2.bbappend</filename> file located in the
<filename>poky-extras/meta-kernel-dev/recipes-kernel/linux</filename>
directory, you need to identify the location of the
local source code, which in this example is the bare clone named
<filename>linux-yocto-3.0-1.1.x.git</filename>.
<filename>linux-yocto-3.2.git</filename>.
To do this, set the <filename>KSRC_linux_yocto</filename> variable to point to your
local <filename>linux-yocto-3.0-1.1.x.git</filename> Git repository by adding the
local <filename>linux-yocto-3.2.git</filename> Git repository by adding the
following statement.
Be sure to substitute your user information in the statement:
<literallayout class='monospaced'>
KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0-1.1.x.git
KSRC_linux_yocto_3_2 ?= "/home/scottrif/linux-yocto-3.2.git"
</literallayout></para></listitem>
<listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the
<filename>linux-yocto_3.0.bbappend</filename> file, you need to specify
<!-- <listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the
<filename>linux-yocto_3.2.bbappend</filename> file, you need to specify
the kernel machine with the following statement:
<literallayout class='monospaced'>
KMACHINE_qemux86 = "yocto/standard/common-pc/base"
</literallayout></para></listitem>
KMACHINE_qemux86 = "standard/default/common-pc/base"
</literallayout></para></listitem> -->
</itemizedlist>
</para>
@@ -446,7 +465,7 @@
unused <filename>.bbappend</filename> files.
Alternatively, you can simply remove all the files
except the one your are using for the build
(i.e. <filename>linux-yocto_3.0.bbappend</filename> in this example).
(i.e. <filename>linux-yocto_3.2.bbappend</filename> in this example).
</note>
</section>
@@ -505,8 +524,8 @@
<title>Changing the Kernel Configuration</title>
<para>
This example changes the default behavior, which is "off", of the Symmetric
Multi-processing Support (<filename>CONFIG_SMP</filename>) to "on".
This example changes the default behavior, which is "on", of the Symmetric
Multi-processing Support (<filename>CONFIG_SMP</filename>) to "off".
It is a simple example that demonstrates how to reconfigure the kernel.
</para>
@@ -518,9 +537,9 @@
in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source
Code</link>" you should already have the Yocto Project files set up on your
host machine.
If this is the case, go to then next section titled
If this is the case, go to the next section, which is titled
"<link linkend='examining-the-default-config-smp-behavior'>Examining the Default
<filename>CONFIG_SMP</filename> Behavior</link>" and continue with the
<filename>CONFIG_SMP</filename> Behavior</link>", and continue with the
example.
</para>
@@ -529,7 +548,7 @@
you can get them through tarball extraction or by
cloning the <filename>poky</filename> Git repository.
This example uses <filename>poky</filename> as the root directory of the
local Yocto Project files Git repository.
local <link linkend='yocto-project-files'>Yocto Project Files</link> Git repository.
See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.
@@ -545,13 +564,13 @@
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1.1 Release code named "&DISTRO_NAME;",
This example uses the Yocto Project &DISTRO; Release code named "&DISTRO_NAME;",
which maps to the <filename>&DISTRO_NAME;</filename> branch in the repository.
The following commands create and checkout the local <filename>&DISTRO_NAME;</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
Branch edison set up to track remote branch &DISTRO_NAME; from origin.
Branch &DISTRO_NAME; set up to track remote branch &DISTRO_NAME; from origin.
Switched to a new branch '&DISTRO_NAME;'
</literallayout>
</para>
@@ -612,11 +631,11 @@
<title>Examining the Default&nbsp;&nbsp;<filename>CONFIG_SMP</filename> Behavior</title>
<para>
By default, <filename>CONFIG_SMP</filename> supports single processor machines.
By default, <filename>CONFIG_SMP</filename> supports multiple processor machines.
To see this default setting from within the QEMU emulator, boot your image using
the emulator as follows:
<literallayout class='monospaced'>
$ runqemu qemux86 qemuparams="-smp 2"
$ runqemu qemux86 qemuparams="-smp 4"
</literallayout>
</para>
@@ -624,11 +643,25 @@
Login to the machine using <filename>root</filename> with no password.
After logging in, enter the following command to see how many processors are
being supported in the emulator.
The emulator reports support for a single processor:
The emulator reports support for the number of processors you specified using
the <filename>-smp</filename> option, four in this case:
<literallayout class='monospaced'>
# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
processor : 2
processor : 3
#
</literallayout>
To check the setting for <filename>CONFIG_SMP</filename>, you can use the
following command:
<literallayout class='monospaced'>
zcat /proc/config.gz | grep CONFIG_SMP
</literallayout>
The console returns the following showing that multi-processor machine support
is set:
<literallayout class='monospaced'>
CONFIG_SMP=y
</literallayout>
Logout of the emulator using the <filename>exit</filename> command and
then close it down.
@@ -654,15 +687,25 @@
<para>
After setting up the environment to run <filename>menuconfig</filename>, you are ready
to use the tool to interactively change the kernel configuration.
In this example, we are basing our changes on the <filename>linux-yocto-3.0-1.1.x</filename>
In this example, we are basing our changes on the <filename>linux-yocto-3.2</filename>
kernel.
The Yocto Project build environment recognizes this kernel as
<filename>linux-yocto</filename>.
Thus, the following command from the shell in which you previously sourced the
environment initialization script launches <filename>menuconfig</filename>:
Thus, the following commands from the shell in which you previously sourced the
environment initialization script cleans the shared state memory and the
<ulink url='&YOCTO_DOCS_REF_URL;#var-WORKDIR'><filename>WORKDIR</filename></ulink>
directory and then builds and launches <filename>menuconfig</filename>:
<literallayout class='monospaced'>
$ bitbake linux-yocto -c cleansstate
$ bitbake linux-yocto -c menuconfig
</literallayout>
<note>
Due to a bug in the release, it is necessary to clean the shared state memory
in order for configurations made using <filename>menuconfig</filename> to take
effect.
For information on the bug, see
<ulink url='https://bugzilla.yoctoproject.org/show_bug.cgi?id=2256'></ulink>
</note>
</para>
<para>
@@ -671,7 +714,7 @@
You can find it at <filename>Processor Type and Features</filename>.
The configuration selection is
<filename>Symmetric Multi-processing Support</filename>.
After using the arrow keys to highlight this selection, press "y" to select it.
After using the arrow keys to highlight this selection, press "n" to turn it off.
Then, exit out and save your selections.
</para>
@@ -680,22 +723,25 @@
is updated.
This is the file that the build system uses to configure the Linux Yocto kernel
when it is built.
You can find and examine this file in the Yocto Project files Git repository in
You can find and examine this file in the Yocto Project Files Git repository in
the build directory.
This example uses the following.
Note that this example directory is artificially split and many of the characters
in the actually filename are omitted in order to make it more
readable:
This example uses the following:
<literallayout class='monospaced'>
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f...
...r20/linux-qemux86-standard-build
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.2.11+git1+84f...
...656ed30-r1/linux-qemux86-standard-build
</literallayout>
<note>
The previous example directory is artificially split and many of the characters
in the actual filename are omitted in order to make it more readable.
Also, depending on the kernel you are using, the exact pathname might differ
slightly.
</note>
</para>
<para>
Within the <filename>.config</filename> file, you can see the following setting:
<literallayout class='monospaced'>
CONFIG_SMP=y
# CONFIG_SMP is not set
</literallayout>
</para>
@@ -729,11 +775,22 @@
$ bitbake linux-yocto
</literallayout>
</para>
<note>
Manually turning off a kernel configuration setting such as
<filename>CONFIG_SMP</filename> can cause the kernel configuration audit
to issue warnings during the build.
In this example, warnings appear telling you that the expected value
<filename>CONFIG_SMP</filename> does not appear in the <filename>.config</filename>
file.
Because in this example you specifically turned off <filename>CONFIG_SMP</filename>,
you can safely ignore the apparent conflict.
</note>
<para>
Now run the QEMU emulator:
Now run the QEMU emulator and pass it the same multi-processor option as before:
<literallayout class='monospaced'>
$ runqemu qemux86 qemuparams="-smp 2"
$ runqemu qemux86 qemuparams="-smp 4"
</literallayout>
</para>
@@ -743,13 +800,22 @@
<literallayout class='monospaced'>
# cat /proc/cpuinfo | grep processor
processor : 0
processor : 1
#
</literallayout>
</para>
<para>
From the output, you can see that you have successfully reconfigured the kernel.
From the output, you can see that the kernel no longer supports multi-processor systems.
The output indicates support for a single processor. You can verify the
<filename>CONFIG_SMP</filename> setting by using this command:
<literallayout class='monospaced'>
zcat /proc/config.gz | grep CONFIG_SMP
</literallayout>
The console returns the following output:
<literallayout class='monospaced'>
# CONFIG_SMP is not set
</literallayout>
You have successfully reconfigured the kernel.
</para>
</section>
</section>

View File

@@ -120,13 +120,15 @@
Crown Bay that does not support the <trademark class='registered'>Intel</trademark>
Embedded Media Graphics Driver (EMGD).
The remainder of this example uses that base BSP.</para>
<para>To see the supported BSPs, go to the Yocto Project
<ulink url='&YOCTO_DL_URL;/download'>download page</ulink> and click
on “BSP Downloads.”</para></listitem>
<para>To see the supported BSPs, go to the
<ulink url='&YOCTO_HOME_URL;/download'>Download</ulink> page on the Yocto Project
website and click on “BSP Downloads.”</para></listitem>
<listitem><para><emphasis>Create your own BSP layer</emphasis>: Layers are ideal for
isolating and storing work for a given piece of hardware.
A layer is really just a location or area in which you place the recipes for your BSP.
A layer is really just a location or area in which you place the recipes for your BSP.
In fact, a BSP is, in itself, a special type of layer.
</para>
<para>
Another example that illustrates a layer is an application.
Suppose you are creating an application that has library or other dependencies in
order for it to compile and run.
@@ -134,16 +136,22 @@
are kept.
The key point for a layer is that it is an isolated area that contains
all the relevant information for the project that the Yocto Project build
system knows about.</para>
system knows about.
For more information on layers, see the
"<link linkend='understanding-and-creating-layers'>Understanding and Creating Layers</link>"
section.
For more information on BSP layers, see the
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the
Yocto Project Board Support Package (BSP) Developer's Guide.</para>
<note>The Yocto Project supports four BSPs that are part of the
Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>,
<filename>mpc8315e</filename>, and <filename>routerstationpro</filename>.
The recipes and configurations for these four BSPs are located and dispersed
within the local Yocto Project files.
Consequently, they are not totally isolated in the spirit of layers unless you think
of <filename>meta-yocto</filename> as a layer itself.
within the <link linkend='yocto-project-files'>Yocto Project Files</link>.
On the other hand, BSP layers for Crown Bay, Emenlow, Jasper Forest,
N450, and Sugar Bay are isolated.</note>
N450, Cedar Trail, Fish River, Fish River Island II, Romley, sys940x, tlk,
and Sugar Bay exist in their own separate layers within the larger
<filename>meta-intel</filename> layer.</note>
<para>When you set up a layer for a new BSP, you should follow a standard layout.
This layout is described in the section
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-filelayout'>Example Filesystem Layout</ulink>"
@@ -235,7 +243,7 @@
<ulink url='&YOCTO_GIT_URL;'></ulink>.
If you look at the interface, you will see to the left a grouping of
Git repositories titled "Yocto Linux Kernel."
Within this group, you will find the four different kernels supported by
Within this group, you will find several kernels supported by
the Yocto Project:
<itemizedlist>
<listitem><para><emphasis><filename>linux-yocto-2.6.34</filename></emphasis> - The
@@ -247,6 +255,9 @@
<listitem><para><emphasis><filename>linux-yocto-3.0-1.1.x</filename></emphasis> - The
stable Linux Yocto kernel to use with the Yocto Project Release 1.1.x. This kernel
is based on the Linux 3.0 release</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.2</filename></emphasis> - The
stable Linux Yocto kernel to use with the Yocto Project Release 1.2. This kernel
is based on the Linux 3.2 release</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-dev</filename></emphasis> - A development
kernel based on the latest upstream release candidate available.</para></listitem>
</itemizedlist>
@@ -288,7 +299,7 @@
</para>
<note>
Keep in mind the figure does not take into account all four supported Linux Yocto
Keep in mind the figure does not take into account all the supported Linux Yocto
kernel types, but rather shows a single generic kernel just for conceptual purposes.
Also keep in mind that this structure represents the Yocto Project source repositories
that are either pulled from during the build or established on the host development system
@@ -325,7 +336,7 @@
</para>
<para>
<imagedata fileref="figures/kernel-overview-3.png"
<imagedata fileref="figures/kernel-overview-3-denzil.png"
width="6in" depth="4in" align="center" scale="100" />
</para>
@@ -363,11 +374,11 @@
<para>
Again, for a complete discussion of the Yocto Project kernel's architcture and its
branching strategy,
see the <ulink url='&YOCTO_DOCS_KERNEL_URL;'>
see <ulink url='&YOCTO_DOCS_KERNEL_URL;'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.
Also, you can reference
<xref linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source Code</xref>
for a detailed example that modifies the kernel.
You can also reference the
"<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source Code</link>"
section for a detailed example that modifies the kernel.
</para>
</section>
@@ -461,7 +472,7 @@
<listitem><para><emphasis>Prepare for the build</emphasis>: Once you have made all the
changes to your kernel (configurations, source code changes, recipe additions,
or recipe changes), there remains a few things
you need to do in order for the Yocto Project build system to create your image.
you need to do in order for the Yocto Project build system (BitBake) to create your image.
If you have not done so, you need to get the build environment ready by sourcing
the environment setup script described earlier.
You also need to be sure two key configuration files
@@ -574,7 +585,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
You must have a target kernel image that has been built using the Yocto Project.</para>
<para>Depending on whether the Yocto Project has a pre-built image that matches your target
architecture and where you are going to run the image while you develop your application
(QEMU or real hardware), the area you get the image from differs.
(QEMU or real hardware), the area from which you get the image differs.
<itemizedlist>
<listitem><para>Download the image from
<ulink url='&YOCTO_MACHINES_DL_URL;'>
@@ -717,8 +728,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
<listitem><para>You can modify various policy settings such as the package format used to build with,
the parrallelism BitBake uses, whether or not to build an external toolchain, and which host
to build against.</para></listitem>
<listitem><para>You can manage <link linkend='understanding-and-creating-layers'>Understanding
and Creating layers</link>.</para></listitem>
<listitem><para>You can manage
<link linkend='understanding-and-creating-layers'>layers</link>.</para></listitem>
<listitem><para>You can select a base image and then add extra packages for your custom build.
</para></listitem>
<listitem><para>You can launch and monitor the build from within Hob.</para></listitem>

View File

@@ -335,7 +335,8 @@
The area is created when you <filename>source</filename> the Yocto Project setup
environment script that is found in the Yocto Project files area
(i.e. <filename>oe-init-build-env</filename>).
The <filename>TOPDIR</filename> variable points to the build directory.</para>
The <ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink>
variable points to the build directory.</para>
<para>You have a lot of flexibility when creating the Yocto Project Build Directory.
Following are some examples that show how to create the directory:
@@ -494,7 +495,8 @@
Git uses "branches" to organize different development efforts.
For example, the <filename>poky</filename> repository has
<filename>laverne</filename>, <filename>bernard</filename>,
<filename>edison</filename>, and <filename>master</filename> branches among
<filename>edison</filename>, <filename>denzil</filename> and
<filename>master</filename> branches among
others.
You can see all the branches by going to
<ulink url='&YOCTO_GIT_URL;/cgit.cgi/poky/'></ulink> and
@@ -525,7 +527,7 @@
$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout &DISTRO_NAME; -b &DISTRO_NAME;
$ git checkout -b &DISTRO_NAME; origin/&DISTRO_NAME;
</literallayout>
In this example, the name of the top-level directory of your local Yocto Project
Files Git repository is <filename>poky</filename>.
@@ -577,14 +579,14 @@
$ cd ~
$ git clone git://git.yoctoproject.org/poky
$ cd poky
$ git checkout &DISTRO_NAME;-&POKYVERSION; -b &DISTRO_NAME;-&POKYVERSION;
$ git checkout -b my-&DISTRO_NAME;-&POKYVERSION; &DISTRO_NAME;-&POKYVERSION;
</literallayout>
In this example, the name of the top-level directory of your local Yocto Project
Files Git repository is <filename>poky</filename>.
And, the name of the local branch you have created and checked out is
<filename>&DISTRO_NAME;-&POKYVERSION;</filename>.
<filename>my-&DISTRO_NAME;-&POKYVERSION;</filename>.
The files in your repository now exactly match the Yocto Project &DISTRO;
Release tag (&DISTRO_NAME;).
Release tag (<filename>&DISTRO_NAME;-&POKYVERSION;</filename>).
It is important to understand that when you create and checkout a local
working branch based on a tag, your environment matches a specific point
in time and not a development branch.

View File

@@ -31,7 +31,8 @@
</para>
<para>
You can use the Yocto Project, which uses the BitBake build tool, to develop complete Linux
You can use the Yocto Project build system, which uses
<ulink url='http://bitbake.berlios.de/manual/'>BitBake</ulink>, to develop complete Linux
images and associated user-space applications for architectures based on ARM, MIPS, PowerPC,
x86 and x86-64.
While the Yocto Project does not provide a strict testing framework,
@@ -109,11 +110,11 @@
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
Initialized empty Git repository in /home/scottrif/poky/.git/
remote: Counting objects: 116882, done.
remote: Compressing objects: 100% (35987/35987), done.
remote: Total 116882 (delta 80651), reused 113045 (delta 77578)
Receiving objects: 100% (116882/116882), 72.13 MiB | 2.68 MiB/s, done.
Resolving deltas: 100% (80651/80651), done.
remote: Counting objects: 141863, done.
remote: Compressing objects: 100% (38624/38624), done.
remote: Total 141863 (delta 99661), reused 141816 (delta 99614)
Receiving objects: 100% (141863/141863), 76.64 MiB | 126 KiB/s, done.
Resolving deltas: 100% (99661/99661), done.
</literallayout></para>
<para>For another example of how to set up your own local Git repositories, see this
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
@@ -132,29 +133,29 @@
For simplicity, it is recommended that you create these structures outside of the
Yocto Project Files Git repository.</para>
<para>As an example, the following transcript shows how to create the bare clone
of the <filename>linux-yocto-3.0-1.1.x</filename> kernel and then create a copy of
of the <filename>linux-yocto-3.2</filename> kernel and then create a copy of
that clone.
<note>When you have a local Linux Yocto kernel Git repository, you can
reference that repository rather than the upstream Git repository as
part of the <filename>clone</filename> command.
Doing so can speed up the process.</note></para>
<para>In the following example, the bare clone is named
<filename>linux-yocto-3.0-1.1.x.git</filename>, while the
copy is named <filename>my-linux-yocto-3.0-1.1.x-work</filename>:
<filename>linux-yocto-3.2.git</filename>, while the
copy is named <filename>my-linux-yocto-3.2-work</filename>:
<literallayout class='monospaced'>
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.0-1.1.x linux-yocto-3.0-1.1.x.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.0-1.1.x.git/
remote: Counting objects: 2259181, done.
remote: Compressing objects: 100% (373259/373259), done.
remote: Total 2259181 (delta 1892638), reused 2231556 (delta 1865300)
Receiving objects: 100% (2259181/2259181), 482.44 MiB | 580 KiB/s, done.
Resolving deltas: 100% (1892638/1892638), done.
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.2 linux-yocto-3.2.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.2.git/
remote: Counting objects: 2468027, done.
remote: Compressing objects: 100% (392255/392255), done.
remote: Total 2468027 (delta 2071693), reused 2448773 (delta 2052498)
Receiving objects: 100% (2468027/2468027), 530.46 MiB | 129 KiB/s, done.
Resolving deltas: 100% (2071693/2071693), done.
</literallayout></para>
<para>Now create a clone of the bare clone just created:
<literallayout class='monospaced'>
$ git clone linux-yocto-3.0-1.1.x.git my-linux-yocto-3.0-1.1.x-work
Initialized empty Git repository in /home/scottrif/my-linux-yocto-3.0-1.1.x/.git/
Checking out files: 100% (36898/36898), done.
$ git clone linux-yocto-3.2.git my-linux-yocto-3.2-work
Initialized empty Git repository in /home/scottrif/my-linux-yocto-3.2-work/.git/
Checking out files: 100% (37619/37619), done.
</literallayout></para></listitem>
<listitem id='poky-extras-repo'><para><emphasis>
The <filename>poky-extras</filename> Git Repository</emphasis>:
@@ -175,14 +176,13 @@
repository inside the Yocto Project files Git repository, which is named
<filename>poky</filename> in this case:
<literallayout class='monospaced'>
$ cd ~/poky
$ git clone git://git.yoctoproject.org/poky-extras poky-extras
Initialized empty Git repository in /home/scottrif/poky/poky-extras/.git/
remote: Counting objects: 561, done.
remote: Compressing objects: 100% (501/501), done.
remote: Total 561 (delta 159), reused 306 (delta 39)
Receiving objects: 100% (561/561), 519.96 KiB | 479 KiB/s, done.
Resolving deltas: 100% (159/159), done.
remote: Counting objects: 618, done.
remote: Compressing objects: 100% (558/558), done.
remote: Total 618 (delta 192), reused 307 (delta 39)
Receiving objects: 100% (618/618), 526.26 KiB | 111 KiB/s, done.
Resolving deltas: 100% (192/192), done.
</literallayout></para></listitem>
<listitem><para id='supported-board-support-packages-(bsps)'><emphasis>Supported Board
Support Packages (BSPs):</emphasis>
@@ -231,14 +231,13 @@
<filename>meta-intel</filename>
Git repository inside the <filename>poky</filename> Git repository.
<literallayout class='monospaced'>
$ cd poky
$ git clone git://git.yoctoproject.org/meta-intel.git
Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/
remote: Counting objects: 1325, done.
remote: Compressing objects: 100% (1078/1078), done.
remote: Total 1325 (delta 546), reused 85 (delta 27)
Receiving objects: 100% (1325/1325), 1.56 MiB | 330 KiB/s, done.
Resolving deltas: 100% (546/546), done.
remote: Counting objects: 3380, done.
remote: Compressing objects: 100% (2750/2750), done.
remote: Total 3380 (delta 1689), reused 227 (delta 113)
Receiving objects: 100% (3380/3380), 1.77 MiB | 128 KiB/s, done.
Resolving deltas: 100% (1689/1689), done.
</literallayout></para>
<para>The same
<ulink url='&YOCTO_WIKI_URL;/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>

View File

@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<book id='dev-manual' lang='en'
<book id='dev-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
@@ -10,13 +10,13 @@
<mediaobject>
<imageobject>
<imagedata fileref='figures/dev-title.png'
format='SVG'
<imagedata fileref='figures/dev-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</imageobject>
</mediaobject>
<title></title>
<title></title>
<authorgroup>
<author>
@@ -36,8 +36,18 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.1</revnumber>
<date>July 2012</date>
<revremark>Released with the Yocto Project 1.2.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.2</revnumber>
<date>January 2013</date>
<revremark>Released with the Yocto Project 1.2.2 Release.</revremark>
</revision>
</revhistory>
@@ -48,15 +58,14 @@
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">
Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by
Creative Commons.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
documentation bundled in the release tarball and
<ulink url='&YOCTO_DOCS_DEV_URL;'>
The Yocto Project Development Manual</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
@@ -81,6 +90,6 @@
<xi:include href="dev-manual-kernel-appendix.xml"/>
</book>
<!--
vim: expandtab tw=80 ts=4
<!--
vim: expandtab tw=80 ts=4
-->

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -2,7 +2,7 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<book id='kernel-manual' lang='en'
<book id='kernel-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
@@ -10,13 +10,13 @@
<mediaobject>
<imageobject>
<imagedata fileref='figures/kernel-title.png'
format='SVG'
<imagedata fileref='figures/kernel-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</imageobject>
</mediaobject>
<title></title>
<title></title>
<authorgroup>
<author>
@@ -51,8 +51,18 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.1</revnumber>
<date>July 2012</date>
<revremark>Released with the Yocto Project 1.2.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.2</revnumber>
<date>January 2013</date>
<revremark>Released with the Yocto Project 1.2.2 Release.</revremark>
</revision>
</revhistory>
@@ -63,12 +73,12 @@
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
documentation bundled in the release tarball and
<ulink url='&YOCTO_DOCS_KERNEL_URL;'>
The Yocto Project Kernel Architecture and Use Manual</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
@@ -90,6 +100,6 @@
-->
</book>
<!--
vim: expandtab tw=80 ts=4
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -493,7 +493,7 @@
<qandaentry>
<question>
<para id='how-does-the-yocto-project-obtain-source-code-and-will-it-work-behind-my-firewall-or-proxy-server'>
How does the Yocto Project obtain source code and will it work behind my
How does the Yocto Project build system obtain source code and will it work behind my
firewall or proxy server?
</para>
</question>

View File

@@ -2,18 +2,18 @@
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
<book id='poky-ref-manual' lang='en'
<book id='poky-ref-manual' lang='en'
xmlns:xi="http://www.w3.org/2003/XInclude"
xmlns="http://docbook.org/ns/docbook"
>
<bookinfo>
<mediaobject>
<imageobject>
<imagedata fileref='figures/poky-title.png'
format='SVG'
<imagedata fileref='figures/poky-title.png'
format='SVG'
align='left' scalefit='1' width='100%'/>
</imageobject>
</imageobject>
</mediaobject>
<title></title>
@@ -65,8 +65,18 @@
</revision>
<revision>
<revnumber>1.2</revnumber>
<date>TBD 2012</date>
<revremark>Work in progress for the Yocto Project 1.2 Release.</revremark>
<date>April 2012</date>
<revremark>Released with the Yocto Project 1.2 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.1</revnumber>
<date>July 2012</date>
<revremark>Released with the Yocto Project 1.2.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.2.2</revnumber>
<date>January 2013</date>
<revremark>Released with the Yocto Project 1.2.2 Release.</revremark>
</revision>
</revhistory>
@@ -77,12 +87,12 @@
<legalnotice>
<para>
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
Permission is granted to copy, distribute and/or modify this document under
the terms of the <ulink type="http" url="http://creativecommons.org/licenses/by-sa/2.0/uk/">Creative Commons Attribution-Share Alike 2.0 UK: England &amp; Wales</ulink> as published by Creative Commons.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
documentation bundled in the release tarball and
<ulink url='&YOCTO_DOCS_REF_URL;'>
The Yocto Project Reference Manual</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
@@ -122,10 +132,10 @@
<!-- <index id='index'>
<title>Index</title>
</index>
</index>
-->
</book>
<!--
vim: expandtab tw=80 ts=4
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -106,6 +106,14 @@
instead of X11.
In order to build, this image requires specific distro configuration that enables
<filename>gtk</filename> over <filename>directfb</filename>.</para></listitem>
<listitem><para><emphasis><filename>self-hosted-image</filename>:</emphasis>
An image you can run using the Yocto Project Build Appliance.
The image is suitable to load and boot from either
<ulink url='http://www.vmware.com/products/player/overview.html'>VMware Player</ulink>
or <ulink url='http://www.vmware.com/products/workstation/overview.html'>VMWare Workstation</ulink>.
For more information on the Build Appliance, see the
<ulink url='&YOCTO_HOME_URL;/documentation/build-appliance'>Build Appliance</ulink> page on
the Yocto Project website.</para></listitem>
</itemizedlist>
<tip>

View File

@@ -669,7 +669,7 @@
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "path_1:path_2:path_3:"
</literallayout>
Typically, you want your directories search first.
Typically, you want your directories searched first.
To make sure that happens, use <filename>_prepend</filename> and
the immediate expansion (<filename>:=</filename>) operator as shown in the
previous example.

View File

@@ -725,7 +725,7 @@
<para>
You can also use relative paths as shown in the following example:
<literallayout class='monospaced'>
LIC_FILES_CHKSUM = "file://src/ls.c;startline=5;endline=16;\
LIC_FILES_CHKSUM = "file://src/ls.c;beginline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
</literallayout>

View File

@@ -1,9 +1,9 @@
<!ENTITY DISTRO "1.1">
<!ENTITY DISTRO_NAME "edison">
<!ENTITY YOCTO_DOC_VERSION "latest">
<!ENTITY POKYVERSION "6.0">
<!ENTITY DISTRO "1.2.2">
<!ENTITY DISTRO_NAME "denzil">
<!ENTITY YOCTO_DOC_VERSION "1.2.2">
<!ENTITY POKYVERSION "7.0.2">
<!ENTITY YOCTO_POKY "poky-&DISTRO_NAME;-&POKYVERSION;">
<!ENTITY COPYRIGHT_YEAR "2010-2012">
<!ENTITY COPYRIGHT_YEAR "2010-2013">
<!ENTITY YOCTO_DL_URL "http://downloads.yoctoproject.org">
<!ENTITY YOCTO_HOME_URL "http://www.yoctoproject.org">
<!ENTITY YOCTO_LISTS_URL "http://lists.yoctoproject.org">

View File

@@ -21,15 +21,23 @@
</para>
<para>
If you know all about open-source development, Linux development environments, Git source
repositories and the like and you just want some quick information that lets you try out
the Yocto Project, skip right to the "<link linkend='super-user'>Super User</link>" section at
the end of this quick start.
Otherwise, keep reading...
If you don't have a system that runs Linux and you want to give the Yocto Project a test run,
you might consider using the Yocto Project Build Appliance.
The Build Appliance allows you to build and boot a custom embedded Linux image with the Yocto
Project using a non-Linux development system.
See the <ulink url='http://www.yoctoproject.org/documentation/build-appliance'>Yocto
Project Build Appliance</ulink> for more information.
</para>
<para>
This short document will give you some basic information about the environment and
On the other hand, if you know all about open-source development, Linux development environments,
Git source repositories and the like and you just want some quick information that lets you try out
the Yocto Project on your Linux system, skip right to the
"<link linkend='super-user'>Super User</link>" section at the end of this quick start.
</para>
<para>
For the rest of you, this short document will give you some basic information about the environment and
let you experience it in its simplest form.
After reading this document, you will have a basic understanding of what the Yocto Project is
and how to use some of its core components.
@@ -144,7 +152,7 @@
<itemizedlist>
<listitem>
<para>A host system running a supported Linux distribution (i.e. recent releases of
Fedora, openSUSE, Debian, and Ubuntu).
Fedora, openSUSE, CentOS, Debian, and Ubuntu).
If the host system supports multiple cores and threads, you can configure the
Yocto Project build system to decrease the time needed to build images
significantly.
@@ -170,6 +178,7 @@
<listitem><para>Ubuntu</para></listitem>
<listitem><para>Fedora</para></listitem>
<listitem><para>openSUSE</para></listitem>
<listitem><para>CentOS</para></listitem>
</itemizedlist>
For a list of the distributions under validation and their status, see the
<ulink url='&YOCTO_WIKI_URL;/wiki/Distribution_Support'>Distribution
@@ -208,7 +217,7 @@
Packages and package installation vary depending on your development system.
In general, you need to have root access and then install the required packages.
The next few sections show you how to get set up with the right packages for
Ubuntu, Fedora, and openSUSE.
Ubuntu, Fedora, openSUSE, and CentOS.
</para>
<section id='ubuntu'>
@@ -219,11 +228,11 @@
</para>
<literallayout class='monospaced'>
$ sudo apt-get install sed wget cvs subversion git-core coreutils \
$ sudo apt-get install sed wget subversion git-core coreutils \
unzip texi2html texinfo libsdl1.2-dev docbook-utils fop gawk \
python-pysqlite2 diffstat help2man make gcc build-essential xsltproc \
python-pysqlite2 diffstat make gcc build-essential xsltproc \
g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \
mercurial autoconf automake groff libtool xterm libxml-parser-perl
autoconf automake groff libtool xterm libxml-parser-perl
</literallayout>
</section>
@@ -237,23 +246,16 @@
<literallayout class='monospaced'>
$ sudo yum groupinstall "development tools"
$ sudo yum install python m4 make wget curl ftp hg tar bzip2 gzip \
unzip python-psyco perl texinfo texi2html diffstat openjade \
$ sudo yum install python m4 make wget curl ftp tar bzip2 gzip \
unzip perl texinfo texi2html diffstat openjade \
docbook-style-dsssl sed docbook-style-xsl docbook-dtds fop xsltproc \
docbook-utils sed bc eglibc-devel ccache pcre pcre-devel quilt \
groff linuxdoc-tools patch linuxdoc-tools cmake help2man \
groff linuxdoc-tools patch cmake \
perl-ExtUtils-MakeMaker tcl-devel gettext chrpath ncurses apr \
SDL-devel mesa-libGL-devel mesa-libGLU-devel gnome-doc-utils \
autoconf automake libtool xterm
</literallayout>
<note><para>
If you are using a Fedora version prior to version 15, you will need to take some
extra steps to enable <filename>sudo</filename>, or you will need to run
the commands as root user.
See the <ulink url='https://fedoraproject.org/wiki/Configuring_Sudo'>Configuring Sudo</ulink>
wiki page for details.
</para></note>
</section>
<section id='opensuse'>
@@ -266,10 +268,40 @@
<literallayout class='monospaced'>
$ sudo zypper install python gcc gcc-c++ libtool fop \
subversion git chrpath automake make wget help2man xsltproc \
diffstat texinfo mercurial freeglut-devel libSDL-devel
subversion git chrpath automake make wget xsltproc \
diffstat texinfo freeglut-devel libSDL-devel
</literallayout>
</section>
<section id='centos'>
<title>CentOS</title>
<para>
The packages you need for a supported CentOS distribution are shown in the following
commands:
</para>
<literallayout class='monospaced'>
$ sudo yum -y groupinstall "development tools"
$ sudo yum -y install tetex gawk sqlite-devel vim-common redhat-lsb xz \
m4 make wget curl ftp tar bzip2 gzip python-devel \
unzip perl texinfo texi2html diffstat openjade zlib-devel \
docbook-style-dsssl sed docbook-style-xsl docbook-dtds \
docbook-utils bc glibc-devel pcre pcre-devel \
groff linuxdoc-tools patch cmake \
tcl-devel gettext ncurses apr \
SDL-devel mesa-libGL-devel mesa-libGLU-devel gnome-doc-utils \
autoconf automake libtool xterm
</literallayout>
<note><para>
Depending on the CentOS version you are using, other requirements and dependencies
might exist.
For details, you should look at the CentOS sections on the
<ulink url='&YOCTO_WIKI_URL;/wiki/Poky/GettingStarted/Dependencies'>Poky/GettingStarted/Dependencies</ulink>
wiki page.
</para></note>
</section>
</section>
<section id='releases'>
@@ -293,9 +325,7 @@
Doing so allows you to contribute back to the project.
For information on how to get set up using this method, see the
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-yp-release'>Yocto
Project Release</ulink>" item in
<ulink url='&YOCTO_DOCS_DEV_URL;'>The Yocto Project
Development Manual</ulink>.
Project Release</ulink>" item in The Yocto Project Development Manual.
</para>
</section>
</section>
@@ -304,7 +334,7 @@
<title>A Quick Test Run</title>
<para>
Now that you have your system requirements in order, you can give Yocto Project a try.
Now that you have your system requirements in order, you can give the Yocto Project a try.
This section presents some steps that let you do the following:
</para>
@@ -350,9 +380,9 @@
By default, the Yocto Project searches for source code using a pre-determined order
through a set of locations.
If you encounter problems with the Yocto Project finding and downloading source code, see
the FAQ entry "How does Poky obtain source code and will it work behind my
the FAQ entry "How does the Yocto Project build system obtain source code and will it work behind my
firewall or proxy server?" in
<ulink url='&YOCTO_DOCS_REF_URL;'>
<ulink url='&YOCTO_DOCS_REF_URL;#faq'>
The Yocto Project Reference Manual</ulink>.
</para></note>
@@ -360,18 +390,18 @@
<literallayout class='monospaced'>
$ wget &YOCTO_POKY_DL_URL;
$ tar xjf &YOCTO_POKY;.tar.bz2
$ source &OE_INIT_PATH; edison-6.0-build
$ source &OE_INIT_PATH; &YOCTO_POKY;-build
</literallayout>
</para>
<tip><para>
To help conserve disk space during builds, you can add the following statement
to your project's configuration file, which for this example
is <filename>edison-6.0-build/conf/local.conf</filename>.
is <filename>&YOCTO_POKY;-build/conf/local.conf</filename>.
Adding this statement deletes the work directory used for building a package
once the package is built.
<literallayout class='monospaced'>
INHERIT += rm_work
INHERIT += "rm_work"
</literallayout>
</para></tip>
@@ -380,16 +410,16 @@
release tarball from the source repositories using the
<filename>wget</filename> command.
Alternatively, you can go to the
<ulink url='&YOCTO_HOME_URL;/download'>Yocto Project website</ulink>
Downloads page to retrieve the tarball.</para></listitem>
<ulink url='&YOCTO_HOME_URL;/download'>Yocto Project website's Downloads page</ulink>
to retrieve the tarball.</para></listitem>
<listitem><para>The second command extracts the files from the tarball and places
them into a directory named <filename>poky-edison-6.0</filename> in the current
them into a directory named <filename>&YOCTO_POKY;</filename> in the current
directory.</para></listitem>
<listitem><para>The third command runs the Yocto Project environment setup script.
Running this script defines Yocto Project build environment settings needed to
complete the build.
The script also creates the Yocto Project
build directory, which is <filename>edison-6.0-build</filename> in this case.
build directory, which is <filename>&YOCTO_POKY;-build</filename> in this case.
After the script runs, your current working directory is set
to the build directory.
Later, when the build completes, the build directory contains all the files
@@ -429,9 +459,8 @@
You can control this configuration by using the
<filename><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
For additional package manager selection information, see
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>" in
<ulink url='&YOCTO_DOCS_REF_URL;'>
The Yocto Project Reference Manual</ulink>.
"<ulink url='&YOCTO_DOCS_REF_URL;#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>"
in The Yocto Project Reference Manual.
</para>
<para>
@@ -440,15 +469,15 @@
For information on the <filename>-k</filename> option use the
<filename>bitbake --help</filename> command or see the
"<ulink url='&YOCTO_DOCS_REF_URL;#usingpoky-components-bitbake'>BitBake</ulink>" section in
<ulink url='&YOCTO_DOCS_REF_URL;'>The Yocto Project Reference Manual</ulink>.
The Yocto Project Reference Manual.
<literallayout class='monospaced'>
$ bitbake -k core-image-sato
</literallayout>
<note><para>
BitBake requires Python 2.6 or 2.7. For more information on this requirement,
see the FAQ appendix in
<ulink url='&YOCTO_DOCS_REF_URL;'>
The Yocto Project Reference Manual</ulink>.
see the
<ulink url='&YOCTO_DOCS_REF_URL;#faq'>FAQ</ulink> in The Yocto Project Reference
Manual.
</para></note>
The final command runs the image:
<literallayout class='monospaced'>
@@ -549,9 +578,8 @@
<para>
For more information on how to install tarballs, see the
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Yocto Project Build Tree</ulink>" sections in
<ulink url='&YOCTO_DOCS_ADT_URL;'>The Yocto Project
Application Development Toolkit (ADT) User's Guide</ulink>.
"<ulink url='&YOCTO_DOCS_ADT_URL;#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Yocto Project Build Tree</ulink>" sections in The Yocto Project Application Development Toolkit (ADT)
User's Guide.
</para>
</section>
@@ -582,8 +610,7 @@
<para>
You can learn more about downloading a Yocto Project kernel in the
"<ulink url='&YOCTO_DOCS_DEV_URL;#local-kernel-files'>Linux Yocto Kernel</ulink>" section of
<ulink url='&YOCTO_DOCS_DEV_URL;'>The
Yocto Project Development Manual</ulink>.
The Yocto Project Development Manual.
</para>
</section>
@@ -603,7 +630,7 @@
You must use the <filename>ext3</filename> form when booting an image using the
QEMU emulator.
The <filename>tar</filename> form can be flattened out in your host development system
and used for Yocto Project build purposes.
and used for build purposes with the Yocto Project.
<literallayout class='monospaced'>
core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.ext3
core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.tar.bz2
@@ -657,11 +684,13 @@
<para>
Continuing with the example, the following two commands setup the emulation
environment and launch QEMU.
This example assumes the root filesystem tarball has been downloaded and expanded, and
that the kernel and filesystem are for a 32-bit target architecture.
This example assumes the root filesystem (<filename>.ext3</filename> file) and
the pre-built kernel image file both reside in your home directory.
The kernel and filesystem are for a 32-bit target architecture.
<literallayout class='monospaced'>
$ source &YOCTO_ADTPATH_DIR;/environment-setup-i686-poky-linux
$ runqemu qemux86 bzImage-qemux86-&DISTRO;.bin \
$ cd $HOME
$ source &YOCTO_ADTPATH_DIR;/environment-setup-i586-poky-linux
$ runqemu qemux86 bzImage-qemux86.bin \
core-image-sato-qemux86.ext3
</literallayout>
</para>
@@ -710,7 +739,7 @@
<listitem><para><emphasis>Tarball:</emphasis>
Use if you want the latest stable release:
<literallayout class='monospaced'>
$ wget &YOCTO_RELEASE_DL_URL;.&YOCTO_POKY_TARBALL;
$ wget &YOCTO_RELEASE_DL_URL;/&YOCTO_POKY_TARBALL;
$ tar xvjf &YOCTO_POKY_TARBALL;
</literallayout></para></listitem>
<listitem><para><emphasis>Git Repository:</emphasis>

View File

@@ -1,7 +0,0 @@
#
# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
# an incompatible way. Such changes should usually be detailed in the commit
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
OELAYOUT_ABI = "8"

View File

@@ -37,7 +37,7 @@ DISTRO = "poky-tiny"
# Distro config is evaluated after the machine config, so we have to explicitly
# set the kernel provider to override a machine config.
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
PREFERRED_VERSION_linux-yocto-tiny = "3.0%"
PREFERRED_VERSION_linux-yocto-tiny = "3.2%"
# We can use task-core-boot, but in the future we may need a new task-core-tiny
#POKY_DEFAULT_EXTRA_RDEPENDS += "task-core-boot"
@@ -63,6 +63,7 @@ ASSUME_PROVIDED += "pkgconfig$"
# Reconfigure eglibc for a smaller installation
# Comment out any of the lines below to disable them in the build
DISTRO_FEATURES_LIBC_TINY = "libc-libm libc-crypt"
# Required for "who"
DISTRO_FEATURES_LIBC_MINIMAL = "libc-utmp libc-getlogin"
DISTRO_FEATURES_LIBC_REGEX = "libc-posix-regexp"
@@ -113,3 +114,8 @@ IMAGE_FSTYPES = "ext2 cpio.gz"
# variants of all compatible machines, but that leads to a lot
# more machine configs to maintain long term.
MACHINE_ESSENTIAL_EXTRA_RDEPENDS = ""
# The mtrace script included by eglibc is a perl script. This means the system
# will build perl in case this package is installed. Since we don't care about
# this script for the purposes of tiny, remove the dependency from here.
RDEPENDS_${PN}-mtrace_pn-eglibc = ""

View File

@@ -1,8 +1,8 @@
DISTRO = "poky"
DISTRO_NAME = "Yocto (Built by Poky 6.0)"
DISTRO_VERSION = "1.1+snapshot-${DATE}"
DISTRO_NAME = "Yocto (Built by Poky 7.0.2)"
DISTRO_VERSION = "1.2.2"
SDK_VENDOR = "-pokysdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
SDK_VERSION := "${DISTRO_VERSION}"
MAINTAINER = "Poky <poky@yoctoproject.org>"
@@ -65,5 +65,33 @@ CONNECTIVITY_CHECK_URIS ?= "git://git.yoctoproject.org/yocto-firewall-test;proto
https://eula-downloads.yoctoproject.org/index.php \
http://bugzilla.yoctoproject.org/report.cgi"
SANITY_TESTED_DISTROS ?= " \
Yocto (Built by Poky 7.0) 1.2 \n \
Yocto (Built by Poky 7.0.1) 1.2.1 \n \
Yocto (Built by Poky 7.0.2) 1.2.2 \n \
Ubuntu 10.04.4 LTS \n \
Ubuntu 11.10 \n \
Ubuntu 12.04 LTS \n \
Ubuntu 12.04.1 LTS \n \
Fedora release 13 (Goddard) \n \
Fedora release 15 (Lovelock) \n \
Fedora release 16 (Verne) \n \
Fedora release 17 (Beefy Miracle) \n \
CentOS release 5.6 (Final) \n \
CentOS release 5.7 (Final) \n \
CentOS release 5.8 (Final) \n \
CentOS release 6.2 (Final) \n \
Debian GNU/Linux 6.0.4 (squeeze) \n \
openSUSE 11.4 \n \
openSUSE 12.1 \n \
"
# Default hash policy for distro
BB_SIGNATURE_HANDLER ?= 'OEBasicHash'
#
# OELAYOUT_ABI allows us to notify users when the format of TMPDIR changes in
# an incompatible way. Such changes should usually be detailed in the commit
# that breaks the format and have been previously discussed on the mailing list
# with general agreement from the core team.
#
OELAYOUT_ABI = "8"

View File

@@ -5,8 +5,7 @@
include conf/machine/include/tune-atom.inc
MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 wifi \
acpi alsa"
MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 x86 wifi acpi alsa"
KERNEL_IMAGETYPE = "bzImage"

View File

@@ -2,8 +2,8 @@
#@NAME: Beagleboard machine
#@DESCRIPTION: Machine configuration for the http://beagleboard.org/ board
PREFERRED_PROVIDER_virtual/xserver = "xserver-xorg-lite"
XSERVER = "xserver-xorg-lite \
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg-lite"
XSERVER ?= "xserver-xorg-lite \
xf86-input-evdev \
xf86-input-mouse \
xf86-video-omapfb \
@@ -37,4 +37,4 @@ UBOOT_MACHINE = "omap3_beagle_config"
UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat alsa"
MACHINE_FEATURES = "apm usbgadget usbhost vfat alsa"

View File

@@ -9,7 +9,7 @@ KERNEL_IMAGETYPE = "uImage"
SERIAL_CONSOLE = "115200 ttyS0"
MACHINE_FEATURES = "kernel26 keyboard pci ext2 ext3 serial"
MACHINE_FEATURES = "keyboard pci ext2 ext3 serial"
PREFERRED_VERSION_linux-yocto ?= "3.0%"
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"

View File

@@ -4,8 +4,7 @@
require conf/machine/include/tune-mips32.inc
MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 \
serial"
MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 serial"
KERNEL_IMAGETYPE = "vmlinux"
KERNEL_ALT_IMAGETYPE = "vmlinux.bin"

View File

@@ -1 +1 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"

View File

@@ -4,10 +4,10 @@ KMACHINE_mpc8315e-rdb = "yocto/standard/fsl-mpc8315e-rdb"
KMACHINE_beagleboard = "yocto/standard/beagleboard"
SRCREV_machine_atom-pc ?= "b42d0d016af36d0bbbb619c424200d4b5bc9ba28"
SRCREV_machine_routerstationpro ?= "f1bc894b09bd9b048df99e53fd6559c5d84e4871"
SRCREV_machine_mpc8315e-rdb ?= "7ba6d6853b6e7cf00a742baeba1503c80fc05314"
SRCREV_machine_beagleboard ?= "fccd4e4041454f16f1e7a25569ec530eaa1bf89e"
SRCREV_machine_atom-pc ?= "afdda882f902dd28693cd8701a7d497958290f09"
SRCREV_machine_routerstationpro ?= "982522e3901fad56bb908565b22c498025ab536c"
SRCREV_machine_mpc8315e-rdb ?= "83f422f718cf15633cb4c2d309aa041c3c354f65"
SRCREV_machine_beagleboard ?= "8fd5a8eb4067c7032389e82d54f0e54e1e27f78c"
COMPATIBLE_MACHINE_mpc8315e-rdb = "mpc8315e-rdb"
COMPATIBLE_MACHINE_routerstationpro = "routerstationpro"

View File

@@ -0,0 +1,14 @@
# This file is for getting archiving packages with patched sources(archive 's' before do_patch stage),logs(archive 'temp' after package_write_rpm),dump data and
# creating diff file(get all environment variables and functions in building and mapping all content in 's' including patches to xxx.diff.gz.
# All archived packages will be deployed in ${DEPLOY_DIR}/sources
inherit archiver
# Get archiving package with patched sources including patches
do_patch[postfuncs] += "do_archive_patched_sources "
# Get archiving package with logs(temp) and scripts(.bb and .inc files)
do_package_write_rpm[prefuncs] += "do_archive_scripts_logs "
# Get dump date and create diff file
do_package_write_rpm[postfuncs] += "do_dumpdata_create_diff_gz "

View File

@@ -2,28 +2,11 @@
# It also output building environment to xxx.dump.data and create xxx.diff.gz to record
# all content in ${S} to a diff file.
EXCLUDE_FROM ?= ".pc autom4te.cache"
ARCHIVE_EXCLUDE_FROM ?= ".pc autom4te.cache"
ARCHIVE_TYPE ?= "TAR SRPM"
DISTRO ?= "poky"
PATCHES_ARCHIVE_WITH_SERIES = 'TRUE'
def parse_var(d,var):
''' parse variable like ${PV} in "require xxx_${PV}.inc" to a real value. for example, change "require xxx_${PV}.inc" to "require xxx_1.2.inc" '''
import re
pat = re.compile('.*\$({(.*)}).*')
if '$' not in var and '/' not in var:
return var
else:
if '/' in var:
return [i for i in var.split('/') if i.endswith('.inc')][0]
elif '$' in var:
m = pat.match(var)
patstr = '\$' + m.group(1)
var_str = m.group(2)
return re.sub(patstr,d.getVar(var_str,True),var)
else:
return var
def get_bb_inc(d):
'''create a directory "script-logs" including .bb and .inc file in ${WORKDIR}'''
import re
@@ -32,14 +15,18 @@ def get_bb_inc(d):
bbinc = []
pat=re.compile('require\s*([^\s]*\.*)(.*)')
file_dir = d.getVar('FILE', True)
bbdir = os.path.dirname(file_dir)
work_dir = d.getVar('WORKDIR', True)
os.chdir(work_dir)
bb.mkdirhier("script-logs")
os.chdir(bbdir)
bbfile = os.path.basename(file_dir)
bbinc.append(bbfile)
bbfile = d.getVar('FILE', True)
bbdir = os.path.dirname(bbfile)
script_logs = os.path.join(work_dir,'script-logs')
bb_inc = os.path.join(script_logs,'bb_inc')
bb.mkdirhier(script_logs)
bb.mkdirhier(bb_inc)
def find_file(dir,file):
for root, dirs, files in os.walk(dir):
if file in files:
return os.path.join(root,file)
def get_inc (file):
f = open(file,'r')
@@ -49,21 +36,26 @@ def get_bb_inc(d):
else:
try:
incfile = pat.match(line).group(1)
incfile = parse_var(d,incfile)
bbinc.append(incfile)
get_inc(incfile)
except (IOError,AttributeError):
incfile = bb.data.expand(os.path.basename(incfile),d)
abs_incfile = find_file(bbdir,incfile)
if abs_incfile:
bbinc.append(abs_incfile)
get_inc(abs_incfile)
except AttributeError:
pass
get_inc(bbfile)
os.chdir(work_dir)
for root, dirs, files in os.walk(bbdir):
for file in bbinc:
if file in files:
shutil.copy(root + '/' + file,'script-logs')
oe.path.copytree('temp', 'script-logs')
return work_dir + '/script-logs'
bbinc = list(set(bbinc))
for bbincfile in bbinc:
shutil.copy(bbincfile,bb_inc)
def get_all_patches(d):
try:
bb.mkdirhier(os.path.join(script_logs,'temp'))
oe.path.copytree(os.path.join(work_dir,'temp'), os.path.join(script_logs,'temp'))
except (IOError,AttributeError):
pass
return script_logs
def get_series(d):
'''copy patches and series file to a pointed directory which will be archived to tarball in ${WORKDIR}'''
import shutil
@@ -71,11 +63,11 @@ def get_all_patches(d):
pf = d.getVar('PF', True)
work_dir = d.getVar('WORKDIR', True)
s = d.getVar('S',True)
dest = os.path.join(work_dir, pf + '-patches')
dest = os.path.join(work_dir, pf + '-series')
shutil.rmtree(dest, ignore_errors=True)
bb.mkdirhier(dest)
src_uri = d.getVar('SRC_URI', 1).split()
src_uri = d.getVar('SRC_URI', True).split()
fetch = bb.fetch2.Fetch(src_uri, d)
locals = (fetch.localpath(url) for url in fetch.urls)
for local in locals:
@@ -90,7 +82,8 @@ def get_all_patches(d):
shutil.copy(patch,dest)
except IOError:
if os.path.isdir(patch):
oe.path.copytree(patch,dest)
bb.mkdirhier(os.path.join(dest,patch))
oe.path.copytree(patch, os.path.join(dest,patch))
return dest
def get_applying_patches(d):
@@ -124,92 +117,86 @@ def not_tarball(d):
else:
return False
def get_source_from_downloads(d,middle_name):
def get_source_from_downloads(d,stage_name):
'''copy tarball of $P to $WORKDIR when this tarball exists in $DL_DIR'''
if middle_name in 'patched' 'configured':
if stage_name in 'patched' 'configured':
return
pf = d.getVar('PF', True)
dl_dir = d.getVar('DL_DIR',True)
try:
source = os.path.basename(d.getVar('SRC_URI', 1).split()[0])
os.chdir(dl_dir)
source = os.path.join(dl_dir,os.path.basename(d.getVar('SRC_URI', True).split()[0]))
if os.path.exists(source) and not os.path.isdir(source):
return source
except (IndexError, OSError):
pass
def archive_sources_from_directory(d,middle_name):
'''archive sources codes tree to tarball when tarball of $P doesn't exist in $DL_DIR'''
return ''
def do_tarball(workdir,srcdir,tarname):
'''tar "srcdir" under "workdir" to "tarname"'''
import tarfile
sav_dir = os.getcwd()
os.chdir(workdir)
if (len(os.listdir(srcdir))) != 0:
tar = tarfile.open(tarname, "w:gz")
tar.add(srcdir)
tar.close()
else:
tarname = ''
os.chdir(sav_dir)
return tarname
def archive_sources_from_directory(d,stage_name):
'''archive sources codes tree to tarball when tarball of $P doesn't exist in $DL_DIR'''
import shutil
s = d.getVar('S',True)
workdir=d.getVar('WORKDIR', True)
work_dir=d.getVar('WORKDIR', True)
PF = d.getVar('PF',True)
tarname = PF + '-' + middle_name + ".tar.gz"
tarname = PF + '-' + stage_name + ".tar.gz"
if os.path.exists(s) and s is not workdir:
sourcedir = os.path.basename(s)
tarbase = os.path.dirname(s)
if not sourcedir or os.path.dirname(tarbase) == workdir:
sourcedir = os.path.basename(os.path.dirname(s))
tarbase = os.path.dirname(os.path.dirname(s))
os.chdir(tarbase)
else:
sourcedir = os.path.basename(s)
if not os.path.exists(sourcedir):
os.mkdir(sourcedir)
if os.path.exists(s) and work_dir in s:
try:
for file in os.listdir(s):
if file is not 'temp' and file is not sourcedir:
shutil.copy(file,sourcedir)
except (IOError,OSError):
pass
if (len(os.listdir(sourcedir))) != 0:
tar = tarfile.open( tarname, "w:gz")
tar.add(sourcedir)
tar.close()
if cmp(workdir,os.path.dirname(s)) and not os.path.exists(workdir + '/' + tarname):
shutil.move(os.path.dirname(s) + '/' + tarname,workdir)
source_dir = os.path.join(work_dir,[ i for i in s.replace(work_dir,'').split('/') if i][0])
except IndexError:
if not cmp(s,work_dir):
return ''
else:
return
return tarname
return ''
source = os.path.basename(source_dir)
return do_tarball(work_dir,source,tarname)
def archive_sources(d,middle_name):
def archive_sources(d,stage_name):
'''copy tarball from $DL_DIR to $WORKDIR if have tarball, archive source codes tree in $WORKDIR if $P is directory instead of tarball'''
import shutil
work_dir = d.getVar('WORKDIR',True)
file = get_source_from_downloads(d,middle_name)
file = get_source_from_downloads(d,stage_name)
if file:
shutil.copy(file,work_dir)
file = os.path.basename(file)
else:
file = archive_sources_from_directory(d,middle_name)
file = archive_sources_from_directory(d,stage_name)
return file
def archive_patches(d,patchdir,series):
'''archive patches to tarball and also include series files if 'series' is True'''
import tarfile
import shutil
s = d.getVar('S',True)
work_dir = d.getVar('WORKDIR', True)
os.chdir(work_dir)
patch_dir = os.path.basename(patchdir)
tarname = patch_dir + ".tar.gz"
if series == 'all' and os.path.exists(s + '/patches/series'):
shutil.copy(s + '/patches/series',patch_dir)
tar = tarfile.open(tarname, "w:gz")
tar.add(patch_dir)
tar.close()
shutil.rmtree(patch_dir, ignore_errors=True)
if series == 'all' and os.path.exists(os.path.join(s,'patches/series')):
shutil.copy(os.path.join(s,'patches/series'),patchdir)
tarname = do_tarball(work_dir,patch_dir,tarname)
shutil.rmtree(patchdir, ignore_errors=True)
return tarname
def select_archive_patches(d,option):
'''select to archive all patches including non-applying and series or applying patches '''
if option == "all":
patchdir = get_all_patches(d)
patchdir = get_series(d)
elif option == "applying":
patchdir = get_applying_patches(d)
try:
@@ -221,17 +208,15 @@ def select_archive_patches(d,option):
def archive_logs(d,logdir,bbinc=False):
'''archive logs in temp to tarball and .bb and .inc files if bbinc is True '''
import tarfile
import shutil
log_dir = os.path.basename(logdir)
pf = d.getVar('PF',True)
work_dir = d.getVar('WORKDIR',True)
log_dir = os.path.basename(logdir)
tarname = pf + '-' + log_dir + ".tar.gz"
tar = tarfile.open(tarname, "w:gz")
tar.add(log_dir)
tar.close()
tarname = do_tarball(work_dir,log_dir,tarname)
if bbinc:
shutil.rmtree(log_dir, ignore_errors=True)
shutil.rmtree(logdir, ignore_errors=True)
return tarname
def get_licenses(d):
@@ -258,16 +243,17 @@ def move_tarball_deploy(d,tarball_list):
target_sys = d.getVar('TARGET_SYS', True)
pf = d.getVar('PF', True)
licenses = get_licenses(d)
work_dir = d.getVar('WORKDIR',True)
tar_sources = d.getVar('DEPLOY_DIR', True) + '/sources/' + target_sys + '/' + licenses + '/' + pf
if not os.path.exists(tar_sources):
bb.mkdirhier(tar_sources)
for source in tarball_list:
if source:
if os.path.exists(tar_sources + '/' + source):
os.remove(tar_sources + '/' + source)
shutil.move(source,tar_sources)
if os.path.exists(os.path.join(tar_sources, source)):
os.remove(os.path.join(tar_sources,source))
shutil.move(os.path.join(work_dir,source),tar_sources)
def verify_var(d):
def check_archiving_type(d):
'''check the type for archiving package('tar' or 'srpm')'''
try:
if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in d.getVar('ARCHIVE_TYPE', True).split():
@@ -278,7 +264,7 @@ def verify_var(d):
def store_package(d,package_name):
'''store tarbablls name to file "tar-package"'''
try:
f = open(d.getVar('WORKDIR',True )+ '/tar-package','a')
f = open(os.path.join(d.getVar('WORKDIR',True),'tar-package'),'a')
f.write(package_name + ' ')
f.close()
except IOError:
@@ -286,25 +272,27 @@ def store_package(d,package_name):
def get_package(d):
'''get tarballs name from "tar-package"'''
work_dir = (d.getVar('WORKDIR', True))
tarpackage = os.path.join(work_dir,'tar-package')
try:
os.chdir(d.getVar('WORKDIR', True))
f = open('tar-package','r')
f = open(tarpackage,'r')
line = list(set(f.readline().replace('\n','').split()))
f.close()
return line
except IOError:
pass
f.close()
return line
def archive_sources_patches(d,middle_name):
'''archive sources and patches to tarball. middle_name will append strings ${middle_name} to ${PR} as middle name. for example, zlib-1.4.6-prepatch(middle_name).tar.gz '''
def archive_sources_patches(d,stage_name):
'''archive sources and patches to tarball. stage_name will append strings ${stage_name} to ${PR} as middle name. for example, zlib-1.4.6-prepatch(stage_name).tar.gz '''
import shutil
verify_var(d)
check_archiving_type(d)
if not_tarball(d):
return
source_tar_name = archive_sources(d,middle_name)
if middle_name == "prepatch":
source_tar_name = archive_sources(d,stage_name)
if stage_name == "prepatch":
if d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'TRUE':
patch_tar_name = select_archive_patches(d,"all")
elif d.getVar('PATCHES_ARCHIVE_WITH_SERIES',True).upper() == 'FALSE':
@@ -313,14 +301,14 @@ def archive_sources_patches(d,middle_name):
bb.fatal("Please define 'PATCHES_ARCHIVE_WITH_SERIES' is strings 'True' or 'False' ")
else:
patch_tar_name = ''
if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() not in 'SRPM':
move_tarball_deploy(d,[source_tar_name,patch_tar_name])
else:
tarpackage = d.getVar('WORKDIR', True) + '/tar-package'
tarpackage = os.path.join(d.getVar('WORKDIR', True),'tar-package')
if os.path.exists(tarpackage):
os.remove(tarpackage)
for package in source_tar_name, patch_tar_name:
for package in os.path.basename(source_tar_name), patch_tar_name:
if package:
store_package(d,str(package) + ' ')
@@ -328,14 +316,14 @@ def archive_scripts_logs(d):
'''archive scripts and logs. scripts include .bb and .inc files and logs include stuff in "temp".'''
work_dir = d.getVar('WORKDIR', True)
os.chdir(work_dir)
temp_dir = os.path.join(work_dir,'temp')
source_archive_log_with_scripts = d.getVar('SOURCE_ARCHIVE_LOG_WITH_SCRIPTS', True)
if source_archive_log_with_scripts == 'logs_with_scripts':
logdir = get_bb_inc(d)
tarlog = archive_logs(d,logdir,True)
elif source_archive_log_with_scripts == 'logs':
if os.path.exists('temp'):
tarlog = archive_logs(d,'temp',False)
if os.path.exists(temp_dir):
tarlog = archive_logs(d,temp_dir,False)
else:
return
@@ -374,14 +362,14 @@ def create_diff_gz(d):
import shutil
work_dir = d.getVar('WORKDIR', True)
exclude_from = d.getVar('EXCLUDE_FROM', True).split()
exclude_from = d.getVar('ARCHIVE_EXCLUDE_FROM', True).split()
pf = d.getVar('PF', True)
licenses = get_licenses(d)
target_sys = d.getVar('TARGET_SYS', True)
diff_dir = d.getVar('DEPLOY_DIR', True) + '/sources/' + target_sys + '/' + licenses + '/' + pf
diff_file = os.path.join(diff_dir, bb.data.expand("${P}-${PR}.diff.gz",d))
os.chdir(work_dir)
f = open('temp/exclude-from-file', 'a')
f = open(os.path.join(work_dir,'temp/exclude-from-file'), 'a')
for i in exclude_from:
f.write(i)
f.write("\n")
@@ -394,7 +382,10 @@ def create_diff_gz(d):
bb.mkdirhier(dest)
for i in os.listdir(os.getcwd()):
if os.path.isfile(i):
shutil.copy(i, dest)
try:
shutil.copy(i, dest)
except IOError:
os.system('fakeroot cp -rf ' + i + " " + dest )
bb.note("Creating .diff.gz in ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz")
cmd = "LC_ALL=C TZ=UTC0 diff --exclude-from=" + work_dir + "/temp/exclude-from-file -Naur " + s + '.org' + ' ' + s + " | gzip -c > " + diff_file
@@ -445,12 +436,11 @@ do_kernel_checkout[postfuncs] += "do_archive_linux_yocto "
python do_remove_tarball(){
if d.getVar('SOURCE_ARCHIVE_PACKAGE_TYPE', True).upper() == 'SRPM':
work_dir = d.getVar('WORKDIR', True)
os.chdir(work_dir)
try:
for file in os.listdir(os.getcwd()):
if file in get_package(d):
os.remove(file)
os.remove('tar-package')
os.remove(os.path.join(work_dir,'tar-package'))
except (TypeError,OSError):
pass
}

View File

@@ -12,6 +12,7 @@ def autotools_dep_prepend(d):
if not pn in ['libtool', 'libtool-native'] and not pn.endswith("libtool-cross"):
deps += 'libtool-native '
if not bb.data.inherits_class('native', d) \
and not bb.data.inherits_class('nativesdk', d) \
and not bb.data.inherits_class('cross', d) \
and not d.getVar('INHIBIT_DEFAULT_DEPS', True):
deps += 'libtool-cross '
@@ -81,6 +82,27 @@ oe_runconf () {
AUTOTOOLS_AUXDIR ?= "${S}"
CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate"
autotools_preconfigure() {
if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then
if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a "${S}" != "${B}" ]; then
echo "Previously configured separate build directory detected, cleaning ${B}"
rm -rf ${B}
mkdir ${B}
fi
fi
}
autotools_postconfigure(){
if [ -n "${CONFIGURESTAMPFILE}" ]; then
echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE}
fi
}
do_configure[prefuncs] += "autotools_preconfigure"
do_configure[postfuncs] += "autotools_postconfigure"
autotools_do_configure() {
case ${PN} in
autoconf*)

View File

@@ -305,9 +305,32 @@ python () {
pkgconfigflags = d.getVarFlags("PACKAGECONFIG") or {}
if pkgconfigflags:
pkgconfig = (d.getVar('PACKAGECONFIG', True) or "").split()
pn = d.getVar("PN", True)
mlprefix = d.getVar("MLPREFIX", True)
def expandFilter(appends, extension, prefix):
appends = bb.utils.explode_deps(d.expand(" ".join(appends)))
newappends = []
for a in appends:
if a.endswith("-native") or a.endswith("-cross"):
newappends.append(a)
elif a.startswith("virtual/"):
subs = a.split("/", 1)[1]
newappends.append("virtual/" + prefix + subs + extension)
else:
newappends.append(prefix + a + extension)
return newappends
def appendVar(varname, appends):
if not appends:
return
if varname.find("DEPENDS") != -1:
if pn.endswith("-nativesdk"):
appends = expandFilter(appends, "-nativesdk", "")
if pn.endswith("-native"):
appends = expandFilter(appends, "-native", "")
if mlprefix:
appends = expandFilter(appends, "", mlprefix)
varname = d.expand(varname)
d.appendVar(varname, " " + " ".join(appends))
@@ -324,11 +347,14 @@ python () {
elif len(items) == 4:
enable, disable, depend, rdepend = items
if flag in pkgconfig:
extradeps.append(depend)
extrardeps.append(rdepend)
extraconf.append(enable)
else:
extraconf.append(disable)
if depend:
extradeps.append(depend)
if rdepend:
extrardeps.append(rdepend)
if enable:
extraconf.append(enable)
elif disable:
extraconf.append(disable)
appendVar('DEPENDS', extradeps)
appendVar('RDEPENDS_${PN}', extrardeps)
appendVar('EXTRA_OECONF', extraconf)

View File

@@ -40,16 +40,13 @@ AUTO_SYSLINUXCFG = "1"
SYSLINUX_ROOT ?= "root=/dev/sda2"
SYSLINUX_TIMEOUT ?= "10"
SYSLINUXCFG = "${HDDDIR}/syslinux.cfg"
SYSLINUXMENU = "${HDDDIR}/menu"
inherit syslinux
build_boot_dd() {
IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect
install -d ${HDDDIR}
install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage ${HDDDIR}/vmlinuz
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${HDDDIR}/vmlinuz
install -m 0644 ${S}/syslinux.cfg ${HDDDIR}/syslinux.cfg
install -m 444 ${STAGING_LIBDIR}/syslinux/ldlinux.sys ${HDDDIR}/ldlinux.sys

View File

@@ -63,7 +63,7 @@ populate() {
install -d ${DEST}
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
install -m 0644 ${STAGING_DIR_HOST}/kernel/bzImage ${DEST}/vmlinuz
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
install -m 0644 ${INITRD} ${DEST}/initrd

View File

@@ -300,16 +300,16 @@ buildhistory_get_image_installed() {
echo $pkgsize $pkg >> ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp
fi
deps=`list_package_depends $pkg | sort | uniq`
deps=`list_package_depends $pkg`
for dep in $deps ; do
echo "$pkg OPP $dep;" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g' >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
echo "$pkg OPP $dep;" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g'
done
recs=`list_package_recommends $pkg | sort | uniq`
recs=`list_package_recommends $pkg`
for rec in $recs ; do
echo "$pkg OPP $rec [style=dotted];" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g' >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
echo "$pkg OPP $rec [style=dotted];" | sed -e 's:-:_:g' -e 's:\.:_:g' -e 's:+::g' | sed 's:OPP:->:g'
done
done
done | sort | uniq >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
echo "}" >> ${BUILDHISTORY_DIR_IMAGE}/depends.dot
cat ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.tmp | sort -n -r | awk '{print $1 "\tKiB " $2}' > ${BUILDHISTORY_DIR_IMAGE}/installed-package-sizes.txt
@@ -401,10 +401,15 @@ buildhistory_commit() {
if [ "$repostatus" != "" ] ; then
git add ${BUILDHISTORY_DIR}/*
HOSTNAME=`hostname 2>/dev/null || echo unknown`
git commit ${BUILDHISTORY_DIR}/ -m "Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $HOSTNAME" --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
# porcelain output looks like "?? packages/foo/bar"
for entry in `echo "$repostatus" | awk '{print $2}' | awk -F/ '{print $1}' | sort | uniq` ; do
git commit ${BUILDHISTORY_DIR}/$entry -m "$entry: Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $HOSTNAME" --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
done
if [ "${BUILDHISTORY_PUSH_REPO}" != "" ] ; then
git push -q ${BUILDHISTORY_PUSH_REPO}
fi
else
git commit ${BUILDHISTORY_DIR}/ --allow-empty -m "No changes: Build ${BUILDNAME} of ${DISTRO} ${DISTRO_VERSION} for machine ${MACHINE} on $HOSTNAME" --author "${BUILDHISTORY_COMMIT_AUTHOR}" > /dev/null
fi) || true
}

View File

@@ -10,7 +10,23 @@ addtask configure after do_unpack do_patch before do_compile
inherit terminal
python do_menuconfig() {
try:
mtime = os.path.getmtime(".config")
except OSError:
mtime = 0
oe_terminal("make menuconfig", '${PN} Configuration', d)
# FIXME this check can be removed when the minimum bitbake version has been bumped
if hasattr(bb.build, 'write_taint'):
try:
newmtime = os.path.getmtime(".config")
except OSError:
newmtime = 0
if newmtime > mtime:
bb.note("Configuration changed, recompile will be forced")
bb.build.write_taint('do_compile', d)
}
do_menuconfig[nostamp] = "1"
addtask menuconfig after do_configure

View File

@@ -47,14 +47,14 @@ def copyleft_should_include(d):
exclude = oe.data.typed_value('COPYLEFT_LICENSE_EXCLUDE', d)
try:
is_included, excluded = oe.license.is_included(d.getVar('LICENSE', True), include, exclude)
is_included, reason = oe.license.is_included(d.getVar('LICENSE', True), include, exclude)
except oe.license.LicenseError as exc:
bb.fatal('%s: %s' % (d.getVar('PF', True), exc))
else:
if is_included:
return True, None
return True, 'recipe has included licenses: %s' % ', '.join(reason)
else:
return False, 'recipe has excluded licenses: %s' % ', '.join(excluded)
return False, 'recipe has excluded licenses: %s' % ', '.join(reason)
python do_prepare_copyleft_sources () {
"""Populate a tree of the recipe sources and emit patch series files"""
@@ -67,7 +67,7 @@ python do_prepare_copyleft_sources () {
bb.debug(1, 'copyleft: %s is excluded: %s' % (p, reason))
return
else:
bb.debug(1, 'copyleft: %s is included' % p)
bb.debug(1, 'copyleft: %s is included: %s' % (p, reason))
sources_dir = d.getVar('COPYLEFT_SOURCES_DIR', True)
src_uri = d.getVar('SRC_URI', True).split()

View File

@@ -48,7 +48,9 @@ DPKG_ARCH = "${SDK_ARCH}"
CPPFLAGS = "${BUILDSDK_CPPFLAGS}"
CFLAGS = "${BUILDSDK_CFLAGS}"
CXXFLAGS = "${BUILDSDK_CFLAGS}"
LDFLAGS = "${BUILDSDK_LDFLAGS}"
LDFLAGS = "${BUILDSDK_LDFLAGS} \
-Wl,-rpath-link,${STAGING_LIBDIR}/.. \
-Wl,-rpath,${libdir}/.. "
DEPENDS_GETTEXT = "gettext-native gettext-nativesdk"

View File

@@ -1,6 +1,11 @@
inherit cross
PACKAGE_ARCH = "${SDK_ARCH}"
python () {
# set TUNE_PKGARCH to SDK_ARCH
d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH', True))
}
STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}"
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"

View File

@@ -237,7 +237,7 @@ python do_checkpkg() {
such as:
gnome-common-2.20.0.tar.gz (most common format)
gtk+-2.90.1.tar.gz
xf86-intput-synaptics-12.6.9.tar.gz
xf86-input-synaptics-12.6.9.tar.gz
dri2proto-2.3.tar.gz
blktool_4.orig.tar.gz
libid3tag-0.15.1b.tar.gz

View File

@@ -38,7 +38,7 @@ distutils_do_install() {
STAGING_LIBDIR=${STAGING_LIBDIR} \
PYTHONPATH=${D}/${PYTHON_SITEPACKAGES_DIR} \
BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
${STAGING_BINDIR_NATIVE}/python setup.py install ${DISTUTILS_INSTALL_ARGS} || \
${STAGING_BINDIR_NATIVE}/python setup.py install --install-lib=${D}/${PYTHON_SITEPACKAGES_DIR} ${DISTUTILS_INSTALL_ARGS} || \
bbfatal "python setup.py install execution failed."
for i in `find ${D} -name "*.py"` ; do \

View File

@@ -1,10 +1,18 @@
DEPENDS += "gconf gconf-native"
# This is referenced by the gconf m4 macros and would default to the value hardcoded
# into gconf at compile time otherwise
# These are for when gconftool is used natively and the prefix isn't necessarily
# the sysroot. TODO: replicate the postinst logic for -native packages going
# into sysroot as they won't be running their own install-time schema
# registration (disabled below) nor the postinst script (as they don't happen).
export GCONF_SCHEMA_INSTALL_SOURCE = "xml:merged:${STAGING_DIR_NATIVE}${sysconfdir}/gconf/gconf.xml.defaults"
export GCONF_BACKEND_DIR = "${STAGING_LIBDIR_NATIVE}/GConf/2"
# Disable install-time schema registration as we're a packaging system so this
# happens in the postinst script, not at install time. Set both the configure
# script option and the traditional envionment variable just to make sure.
EXTRA_OECONF += "--disable-schemas-install"
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL = "1"
gconf_postinst() {
if [ "x$D" != "x" ]; then
exit 1
@@ -57,7 +65,7 @@ python populate_packages_append () {
prerm += d.getVar('gconf_prerm', True)
d.setVar('pkg_prerm_%s' % pkg, prerm)
rdepends = d.getVar("RDEPENDS_%s" % pkg, True) or ""
rdepends += " gconf"
rdepends += ' ' + d.getVar('MLPREFIX') + 'gconf'
d.setVar("RDEPENDS_%s" % pkg, rdepends)
}

View File

@@ -15,7 +15,7 @@ def gettext_oeconf(d):
return '--disable-nls'
return "--enable-nls"
DEPENDS_GETTEXT = "virtual/gettext gettext-native"
DEPENDS_GETTEXT ??= "virtual/gettext gettext-native"
BASEDEPENDS =+ "${@gettext_dependencies(d)}"
EXTRA_OECONF_append = " ${@gettext_oeconf(d)}"

View File

@@ -131,6 +131,7 @@ PSEUDO_PASSWD = "${IMAGE_ROOTFS}"
do_rootfs[nostamp] = "1"
do_rootfs[dirs] = "${TOPDIR}"
do_rootfs[lockfiles] += "${IMAGE_ROOTFS}.lock"
do_rootfs[cleandirs] += "${S}"
do_build[nostamp] = "1"
# Must call real_do_rootfs() from inside here, rather than as a separate
@@ -142,6 +143,12 @@ fakeroot do_rootfs () {
# When use the rpm incremental image generation, don't remove the rootfs
if [ "${INC_RPM_IMAGE_GEN}" != "1" -o "${IMAGE_PKGTYPE}" != "rpm" ]; then
rm -rf ${IMAGE_ROOTFS}
elif [ -d ${T}/saved_rpmlib/var/lib/rpm ]; then
# Move the rpmlib back
if [ ! -d ${IMAGE_ROOTFS}/var/lib/rpm ]; then
mkdir -p ${IMAGE_ROOTFS}/var/lib/
mv ${T}/saved_rpmlib/var/lib/rpm ${IMAGE_ROOTFS}/var/lib/
fi
fi
rm -rf ${MULTILIB_TEMP_ROOTFS}
mkdir -p ${IMAGE_ROOTFS}

View File

@@ -188,7 +188,12 @@ IMAGE_CMD_ubi () {
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}"
EXTRA_IMAGECMD = ""
EXTRA_IMAGECMD_jffs2 ?= "--pad --little-endian --eraseblock=0x40000"
inherit siteinfo
JFFS2_ENDIANNESS ?= "${@base_conditional('SITEINFO_ENDIANNESS', 'le', '--little-endian', '--big-endian', d)}"
JFFS2_ERASEBLOCK ?= "0x40000"
EXTRA_IMAGECMD_jffs2 ?= "--pad ${JFFS2_ENDIANNESS} --eraseblock=${JFFS2_ERASEBLOCK} --no-cleanmarkers"
# Change these if you want default genext2fs behavior (i.e. create minimal inode number)
EXTRA_IMAGECMD_ext2 ?= "-i 8192"
EXTRA_IMAGECMD_ext3 ?= "-i 8192"

View File

@@ -328,6 +328,7 @@ def package_qa_check_arch(path,name,d, elf, messages):
target_os = d.getVar('TARGET_OS', True)
target_arch = d.getVar('TARGET_ARCH', True)
provides = d.getVar('PROVIDES', d, True)
bpn = d.getVar('BPN', True)
# FIXME: Cross package confuse this check, so just skip them
for s in ['cross', 'nativesdk', 'cross-canadian']:

View File

@@ -20,7 +20,9 @@ def find_sccs(d):
sources_list=[]
for s in sources:
base, ext = os.path.splitext(os.path.basename(s))
if ext and ext in ('.scc'):
if ext and ext in ('.scc' '.cfg'):
sources_list.append(s)
elif base and base in 'defconfig':
sources_list.append(s)
return sources_list
@@ -73,72 +75,9 @@ do_patch() {
fi
sccs="${@" ".join(find_sccs(d))}"
patches_and_dirs="${@" ".join(find_urls(d))}"
patches="${@" ".join(find_patches(d))}"
# This loops through all patches, and looks for directories that do
# not already have feature descriptions. If a directory doesn't have
# a feature description, we switch to the ${WORKDIR} variant of the
# feature (so we can write to it) and generate a feature for those
# patches. The generated feature will respect the patch order.
#
# By leaving source patch directories that already have .scc files
# as-is it means that a SRC_URI can only contain a .scc file, and all
# patches that the .scc references will be picked up, without having
# to be repeated on the SRC_URI line .. which is more intutive
set +e
patch_dirs=
for pp in ${patches_and_dirs}; do
p=`echo $pp | cut -f1 -d:`
wp=`echo $pp | cut -f2 -d:`
pdir=`dirname ${p}`
pname=`basename ${p}`
scc=`find ${pdir} -maxdepth 1 -name '*.scc'`
if [ -z "${scc}" ]; then
# there is no scc file. We need to switch to someplace that we know
# we can create content (the workdir)
workdir_subdir=`dirname ${wp}`
suggested_dir="${WORKDIR}/${workdir_subdir}"
echo ${gen_feature_dirs} | grep -q ${suggested_dir}
if [ $? -ne 0 ]; then
gen_feature_dirs="${gen_feature_dirs} ${suggested_dir}"
fi
# we call the file *.scc_tmp, so the test above will continue to find
# that patches from a common subdirectory don't have a scc file and
# they'll be placed in order, into this file. We'll rename it later.
gen_feature_name="gen_`echo ${workdir_subdir} | sed 's%/%%g'`_desc.scc_tmp"
echo "patch ${pname}" >> ${WORKDIR}/${workdir_subdir}/${gen_feature_name}
else
suggested_dir="${pdir}"
fi
echo ${patch_dirs} | grep -q ${suggested_dir}
if [ $? -ne 0 ]; then
patch_dirs="${patch_dirs} ${suggested_dir}"
fi
done
# look for any found scc files, and ensure they are added to the list
# of directories passsed to updateme
for s in ${sccs}; do
sdir=`dirname ${s}`
echo ${patch_dirs} | grep -q ${sdir}
if [ $? -ne 0 ]; then
patch_dirs="${patch_dirs} ${sdir}"
fi
done
# go through the patch directories and look for any scc feature files
# that were constructed above. If one is found, rename it to ".scc" so
# the kernel patching can see it.
for pdir in ${patch_dirs}; do
scc=`find ${pdir} -maxdepth 1 -name '*.scc_tmp'`
if [ -n "${scc}" ]; then
new_scc=`echo ${scc} | sed 's/_tmp//'`
mv -f ${scc} ${new_scc}
fi
done
patch_dirs="${patch_dirs} ${WORKDIR}"
# add any explicitly referenced features onto the end of the feature
# list that is passed to the kernel build scripts.
if [ -n "${KERNEL_FEATURES}" ]; then
@@ -146,9 +85,10 @@ do_patch() {
addon_features="$addon_features --feature $feat"
done
fi
# updates or generates the target description
updateme --branch ${kbranch} -DKDESC=${KMACHINE}:${LINUX_KERNEL_TYPE} \
${addon_features} ${ARCH} ${KMACHINE} ${patch_dirs}
${addon_features} ${ARCH} ${KMACHINE} ${sccs} ${patches}
if [ $? -ne 0 ]; then
echo "ERROR. Could not update ${kbranch}"
exit 1
@@ -274,63 +214,108 @@ python do_kernel_configcheck() {
bb.plain( "%s" % result )
}
# Ensure that the branches (BSP and meta) are on the locatios specified by
# Ensure that the branches (BSP and meta) are on the locations specified by
# their SRCREV values. If they are NOT on the right commits, the branches
# are reset to the correct commit.
# are corrected to the proper commit.
do_validate_branches() {
cd ${S}
export KMETA=${KMETA}
# nothing to do if bootstrapping
if [ -n "${YOCTO_KERNEL_EXTERNAL_BRANCH}" ]; then
return
fi
# nothing to do if SRCREV is AUTOREV
set +e
# if SRCREV is AUTOREV it shows up as AUTOINC there's nothing to
# check and we can exit early
if [ "${SRCREV_machine}" = "AUTOINC" ]; then
# restore the branch for builds
git checkout -f ${KBRANCH}
return
fi
branch_head=`git show-ref -s --heads ${KBRANCH}`
meta_head=`git show-ref -s --heads ${KMETA}`
target_branch_head="${SRCREV_machine}"
target_meta_head="${SRCREV_meta}"
# If something other than the default branch was requested, it must
# exist in the tree, and it's a hard error if it wasn't
git show-ref --quiet --verify -- "refs/heads/${KBRANCH}"
if [ $? -eq 1 ]; then
if [ -n "${KBRANCH_DEFAULT}" ] &&
[ "${KBRANCH}" != "${KBRANCH_DEFAULT}" ]; then
echo "ERROR: branch ${KBRANCH} was set for kernel compilation, "
echo " but it does not exist in the kernel repository."
echo " Check the value of KBRANCH and ensure that it describes"
echo " a valid banch in the source kernel repository"
exit 1
fi
fi
current=`git branch |grep \*|sed 's/^\* //'`
if [ -n "$target_branch_head" ] && [ "$branch_head" != "$target_branch_head" ]; then
if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
echo "ERROR ${target_branch_head} is not a valid commit ID."
echo "The kernel source tree may be out of sync"
exit 1
if [ -z "${SRCREV_machine}" ]; then
target_branch_head="${SRCREV}"
else
target_branch_head="${SRCREV_machine}"
fi
# $SRCREV could have also been AUTOINC, so check again
if [ "${target_branch_head}" = "AUTOINC" ]; then
return
fi
containing_branches=`git branch --contains $target_branch_head | sed 's/^..//'`
if [ -z "$containing_branches" ]; then
echo "ERROR: SRCREV was set to \"$target_branch_head\", but no branches"
echo " contain this commit"
exit 1
fi
ref=`git show ${target_branch_head} 2>&1 | head -n1 || true`
if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
echo "ERROR ${target_branch_head} is not a valid commit ID."
echo "The kernel source tree may be out of sync"
exit 1
fi
# force the SRCREV in each branch that contains the specified
# SRCREV (if it isn't the current HEAD of that branch)
git checkout -q master
for b in $containing_branches; do
branch_head=`git show-ref -s --heads ${b}`
if [ "$branch_head" != "$target_branch_head" ]; then
echo "[INFO] Setting branch $b to ${target_branch_head}"
if [ "$b" == "master" ]; then
git reset --hard $target_branch_head > /dev/null
else
echo "Forcing branch $current to ${target_branch_head}"
git branch -m $current $current-orig
git checkout -b $current ${target_branch_head}
git branch -D $b > /dev/null
git branch $b $target_branch_head > /dev/null
fi
fi
done
## KMETA branch validation
meta_head=`git show-ref -s --heads ${KMETA}`
target_meta_head="${SRCREV_meta}"
git show-ref --quiet --verify -- "refs/heads/${KMETA}"
if [ $? -eq 1 ]; then
return
fi
if [ "${target_meta_head}" = "AUTOINC" ]; then
return
fi
if [ "$meta_head" != "$target_meta_head" ]; then
ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
echo "ERROR ${target_meta_head} is not a valid commit ID"
echo "The kernel source tree may be out of sync"
exit 1
else
echo "[INFO] Setting branch ${KMETA} to ${target_meta_head}"
git branch -m ${KMETA} ${KMETA}-orig
git checkout -q -b ${KMETA} ${target_meta_head}
if [ $? -ne 0 ];then
echo "ERROR: could not checkout ${KMETA} branch from known hash ${target_meta_head}"
exit 1
fi
fi
fi
if [ "$meta_head" != "$target_meta_head" ]; then
if [ -n "${KERNEL_REVISION_CHECKING}" ]; then
ref=`git show ${target_meta_head} 2>&1 | head -n1 || true`
if [ "$ref" = "fatal: bad object ${target_meta_head}" ]; then
echo "ERROR ${target_meta_head} is not a valid commit ID"
echo "The kernel source tree may be out of sync"
exit 1
else
echo "Forcing branch meta to ${target_meta_head}"
git branch -m ${KMETA} ${KMETA}-orig
git checkout -b ${KMETA} ${target_meta_head}
fi
fi
git show-ref --quiet --verify -- "refs/heads/${KBRANCH}"
if [ $? -eq 0 ]; then
# restore the branch for builds
git checkout -q -f ${KBRANCH}
fi
# restore the branch for builds
git checkout -f ${KBRANCH}
}
# Many scripts want to look in arch/$arch/boot for the bootable

View File

@@ -77,6 +77,10 @@ EXTRA_OEMAKE = ""
KERNEL_ALT_IMAGETYPE ??= ""
# Define where the kernel headers are installed on the target as well as where
# they are staged.
KERNEL_SRC_PATH = "/usr/src/kernel"
KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.getVar('KERNEL_IMAGETYPE', True))}"
kernel_do_compile() {
@@ -130,7 +134,7 @@ kernel_do_install() {
# Support for external module building - create a minimal copy of the
# kernel source tree.
#
kerneldir=${D}/kernel
kerneldir=${D}${KERNEL_SRC_PATH}
install -d $kerneldir
#
@@ -173,7 +177,7 @@ kernel_do_install() {
#
oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean
make -C $kerneldir _mrproper_scripts
find $kerneldir -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \;
find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \;
find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \;
# As of Linux kernel version 3.0.1, the clean target removes
@@ -183,23 +187,23 @@ kernel_do_install() {
cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
fi
# Necessary for building modules like compat-wireless.
if [ -f include/generated/bounds.h ]; then
cp include/generated/bounds.h $kerneldir/include/generated/bounds.h
fi
# Remove the following binaries which cause strip errors
# during do_package for cross-compiled platforms
bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
arch/powerpc/boot/mktree"
arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
scripts/kconfig/conf.o scripts/kconfig/kxgettext.o"
for entry in $bin_files; do
rm -f $kerneldir/$entry
done
}
PACKAGE_PREPROCESS_FUNCS += "kernel_package_preprocess"
kernel_package_preprocess () {
rm -rf ${PKGD}/kernel
}
sysroot_stage_all_append() {
sysroot_stage_dir ${D}/kernel ${SYSROOT_DESTDIR}/kernel
sysroot_stage_dir ${D}${KERNEL_SRC_PATH} ${SYSROOT_DESTDIR}${KERNEL_SRC_PATH}
}
kernel_do_configure() {
@@ -247,19 +251,18 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
# kernel-base becomes kernel-${KERNEL_VERSION}
# kernel-image becomes kernel-image-${KERNEL_VERISON}
PACKAGES = "kernel kernel-base kernel-image kernel-dev kernel-vmlinux kernel-misc"
PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev"
FILES = ""
FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*"
FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
FILES_kernel-vmlinux = "/boot/vmlinux*"
# misc is a package to contain files we need in staging
FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
RDEPENDS_kernel = "kernel-base"
# Allow machines to override this dependency if kernel image files are
# not wanted in images as standard
RDEPENDS_kernel-base ?= "kernel-image"
PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}"
RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
ALLOW_EMPTY_kernel = "1"
ALLOW_EMPTY_kernel-base = "1"
ALLOW_EMPTY_kernel-image = "1"
@@ -271,15 +274,13 @@ fi
if [ -n "$D" ]; then
${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
else
depmod -a
depmod -a ${KERNEL_VERSION}
fi
}
pkg_postinst_modules () {
if [ -n "$D" ]; then
${HOST_PREFIX}depmod -A -b $D -F ${STAGING_KERNEL_DIR}/System.map-${KERNEL_VERSION} ${KERNEL_VERSION}
else
depmod -a
if [ -z "$D" ]; then
depmod -a ${KERNEL_VERSION}
update-modules || true
fi
}
@@ -464,7 +465,7 @@ python populate_packages_prepend () {
# avoid warnings. removedirs only raises an OSError if an empty
# directory cannot be removed.
dvar = d.getVar('PKGD', True)
for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar)]:
for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]:
if len(os.listdir(dir)) == 0:
os.rmdir(dir)
@@ -472,7 +473,7 @@ python populate_packages_prepend () {
metapkg = "kernel-modules"
d.setVar('ALLOW_EMPTY_' + metapkg, "1")
d.setVar('FILES_' + metapkg, "")
blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'perf', 'perf-dbg', 'kernel-misc' ]
blacklist = [ 'kernel-dev', 'kernel-image', 'kernel-base', 'kernel-vmlinux', 'perf', 'perf-dbg' ]
for l in module_deps.values():
for i in l:
pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1))
@@ -545,4 +546,5 @@ EXPORT_FUNCTIONS do_deploy
PACKAGES =+ "perf-dbg perf"
FILES_perf = "${bindir}/* \
${libexecdir}"
FILES_perf-dbg = "${FILES_${PN}-dbg}"
FILES_perf-dbg = "${FILES_${PN}-dbg} \
${KERNEL_SRC_PATH}/tools/perf/.debug"

View File

@@ -35,6 +35,14 @@ python __anonymous () {
d.setVar("DEPENDS", depends)
d.setVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", "compile")
break
distro_features = (d.getVar('DISTRO_FEATURES', True) or '').split()
# try to fix disable charsets/locales/locale-code compile fail
if 'libc-charsets' in distro_features and 'libc-locales' in distro_features and 'libc-locale-code' in distro_features:
d.setVar('PACKAGE_NO_GCONV', '0')
else:
d.setVar('PACKAGE_NO_GCONV', '1')
}
OVERRIDES_append = ":${TARGET_ARCH}-${TARGET_OS}"
@@ -249,7 +257,7 @@ python package_do_split_gconvs () {
else:
libc_name = name
d.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('%s-binary-localedata-%s' \
% (bpn, libc_name)))
% (d.getVar('MLPREFIX') + bpn, libc_name)))
commands = {}
@@ -271,6 +279,7 @@ python package_do_split_gconvs () {
"mips": " --uint32-align=4 --big-endian ", \
"mipsel": " --uint32-align=4 --little-endian ", \
"i586": " --uint32-align=4 --little-endian ", \
"i686": " --uint32-align=4 --little-endian ", \
"x86_64": " --uint32-align=4 --little-endian " }
if target_arch in locale_arch_options:

View File

@@ -79,6 +79,10 @@ license_create_manifest() {
# Get list of installed packages
list_installed_packages | grep -v "locale" |sort > ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest
INSTALLED_PKGS=`cat ${LICENSE_DIRECTORY}/${IMAGE_NAME}/package.manifest`
# remove existing license.manifest file
if [ -f ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest ]; then
rm ${LICENSE_DIRECTORY}/${IMAGE_NAME}/license.manifest
fi
# list of installed packages is broken for deb
for pkg in ${INSTALLED_PKGS}; do
# not the best way to do this but licenses are not arch dependant iirc
@@ -211,9 +215,10 @@ python do_populate_lic() {
if spdx_generic and license_source:
# we really should copy to generic_ + spdx_generic, however, that ends up messing the manifest
# audit up. This should be fixed in emit_pkgdata (or, we actually got and fix all the recipes)
ret = bb.copyfile(os.path.join(license_source, spdx_generic), os.path.join(os.path.join(d.getVar('LICSSTATEDIR', True), pn), "generic_" + license_type))
bb.copyfile(os.path.join(license_source, spdx_generic), os.path.join(os.path.join(d.getVar('LICSSTATEDIR', True), pn), "generic_" + license_type))
if not os.path.isfile(os.path.join(os.path.join(d.getVar('LICSSTATEDIR', True), pn), "generic_" + license_type)):
# If the copy didn't occur, something horrible went wrong and we fail out
if not ret:
bb.warn("%s for %s could not be copied for some reason. It may not exist. WARN for now." % (spdx_generic, pn))
else:
# And here is where we warn people that their licenses are lousy
@@ -377,7 +382,7 @@ do_populate_lic[sstate-name] = "populate-lic"
do_populate_lic[sstate-inputdirs] = "${LICSSTATEDIR}"
do_populate_lic[sstate-outputdirs] = "${LICENSE_DIRECTORY}/"
ROOTFS_POSTINSTALL_COMMAND += "license_create_manifest; "
ROOTFS_POSTPROCESS_COMMAND_prepend = "license_create_manifest; "
python do_populate_lic_setscene () {
sstate_setscene(d)

View File

@@ -1,5 +1,5 @@
MIRRORS += "\
${DEBIAN_MIRROR}/main http://snapshot.debian.net/archive/pool \n \
${DEBIAN_MIRROR}/main http://snapshot.debian.org/archive/debian-archive/20120328T092752Z/debian/pool/ \n \
${DEBIAN_MIRROR} ftp://ftp.de.debian.org/debian/pool \n \
${DEBIAN_MIRROR} ftp://ftp.au.debian.org/debian/pool \n \
${DEBIAN_MIRROR} ftp://ftp.cl.debian.org/debian/pool \n \
@@ -25,7 +25,6 @@ ftp://ftp.gnupg.org/gcrypt/ http://gulus.USherbrooke.ca/pub/appl/GnuPG/ \n \
ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN \n \
ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/ \n \
ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/ \n \
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnutls.org/pub/gnutls/ \n \
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnupg.org/gcrypt/gnutls/ \n \
ftp://ftp.gnutls.org/pub/gnutls http://www.mirrors.wiretapped.net/security/network-security/gnutls/ \n \
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/ \n \

View File

@@ -37,15 +37,14 @@ module_do_install() {
}
pkg_postinst_append () {
if [ -n "$D" ]; then
exit 1
fi
if [ -z "$D" ]; then
depmod -a
update-modules || true
fi
}
pkg_postrm_append () {
update-modules || true
update-modules || true
}
EXPORT_FUNCTIONS do_compile do_install

Some files were not shown because too many files have changed in this diff Show More