Compare commits

..

243 Commits

Author SHA1 Message Date
Richard Purdie
853bc53cd5 qemu: Fix broken patch
(From OE-Core rev: 9934141d5df9d334f7f7f76e1990234af8a25a63)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 21:56:28 +01:00
Bruce Ashfield
4ed858bc76 linux-yocto/3.10: fix long perf compile times
perf's builtin-sched.c triggers extremly long build times on some
architectures due to gcc 4.7+ var-tracking functionality.

To fix this, we can cherry pick the 3.12 commit:

  f36f83f94 [perf sched: Move struct perf_sched definition out of cmd_sched()]

With this change build times are reduced from 15 to 20 minutes for qemuarm to:

  real    2m19.940s
  user    1m35.438s
  sys     0m11.165s

For kernel's that are not carrying this patch, the following can be added
to the perf recipe to also fix the issue:

    +++ b/meta/recipes-kernel/perf/perf.bb
    @@ -68,6 +68,7 @@ EXTRA_OEMAKE = \
		    CC="${CC}" \
		    AR="${AR}" \
		    perfexecdir=${libexecdir} \
    +               EXTRA_CFLAGS="-fno-var-tracking" \
		    NO_GTK2=1 ${TUI_DEFINES} NO_DWARF=1 ${SCRIPTING_DEFINES} \

(From OE-Core rev: 82ad5305381c2f541ef051a8fc28243cd91776fe)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 19:49:41 +01:00
Bruce Ashfield
2ad268ff8e linux-yocto/3.10: mips configuration changes
Updating the 3.10 SRCREV to import the following MIPS configuration changes

   4f689aa meta: remove ftrace/ftrace-disable feature
   3058d81 mips: have the mips BSPs disable function tracing instead of ftrace
   935f43f meta: add ftrace/ftrace-function-tracer-disable feature
   0d72a03 mti-malta64: Default to support o32 and n32 userspace binaries

The first three changes improve the ftrace disabling fragments, to allow tracepoints
and ftrace to be enabled, while only disabling dynamic ftrace. This allows tools
that required tracepoints (like lttng) to be built against MIPS.

The mti-malta64 change adds n32 and o32 support to the default configuration to
support a broader range of userspace binaries.

[YOCTO #5215]

(From OE-Core rev: b2cadab5c7a5d3f772c34c04b759823ed6a122bf)

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>
2013-09-18 19:49:41 +01:00
Bruce Ashfield
6942108fdb linux-yocto/3.8: add haswell-wc board config and branch
Bumping the meta branch SRCREV to import the following board support:

  meta: add haswell-wc bsp for Intel Haswell Platform (Walnut Canyon CRB) scc and config files

Signed-off-by Ong Boon Leong <boon.leong.ong@intel.com>
(From OE-Core rev: fcca6317543e8be0bd2da1f45ac99448c24b4e48)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 19:49:41 +01:00
Otavio Salvador
99b4173245 perf: Add LDFLAGS to allow build of old kernels without patching
The LDFLAGS is required or some old kernels fails due missing
symbols and this is preferred than requiring patches to every old
supported kernel.

Fixes [YOCTO: #5221]

(From OE-Core rev: 0eccbf2016e89e6f1c3796f138b02a508d2edbcf)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 17:54:42 +01:00
Ross Burton
4a224d31c8 qemurunner: disable grabs in automated testing
Use the new QEMU_DONT_GRAB environment variable to disable grabs,
finally/hopefully solving the random hangs that the autobuilder has been hitting
for a while.

[ YOCTO #5131 ]

(From OE-Core rev: 32f9575a565f350649264c11eceba8311584b0fd)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 17:52:04 +01:00
Ross Burton
dd2b2f93a9 qemu: add option to disable X grabs
When the mouse pointer enters the qemu window it takes a pointer grab. This
doesn't sound too dangerous at first but it turns out that SDL will infinitely
busy-loop if it can't get the grab (e.g. if the screen is locked) and the
average autobuilder setup's X server will have locked the screen a few minutes
after boot.

The result is that on many autobuilders apparently random qemu instances (the
top-most one under the pointer) will hang during boot.

To resolve this add an option (via an environment variable) to never attempt a
grab.  The default behaviour remains to grab so that everyone else doesn't see
any change.

(From OE-Core rev: a60b1ebbb8f81245f3ccf25b3f9d63677de75b85)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 17:52:04 +01:00
Otavio Salvador
63cd03b80c u-boot-fw-utils: Skip package if UBOOT_MACHINE is unset
The UBOOT_MACHINE variable needs to be set so the firmware utils can
know about some configuration settings which are board dependent. This
patch ensures the package is skipped in case UBOOT_MACHINE is unset
thus avoid its build in 'bitbake world' builds for incompatible
machines.

Fixes [YOCTO: #5223]

(From OE-Core rev: d9abcc0a2a691ca60cc1cb2f48f1748b0de73ac8)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 14:18:08 +01:00
Richard Purdie
f1ff3c2fdc bitbake: data_smart: Fix variable reference issues
The change to use the expansion cache in VariableParse was incorrect as
it was adding in references it shouldn't have been. This patch corrects
the codepaths and ensures the references are correct.

The cache version is bumped since the previous bug could have leave
to invalid checksum calculations and a clean cache is therefore desireable.

The impact of the bug was that sstate was not getting reused when it should
and some tasks were also being rerun when they should not have been.

(Bitbake rev: 8a42d082315bd6ce091d006bf83476db257fa48b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 13:27:30 +01:00
Richard Purdie
eaf06bc284 bitbake: cooker: return a copy checkPackages
The syntax used for checkPackages implies a copy is returned but it
did not do so. Make it so.

This is fixes universe builds where error messaages were being shown
but there should have only been warnings.

[YOCTO #5222]

(Bitbake rev: 97db2a0792d605f27d434bc6a4acce52857deee1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-18 08:41:55 +01:00
Scott Rifenbark
825cfeb2e6 bitbake: usermanual.xml: Two new sections added to BitBake "Description"
1. Added a new section "Appending and Prepending (override style
   syntax)".  This section shows how the append and prepend operators
   work using the override style syntax.

2. Added a new section "Removing (override style syntax)".  This
   section describes the new "_remove" operator.

(Bitbake rev: 6983afab0ce8d82d102142636d5a570f7d86a844)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 22:27:56 +01:00
Otavio Salvador
e624d737b7 perf: Ensure we use CFLAGS and LDFLAGS settings from kernel build system
The kernel build system does the right thing here and we should stop
overriding it. This code has been added based on a change from
'meta-metro' layer, revision 9d698004137c1a888d40d6a4808d94afa22387e7,
without any information about what problem it fixes so I am reverting
it.

Using the CFLAGS and LDFLAGS makes it impossible for kernel build
system to append to it, thus making the build fail in various ways as:

|     CC /.../perf/1.0-r8/perf-1.0/perf.o
| In file included from builtin.h:4:0,
|                  from perf.c:9:
| util/util.h:74:24: fatal error: lk/debugfs.h: No such file or directory
|  #include <lk/debugfs.h>
|                         ^
| compilation terminated.

The unset is done in do_compile and do_install otherwise it /rebuild/
perf as it detects the compiler options has change.

(From OE-Core rev: 2e90f8846db0f3ed99a175befff9ec67fe12bc4e)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 20:53:56 +01:00
Paul Eggleton
1db33e3c4d cmake-native: fix dependencies
When building cmake for native, we don't use the system libraries and
thus cmake builds its own internal version of libarchive; this requires
zlib, bzip2, and e2fsprogs. We can add to DEPENDS for the two former
libraries and patch out the latter.

(From OE-Core rev: fe6ca47a256b775e1aa5750b9dd31e27230cf781)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 20:53:20 +01:00
Ross Burton
442be3ef60 mesa: add virtual/mesa provider
As there are two alternative mesa recipes (mesa and mesa-gl), there needs to be
a virtual provider that recipes that explicitly need Mesa (such as xserver-xorg)
can depend on.

(From OE-Core rev: 4a407568472d3c87cd2ce11baf199568249640b6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 20:48:09 +01:00
Hans Beckerus
ac191eb964 libtool: fix resolve of lt_sysroot
This patch updates libtool.m4 (and its output) to resolve a problem
with variable 'lt_sysroot' not being properly updated if the option
'--with[-libtool]-sysroot' is not provided when running the 'configure'
script for a package.

According to the help text ouput from 'configure':
--with-libtool-sysroot=DIR Search for dependent libraries within DIR
                        (or the compiler's sysrooot if not specified).

Due to mixed up cases in a switch statement, when checking if the option
was specified or not, wrong actions were taken resulting in an incorrect
sysroot and failures to properly locate e.g. .la files when using the
populated SDK toolchain.

For current upstream status see:
http://lists.gnu.org/archive/html/bug-libtool/2013-09/msg00005.html

(From OE-Core rev: f5cf7e1a5c85fb320faa9cbeef24f491706b4c1d)

Signed-off-by: Hans Beckerus <hans.beckerus at gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:56 +01:00
Ross Burton
da470776f9 avahi: fix and enable out-of-tree builds
(From OE-Core rev: 6112a07f4e9865f7ae0e5a953669c1adf789f9f0)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:56 +01:00
Robert Yang
37cb3e3aa4 python-smartpm: truncate the filename to meet NAME_MAX
There is a "File name too long" error when len(TMPDIR) = 410, this is
because the function getLocalPath() converts the filepath into the
filename, so there would be the error when len(filename)
> NAME_MAX, truncate the filename to meet NAME_MAX will fix the problem.

[YOCTO #5201]

(From OE-Core rev: 9f0427edee6bf62d3fe7cdceb07f59a5776c8c4f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:56 +01:00
Anders Darander
9a4169a465 u-boot-fw-utils: reinstate target recipe for fw_printenv
The latest upgrade changed u-boot-fw-utils to u-boot-fw-utils-cross, which
removed the on-target fw_printenv (and fw_setenv).

Re-create the updated version of the u-boot-fw-utils recipe.

U-Boot does try to strip the fw_printenv binary by default now. To avoid
this, without patching the Makefile, we add HOSTSTRIP=true to EXTRA_OEMAKE.

The new U-Boot do also require us to configure the build for a specific
machine, thus we change the package arch.§

(From OE-Core rev: 83cb07047658e2e2b2d721e1b01553d4df3d8636)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:56 +01:00
Saul Wold
14fee32867 oeqa/runtime/smart: Increase timeout to 1500 test
(From OE-Core rev: a99edb5552839fd50326dd3aa4ee2f36f6026882)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Ross Burton
eae5f4bdac weston: change mesa dependency to virtual/mesa
(From OE-Core rev: 65667415ecc8abdf1f15a48c5520ed78140afb60)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Ross Burton
ab9e266ab9 xserver-xorg: change mesa dependency to virtual/mesa
(From OE-Core rev: 57197949a980e8578cb5d758feb0e595e1f721e4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Ross Burton
015cb13a67 mesa-gl: add GL-only Mesa recipe
Some machines have hardware-specific GL drivers that do EGL and GLES (many ARM
boards).  Others have their own EGL/GLES drivers and provide a Mesa DRI driver
(EMGD).  Previously adding Mesa, for software GL/GLX rendering in the first case
and hardware GLX in the second, involved bbappends and changing Mesa to be
machine-specific.

By adding a just-GL Mesa the machine definition can combine it with the hardware
drivers cleanly.

(From OE-Core rev: f5a3a4bc33109181c741a2e66c13d0b45566e8fa)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Robert Yang
7303b67d33 linux-libc-headers: do_install: fix "Argument list too long" error
There would be an "Argument list too long" error when the TMPDIR is in a
deep dir, for example, when "len(readlink -f TMPDIR) >= 350 (our
supported value is 410)". Use "$(foreach ,,$(shell echo))" to fix it.

There was already a patch which tried to fix this issue, so squash the
current change into the previous one as Bruce suggested.

[YOCTO #5138]

(From OE-Core rev: 4e10c45d7c61ac1ccf8b53ef525ca03d3d458bba)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Hongxu Jia
8dd7ab3a78 util-linux: move su to /bin for lsb command check test
In busybox, util-linux and shadow, su has been moved to /usr/bin/,
but lsb cmdchk needs su in /bin.

Move su to /bin could fix this issue.

[YOCTO#5175]

(From OE-Core rev: ba84662bd9fb7575e68c87449e986535a2216b30)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Hongxu Jia
a71761e6e6 shadow: move su to /bin for lsb command check test
In busybox, util-linux and shadow, su has been moved to /usr/bin/,
but lsb cmdchk needs su in /bin.

Move su to /bin could fix this issue.

[YOCTO#5175]

(From OE-Core rev: 464d274e45bb94d9990577d85aa5ad02eb5da99c)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:55 +01:00
Hongxu Jia
44c65db250 busybox: move su to /bin for lsb command check test
In busybox, util-linux and shadow, su has been moved to /usr/bin/,
but lsb cmdchk needs su in /bin.

Move su to /bin could fix this issue.

[YOCTO#5175]

(From OE-Core rev: daff19fe6f0490dc7036602e8b0ca40a23b55556)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:34:54 +01:00
Richard Purdie
bb939628ec bitbake: Revert "bb.fatal: Raise a BBHandledException instead of exiting"
Sanity test failures are no longer fatal with this change so whilst
its the right idea, the code paths need more work.

This reverts commit a50017ba71250e1710a6425b60ac7e3f03d88295.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 19:16:10 +01:00
Ming Liu
3091150590 openssh: use volatiles for managing /var/run/sshd
It fixes the following failure:
"fatal: Missing privilege separation directory: /var/run/sshd"

when sshd is started through xinetd.

(From OE-Core rev: a343c32891aa46a7f7d5f0cc6d1266a387900dad)

Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:19 +01:00
Ross Burton
242ad61580 Revert "initrdscripts: look for new systemd-udevd location"
systemd-udevd is back in /lib, so revert this change.

This reverts commit 27bb516be4.

(From OE-Core rev: 3f6324a86cb8c1c253af06a1033ac71fa61c58d3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:19 +01:00
Ross Burton
5eae2d57b4 imake: remove
Remove both imake and the associated xorg-cf-files, as nothing has used imake to
build for a long time.

(From OE-Core rev: aa6d9296e7c7e5b96d868d9c17d639b4f33ca18e)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:19 +01:00
Ross Burton
9470f687d9 transfig-native: remove, nothing depends on it
(From OE-Core rev: 3ba57642ceca73c601e4297e1b2abd8a4ccd671b)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Chen Qi
bf413add98 rpm: fix typo in PACKAGECONFIG
Fix typo, change PACAKGECONFIG to PACKAGECONFIG.

(From OE-Core rev: 77363d06121ceec264e06165ddda7b829c963301)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Hongxu Jia
e3cacf17e8 python: fix failures of LSB python-runtime tests
It has been fixed in:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e261c1760d8a660c13cd00039a4812d51f47f3df

But there is a typo in:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=78ac027f2ac6c6663fff7080eabbd3d09c1241bb
It missed to remove an extra "--with-wctype-functions" in EXTRA_OECONF

[YOCTO #5154]

(From OE-Core rev: 4672b10ff9b6fcbfc446cabc4323387be21053cb)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Li Zhijian
7d6094489c kbd: Allow resizecons on x86_64
(From OE-Core rev: cec49d5083f749d9886207e88648ddd4c12fbc87)

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Li Zhijian
0af5853de2 kbd: Fix coding sytle
(From OE-Core rev: 2ababaf74255e7ad43cc951f2f2bc569ef955837)

Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Hongxu Jia
63ae37f924 LSB 4.1 Library Check: fix unable to find library libqt-mt.so.3
The libqt-mt is tested by lsb-dist-checker and lsb-test-desktop,
and it locates in meta-qt3 layer.
So if meta-qt3 is not added, there should be a warning to call
attention; if added, it will add libqt-mt to RDEPENDS.

[YOCTO #5153]

(From OE-Core rev: f646f96015b408f4c6d56998f08178a69ed9f2a6)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Jason Wessel
85a5a2c3b2 cdrtools-native: Update from 3.00 to 3.01a17
The update is needed to support generation of EFI boot images that
work with optical media.  Specifically the "-eltorito-platform efi"
capability for mkisofs is needed.

[YOCTO #4100]

(From OE-Core rev: aaa85b0706197423786dfeae386dbb402ee15684)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:18 +01:00
Jason Wessel
c78c1f9c92 bootimage.bbclass: Move fat image creation into a function
In order to call the fat image creation multiple times it needs to be
in its own function.  A future commit will make use of the new
function to additionally create EFI image files for use with an ISO.

[YOCTO #4100]
[YOCTO #1913]

(From OE-Core rev: 6d5181dc68766f42416a41f4988e8400d37fd7fa)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Robert Yang
238e9b54e2 coreutils: set acpaths to avoid "Argument list too long" error
There would be an error when the TMPDIR is long/deep, for example when
len(TMPDIR) = 350 while our supported longest value is 410:

[snip]
aclocal: error: cannot open xxx
autoreconf: aclocal failed with exit status: 1
ERROR: autoreconf execution failed.
[snip]

Let aclocal use the relative path for the m4 file rather than the
absolute would fix the problem.

Another fix is that we can modify autotools.bbclass to let it use the
relative path rather than the absolute, but I don't think that we have
to do that based on the following 2 thoughts:

* The coreutils is the only recipe which has this issue as far as we
  know when len(TMPDIR) <= 410, because it has the most amount of m4
  files (more than 400 ones).

* That would impact all the recipes which use autotools.bbclass, and we
  are not sure about the side effect, for example, it would break the
  build there is a sub-configure.

[YOCTO #2766]

(From OE-Core rev: 22ac874512c2c1213aae8e1644bd59050b37a63c)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Randy MacLeod
2ac9925ceb vala: add bison-native depends for vala-native
vala-native builds were working because most systems have
bison installed on the host. Add an explicit dependency on
bison-native since bison isn't a sanity checked host tool.

(From OE-Core rev: 4bcc087290661544dd5f6466d2d6ab74488f34ec)

Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Nitin A Kamble
b925c752c0 udev: avoid autosuspend of USB input devices
Some of the external USB devices has internal USB hub, which
make them look like "fixed" rather than "removable". And USB
autosuspend does not work with some of these devices resulting
in inoperable pointing device.

Now the code detect these false "fixed" devices by looking at their
parents.  If any of their parent is "removable", then USB autosuspend
is not enabled for that device, which keeps the pointing device
functional.

Fixes bug:
[YOCTO #5166]

(From OE-Core rev: d74a0ecdbc85a482cab6e7eae8dcb48185d44d84)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Richard Purdie
9592f311b0 linux-libc-headers: Fix comment typo spotted by Mark Hatle
(From OE-Core rev: 27e7162840482c7790480be5f52c7651d5b71794)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Ross Burton
1b7f829de7 webkit-gtk: remove compile-three-times hack
Remove the hack to handle Make 3.82 which ran make three times, as we sanity
check Make and refuse to build with the broken release.

(From OE-Core rev: dccd55eaeaee123238372c02c34d476d68816232)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Jukka Rissanen
42ef04b364 connman: Try to figure out NFS root interface if using DHCP
The commit c734873022 missed the case
where the NFS is using DHCP.

[YOCTO #5176]

(From OE-Core rev: 29be8e79a200d33555d2887578975e33b8417795)

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Ross Burton
06078af4ca libxml2: remove patch for CVE-2012-2871
This CVE patch is actually against Chromium as they ship an internal fork of
libxml2 and breaks ABI.  The real issue has been resolved in libxslt 1.1.27, and
we're shipping 1.1.28.

(From OE-Core rev: e6c60252ab4ba6842f63c6b8a519a85f2ff238fb)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:17 +01:00
Richard Purdie
1bf8d83d5a utils: Update bb.which reference and other syntax cleanup
* bb.which -> bb.utiis.which()
* Use modern form of datastore access
* Use True, not 1
* Drop pointless imports

(From OE-Core rev: 106a4f5b41e5bdeabe588b9ba362f3693b1a9989)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:16 +01:00
Richard Purdie
641a80d760 autotools: Remove .la files if rebuilding non out of tree software
(From OE-Core rev: bcf83bb604906361db98003127b90c422e822322)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:35:16 +01:00
Elizabeth Flanagan
912e8d5672 meta-yocto/layer.conf: Bump LAYERVERSION_yocto
Commit 5992830145 fixes the autobuilder needing to rename
qemux86-64 to qemux86_64 however in order to maintain autobuilder
compatibility with prior releases we need to bump LAYERVERSION.

(From meta-yocto rev: f08147b082017ff3f6eb812afb9c1e3704214de4)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:05 +01:00
Richard Purdie
d96c512db1 bitbake: bb.fatal: Raise a BBHandledException instead of exiting
With new bitbake UIs having the cooker exit at 'random' points
in the codebase is problematic. This patch raises an exception
which matches the siutation instead.

(Bitbake rev: a50017ba71250e1710a6425b60ac7e3f03d88295)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:05 +01:00
Richard Purdie
d15652d78c bitbake: data: Optimise flag exclusion list handling
Move the variable lookup to the outer loop for performance, replacing
a now unneeded parameter (after the previous changes).

(Bitbake rev: 8a59a8707cecbde257fca169775ce8ff7709928b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:05 +01:00
Richard Purdie
9a32eca022 bitbake: data: Optimise flag lookup in build_dependencies
When looking up flag variable dependencies, large chunks of the function
aren't needed. Optimise the function flow accordingly for speed.

(Bitbake rev: 1bf3aee698ad35f6815ea2c75471a96511a29d55)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:05 +01:00
Richard Purdie
d7e7b991ce bitbake: data: Optimise build_dependencies a little
Instead of multiple calls to getVarFlag, make one call to getVarFlags, only expanding
the flags that need to be expanded. This improves performance.

(Bitbake rev: eba1e9545cc933820d40de96f023b2307b3c4d0b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
d6ac67f9af bitbake: data_smart: Cache the fact a variable accesses another even if its unset
If a variable references another but it isn't set at present, the
reference wasn't stored. It really should be marked as a reference
and the higher level dependency code can handle as appropriate.

(Bitbake rev: b05b748b2153c941b95cd36fb22aaafc4dbf3791)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
385bd4410d bitbake: data_smart: Allow flags to use the expand cache
(Bitbake rev: a0122ab80df21597291ff32ff7fbaa4de0347a6f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
a61519f3fb bitbake: data_smart: Allow expansion of flags in getVarFlags
Allow a list of flags to expand to be passed into getVarFlags. This
is useful within bitbake itself to optimise performance of the
dependency generation code.

(Bitbake rev: a3ae7efdf750fc5bb9ff5a75defbcfdab1912dbe)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Alexandru DAMIAN
0902850e97 bitbake: data_smart: Add explict None checks
Simple if xxx checks end up calling len(xxx). We're interested in the specific case
of None which means we can break out the iterator much earlier after the first
item. This adds in the specific tests for None in what is a hot path in the
data store code which gives small performance gains.

(Bitbake rev: a4d81e44a7cd3dafb0bf12f7cac5ff511db18e60)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
66c9c01b2b bitbake: data: Cache an list of export variables
Compute a cache of the list of potential export variables so
that we don't have to compute the list from scratch.

(Bitbake rev: f41f46f7eaa6889edeb3a4e4ddedc07084686c60)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
36b4fcde7a bitbake: data: Use direct iteration, not keys()
Profiling shows the creation of keys() has overhead and we're better using
an iterator rather than the memory associated with the huge list of keys
when iterating the whoe datastore. We minimise the number of times
we do this to twice only per recipe.

(Bitbake rev: e63448d9ee331b0f45fb9a0197d0dbee49eb2fa0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:04 +01:00
Richard Purdie
f78db82e1a bitbake: data_smart: use the expand_cache in VariableParse
When in VariableParse, use the expand_cache if possible rather than looking
up data. Ultimately it would come from the same place but this short cuts
a heavily used code block for speed improvements.

(Bitbake rev: f682b8b83d21d576160bac8dc57c4c989b4dc555)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Richard Purdie
43f1867e32 bitbake: data_smart: Improve variable expansion regexp
Debugging showed the variable expansion regexp was catching python
expressions (starting with @). Since these are caught by their own
dedicated regexp, stop matching these for the plain variable expansion
for small performance improvements.

(Bitbake rev: c630d564285f55f9db10c18269bd310df797430e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Richard Purdie
c971868360 bitbake: siggen: Use lookup cache exclusively
All the values we need are already guaranteed to be in the lookupcache
so rather than fetch variables again, just use the cache. This gives a
small performance improvement and simplifies the code.

(Bitbake rev: 8ffaba61da7f195d7c3b64dce35b6a56272aecae)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Richard Purdie
43c670accc bitbake: data: Be explicit in data_db check
The if statement current causes the size of parent to be calcuated which
is like a len() operation on a datastore. Since we're only interested
whether the value is none, checking explictly for this gives a
small performance gain.

(Bitbake rev: 43a245bde318545ea75ca4ce7894395c1cf9b32a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Richard Purdie
602bb695cf bitbake: cooker: Allow profiling of the parser in profile mode
(Bitbake rev: f8a6e4caed4dc3dcf207aecc4ea5f438027da8be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Alexandru DAMIAN
eb4854f903 bitbake: cooker: Avoid duplication for taskdata creation
Clean-up to avoid duplication and promote code reuse to factor
taskdata creation into a common function.

[RP: minor tweaks]

(Bitbake rev: 468c221449290c4f196e87f7d8e23fcd7db86135)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:03 +01:00
Alexandru DAMIAN
a828c89822 bitbake: runqueue: add runQueueTaskSkipped event
Adding a runQueueTaskSkipped to notify that the tasks that are not
run either because they are set-scened or they don't need an update
(timestamp was ok).

(Bitbake rev: cf4a0c7aa82090876ae652b611acfab3ce2688f7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-17 14:11:02 +01:00
Richard Purdie
1181e69119 bitbake: build: Add logfile to add TaskBase events
We add the path to the logfile for all Task events except TaskInvalid
so that we can trace back the logfile locations at some future point.

TaskInvalid doesn't ever have a logfile.

(Bitbake rev: 8344d84c609446f59f9619cc7ca0d693b7e2bbd6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-16 13:12:34 +01:00
Bruce Ashfield
5fca4d286e linux-yocto/3.10: genericx86 meta data factoring
Updating the 3.10 meta branch to import the following commits from Darren
Hart:

   285f93b meta/common-pc-64: Add USB 3.0 support
   75072e4 meta/common-pc*: Refactor common-pc-64 to reuse common-pc drivers
   da06bde meta/common-pc: Split out CPU and Drivers config fragments
   5f55e40 meta/common-pc: Cleanup common-pc.cfg and common-pc-gfx.cfg
   0a3f784 meta/common-pc: Add common Wifi drivers
   f4b9f5e meta/common-pc: Add common Realtek and Atheros Ethernet drivers
   4d9d3eb meta/common-pc: Build Ethernet and Wifi drivers as modules
   13141ee meta/common-pc: Refactor Ethernet and Wifi options

These are in support of a new genericx86 multi-target BSP.

(From OE-Core rev: 1ab0813c819d3b785178faa458486efa6992c636)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:36:26 +01:00
Stefan Seefeld
366bd119bd lttng: Enable ptest support.
(From OE-Core rev: d0d184045e8034ddbc77549e681f187e12ab1d08)

Signed-off-by: Stefan Seefeld <stefan_seefeld@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
Roy.Li
f8ccabac55 systemd: add ptest
(From OE-Core rev: dc3ac3d406bd6152eaa195e90b95bcdb0ac31121)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
Chen Qi
97f1c03d98 sysvinit: remove unused files
The 'need' and 'provide' files are there for simpleinit compatability,
according to the comments in these two files.

However, we don't use simpleinit and there's even no simpleinit recipe
in OE. Besides, these two files are not installed.

This patch removes these two unused files.

(From OE-Core rev: 05ac5627208c98007cd4c7aed9d76f179cd974a9)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
Chen Qi
e909857be0 sysvinit: fix indentation
Fix indentation in SRC_URI to conform to the indentation convention in OE.

(From OE-Core rev: e05e7016fac7c665a23865dce18b816e01dbd51e)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
João Henrique Ferreira de Freitas
707da95b4a boot-directdisk: Allow for EFI-only boot direct disk images
Condition building PCBIOS legacy images on MACHINE_FEATURES containing "pcbios"
    or not containing "efi". This ensures existing BSPs will continue to get the
    old PCBIOS legacy-only images. New BSPs can add "efi", "pcbios", or both. The
    images created likewise support one or the other or both.

(From OE-Core rev: c58aceee7dc243467dd87f07ccc61859f8d945e6)

Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
Khem Raj
a6974f2a70 elfutils-native: Fix build on distros with gcc 4.8
The patch redhat-portability.diff causes this issue
so lets revert the portion which was using %a instead of %m
thats recommended anyway, redhat patch seems to be targetting
old compilers.

(From OE-Core rev: c1cbc57eb80d2cab9a80d5e5aa65419f40eefb15)

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-09-14 08:29:42 +01:00
Khem Raj
1875fb796f eglibc_2.18.bb: Fix IFUNC support for ARM REL relocations
This should fix the case where neon code is emitted for machines
which dont have neon unit in the chip

[YOCTO# 5161]

(From OE-Core rev: 516e6f065a1bed0d95ffd1c8a4d8e135d834af94)

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-09-14 08:29:42 +01:00
Ross Burton
99875e2e1a xf86-video-vmware: disable VMWGFX
Our Mesa doesn't yet ship the XA Gallium state tracker that the VMWGFX
sub-driver needs, so just disable vmwgfx.

Also remove a spurious xvmc dependency.

(From OE-Core rev: a6f84a0317997c3f49e136381f8d2f2f5cadd292)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:42 +01:00
Roy.Li
019dafd930 systemd: link runlevel from systemctl
using update-alternatives to link runlevel from systemctl, as on Fedora 18

(From OE-Core rev: 8909b3b71b2ac792ae092b8f0a6c2ade28f6b73b)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:41 +01:00
Stefan Stanacar
576a19ed6c scripts/contrib/build-perf-test.sh: record size in kb and remove extra spaces
(From OE-Core rev: 8c2b5948d41d753982242cd86a1498ab4f1bb317)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:41 +01:00
Muhammad Shakeel
5fb63f685c apmd: Add systemd support
-Remove dependency on meta-systemd

(From OE-Core rev: 9e963fe587dda3ce77707194fc5dd029188c76d8)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:41 +01:00
Muhammad Shakeel
27bb9d0a90 oprofileui-server: Add systemd support
-Remove dependency on meta-systemd

(From OE-Core rev: 177bf318bcd3dd2bfb3bec094b1f5ccac7bdd9ac)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:29:41 +01:00
Hongxu Jia
34e875e7ec LSB Command Check: fix install_initd and remove_initd not found
The install_initd and remove_initd are linked to /sbin/chkconfig for lsb
core test, but chkconfig has been moved from /sbin to /usr/sbin in order
to fix QA warning about unsafe references in binaries.
(In commit e486242db8)

Let install_initd and remove_initd link to /usr/sbin/chkconfig could fix
this issue.

[YOCTO #5152]

(From OE-Core rev: 789c4c13c5095a2865d1ee1b242141b5b076bed5)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:01 +01:00
Ross Burton
58324d8c09 anjuta-remote-run: remove
This is from the Anjuta integration which was removed many years ago.

(From OE-Core rev: db488bf8130dba2ad8771b0634e3c5de452f23f2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:01 +01:00
Laurentiu Palcu
3e31a50b66 adt-installer: fix opkg repo name
I mistakenly named the allarch opkg repo the same as nativesdk one...

This patch fixes it.

[YOCTO #5181]

(From OE-Core rev: 98f39b0ae4ed45194a165de3913f27745481cb7a)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
babbf7a46a linux-libc-headers: Add big warning about antisocial behaviour
I'm getting concerned with the number of people forking this recipe
and not understanding what they're doing. I'm therefore proposing
adding in a suitable warning to people thinking of copying it.

(From OE-Core rev: c27ac156bcaf3193d52f456480947b0cfaef3c72)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Stefan Stanacar
214bb6828e lib/oeqa/runtime: timeout increases
Increase the timeout for smart commands as under load for qemumips
it's still to small. Also give ping more time fixing a potential
timeout for sato systemd.

(From OE-Core rev: daa3ad5807f6fc0d15b9310937d07a16edac6d22)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
8ebe7be3d9 bitbake.conf/package: Collapse PKGDATA_DIR into a single machine specific directory
Currently we have a hierarchy of pkgdata directories and the code has to put together
a search path and look through each in turn until it finds the data it needs.

This has lead to a number of hardcoded paths and file globing which
is unpredictable and undesirable. Worse, certain tricks that should be
easy like a GL specific package architecture become problematic with the
curretn search paths.

With the modern sstate code, we can do better and construct a single pkgdata
directory for each machine in just the same way as we do for the sysroot. This
is already tried and well tested. With such a single directory, all the code that
iterated through multiple pkgdata directories and simply be removed and give
a significant simplification of the code. Even existing build directories adapt
to the change well since the package contents doesn't change, just the location
they're installed to and the stamp for them.

The only complication is the we need a different shlibs directory for each
multilib. These are only used by package.bbclass and the simple fix is to
add MLPREFIX to the shlib directory name. This means the multilib packages will
repackage and the sstate checksum will change but an existing build directory
will adapt to the changes safely.

It is close to release however I believe the benefits this patch give us
are worth consideration for inclusion and give us more options for dealing
with problems like the GL one. It also sets the ground work well for
shlibs improvements in 1.6.

(From OE-Core rev: 1b8e4abd2d9c0901d38d89d0f944fe1ffd019379)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
af5b3f3510 layer.conf: Version bump for DEPLOY_DIR layout change
Increase the version to signify the layout change of the images
in the deploy directory.

(From OE-Core rev: 4246e7dd59800a1d6c6d02c00f4e86eeac020767)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Paul Eggleton
6670be71f7 bitbake.conf: include machine name in DEPLOY_DIR_IMAGE
This allows a clean seperation between image outputs from different
machines, and makes it possible to have convenience symlinks to make
the output ready to deploy.

This did require some surgery in runqemu; if explicit paths to the image
and kernel are not supplied then DEPLOY_DIR_IMAGE needs to be determined
from bitbake or set in the environment. However the script does try to
avoid requiring it unless it really is needed. Corresponding changes
were made in the automated testing code as well.

Based on an RFC patch by Koen Kooi <koen@dominion.thruhere.net>

(From OE-Core rev: 7e90261aec61f79680b5eaeaf5b18c7b795412a4)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Robert Yang
ee7ccda0ec icu-native: do_install: Segmentation fault
There was a "Segmentation fault" error when build icu-native when the
TMPDIR is in a deep directory (for example, when len(readlink -f $TMPDIR
== 410)), use LARGE_BUFFER_MAX_SIZE for cmd rather than
SMALL_BUFFER_MAX_SIZE would fix the problem, this should be a misplay
because other cmd uses LARGE_BUFFER_MAX_SIZE.

[YOCTO #5171]

(From OE-Core rev: ebfdddc23ff78231a819c62c8ffcced9633aa08b)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Robert Yang
0c11a7740b perf: source should be ready after do_unpack
In perf.bb:

S = "${STAGING_KERNEL_DIR}"

So the source should be ready after the do_unpack, and we need this:

do_unpack[depends] += "virtual/kernel:do_populate_sysroot"

Otherwise, maybe no source after do_unpack.

[YOCTO #5168]

(From OE-Core rev: 01d3b15518b981199120b3b9c6923678244aefdc)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Peter Kjellerstedt
4137f9a996 bb-matrix-plot: Use interpolation for sparse data
If not every combination of BB_NUMBER_THREADS and PARALLEL_MAKE have
been tested by bb-matrix.sh, e.g., by using BB_RANGE="04 08 10 12 16"
and PM_RANGE="04 08 10 12 16", then the graph that gnuplot generates by
default looks very jagged due to the missing data points. By using
splines to interpolate the missing data the graph looks a lot better.

This should not change graphs where all data points are available in any
way, only improve sparse graphs.

(From OE-Core rev: 9642c1314da64c70254f6b012aa73ef37bbaa33f)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:21:00 +01:00
Richard Purdie
493e8b46fd bitbake.conf: Stop providing ${P} and ${PF} by default
For a long time we've provided PN-PV and PN-PV-PR by tweaking PROVIDES. This looks
nice at first glance however it turns out to be a bit problematic. Taking make as an
example where there are two versions, 3.81 and 3.82, what should "bitbake make-3.81" do?

Currently it builds make-3.81 and make-3.82 and breaks in interesting ways. Is that
a bitbake bug? Well, it certainly shouldn't try and run the build. Why is it building
3.82 though? Its due to finding a dependency on "make-dev" and then trying to figure
out what provides it? The answer is "make" and the default version of "make" is 3.82.

So arguably, finding "make-3.81" should infer PREFERRED_VERSION_make = "3.81". Doing
so resolved the above problem since now "make" resolves to "make-3.81".

So what about if we have Recipe A:
DEPENDS = "make-3.81"
and Recipe B:
DEPENDS = "make-3.82"

That is clearly an error, easy. So finally what about if we have Recipe A:
DEPENDS = "make-3.81"
and Recipe B:
DEPENDS = "make"

The first recipe infers the PREFERRED_VERSION_make = "3.81" and then forces that
version on everything else. Is that desired? Probably not in most cases, at least not
silently.

As mitigation, we could print a WARNING about this happening. The final part of the problem
is that we can ony figure this out within bitbake itself. That means we'd have to teach bitbake
about the PN-PV format of PROVIDES which is breaking the separation between bitbake and the
metadata. We can't win :(.

Nobody that I know of is using or relying on this functionality so perhaps we should
just remove it instead which is what this patch does. Opinions?

(From OE-Core rev: a87c205bb6cefd5e1a41b8e7ef02b5bfa380e3b6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:59 +01:00
Peter Kjellerstedt
643252f889 bb-matrix: Clean before, rather than after, building
This makes sure the the first build starts from a clean state. Otherwise
one could have the first build affected by any leftover state from
a previous build.

This also leaves a working state behind after the final build.

(From OE-Core rev: f8f86ac88aa1bba99ba28762cfbd97d3721da7d9)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:59 +01:00
Roy.Li
0acde33c75 sstate.bbclass: fix parallel building issue
sstate_package creates hardlink from sysroot to SSTATE_BUILDDIR, then
sstate_create_package will store SSTATE_BUILDDIR into a archive file by
tar, but once other packages install the same file into sysroot, the
creating the archive file will fail with below error:

    DEBUG: Executing shell function sstate_create_package
    tar: x86_64-linux/usr/share/aclocal/xorg-macros.m4: file changed as we read it

This kind of error is harmless, use --ignore-failed-read to ignore it.
The error in tar occurs when the timestamp of the file changes and this
can happen when the number of symlinks change. The file will be included
in the archive.

[YOCTO #5122]

(From OE-Core rev: 4b3e353a532c7b68b0bb86df4a2fcc44f8bb3ef2)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:59 +01:00
Richard Purdie
ca1b5ddb86 bitbake: cooker: updateCache should rause exceptions, not sys.exit
Exiting from the server is antisocial, instead we should raise an exception. This
will correctly fail the current command and reset the server state. We use
the handled exception since for these conditions to occur, something was
already displayed to the user.

(Bitbake rev: dacc94bcace85a2e95aee2dccd8e680c59e4545f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
926b60f6e4 bitbake: knotty: Cleanup error/interruption handling
Only display a CommandFailed ERROR: message if there is an error to display.

Only display an errors summary if we actually displayed errors.

(Bitbake rev: 568ea00acd226d48e725bb01d4f8c410ed1eaa61)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
ef7e3882a9 bitbake: command: Treat empty messages as failures, not CommandCompleted
Empty messages should trigger CommandFailed, not CommandCompleted as
otherwise the exit code will be incorrect.

(Bitbake rev: 70a8ead31f9ffc987d9c6db61a926f7a9af8f8b1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
0519d1ae13 bitbake: cooker/command: Add finishcommand to reset cooker state
After running a command on the server, it needs to reset to the initial
state. This ensures that subsequent clients start from a known state
and notice any configuration changes.

Ultimately we may want to do more than this buts a good start and better
than nothing.

(Bitbake rev: dd15648fc2654b8d7c3e00ea7ab3dbf04f24f24b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
7663a52061 bitbake: cooker: Rename confusing 'stop' state to 'forceshutdown'
The shutdown state causes the server to finish what its doing, stop was
them meant to completely stop it. It doesn't mean the server is stopped
though. Renaming the current stop event for forceshutdown gives more
meaning to what it actually does. The stopped namespace then becomes
available to indicate a completely stopped server.

(Bitbake rev: 12e9d33bfae5294e3870dfd1202f63383ad05e92)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
2174a51ee8 bitbake: cooker: Clean up init/reset configuration code
Currently the cooker event data isn't rebuilt upon reset and the cache
configuration cannot be changed after init. These are both bad things
and this patch refactors the init/reset code so that it is possible
to reconfigure the server.

(Bitbake rev: 1193b8d76fcb6cb87e9ec135a2514370d7dd90ac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:38 +01:00
Richard Purdie
fe1258d478 bitbake: cooker: Drop obsolete worker test
This call only ever happens in cooker context now so we can drop the
nasty worker check from here.

(Bitbake rev: bc0b30199a8e3624c5b9914430adbcc7c6bd4497)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-14 08:20:37 +01:00
Alexandru DAMIAN
a392877e57 bitbake: bitbake: xmlrpc: delete unused code BitBakeUIEventServer
BitBakeUIEventServer is an unused class that pushes UI
events over a separate thread.

The current version of XMLRPC server works just fine with
the classic UI event handlers, so this class is not needed.

(Bitbake rev: 8e8e17631d790271b1be747c4b45059ec38ab606)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-13 17:45:22 +01:00
Richard Purdie
dd36930f3f bitbake: data_smart: Account for changes in append/prepend/remove in the config hash
bitbake wasn't reparsing when _remove items were added to its configuration
and equally, appends/prepends were also being badly tracked. This
change enrures these variables are accounted for in the configuration
hash.

[YOCTO #5172]

(Bitbake rev: 62914f9208ef2427a34daa523af857f4027900eb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 17:03:17 +01:00
Scott Rifenbark
89ca97371d ref-manual: Added information for OEROOT and build environment
Fixes [YOCTO #4980]

Added a new glossary entry for OEROOT.

Added significant information to the local.conf and bblayers.conf
reference sections to describe how the root build directory is
derived.

Also, some unrelated formatting to the DL_DIR variable description
was mixed in here because I forgot to commit that separatey and it
lives in the same variables.xml file.

(From yocto-docs rev: c397a31f5b0d3f6257657119a4e81b4fbdc3800c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:12 +01:00
Scott Rifenbark
3c4f2a6118 ref-manual, mega-manual: Updated source input figure
Fixes [YOCTO #2808]

I tweaked the SCM box in the figure so that the connection to
real SCMs is better.  This was causing confusion.

(From yocto-docs rev: f4080315ab6b57068ab2fbb948c52f731d1ea5dd)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:11 +01:00
Scott Rifenbark
c375134c6a dev-manual: Updated wording to be more professional for broken build.
(From yocto-docs rev: 133b40d224740c23573ae473d5a2938ae069158a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:11 +01:00
Ross Burton
775fbab597 dev-manual: Update to bblayers.conf example
The variable ##COREBASE## has been deprecated, so use
 ##OEROOT## instead.

(From yocto-docs rev: 4520a2e41bf229481bd959e494e5bde84bbcfc51)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:11 +01:00
Darren Hart
91b9202de9 dev-manual, ref-manual: replaced "atom-pc" with "genericx86"
Update the manuals to reflect the recent replacement of atom-pc with
genericx86.

(From yocto-docs rev: 8f77006d74b77000f56b64581cb5f6474f53a4f1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:11 +01:00
Scott Rifenbark
743106f392 ref-manual: Re-ordered some P* variables in the glossary.
Some things were not in alphabetical order.

(From yocto-docs rev: e7d96d5eecaa74d680a4495a21f86a7776852c48)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:11 +01:00
Scott Rifenbark
de62377415 dev-manual: Added new section on how to exclude a package
Fixes [YOCTO #4079]

The changes here address the documentation component of this
bug.  There is now a new section in the dev-manual in the
"Working With Packages" section that describes and introduces
the three variables the user can use to control this feature:
BAD_RECOMMENDATIONS, NO_RECOMMENDATIONS, and PACKAGE_EXCLUDE.

(From yocto-docs rev: a7e2097c43955db99ec068068d4291fc4e1deaf8)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
0ca3c5f540 ref-manual: Updated the screen help for bitbake command.
(From yocto-docs rev: fc48174c0cc851ab6ace5a8f41ba7d291b1cbb0a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
a266619317 documentation: Added the memory-resident BitBake feature
The main changes are captured in a new section devoted to the
oe-init-build-env-memres script within the ref-structure.xml
file and in the variables.xml file in a BBSERVER variable entry
in the glossary.

All other changes were necessary to integrate the new functionality
into areas where running the setup script are discussed.  Before
this feature, there was a single setup script (oe-init-build-env).
Consequently, wordings and such were designed exclusively for this
single method.  With the introduction of a second possible method
to initialize the build environment, tweaks to many sections were
needed.  Beside the wording tweaks, appropriate cross-referencing
was also needed.

All these changes cover the integration of the new feature.

Reported-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(From yocto-docs rev: c55c9a53c9b4cd1e06e6e81e32d56f9bbf5fe98c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
cc2626727c ref-manual: Re-ordered some B* variables to be in alphabetical order.
(From yocto-docs rev: 75e170bb84d263a514e79c02c8628ef44290a5b2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
2fe0213997 ref-manual, mega-manual: Updates to config and package splitting figs
Fixes [YOCTO #2808]

Found some errors in how I was labeling the various directories
created in the Build Directory upon image configuration.  I corrected
the labeling by editing these two figures.

(From yocto-docs rev: 4a08ad8bda0617e18b9998b794267f743e445eaa)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
973fd9b7b1 ref-manual, mega-manual: Updated two figures
Fixes [YOCTO #2808]

Updated the images and SDK figures so the outside box would be
red as that is what it is in the general figure.

(From yocto-docs rev: 8f43a328c68bdb96e6b7cc1086400c8e3493d3b7)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:10 +01:00
Scott Rifenbark
fdc1ad2936 ref-manual, mega-manual: Edits to figures
Fixes [YOCTO #2808]

I made some small cosmetic corrections to two figures in the
expanded look at YP process chapter.

(From yocto-docs rev: 50950f7ae6ea87cde1a9228837aa15985c88b579)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:09 +01:00
Scott Rifenbark
cc265bf535 ref-manual: Created new "Closer Look" chapter
Fixes [YOCTO #2808]

I extracted the section that takes a closer look at the YP
development process into its own chapter.  Feedback during the
review indicated that this information should not be buried as
it was in a section but rather pulled higher out for visibility.

So, The changes create a new chapter three that is dedicated to
this topic.

(From yocto-docs rev: 32c66976b6b84787d14d6174dab843862a0d184b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:09 +01:00
Scott Rifenbark
7b70da93bc ref-manual: Re-ordered flow for detailed process sections.
Fixes [YOCTO #2808]

Based on feedback from Dave Stewart, I have rearranged the sub-
section flow of the topics to match that of an actual build.
This meant moving the BitBake section higher up in the order.

(From yocto-docs rev: 3e62dd70dab596c3a55815c1ad3f1578a9f3400f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:09 +01:00
Scott Rifenbark
b359e9a981 ref-manual, mega-manual: Updates to process figures
Fixes [YOCTO #2808]

Updated several figures to get rid of shadows and gradients in the
colors.  This completes the work on getting the figures to all be
consistent.

(From yocto-docs rev: 9e59810ed4772cd75ffe1604b66afe16e9cf9c67)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:09 +01:00
Scott Rifenbark
78e209d346 ref-manual, mega-manual: Updated package-feeds diagram
Fixes [YOCTO #2808]

Modified the BitBake box to have a "spatula" form to be like
the BitBake box in the more general diagram.

(From yocto-docs rev: f42867929336c807977a584fba42613cbca44dfc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:08 +01:00
Scott Rifenbark
6a18edd8e2 ref-manual, mega-manual: Updated the analysis figure.
Fixes [YOCTO #2808]

Updated the analysis-for-package-splitting.png figure so that
the BitBake box has the "spatula" form used in the regular
overview picture.

(From yocto-docs rev: 4ef43f3a4f96b867ab0985aa70996abe4c2caf75)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:08 +01:00
Scott Rifenbark
661c27d2c7 ref-manual, mega-manual: Updated the configuration figure
Fixes [YOCTO #2808]

Updated the configuration-compile-autoreconf.png figure so that
the general shape of the BitBake box represents the "spatula"
form used in the general overview figure.

(From yocto-docs rev: b4c81b94a3ced5645a92076022abc4a3938be5b3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:08 +01:00
Scott Rifenbark
8cb2038c70 ref-manual, mega-manual: Updated the patching figure
Fixes [YOCTO #	2808]

Updated the figure for patching so that it uses the "spatula"
type BitBake shape rather than a square box.

(From yocto-docs rev: 61c2bdc1a0d6f33d18f5fef1b0640213b899ec63)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:08 +01:00
Scott Rifenbark
ddb29c561c ref-manual, mega-manual: Updated the source fetching figure
Fixes [YOCTO #2808]

Updated the figure to use the "spatula" type version of the
general BitBake box.  Also had to adjust the width a bit to
get the figure to display correctly.

(From yocto-docs rev: 3049e20eb215b00e61dabed9c124fa8ebc6c946b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:07 +01:00
Scott Rifenbark
27b499841a ref-manual, mega-manual: Updated ADK figure
I modified the sdg.png figure that shows detail for SDK
generation by creating a spatula-like shape for the general
BitBake box.

(From yocto-docs rev: 597d121e8286d51be73f87594d2f99354621c112)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:06 +01:00
Scott Rifenbark
4cf514fb34 yocto-project-qs: Added Creative Commons distribution blurb.
The QS did not have this legal blurg.  I have added it in.

(From yocto-docs rev: a007c4176b64db6ebbfaf4723c7842603a49ed76)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Scott Rifenbark
6a0c6eac99 ref-manual: edits to BAD_ and NO_RECOMMENDATIONS
Some review edits based on Paul's review.

(From yocto-docs rev: d6ff6399cb02b045a7a35a2c87d5f62a25612c3b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Scott Rifenbark
69daf50cde ref-manual: Variable adds and edits for package exclusion changes
Fixes [YOCTO #4079]

I have added variable descriptions for NO_RECOMMENDATIONS and
PACKAGE_EXCLUDE.  I updated the BAD_RECOMMENDATIONS and the
RRECOMMENDS variables.

(From yocto-docs rev: 3b5b44d3db9e723cd9836ddbd4177c2ab2e1d663)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Scott Rifenbark
d3a849fdb4 ref-manual: Updated DEPENDS and RDEPENDS variable descriptions.
I have added more information to both these variables to help
explain their use better.  Based on email from Paul Eggleton.
Each entry now features a simple example.

(From yocto-docs rev: 1ec67c639f15259ac67d5591d1d7a23522b0a822)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Scott Rifenbark
4265649931 ref-manual: Added section on linux kernel image names using PE
Fixes [YOCTO #5089]

In the "Migration" section for going from 1.3 to 1.4, I have
added a new section to describe how the value of PE is now in
the generated Linux kernel image filename.

(From yocto-docs rev: 8ff3d263d2374ab3745e5264c3747e36674e7484)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Scott Rifenbark
db678a124d ref-manual: Updated the PE variable description.
I changed the description to note that the PE variable is unset
by default.

(From yocto-docs rev: fe3655121e2796e50b8b3372df06cdf8341a2202)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 16:50:05 +01:00
Richard Purdie
bd76847d86 libnewt-python: Don't write a whiptail package
The whiptail package is written by the libnewt recipe so for the python version
we need to ensure its not in PACKAGES.

(From OE-Core rev: b26157a8b575aa7b5c96ffe782fc23ec0920311c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 08:23:42 +01:00
Richard Purdie
01db559abd populate_sdk_rpm: Only remove trailing whitespace, not all whitespace
(From OE-Core rev: 06cb4deba6e4df4ffe3015602d5997b26d28778b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-12 08:23:41 +01:00
Maxin B. John
566ca1e476 beagleboard: update the dts location
Update the dts path for beagleboard

(From meta-yocto rev: e29387d71a4c532431669f317ea518f99b1dd786)

Signed-off-by: Maxin B. John <maxin.john@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:35:45 +01:00
Ross Burton
cdc3549c9c weston: as weston-launch depends on PAM, control it with a PACKAGECONFIG
(From OE-Core rev: fb430271da67d7ec98c285a3420b00db737cae55)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:35:45 +01:00
Ross Burton
1b25cf710e clutter: fix compilation when building without X11 backend
If Clutter is building the Wayland backend but not the X11 backend, the Cogl
support doesn't get enabled so the Wayland backend (which uses it) fails to
compile.

Backport a fix from upstream to fix this situation.

(From OE-Core rev: 6df36a004210901acceff4a201d0f910d99eccfe)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:35:44 +01:00
Ross Burton
4540f6f6cb x11vnc: add dependencies for xrandr/xfixes/xdamage/xtst
Inspired by a patch by Martin Jansa but with these libraries required, as a VNC
server without them is suboptimal.  Don't add an option for Xinerama as our X
server always disables it.

(From OE-Core rev: 4bca0b8adcac6eebc4466a2eea03de3493bf1cc4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:35:44 +01:00
Richard Purdie
4496e34aaf populate_sdk_rpm: Ensure empty strings aren't passed to attemponly rpm code
If empty strings are passed to the rpm attemptonly code, it breaks. This
ensures we don't do that.

(From OE-Core rev: 6a0d5a3158608364f6baa11fe9ab7fa1f8e251ab)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:01 +01:00
Ross Burton
46597b5457 xf86-video-vmware: respect opengl DISTRO_FEATURE
Conditionalise the GL dependencies on the opengl DISTRO_FEATURE so this driver
can build without the opengl feature active, as the configure script will
enable/disable the GL sub-driver depending on the presence of these libraries.

This is an interim patch to fix the autobuilder, a more complete patch heading
upstream to make the GL sub-driver deterministic will follow.

(From OE-Core rev: 66b7c59442cc494179418995292c57bab56fada3)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Saul Wold
8f9db772dc bluez4/5: Add EXCLUDE_FROM_WORLD = 1
We can't build both recipes in the world build as there is a collision of package name
and PR values. Specificly the libasound-module-bluez which is the same in both goes
backwards from r5 (bluez4) -> r0 (bluez5) and the subpackage_metadata check fails:

ERROR: Recipe lib32-bluez5 is trying to change PR from 'r0' to 'r5'. This will cause do_package_write_* failures since the incorrect data will be used and they will be unable to find the right workdir.

[YOCTO #5165]

(From OE-Core rev: 3653500c7e5d365ddc2868d985c6001d40123672)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Ross Burton
33e8896a46 xf86-video-intel: disable DRI2 tests if no DRI2 is available
Somehow this slipped past the initial testing and can cause build errors in
non-GL distros.

(From OE-Core rev: 975412f446066215a94be78a7f7e1db9e28ebbbf)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Ross Burton
3f0525d8ce xf86-video-vesa: change depends to refect reality
This recipe appears to have been a copy-and-paste from -intel, because it has
dependencies and configure options that xf86-video-vesa just doesn't have, such
as virtual/libgl and XVMC.

(From OE-Core rev: 4995acafc139107c2323da69eca718009384efe4)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Ross Burton
d43975861b ia32-base: only depend on GL if opengl DISTRO_FEATURE enabled
As Mesa refuses to compile if the "opengl" DISTRO_FEATURE isn't enabled,
mesa-driver-i9xx and the GLX X module have to be conditional in the ia32 machine
defintion too.

(From OE-Core rev: 8b5c07e6c3b492f56ce9c5f99a732793403d6b36)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Stefan Stanacar
01135ee6f2 lib/oeqa/runtime: smart: limit channel add to useful ones
Don't add inappropiate channels on the target.
This happens when building two different machines in the
same dir and then running the tests for each machine.

(From OE-Core rev: 9e4e475b598f6b9bd2b653c72a1c1d5bd5c0b8c9)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Stefan Stanacar
83b90e54be classes/package_rpm: remove unsed outdir variable
Not only outdir had the wrong value, it wasn't used actually used in that function.

(From OE-Core rev: 5db4b53e5d969a6da314904fa2335462947c97ea)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 23:31:00 +01:00
Ross Burton
40232ed397 yocto-bsp: conditionalise mesa-swrast on opengl in templates
As per the similar commit in oe-core on the qemu machines, the templates should
respect the opengl DISTRO_FEATURE when adding mesa-driver-swrast to new qemu
machines.

(From meta-yocto rev: 8d42ea2b2566913642c759e48ffe1f5f5166c510)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 12:29:06 +01:00
Roy Li
775bc290fb ptest-runner: trivial fixes and refine
1. ptest files may be installed under /usr/lib64/ for 64bit filesystem
or under /usr/lib/ for 64bit multilib filesystem, so we should check both
directories

2. If a soft link is linking to a directory under the same directory, we
only run once.

[YOCTO #5125]
[YOCTO #5126]

(From OE-Core rev: 51c43e08b388ed15520c66977bbb49df18e5f124)

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:07:59 +01:00
Ting Liu
4c92281f03 libcroco: disable Bsymbolic if it is not supported on some hosts
When trying to build on my Centos 5.5 machine, got below error:
| checking for gtkdoc-mkpdf... no
| checking whether to build gtk-doc documentation... no
| checking for CROCO... yes
| checking if gcc supports "-Wl,-Bsymbolic-functions" flag...
| configure: error: -Bsymbolic requested but not supported by ld. Use --disable-Bsymbolic to disable
| Configure failed. The contents of all config.log files follows to aid debugging
|
| configure: exit 1
| ERROR: oe_runconf failed

Set --enable-Bsymbolic=auto to disable it when it is not suppported.

(From OE-Core rev: e7c691b33573b3309752d6eb397486c2c8620adb)

Signed-off-by: Ting Liu <b28495@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:06:58 +01:00
Mark Hatle
4b2d9acda8 python-smartpm: Add an attempt install mode
[ YOCTO #3723 ]

Add a mode to smart that will allow an installation to continue, instead of
failure in the case that one or more items is uninstallable.

Uninstallable packages are simply ignored, and no error is generated.

(From OE-Core rev: bdf07b1698d228dc7ff555199a269b1ff8ceca19)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:06:11 +01:00
Richard Purdie
19c3c6dff3 bitbake: utils: Fix BB_PRESERVE_ENV
BB_PRESERVE_ENV wasn't working since data.inheritFromOS wasn't getting a
correct list of keys to import into the data store. This fixes
things so it does add all environment variables into the data store
when BB_PRESERVE_ENV is used.

(Bitbake rev: 843e9339c5ee3c99657a40a0e2c7dbd777b6ef06)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Richard Purdie
3e7d6697ba uclibc: Add missing DEPENDS on kern-tools-native
This is needed for the kconfig handling and the merge-config.sh script.

(From OE-Core rev: 1c34b0e871e475a90e27d338469ba31f322d5300)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Richard Purdie
bd3164b9e6 image/populate_sdk: Ensure symlinks in target sysroot are relative
In the target sysroot of an SDK we can have target system absolute links
which don't make sense. This adds a script which fixes them up to become relative
paths instead.

[YOCTO #5020]

(From OE-Core rev: 57d6bdcad55c119e9ab8089d23d462436a0e4440)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Ross Burton
e7f3fee059 qemu: only depend on mesa-driver-swrast if opengl is enabled
As Mesa refuses to compile if the "opengl" DISTRO_FEATURE isn't enabled,
mesa-driver-swrast has to be conditional in the QEMU machine defintions too.

(From OE-Core rev: 9951e1da6a755f9a46d3a595aa4c2f975aee8f46)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Chen Qi
4c3f8d2063 init-live.sh: distinguish between a read-only image and a read-write image
The iso and hddimg share a common concept of 'live image', and they
use the same initramfs and thus the same init. However, that init
script in initramfs made a wrong assumption that the rootfs image
was read-only by itself. This is apparently not true for hddimg.

To make things work as expected, this init script should at least
distinguish between a read-only rootfs image and a read-write one.

This patch adds this ability to the init script. After this change,
the init script would be able to check whether the rootfs image is
read-only or not. If the rootfs image is read-write, the image will
be mounted and then booted directly. No union mounts will be attempted
in this case.

[YOCTO #5164]

(From OE-Core rev: 29f869b68a9017502f75915784a924f0fe9d4be1)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Kai Kang
b990585d38 midori: excluded from mips64 temporarily
Exclude midori from mips64 temporarily. Becuase midori depends on
webkit-gtk which could not build for mips64 with 64bits userspace now.

[YOCTO #5141]

(From OE-Core rev: 1b0602b5933b3ee8e4ae36d447bf881308528a47)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-11 11:05:05 +01:00
Saul Wold
6b4f7e4b26 systemd.bbclass: get the correct /lib directory
By using os.path.dirname(systemd_unitdir) we get the correct /lib directory instead of
dealing with possibly multilib directories.  This address a QA Error for shipped/not
installed /lib with multilib and x32.

(From OE-Core rev: 5b451a46550ba62e2fbfe5dbe50723b34a4fd527)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:16 +01:00
Muhammad Shakeel
8dedc082ba systemd: Remove base_libdir if installed only for systemd_unitdir
If a recipe installs systemd_unitdir and it is a non-systemd build than
systemd.bbclass deletes systemd_unitdir (/lib/systemd/) but not
base_libdir (/lib). In this case if base_libdir is empty than following
QA Issue is reported.

ERROR: QA Issue: openssh: Files/directories were installed but not shipped
  /lib

If base_libdir was installed due to systemd_unitdir installation than for
non-systemd build it should also be removed.

(From OE-Core rev: c700cb21c189e23a78f0efaaf763259c8cfefa4d)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:16 +01:00
Muhammad Shakeel
703104c278 nfs-utils: Add systemd support
- Remove dependency on meta-systemd

(From OE-Core rev: 644394c074c359505fcd750356fb4db58b939729)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:15 +01:00
Muhammad Shakeel
06ecd689ae rpcbind: Add systemd support
- Remove dependency on meta-systemd

(From OE-Core rev: 3ecb5e21b3b4f05f2d527264c3574fdc37984a77)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:15 +01:00
Muhammad Shakeel
1661f5c90a lighttpd: Add systemd support
- Remove dependency on meta-systemd

(From OE-Core rev: 36e3d63abaeafc5d2e671bad45b599c159ed10ab)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:15 +01:00
Muhammad Shakeel
c6d25fbd3f openssh: Add systemd support
-Remove dependency on meta-systemd

(From OE-Core rev: 6e6445d487c033913a29763f8e3a7a339d5b612d)

Signed-off-by: Muhammad Shakeel <muhammad_shakeel@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:15:15 +01:00
Ross Burton
42742e39d4 avahi: use correct names in SYSTEMD_SERVICE_* variables
Don't hard-code full package names in SYSTEMD_SERVICE_*, because in multilib
they'll be changed.

[ YOCTO #4803 ]

(From OE-Core rev: 013cc8b6397c29e8f0d7adf63d8e06caab778da2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:03:07 +01:00
Maxin B. John
a572d8ad9e dbus-ptest: fix populate_sdk error
When we enable "ptest", populate_sdk fails with the following error:
 # bitbake core-image-minimal -c populate_sdk
 ..
 Collected errors:
  * satisfy_dependencies_for: Cannot satisfy the following dependencies
    for dbus-ptest-dev:
  *    dbus-ptest (= 1.6.10-r0) *
  * opkg_install_cmd: Cannot install package dbus-ptest-dev.

Disable that dependency.

(From OE-Core rev: a59b7341d136bf8ee4a22c2968ca95dc17be3947)

Signed-off-by: Maxin B. John <maxin.john@enea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:03:07 +01:00
Ming Liu
879ad0532c initscripts: filter out empty lines from volatiles in check_requirements()
So far the rules of check_requirements() is too strict to lead mismatch
when empty lines exist in volatiles.

(From OE-Core rev: 71ab9ee58b0ba5e3f5cbf403d1b8fb79fc7f5ed1)

Signed-off-by: Ming Liu <ming.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:00:50 +01:00
Roy Li
f7d1286fe8 btrfs-tools: fix a parallel build issue
(From OE-Core rev: 637e0484ea4e7a39ac4d9c407c585201e6be1bc0)

Signed-off-by: Roy Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 23:00:50 +01:00
Bruce Ashfield
a5973acca3 meta-yocto-bsp: bump reference BSPs to v3.10.11
Bumping to the 3.10.11 -stable release. Of note in this update is
the timer_list fix, which broke ssh access in the previous 3.10
series of updates:

    timer_list: correct the iterator for timer_list

    commit 84a78a6504f5c5394a8e558702e5b54131f01d14 upstream.

With this, we can revert the two temporary fixes for timer lists.
ssh access has been directly tested after this update.

(From meta-yocto rev: 0237c97dde39a3b9355f7be9a9e8eab901d6f511)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Chen Qi
96eff4c25d mount.sh: automount cdrom device even if no ID_FS_TYPE available
This script was modified to check whether $ID_FS_TYPE is empty before
automount, however, for cdrom devices on qemu, the ID_FS_TYPE is not
set, yet the device should be mounted. Otherwise, when booting an iso
image with runqemu, the boot process hangs at 'waiting for removable
media'.

This patch fixes this problem by first checking whether the block device
is a cdrom.

[YOCTO #4487]

(From OE-Core rev: 2df21a3b27543df912a3ce05bef2415fae13cb7c)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Saul Wold
82914e5dfb gstreamer-plugins: Change anonymous python structure
This change ensures that the SRC_URI is set before base.bbclass code is called. This will
also ensure that the xz-native depends is set correct.

[YOCTO #5127]

(From OE-Core rev: 787335494dc0a3f93d9bf5a6cf1b603c8675df66)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Saul Wold
5f2748e492 cmake.bbclass: ensure CMAKE_SYSTEM_NAME is correct
Using TARGET_OS can add the ABIEXTENSION so ensure that is is removed for the Linux
TARGET_OS, we might have other TARGET_OSes so don't hard code CMAKE_SYSTEM_NAME

[YOCTO #5145]

(From OE-Core rev: 7d8b700242b1b32c6b6d0735b497701800f54fc4)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Laurentiu Palcu
5992830145 adt-installer: allow installation of other machines
Currently, adt-installer allows only the installation of qemu target
sysroots.

The changes in this patch do the following:
 * add a new setting in adt-installer.conf (YOCTOADT_TARGET_MACHINE) for
   each target architecture. For example, for arm we can choose to use a
   qemuarm sysroot or a beagleboard sysroot. By default, only the qemu
   target sysroots are selected (current behavior);
 * change adt_installer scripts to allow installing the correct
   meta-environment package for the selected machine;
 * remove some left-over commented lines;
 * use packagegroup-cross-canadian-${MACHINE} when installing the cross
   canadian packages instead of doing it separately for each package;
 * change the opkg config files in order to be able to find the
   packagegroup package, which is allarch;

[YOCTO #4783]

(From OE-Core rev: 02085d410bf734e833d45293f4d5b06bb9536a60)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Laurentiu Palcu
32090b6ea0 meta-toolchain-qt: include the proper cross-canadian package
packagegroup-cross-canadian package name was changed to contain MACHINE.
Make the necessary changes here too.

[YOCTO #4783]

(From OE-Core rev: 8f8cd338faf63f665c2214f0110b712736f8ed5d)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Laurentiu Palcu
9d3d1a2da2 populate_sdk_base.bbclass: select the proper cross-canadian package
Since packagegroup-cross-canadian package name has MACHINE in it, make
the necessary changes here.

[YOCTO #4783]

(From OE-Core rev: 23531590d40acde2775b7c3b90682edc501d68f4)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Laurentiu Palcu
5d125f514f packagegroup-cross-canadian: change package name to include MACHINE
Since meta-environment package name was changed to contain MACHINE,
change packagegroup-cross-canadian package name too, in order to be able
to select the proper environment files for a certain machine.

Also, remove the RPROVIDES since adt-installer doesn't really need it.

[YOCTO #4783]

(From OE-Core rev: d713447dc2fab8900f47c542cfbbb76bad19a7e2)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Laurentiu Palcu
bd0fc8e892 meta-environment: change package name to include MACHINE
Currently, the package name contains just the TRANSLATED_TARGET_ARCH.
When compiling the toolchain for two machines, belonging to the same
architecture (for example: qemuarm and beagleboard), this package gets
overwritten and adt-installer repo will contain just one
meta-environment package... This leads to situations like installing the
toolchain for qemuarm and end up with meta-environment package with
beagleboard cpu options.

[YOCTO #4783]

(From OE-Core rev: 09a2b158818e2ec3c3e3b53b6d14fd3527c32c99)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:33 +01:00
Bruce Ashfield
74f148ce8c linux-yocto/3.10: bump kver to 3.10.11
Bumping to the 3.10.11 -stable release. Of note in this update is
the timer_list fix, which broke ssh access in the previous 3.10
series of updates:

    timer_list: correct the iterator for timer_list

    commit 84a78a6504f5c5394a8e558702e5b54131f01d14 upstream.

With this, we can revert the two temporary fixes for timer lists.
ssh access has been directly tested after this update.

(From OE-Core rev: 659528f0f99cec94991ec96fa124c4497237e9f8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 22:58:32 +01:00
Otavio Salvador
4acfbb1bb0 u-boot, u-boot-fw-utils-cross, u-boot-mkimage: Upgrade to 2013.07
This upgrades the U-Boot based recipes for 2013.07 release.

This removes the 2011.03, 2011.06 and 2013.01.01 versions so we keep a
single one in core. The following recipes has been upgraded:

 - u-boot (remove old versions)
 - u-boot-mkimage (remove old versions)
 - u-boot-fw-utils -> u-boot-fw-utils-cross (renamed and reworked)

The u-boot-fw-utils-cross recipe has been reworked as it uses the
UBOOT_MACHINE to find default environment for use so it is indeed a
cross binary and not a native one.

(From OE-Core rev: c5fff5748e0aaf7e135fdd464c2104b1d3cbfd5a)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 16:02:23 +01:00
Khem Raj
aae576c60b systemd: Fix build with multilib
rpm macros should be independent of libdir
Fixes errors seen when multilib is turned on
it shows up since then libdir != usr/lib

(From OE-Core rev: 6126c6e4b9c40c222519914c8fe0a51f9eee8d41)

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-09-10 16:02:23 +01:00
Alexandru DAMIAN
2044668a41 bitbake: bitbake: runqueue: add sceneQueueTaskCompleted event
Adding an event to be fired when a scene task is completed.
It is analogous to the run task completed event, and has
been missing for some reason.

(Bitbake rev: 73b8f4d3fbeaf1b330a66d76012d0a5cef8dbe2d)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:20 +01:00
Ross Burton
a284f6c285 systemd: update patch header and comments
(From OE-Core rev: 856f74db0f56e4885af625665f8d85841f198e8d)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:20 +01:00
Ross Burton
1492f43a04 xf86-video-intel: allow builds without opengl, add more options
Allow builds without the opengl DISTRO_FEATURE by disabling DRI.

Also add new options for UXA (not default upstream, requires DRI) and udev
(enabled by default)

Finally remove a few obsolete dependencies.

(From OE-Core rev: bb9c01bd627cae9c037811c943ad38eebb2f8b25)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:20 +01:00
Ross Burton
0f34041f00 mesa: use distro_features_check to abort build without opengl feature
Stop mesa from building on distributions without the "opengl" DISTRO_FEATURE.

(From OE-Core rev: 05bacb69a3b0f3bbd9dd608855456c32b4007fde)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:20 +01:00
Tudor Florea
00b17ad18e kmod: avoid parallel-tests
Avoid parallel-tests for kmod as it remove
buildtest-TESTS and runtest-TESTS targets required by ptest.

(From OE-Core rev: e1a3ff7d455889e4c6b899227e8ca1919a443b22)

Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:20 +01:00
Paul Woegerer
fec8c28f45 lttng-modules: Update to version 2.3.0
(From OE-Core rev: df6943c29c0d31a78b0b2954dfe8ee6b97cefffe)

Signed-off-by: Paul Woegerer <paul_woegerer@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:19 +01:00
Paul Woegerer
e4d69254ac lttng-tools: Update to version 2.3.0
(From OE-Core rev: 09dd0be9bb6d8a300700de71658abcdeb21713db)

Signed-off-by: Paul Woegerer <paul_woegerer@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:19 +01:00
Paul Woegerer
341c085561 lttng-ust: Update to version 2.3.0
(From OE-Core rev: a7e60e7f3b8443106a767cee40954fa893905e07)

Signed-off-by: Paul Woegerer <paul_woegerer@mentor.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:19 +01:00
Chen Qi
8d82eae8fd ptest.bbclass: add cleandirs flag to do_install_ptest_base
The do_install_ptest_base task should have cleandirs flag, just like
the do_install task. The ${D}${PTEST_PATH} directory should be cleaned,
Otherwise, there would be similar errors like below if the
do_install_ptest_base task is rerun.

    ln: failed to create symbolic link `xxx': File exists

[YOCTO #5129]

(From OE-Core rev: 25885d3b4f679c33a514d858bc20b0e21aa63721)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:19 +01:00
Chen Qi
8905f7715d ptest.bbclass: fix error on ubuntu host
The do_install_ptest_base function uses 'type -t' command to check
whether do_install_ptest is a function and acts correspondingly.

However, the 'type' command is a shell builtin and its behavior is
not all the same across Linux distros. On ubuntu, if we use #!/bin/sh
as the interpreter for the scripts, as in the case of our intermediate
scripts, the '-t' option for the 'type' command is not supported. So
the check always fails and the do_install_ptest function, even if defined,
is not run.

The same problem also applies to the do_configure_ptest_base and the
do_compile_ptest_base functions.

This patch fixes this problem by avoiding using the 'type' builtin command.

[YOCTO #5128]

(From OE-Core rev: d5a4f031b460437e9501e4e65194ce94d3641130)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-10 15:57:19 +01:00
Saul Wold
0ca5d1fb38 yocto-bsp: remove apm as a default MACHINE_FEATURE
APM is not only obsolete, but also requires a kernel config enabled, which is not enabled by default

[YOCTO #5121]

(From meta-yocto rev: e25c43661f27b27e61aa7fae868237c1c60e3e25)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09 16:28:47 +01:00
Saul Wold
b04b6f96fd beagelboard.inc: remove apm as a MACHINE_FEATURE
APM is not only obsolete, but also requires a kernel config enabled, which is not enabled by default

[YOCTO #5121]

(From meta-yocto rev: 91e6d33135cc48aaf20a6138c050c6989af1f13a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09 16:28:47 +01:00
Robert Yang
87771db34c bitbake: runqueue.py: check whether multiple versions of the same PN are due to be built
There would be an race issue if we:

$ bitbake make-3.81 make-3.82

This because they are being built at the same time which would cause
unexpected problems, for example:

[snip]
ERROR: Package already staged (/path/to/tmp/sstate-control/manifest-qemux86-make.populate-sysroot)?!
ERROR: Function failed: sstate_task_postfunc
[snip]

Or there would be python's strack trace such as:

[snip]
 *** 0004:    mfile = open(manifest)
     0005:    entries = mfile.readlines()
     0006:    mfile.close()
     0007:
     0008:    for entry in entries:
Exception: IOError: [Errno 2] No such file or directory: xxx
[snip]

[YOCTO #5094]

We can quit earlier to avoid this kind of issue when two versions of the same PN
are going to be built since this isn't supported.

(Bitbake rev: ab377c00c33a2d296bfda1b0b6c2a62b29d1004f)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09 16:28:46 +01:00
Robert Yang
0583714a57 bitbake: providers.py: enhance the runtime debug degbug messgae
The runtime provider debug message is the same as the build time debug
message, make them different would be better.

[YOCTO #5067]

(Bitbake rev: 92b624cbc2711d3d859994099fb63918dfd0031a)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09 16:28:46 +01:00
Saul Wold
5c5a3bf19c qemu.inc: remove apm as a MACHINE_FEATURE
APM is not only obsolete, but requires a kernel config enabled and is meaningless for QEMU VM

[YOCTO #5121]

(From OE-Core rev: b0f8c47b1e808421f03308527beb8bde15644acd)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-09 16:28:46 +01:00
Richard Purdie
2ab1bf27f7 bitbake: prserv: Ensure data is committed
In exclusive mode, we need to complete the transaction for writes to make
it to the database. Therefore add sync calls to ensure this happens.

Autocommit mode is significantly (100 times) slower so caching the
data is of significant benefit.

(Bitbake rev: 4e55f7821786a59c2cd7dbd8bfa2a22f5f196e99)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-08 10:51:56 +01:00
Richard Purdie
31709ed0af cmake: set system name correctly
For unknown reasons, the cmake class is using SDK_OS as the
target system OS. This makes no sense but only shows up as a problem
when you try a different SDK OS. Fix it to use TARGET_OS which is
the correct thing to do. For the vast majority of users this will
make no difference.

(From OE-Core rev: 57be84259f0885865c85d7bac350979430b956b5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-08 10:51:56 +01:00
Khem Raj
6bf6708138 package.bbclass: skip already-stripped QA test if asked for
Some packages like grub have already stripped binaries e.g.

ERROR: QA Issue: File '/boot/grub/kernel.img' from grub was already
stripped, this will prevent future debugging!
ERROR: QA run found fatal errors. Please consider fixing them.

We would like to have a possibility to skip it using something like

INSANE_SKIP_${PN} = "already-stripped"

This adds the logic to do so

it acts at PN level and not at package level. so something like

INSANE_SKIP_${PN}-misc = "already-stripped" wont work.

(From OE-Core rev: 765982f4c050d9cd3eb608d630312da482c737c7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:56:27 +01:00
Richard Purdie
5ddec10f16 ghostscript: Add missing dependency to resolve parallel make issue
(From OE-Core rev: a24027321b99dffd79b1f0c009ce89f0be7cc384)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:56:27 +01:00
Bruce Ashfield
6d7062adbc meta-yocto-bsp: update h/w reference boards SRCREVs
Updating the machine SRCREVs for the hardware reference boards to the
latest 3.10.10 and ssh fixes.

(From meta-yocto rev: 2aa6cc9d64fc22a8d0f02c5cf97440b634ba5e36)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:53:46 +01:00
Liming Wang
6727d1d380 beagleboard: upgrade the kernel to 3.10.x
In 3.10.x linux kernel, uImage can't be compiled by default. But zImage
has been supported by the latest u-boot, so use zImage as the default kernel
image file. In u-boot command, use "bootz", instead of "bootm", to boot the kernel.

And add device tree files to support dtb in latest kernel.

(From meta-yocto rev: ff6b4ae23ccd14cefdb94c561160fbdc8344793d)

Signed-off-by: Liming Wang <liming.wang@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:53:46 +01:00
Kevin Hao
8102de6a8c mpc8315e-rdb: update to the 3.10 kernel
Update the mpc8315e-rdb to the latest available yocto kernel.
Build and boot test on mpc8315e-rdb board with core-image-sato.

(From meta-yocto rev: 67088a41b1f2222ffceba40928ebce87b9bff180)

Signed-off-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:53:46 +01:00
Darren Hart
310f89aee4 genericx86: Create a genericx86-common.inc base for the x86 BSPs
The genericx86 and genericx86-64 machines share a great deal in common
in terms of machine features, required packages, etc. Use a common
include file to simplify changes to both machine definitions and avoid
accidental omissions.

Replace the hard-coded XSERVER assignment with the XSERVER_IA32*
defines from ia32-base.inc.

(From meta-yocto rev: c70ee30da060173f51e8dba72069052ecff389b5)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: Ross Burton <ross.burton@intel.com>
Cc: yunguo.wei@windriver.com
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:18:34 +01:00
Otavio Salvador
82ddcb1ef5 uboot-config.bbclass: Allow choose of U-Boot config for machine
Some machines provide several possible configurations and until now
there was no easy way for user to override the default setting.

This class provides a system similar to PACKAGECONFIG but for
U-Boot. The format is:

UBOOT_CONFIG ??= <default>
UBOOT_CONFIG[foo] = "config,images"

There are two possible parameters:

 - config: it is used to set UBOOT_MACHINE
 - images: it is used to append onto IMAGE_FSTYPES

Below there's an usage example:

,----[ i.MX6Q SABRE AUTO based example ]
| UBOOT_CONFIG ??= "sd"
| UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
| UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
| UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
| UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
`----

User can, from local.conf or environment, use UBOOT_CONFIG=nand and
override the default setting, as:

,----[ Override example from command line ]
| MACHINE=imx6qsabreauto UBOOT_CONFIG=nand bitbake core-image-base
`----

(From OE-Core rev: 5dba521611d644357cf0a98d2e30dcf41777c6ef)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:15:57 +01:00
Darren Hart
e296958ab2 linux-firmware: Update SRCREV, pull in iwlwifi-7260 support
Fixes [YOCTO #5110]

Add support for the iwlwifi 7260 adapters. This creates a new package
and includes support in the default linux-firmware (everything) package.

Update the iwlwifi and radeon license checksums. Extensions to the
copyright date ranges were the only change to the LICENSE files.

(From OE-Core rev: bf4044ab8f9ef3be087996a559c54eeded1fb0c8)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Cc: yunguo.wei@windriver.com
Cc: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:53 +01:00
Bruce Ashfield
7bcec4aad1 kern-tools: support no author patches
Updating the kern-toosl SRCREV to pick up the following fix:

    previous versions of the kern-tools supported the ability to import a bare
    patch, with no From: Subject: or other identifying fields that are typically
    in a full commit.

    The same type of commit with kgit-s2q will prompt for a author ID, just
    as git-quilt-import does. In build system environment that leads to an
    infinite loop and the commit is never pushed.

    To fix this issue, we add an interactive flag (-i), that when passed the
    prompt based behaviour is used. When it isn't passed (the default), the following
    name and email will be used for the git author:

       GIT_AUTHOR_NAME="invalid_git config"
       GIT_AUTHOR_EMAIL="<unknown@unknown>"

    And a bare/incomplete header patch will be applied.

[YOCTO #5100]

(From OE-Core rev: cb0d8f8b9c59b351d11eef9c4951c4ce5601acb8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:53 +01:00
Bruce Ashfield
baba8cff48 kernel-yocto: improve error checking on non-git repos
While non-git kernel repos are not the preferred format for a kernel upstream,
they are supported. Depending on the creator of the archive the expanded
source directory name varies. If the recipe for the kernel doesn't properly
set S to the right value, a cryptic git error message is produced. We can
detect the situation and offer some advice on how to fix the issue.

A second check is also added in this commit for archive based kernel repos
which won't have a SRCREV to validate. If we have no SRCREV or SRCREV is
INVALID, we can exit the branch validation step immediately. This saves yet
another cryptic git error message and simplifies a custom tgz based recipe.

(From OE-Core rev: 0ebf67e8b4f7aaf259d7abac4af645070d846ec8)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:53 +01:00
Bruce Ashfield
fbd629745f linux-yocto/3.10: update meta SRCREV for beagleboard config changes
Updating the beagleboard configuration to match the 3.10 kernel changes.
With this, the beagle* boards boot out of the box, with no additional
changes required.

Simarpreet Singh <simar@linux.com>
(From OE-Core rev: 410a4db2faec084a0e918dfce9fcb6c54d2aeaaf)

Signed-off-by: Liming Wang <liming.wang@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:52 +01:00
Mihai Prica
ea8494350f bluez5: Rename tests package to testtools
Bluez5 ships some tools that can be used to test its
functionality.

The installation can be tested using "make check" and
this should be included in a ptest package.

[YB #5028]

(From OE-Core rev: 8c3cbaf3fa5eafa55f209100211bd5c124b8cfaa)

Signed-off-by: Mihai Prica <mihai.prica@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:52 +01:00
Mihai Prica
9d33660972 bluez5: Install the bluetooth library
Bluez5 doesn't install libbluetooth by default. This is required
by connman, ofono or other packages.

(From OE-Core rev: bf7415366646db7661795620fa1ab2e78b12d947)

Signed-off-by: Mihai Prica <mihai.prica@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:52 +01:00
Ross Burton
76e8678c2f systemd: split out systemd-binfmt as a separate package
If binfmt_misc was compiled as a module but isn't installed then systemd-binfmt
will put an automounter on /proc/sys/fs/binfmt_misc and when it attempts to
automount (e.g. when df is called) it can't find support for the filesystem, and
throws an error.

As binfmt_misc isn't commonly used, split this helper into it's own package, add
a dependency on kernel-module-binfmt-misc, and ensure the service gets started
when it's installed.

[ YOCTO #4863 ]

(From OE-Core rev: d42f7fc333495dc35227a6d1027492ab70f29b23)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:51 +01:00
Richard Purdie
9b84fc7cc2 lib/oeqa/qemurunner: Use a timeout in select() call
A 0 value to select.select() immediately returns with no timeout. This was
pegging the cpu at 100% for the python process which was bad and may be
contributing to some of the timeout problems.

Profile from -P of a core-image-minimal before:

    97526792 function calls (97525652 primitive calls) in 45.189 seconds

and after:

       50204 function calls (49064 primitive calls) in 17.318 seconds

Saving 97.5 million function calls has to be good :)

(From OE-Core rev: c0551436974d179df23418567f18a082830380f6)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:51 +01:00
Otavio Salvador
457e584e32 core-image-weston: Ensure wayland distro feature is enabled
(From OE-Core rev: 753be24f0bd63520b6840d1a68500f5bb38f086d)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:51 +01:00
Otavio Salvador
3dcff8c741 core-image-directfb: Use 'distro_features_check' class
(From OE-Core rev: 151c69a2f9f66bdd943f2db4d0b733c3d5091f4e)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:51 +01:00
Jonathan Liu
9f19820b82 resolvconf: specify configuration for systemd-tmpfiles --update
Running systemd-tmpfiles --update without specifying a configuration
file results in all tmpfiles.d configuration files being processed.

/usr/lib/tmpfiles.d/systemd.conf creates /run/nologin on boot to
prevent non-root users from logging in while the system is booting.
If systemd-tmpfiles --update is run after the system has started,
it will still create /run/nologin which would prevent non-root users
from logging in with the message "System is booting up.".

(From OE-Core rev: 24f9280c35001ff6c1d5a263fab41ae21a8056f3)

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:50 +01:00
Stefan Stanacar
41d1c2d630 lib/oeqa/runtime: add basic scanelf test
This uses scanelf from the pax-utils package and scans the binaries in PATH
for TEXTREL and RPATH information. For a sato image with pax-utils installed
it shows no output (which is good).

(From OE-Core rev: 629099ad66f5fa2814e5f7908b426149e8978e43)

Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:50 +01:00
Peter A. Bigot
1f6bd737d9 linux-firmware: package Marvell SD8787 firmware
Also split out Marvell license as separate package.

(From OE-Core rev: 64fbea5625488adc0dcccf2cf3c09880b9554a52)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:50 +01:00
Peter A. Bigot
9ebf8fb37d linux-firmware: correct name of Marvell license file
Follow upstream in changing the name of the license file for Marvell
firmware:

  commit 2e79e60b7e4771427327ed508fa27b90d841afcb
  Author: Bing Zhao <bzhao@marvell.com>
  Date:   Fri Jan 7 16:06:56 2011 -0800

    linux-firmware: use single license file for Marvell firmwares

    Libertas and mwl8k firmware images are under the same license.

    Signed-off-by: Bing Zhao <bzhao@marvell.com>
    Signed-off-by: Brian Cavagnolo <brian@cozybit.com>
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>

  :000000 100644 0000000... 3224e1b... A  LICENCE.Marvell
  :100644 000000 1fd8766... 0000000... D  LICENCE.libertas
  :100644 000000 3224e1b... 0000000... D  LICENCE.mwl8k
  :100644 100644 d0740ce... 35b82c8... M  WHENCE

(From OE-Core rev: 0947e1fd559ce3dbce3705d1f3267860f04e3348)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:49 +01:00
Richard Purdie
5963d24ec5 devshell: Don't corrupt the fakeroot variables
The devshell anonymous python fragment overwrites variables in the
datastore with their expanded versions. If this runs before the code
in allarch.bbclass which changes TARGET_OS, we can end up with different
directories in the fakeroot environment variables, some expanded with
the original TARGET_OS value.

The devshell code only needs to run before the task itself so we change
to trigger it to run at task execution time only using a flag.

[YOCTO #4795]

(From OE-Core rev: 56baf177cdf074929a090cc66a8b89d346a5d79c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:49 +01:00
Laurentiu Palcu
75a14923da run-postinsts: move script execution from S98 to S99 in rcS.d
Apparently, when opkg/dpkg and run-postinsts are installed in the same
time, opkg/dpkg postinstall overwrites the run-postinsts link in rcS.d.
This will make run-postinsts script useless and the delayed postinstalls
will not be run.

This issue happens only when 'package-management' is disabled and, in
the same time, dpkg/opkg ends up in the image: either pulled by some
dependency or manually installed.

With this patch, both opkg/dpkg and run-postinsts scripts will run but
the former will silently fail because the package metadata is removed from
the image since 'pacakge-management' is disabled.

[YOCTO #4484]

(From OE-Core rev: 882da38f226acc40c041155218549edad461b7d7)

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:49 +01:00
Jukka Rissanen
c734873022 connman: Ignore the NFS root network interface in init script
The connman init.d script tried to ignore all the network interfaces
if NFS root is configured. We should only ignore the interface
that is used by NFS root.

[YOCTO #4587]

(From OE-Core rev: 1838671b832015ae28c8c101e8b20afbbf4b3c98)

Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:49 +01:00
Mark Hatle
12223c038c package_rpm.bbclass: Fix no_recommendations and package_exclude
When the code was refactored to address review comments, the wrong version
was sent to the community.  Replace the $1 with ${target_rootfs}

Fix identified by: Yue Tao <yue.tao@windriver.com>

(From OE-Core rev: a04f4fe8db425f0ea87a67b5c72d61816b8d53e2)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:48 +01:00
Thomas Fitzsimmons
f24dda3de9 useradd: Handle users from a package being used in others
If there is a package A (TUNE_PKGARCH) which is depended upon by B which
is MACHINE_ARCH and you build B for machine X, then Y, the user isn't
present in the sysroot for machine Y since the useradd code is never
triggered.

The change ensures the code does get triggered and the user is present.

[YOCTO 4739]

(From OE-Core rev: 5871337da49f8cd1eaf53f7cd0aacc026dc7bcdb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:48 +01:00
Jason Wessel
0fa12e4466 kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling
This patch aims to fix the following two cases for the INITRAMFS generation.
  1) Allow an image recipe to specify a paired INITRAMFS recipe such
     as core-image-minimal-initramfs.  This allows building a base
     image which always generates the needed initramfs image in one step
  2) Allow building a single binary which contains a kernel and
     the initramfs.

A key requirement of the initramfs is to be able to add kernel
modules.  The current implementation of the INITRAMFS_IMAGE variable
has a circular dependency when using kernel modules in the initramfs
image.bb file that is caused by kernel.bbclass trying to build the
initramfs before the kernel's do_install rule.

The solution for this problem is to have the kernel's
do_bundle_initramfs_image task depend on the do_rootfs from the
INITRAMFS_IMAGE and not some intermediate point.  The image.bbclass
will also sets up dependencies to make the initramfs creation task run
last.

The code to bundle the kernel and initramfs together has been added.
At a high level, all it is doing is invoking a second compilation of
the kernel but changing the value of CONFIG_INITRAMFS_SOURCE to point
to the generated initramfs from the image recipe.

[YOCTO #4072]

(From OE-Core rev: 609d5a9ab9e58bb1c2bcc2145399fbc8b701b85a)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:04:47 +01:00
Richard Purdie
95d413d03f gcc-runtime: Add packaging for libgfortran (and also tweak others)
Add packaging for libgfortran and libquadmath as well as tweak the packaging
for libmudflap since it was broken.

(From OE-Core rev: 8a726d14a345ef35c6d8d8e369bf3691cee879bf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:56 +01:00
Richard Purdie
835b5c1504 local.conf.sample.extended: Add an example of how to enable fortran
Add an example of how to enable FORTRAN from local.conf. Make
it clear this is not officially supported.

[YOCTO #5091]

(From OE-Core rev: 8e971a457427ad3999ff3cf4c9be3c141d6bb7be)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:53 +01:00
Mihai Lindner
faed110e66 oeqa/runtime/scp: replace dd call
Use a file object to generate a our test file instead of calling `dd`;
removes dd's output from testimage.log, keeps unittest output clean.
Also remove unused imports.

(From OE-Core rev: 6ac48ffbab29a37b0eada533191878aeae3c91f0)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:23 +01:00
Mihai Lindner
fbb3e5e11f oeqa/utils/sshcontrol: tweak ssh options
Add ssh_options to be used, the same, by ssh and scp:
Decrease LogLevel to ERROR, to suppress warnings (e.g. ssh host
verifications, two warnings in case of having openssh with hpn patches);
We no longer presume that the first line is a warning.

(From OE-Core rev: 1f18d04eec03e586134b6d77ca1c6151c22353dd)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:23 +01:00
Mihai Lindner
f6fed84380 oeqa/oetest: oeRuntimeTest: enable long messages
Set longMessage to True for all tests derived from oeRuntimeTest, in
order to have somewhat info on assertions with cryptic or no messages.

(From OE-Core rev: e5196ebd6c652431a3b80cdc9f60b752401314f4)

Signed-off-by: Mihai Lindner <mihaix.lindner@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:23 +01:00
Peter A. Bigot
c33bf220de chkconfig: remove linuxstdbase symlinks
These links were moved to the lsb package because lsbsetup was to be
removed.  Subsequently an earlier patch that moved them to chkconfig was
also merged.  This results in duplicate installations that generate a
warning when building core-image-lsb under DISTRO=poky-lsb which enables the
linuxstdbase feature.

(From OE-Core rev: 77a0b904e18688ecf81a35544f3a5d6ba0aa61a8)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:23 +01:00
Lukas Bulwahn
06dc3a9712 boost: adding serialization to BOOST_LIBS
Since its initial commit from the classic OpenEmbedded repository
in 43e94412c4, serialization was
commented out, reportedly due to some issue with powerpc in the
boost version 1.36. In the classic OpenEmbedded repository,
serialization has been added again since version 1.4x.

The commit removes the outdated comment and adds serialization to
the BOOST_LIBS after testing `bitbake boost` and bitbaking some
applications using boost from the meta-ros layer for qemuppc.

(From OE-Core rev: a193d868a0c01a2998adb3e6eec9fc2748cca888)

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@oss.bmw-carit.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:22 +01:00
Ross Burton
78296aad82 eglinfo: add recipes for x11 and fb backends
eglinfo is a small utility for printing out information about EGL as well
as about its client APIs, OpenGL / OpenGLES 1.x / OpenGLES 2.x / OpenVG.

Recipe originally by Carlos Rafael Giani <dv@pseudoterminal.org>.

(From OE-Core rev: a8835cc014d761bf18a420b48c7c61cdfeded552)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:22 +01:00
Ross Burton
e4556e5a7b waf.bbclass: add waf build system class
Add a new build system class for waf.

(From OE-Core rev: 2b148b9e73f05af33ed1437358fa5322cf364651)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:22 +01:00
Chen Qi
43510e5c77 sysklogd: lower the ALTERNATIVE_PRIORITY in case of systemd
The sysklogd package hasn't got systemd support yet. So in case of
a systemd based system, the commands and corresponding configuration
files should have a lower priority than that of the busybox's syslogd
and klogd utilities. These two utilities from busybox have internal
systemd support if CONFIG_FEATURE_SYSTEMD is enabled. And that config
item is enabled by default.

[YOCTO #5066]

(From OE-Core rev: 45d18a1b6bcdc56d252b289d0d304b26799943b0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:21 +01:00
Chen Qi
101662d357 busybox-syslog: add configuration file /etc/syslog.conf
By default, busybox has CONFIG_FEATURE_SYSLOGD_CFG enabled, but it
doesn't ship a configuration file.

This patch adds a configuration file (/etc/syslog.conf) to the
busybox-syslog package. This configuration file mainly serves as a
placeholder now.

The advantages of this change are:
1. Make the users aware of the fact that the /etc/syslog.conf file
   will actually be parsed by busybox's syslogd utility. And configuring
   that file will change the logging behaviour.
2. In a systemd based system, this file will prevent the same configuration
   file provided by the sysklogd package from messing things up.

[YOCTO #5066]

(From OE-Core rev: b7f6688f0700a1575037362af7a8ca94dccce471)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:21 +01:00
Bian Naimeng
18dfcc5139 acpid: print message if rule directory is inexist
acpid: print message if rule directory is inexist

If rule directory is inexist, the acpid initscript will exit with success,
but the daemon will be not running.
Print message in this case to tell user that the daemon is not running.

(From OE-Core rev: 66a5d15cecdf4bd267dbae5f771ebf3768232481)

Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:21 +01:00
Bian Naimeng
f438140029 acpid: install events directory at default.
acpid: install events directory at default.

If rule directory "${sysconfdir}/acpi/events" is inexist,
the acpid initscript will exit with success, but the daemon will be not running.

(From OE-Core rev: 8a1c6e465a562b4653f4fb4af3a3845775785485)

Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:21 +01:00
Roy.Li
71d7751ade irda-utils: add init.d/irattach status command for LSB compliance
(From OE-Core rev: 1155b59ddc9c705039fed16bf70fcc182e551a9c)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:20 +01:00
Roy.Li
e0d66651c5 distcc: add init.d/distcc status command for LSB compliance
(From OE-Core rev: ab9694411840a9a78e9b6bbd24ef497be9f042b9)

Signed-off-by: Roy.Li <rongqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:20 +01:00
Peter A. Bigot
eb34e8d8ce pseudo: fix memory leak and missed privilege drop
qemu.bbclass adds PSEUDO_UNLOAD=1 in qemu_run_binary to avoid reference to
pseudo functions that may not exist in the target environment.  This patch
detects the addition of that variable within the environment to which the
call applies, even if not present in the parent environment.

As a side effect it fixes a memory leak.

[YOCTO #4843]

(From OE-Core rev: 9ea32ef507c914f906b3dcc0bb29813a4e0dacba)

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 23:03:20 +01:00
Christopher Larson
3dccd57360 bitbake: contrib/vim: merge changes from vim-bitbake repo
commit 00ca441614695b4261d8d4f31b7ef0e3e3784282
Merge: 8cc367d bb88c0f
Author: Christopher Larson <kergoth@gmail.com>
Date:   Thu Aug 22 16:42:42 2013 -0700

    Merge pull request #6 from staticshock/multi-line-strings

    Remove "keepend" and "excludenl" directives

commit bb88c0fd4ad2b7b9c8c4c73def2b3cb20c473ac3
Author: Anton Backer <olegov@gmail.com>
Date:   Sat Jul 13 01:24:15 2013 -0400

    Remove "keepend" and "excludenl" directives

    It looks like these were never actually used correctly, and were doing
    more harm than good. "keepend" on bbString, for instance, prevented
    proper nesting of ${@python} in strings. Similarly, a balanced pair of
    { } braces inside a shell function would force the function to terminate
    early if the closing brace was on its own line.

    So far I've seen absolutely no negative consequences from removing
    these, but a bunch of positive consequences.

    Fixes #1

commit 8cc367d01f4c699be5fcc072de59e6f2f14a138b
Merge: c58628c eec6b7f
Author: Christopher Larson <kergoth@gmail.com>
Date:   Thu Aug 22 09:46:46 2013 -0700

    Merge pull request #4 from staticshock/function-names

    Parse function names with nested vars

commit c58628ca517cd25985361fc0d27863521cc28a5d
Merge: dfb0f7c a890982
Author: Christopher Larson <kergoth@gmail.com>
Date:   Thu Aug 22 09:43:40 2013 -0700

    Merge pull request #5 from yoyko/master

    syntax: python expansion (${@...}) inside shell functions

commit a890982b7c33a6e363b12d6cb69e22b4bbc0f317
Author: Jozef Šiška <yoyo@ksp.sk>
Date:   Thu Aug 22 13:20:45 2013 +0200

    syntax: python expansion (${@...}) inside shell functions

    Signed-off-by: Jozef Šiška <jsiska@nuvotechnologies.com>

commit eec6b7f6f0472787929f424968f9a0d78ac4af08
Author: Anton Backer <olegov@gmail.com>
Date:   Fri Jul 12 22:16:01 2013 -0400

    Parse function names with nested vars

    For instance, pkg_postinst_${PN}

    Fixes #3

commit dfb0f7c0d51556448cba79b474b8c19b9cded9af
Author: Christopher Larson <chris_larson@mentor.com>
Date:   Fri Jun 1 18:57:13 2012 -0400

    syntax: add ?= flag def

    Signed-off-by: Christopher Larson <chris_larson@mentor.com>

commit 589a62a00709ca822a42327e7086008aba2d9933
Author: Christopher Larson <kergoth@gmail.com>
Date:   Fri Dec 9 22:25:47 2011 -0700

    ftplugin: set commentstring

    Signed-off-by: Christopher Larson <kergoth@gmail.com>

commit 7ffc80b3fb4ddf68cc5a69bdc63ab03d70c44f87
Author: Chris Larson <chris_larson@mentor.com>
Date:   Thu Jun 2 15:27:48 2011 -0700

    Handle +=/=+ for flags

    Signed-off-by: Chris Larson <chris_larson@mentor.com>

(Bitbake rev: f5f479bbe9b74622cd54c8d6ba8786661a3ae3e6)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:33 +01:00
Richard Purdie
b093b6c524 bitbake: knotty: Reduce refresh of footer
When displaying larger number of events the client can get caught up in displaying
the footer, then immediately overwriting it. To avoid this, wait for pauses
in the event stream before displaying the footer to give a slightly more
friendly feel to the UI.

(Bitbake rev: 5d706c7cd6ee8d83b67ff18312d4c8119bea8878)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:33 +01:00
Peter Kjellerstedt
373e209605 bitbake: bitbake: Ensure ${DATE} and ${TIME} are consistent
Due to the worker split the ${DATE} and ${TIME} variables could end up
with different values for different workers.

E.g., a task like do_rootfs that is run within a fakeroot environment
had a slightly different view of the time than another task that was not
fakerooted which made it impossible to correctly refer to the image
generated by do_rootfs from the other task.

(Bitbake rev: 756cc69ebf8bfe8455d0c90f288dd51be2499773)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:33 +01:00
Cristiana Voicu
c8957a4fbe bitbake: hob: remove custom image from the images list when not needed
Selected custom image recipes should be cleared from the combo the moment
you change your selection. The idea is to always perform the selection of
those images in the same way (i.e through the "Select from my image
recipes" option).

[YOCTO #5001]
(Bitbake rev: 94483ee5ae9f4051bccd660c4718c36564e17161)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:33 +01:00
Cristiana Voicu
b501b832eb bitbake: hob: limit the description size when a custom image is saved
[YOCTO #5003]
(Bitbake rev: 9aec9ee41d4d893325d9bf92b8a53f2e68e4973d)

Signed-off-by: Cristiana Voicu <cristiana.voicu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:32 +01:00
Khem Raj
da29dcce83 bitbake: newbb.vim: Use 'git config' instead of git-config
Newer versions of git do not have the '-' concatenated command

(Bitbake rev: 7adb05978b917e624016bae1700db23bd280b41a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:32 +01:00
Richard Purdie
e92b2dbfcd bitbake: data_smart: Move getVar expand cache handing to fix _remove operations
DISTRO_FEATURES_remove = "opengl" wasn't working as expected. The reason
turned out the be the indirect reference to opengl and the fact _remove was
operating on unexpanded data.

This patch rearranges some code to ensure we operate on expanded data
by moving the expand cache handing into getVarFlags instead of getVar.

(Bitbake rev: 181899bd9665f74f8d1b22d2453616ad30d26d9e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-06 22:31:32 +01:00
284 changed files with 4546 additions and 2805 deletions

View File

@@ -148,6 +148,8 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, quieterror
data.setVar("BB_WORKERCONTEXT", "1")
data.setVar("BUILDNAME", workerdata["buildname"])
data.setVar("DATE", workerdata["date"])
data.setVar("TIME", workerdata["time"])
bb.parse.siggen.set_taskdata(workerdata["hashes"], workerdata["hash_deps"], workerdata["sigchecksums"])
ret = 0
try:

View File

@@ -14,7 +14,7 @@ endif
au BufNewFile,BufRead *.{bb,bbappend,bbclass} set filetype=bitbake
" .inc
au BufNewFile,BufRead *.inc set filetype=bitbake
au BufNewFile,BufRead *.inc set filetype=bitbake
" .conf
au BufNewFile,BufRead *.conf

View File

@@ -1 +1,2 @@
set sts=4 sw=4 et
set cms=#%s

View File

@@ -15,7 +15,7 @@ if &compatible || v:version < 600
endif
fun! <SID>GetUserName()
let l:user_name = system("git-config --get user.name")
let l:user_name = system("git config --get user.name")
if v:shell_error
return "Unknow User"
else
@@ -23,7 +23,7 @@ fun! <SID>GetUserName()
endfun
fun! <SID>GetUserEmail()
let l:user_email = system("git-config --get user.email")
let l:user_email = system("git config --get user.email")
if v:shell_error
return "unknow@user.org"
else

View File

@@ -44,8 +44,8 @@ syn match bbArrayBrackets "[\[\]]" contained
" BitBake strings
syn match bbContinue "\\$"
syn region bbString matchgroup=bbQuote start=+"+ skip=+\\$+ excludenl end=+"+ contained keepend contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ excludenl end=+'+ contained keepend contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
syn region bbString matchgroup=bbQuote start=+"+ skip=+\\$+ end=+"+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
syn region bbString matchgroup=bbQuote start=+'+ skip=+\\$+ end=+'+ contained contains=bbTodo,bbContinue,bbVarDeref,bbVarPyValue,@Spell
" Vars definition
syn match bbExport "^export" nextgroup=bbIdentifier skipwhite
@@ -55,11 +55,11 @@ syn match bbVarDeref "${[a-zA-Z0-9\-_\.\/\+]\+}" contained
syn match bbVarEq "\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)" contained nextgroup=bbVarValue
syn match bbVarDef "^\(export\s*\)\?\([a-zA-Z0-9\-_\.\/\+]\+\(_[${}a-zA-Z0-9\-_\.\/\+]\+\)\?\)\s*\(:=\|+=\|=+\|\.=\|=\.\|?=\|??=\|=\)\@=" contains=bbExportFlag,bbIdentifier,bbVarDeref nextgroup=bbVarEq
syn match bbVarValue ".*$" contained contains=bbString,bbVarDeref,bbVarPyValue
syn region bbVarPyValue start=+${@+ skip=+\\$+ excludenl end=+}+ contained contains=@python
syn region bbVarPyValue start=+${@+ skip=+\\$+ end=+}+ contained contains=@python
" Vars metadata flags
syn match bbVarFlagDef "^\([a-zA-Z0-9\-_\.]\+\)\(\[[a-zA-Z0-9\-_\.]\+\]\)\@=" contains=bbIdentifier nextgroup=bbVarFlagFlag
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\)\@=" keepend excludenl contained contains=bbIdentifier nextgroup=bbVarEq
syn region bbVarFlagFlag matchgroup=bbArrayBrackets start="\[" end="\]\s*\(=\|+=\|=+\|?=\)\@=" contained contains=bbIdentifier nextgroup=bbVarEq
" Includes and requires
syn keyword bbInclude inherit include require contained
@@ -83,13 +83,16 @@ if exists("b:current_syntax")
unlet b:current_syntax
endif
syn keyword bbShFakeRootFlag fakeroot contained
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@shell
syn match bbShFuncDef "^\(fakeroot\s*\)\?\([0-9A-Za-z_${}-]\+\)\(python\)\@<!\(\s*()\s*\)\({\)\@=" contains=bbShFakeRootFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbShFuncRegion skipwhite
syn region bbShFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@shell
" Python value inside shell functions
syn region shDeref start=+${@+ skip=+\\$+ excludenl end=+}+ contained contains=@python
" BitBake python metadata
syn keyword bbPyFlag python contained
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" keepend contained contains=@python
syn match bbPyFuncDef "^\(python\s\+\)\([0-9A-Za-z_${}-]\+\)\?\(\s*()\s*\)\({\)\@=" contains=bbPyFlag,bbFunction,bbVarDeref,bbDelimiter nextgroup=bbPyFuncRegion skipwhite
syn region bbPyFuncRegion matchgroup=bbDelimiter start="{\s*$" end="^}\s*$" contained contains=@python
" BitBake 'def'd python functions
syn keyword bbPyDef def contained

View File

@@ -137,6 +137,24 @@ share common metadata between many packages.</para></listitem>
<para>In this example, <varname>B</varname> is now <literal>bvaladditionaldata</literal> and <varname>C</varname> is <literal>testcval</literal>. In contrast to the above appending and prepending operators, no additional space
will be introduced.</para>
</section>
<section>
<title>Appending and Prepending (override style syntax)</title>
<para><screen><varname>B</varname> = "bval"
<varname>B_append</varname> = " additional data"
<varname>C</varname> = "cval"
<varname>C_prepend</varname> = "additional data "</screen></para>
<para>This example results in <varname>B</varname> becoming <literal>bval additional data</literal>
and <varname>C</varname> becoming <literal>additional data cval</literal>. Note the spaces in the append.
Unlike the += operator, additional space is not automatically added. You must take steps to add space
yourself.</para>
</section>
<section>
<title>Removing (override style syntax)</title>
<para><screen><varname>FOO</varname> = "123 456 789 123456 123 456 123 456"
<varname>FOO_remove</varname> = "123"
<varname>FOO_remove</varname> = "456"</screen></para>
<para>In this example, <varname>FOO</varname> is now <literal>789 123456</literal>.</para>
</section>
<section>
<title>Conditional metadata set</title>
<para>OVERRIDES is a <quote>:</quote> separated variable containing each item you want to satisfy conditions. So, if you have a variable which is conditional on <quote>arm</quote>, and <quote>arm</quote> is in OVERRIDES, then the <quote>arm</quote> specific version of the variable is used rather than the non-conditional version. Example:</para>
@@ -536,7 +554,7 @@ options:
<example>
<title>Generating dependency graphs</title>
<para>BitBake is able to generate dependency graphs using the dot syntax. These graphs can be converted
to images using the <application>dot</application> application from <ulink url="http://www.graphviz.org">Graphviz</ulink>.
to images using the <application>dot</application> application from <ulink url="http://www.graphviz.org">Graphviz</ulink>.
Two files will be written into the current working directory, <emphasis>depends.dot</emphasis> containing dependency information at the package level and <emphasis>task-depends.dot</emphasis> containing a breakdown of the dependencies at the task level. To stop depending on common depends, one can use the <prompt>-I depend</prompt> to omit these from the graph. This can lead to more readable graphs. This way, <varname>DEPENDS</varname> from inherited classes such as base.bbclass can be removed from the graph.</para>
<screen><prompt>$ </prompt>bitbake -g blah</screen>
<screen><prompt>$ </prompt>bitbake -g -I virtual/whatever -I bloom blah</screen>

View File

@@ -69,9 +69,10 @@ class FuncFailed(Exception):
class TaskBase(event.Event):
"""Base class for task events"""
def __init__(self, t, d ):
def __init__(self, t, logfile, d):
self._task = t
self._package = d.getVar("PF", True)
self.logfile = logfile
event.Event.__init__(self)
self._message = "recipe %s: task %s: %s" % (d.getVar("PF", True), t, self.getDisplayName())
@@ -96,16 +97,11 @@ class TaskFailed(TaskBase):
"""Task execution failed"""
def __init__(self, task, logfile, metadata, errprinted = False):
self.logfile = logfile
self.errprinted = errprinted
super(TaskFailed, self).__init__(task, metadata)
super(TaskFailed, self).__init__(task, logfile, metadata)
class TaskFailedSilent(TaskBase):
"""Task execution failed (silently)"""
def __init__(self, task, logfile, metadata):
self.logfile = logfile
super(TaskFailedSilent, self).__init__(task, metadata)
def getDisplayName(self):
# Don't need to tell the user it was silent
return "Failed"
@@ -113,7 +109,7 @@ class TaskFailedSilent(TaskBase):
class TaskInvalid(TaskBase):
def __init__(self, task, metadata):
super(TaskInvalid, self).__init__(task, metadata)
super(TaskInvalid, self).__init__(task, None, metadata)
self._message = "No such task '%s'" % task
@@ -416,7 +412,7 @@ def _exec_task(fn, task, d, quieterr):
localdata.setVar('BB_LOGFILE', logfn)
localdata.setVar('BB_RUNTASK', task)
event.fire(TaskStarted(task, localdata), localdata)
event.fire(TaskStarted(task, logfn, localdata), localdata)
try:
for func in (prefuncs or '').split():
exec_func(func, localdata)
@@ -453,7 +449,7 @@ def _exec_task(fn, task, d, quieterr):
logger.debug(2, "Zero size logfn %s, removing", logfn)
bb.utils.remove(logfn)
bb.utils.remove(loglink)
event.fire(TaskSucceeded(task, localdata), localdata)
event.fire(TaskSucceeded(task, logfn, localdata), localdata)
if not localdata.getVarFlag(task, 'nostamp') and not localdata.getVarFlag(task, 'selfstamp'):
make_stamp(task, localdata)

View File

@@ -43,7 +43,7 @@ except ImportError:
logger.info("Importing cPickle failed. "
"Falling back to a very slow implementation.")
__cache_version__ = "146"
__cache_version__ = "147"
def getCacheFile(path, filename, data_hash):
return os.path.join(path, filename + "." + data_hash)

View File

@@ -117,14 +117,14 @@ class Command:
return False
def finishAsyncCommand(self, msg=None, code=None):
if msg:
if msg or msg == "":
bb.event.fire(CommandFailed(msg), self.cooker.event_data)
elif code:
bb.event.fire(CommandExit(code), self.cooker.event_data)
else:
bb.event.fire(CommandCompleted(), self.cooker.event_data)
self.currentAsyncCommand = None
self.cooker.finishcommand()
class CommandsSync:
"""
@@ -137,13 +137,13 @@ class CommandsSync:
"""
Trigger cooker 'shutdown' mode
"""
command.cooker.shutdown()
command.cooker.shutdown(False)
def stateStop(self, command, params):
def stateForceShutdown(self, command, params):
"""
Stop the cooker
"""
command.cooker.stop()
command.cooker.shutdown(True)
def getVariable(self, command, params):
"""

View File

@@ -61,7 +61,7 @@ class CollectionError(bb.BBHandledException):
"""
class state:
initial, parsing, running, shutdown, stop = range(5)
initial, parsing, running, shutdown, forceshutdown, stopped = range(6)
class SkippedPackage:
@@ -93,22 +93,6 @@ class BBCooker:
self.configuration = configuration
self.caches_array = []
caches_name_array = ['bb.cache:CoreRecipeInfo'] + configuration.extra_caches
# At least CoreRecipeInfo will be loaded, so caches_array will never be empty!
# This is the entry point, no further check needed!
for var in caches_name_array:
try:
module_name, cache_name = var.split(':')
module = __import__(module_name, fromlist=(cache_name,))
self.caches_array.append(getattr(module, cache_name))
except ImportError as exc:
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
self.data = None
self.loadConfigurationData()
# Take a lock so only one copy of bitbake can run against a given build
@@ -118,13 +102,6 @@ class BBCooker:
if not self.lock:
bb.fatal("Only one copy of bitbake should be run against a build directory")
#
# Special updated configuration we use for firing events
#
self.event_data = bb.data.createCopy(self.data)
bb.data.update_data(self.event_data)
bb.parse.init_parser(self.event_data)
# TOSTOP must not be set or our children will hang when they output
fd = sys.stdout.fileno()
if os.isatty(fd):
@@ -141,11 +118,24 @@ class BBCooker:
self.parser = None
def initConfigurationData(self):
worker = False
if not self.configuration.server_register_idlecallback:
worker = True
self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, worker)
self.state = state.initial
self.caches_array = []
caches_name_array = ['bb.cache:CoreRecipeInfo'] + self.configuration.extra_caches
# At least CoreRecipeInfo will be loaded, so caches_array will never be empty!
# This is the entry point, no further check needed!
for var in caches_name_array:
try:
module_name, cache_name = var.split(':')
module = __import__(module_name, fromlist=(cache_name,))
self.caches_array.append(getattr(module, cache_name))
except ImportError as exc:
logger.critical("Unable to import extra RecipeInfo '%s' from '%s': %s" % (cache_name, module_name, exc))
sys.exit("FATAL: Failed to import extra cache class '%s'." % cache_name)
self.databuilder = bb.cookerdata.CookerDataBuilder(self.configuration, False)
self.data = self.databuilder.data
def enableDataTracking(self):
@@ -162,6 +152,13 @@ class BBCooker:
self.data = self.databuilder.data
self.data_hash = self.databuilder.data_hash
#
# Special updated configuration we use for firing events
#
self.event_data = bb.data.createCopy(self.data)
bb.data.update_data(self.event_data)
bb.parse.init_parser(self.event_data)
def modifyConfigurationVar(self, var, val, default_file, op):
if op == "append":
self.appendConfigurationVar(var, val, default_file)
@@ -348,13 +345,7 @@ class BBCooker:
if pkgs_to_build[0] in set(ignore.split()):
bb.fatal("%s is in ASSUME_PROVIDED" % pkgs_to_build[0])
localdata = data.createCopy(self.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort)
taskdata.add_provider(localdata, self.recipecache, pkgs_to_build[0])
taskdata.add_unresolved(localdata, self.recipecache)
taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, None, self.configuration.abort)
targetid = taskdata.getbuild_id(pkgs_to_build[0])
fnid = taskdata.build_targets[targetid][0]
@@ -386,34 +377,44 @@ class BBCooker:
if data.getVarFlag( e, 'python', envdata ):
logger.plain("\npython %s () {\n%s}\n", e, data.getVar(e, envdata, 1))
def prepareTreeData(self, pkgs_to_build, task):
def buildTaskData(self, pkgs_to_build, task, abort):
"""
Prepare a runqueue and taskdata object for iteration over pkgs_to_build
"""
bb.event.fire(bb.event.TreeDataPreparationStarted(), self.data)
# If we are told to do the None task then query the default task
if (task == None):
# A task of None means use the default task
if task is None:
task = self.configuration.cmd
pkgs_to_build = self.checkPackages(pkgs_to_build)
fulltargetlist = self.checkPackages(pkgs_to_build)
localdata = data.createCopy(self.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(abort, skiplist=self.skiplist)
current = 0
runlist = []
for k in fulltargetlist:
taskdata.add_provider(localdata, self.recipecache, k)
current += 1
runlist.append([k, "do_%s" % task])
bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(fulltargetlist)), self.data)
taskdata.add_unresolved(localdata, self.recipecache)
bb.event.fire(bb.event.TreeDataPreparationCompleted(len(fulltargetlist)), self.data)
return taskdata, runlist, fulltargetlist
def prepareTreeData(self, pkgs_to_build, task):
"""
Prepare a runqueue and taskdata object for iteration over pkgs_to_build
"""
# We set abort to False here to prevent unbuildable targets raising
# an exception when we're just generating data
taskdata = bb.taskdata.TaskData(False, skiplist=self.skiplist)
taskdata, runlist, pkgs_to_build = self.buildTaskData(pkgs_to_build, task, False)
runlist = []
current = 0
for k in pkgs_to_build:
taskdata.add_provider(localdata, self.recipecache, k)
runlist.append([k, "do_%s" % task])
current += 1
bb.event.fire(bb.event.TreeDataPreparationProgress(current, len(pkgs_to_build)), self.data)
taskdata.add_unresolved(localdata, self.recipecache)
bb.event.fire(bb.event.TreeDataPreparationCompleted(len(pkgs_to_build)), self.data)
return runlist, taskdata
######## WARNING : this function requires cache_extra to be enabled ########
@@ -1047,7 +1048,7 @@ class BBCooker:
def buildFileIdle(server, rq, abort):
if abort or self.state == state.stop:
if abort or self.state == state.forceshutdown:
rq.finish_runqueue(True)
elif self.state == state.shutdown:
rq.finish_runqueue(False)
@@ -1076,15 +1077,8 @@ class BBCooker:
Attempt to build the targets specified
"""
# If we are told to do the NULL task then query the default task
if (task == None):
task = self.configuration.cmd
universe = ('universe' in targets)
targets = self.checkPackages(targets)
def buildTargetsIdle(server, rq, abort):
if abort or self.state == state.stop:
if abort or self.state == state.forceshutdown:
rq.finish_runqueue(True)
elif self.state == state.shutdown:
rq.finish_runqueue(False)
@@ -1108,23 +1102,13 @@ class BBCooker:
self.buildSetVars()
taskdata, runlist, fulltargetlist = self.buildTaskData(targets, task, self.configuration.abort)
buildname = self.data.getVar("BUILDNAME")
bb.event.fire(bb.event.BuildStarted(buildname, targets), self.data)
localdata = data.createCopy(self.data)
bb.data.update_data(localdata)
bb.data.expandKeys(localdata)
taskdata = bb.taskdata.TaskData(self.configuration.abort, skiplist=self.skiplist)
runlist = []
for k in targets:
taskdata.add_provider(localdata, self.recipecache, k)
runlist.append([k, "do_%s" % task])
taskdata.add_unresolved(localdata, self.recipecache)
bb.event.fire(bb.event.BuildStarted(buildname, fulltargetlist), self.data)
rq = bb.runqueue.RunQueue(self, self.data, self.recipecache, taskdata, runlist)
if universe:
if 'universe' in targets:
rq.rqdata.warn_multi_bb = True
self.configuration.server_register_idlecallback(buildTargetsIdle, rq)
@@ -1173,9 +1157,9 @@ class BBCooker:
if self.state == state.running:
return
if self.state in (state.shutdown, state.stop):
if self.state in (state.shutdown, state.forceshutdown):
self.parser.shutdown(clean=False, force = True)
sys.exit(1)
raise bb.BBHandledException()
if self.state != state.parsing:
self.parseConfiguration ()
@@ -1197,7 +1181,7 @@ class BBCooker:
if not self.parser.parse_next():
collectlog.debug(1, "parsing complete")
if self.parser.error:
sys.exit(1)
raise bb.BBHandledException()
self.show_appends_with_no_recipes()
self.handlePrefProviders()
self.recipecache.bbfile_priority = self.collection.collection_priorities(self.recipecache.pkg_fn)
@@ -1208,6 +1192,9 @@ class BBCooker:
def checkPackages(self, pkgs_to_build):
# Return a copy, don't modify the original
pkgs_to_build = pkgs_to_build[:]
if len(pkgs_to_build) == 0:
raise NothingToBuild
@@ -1243,18 +1230,19 @@ class BBCooker:
prserv.serv.auto_shutdown(self.data)
bb.event.fire(CookerExit(), self.event_data)
def shutdown(self):
self.state = state.shutdown
def shutdown(self, force = False):
if force:
self.state = state.forceshutdown
else:
self.state = state.shutdown
def stop(self):
self.state = state.stop
def finishcommand(self):
self.state = state.initial
def initialize(self):
self.state = state.initial
self.initConfigurationData()
def reset(self):
self.state = state.initial
self.loadConfigurationData()
def server_main(cooker, func, *args):
@@ -1482,7 +1470,7 @@ class Feeder(multiprocessing.Process):
continue
class Parser(multiprocessing.Process):
def __init__(self, jobs, results, quit, init):
def __init__(self, jobs, results, quit, init, profile):
self.jobs = jobs
self.results = results
self.quit = quit
@@ -1490,8 +1478,28 @@ class Parser(multiprocessing.Process):
multiprocessing.Process.__init__(self)
self.context = bb.utils.get_context().copy()
self.handlers = bb.event.get_class_handlers().copy()
self.profile = profile
def run(self):
if not self.profile:
self.realrun()
return
try:
import cProfile as profile
except:
import profile
prof = profile.Profile()
try:
profile.Profile.runcall(prof, self.realrun)
finally:
logfile = "profile-parse-%s.log" % multiprocessing.current_process().name
prof.dump_stats(logfile)
bb.utils.process_profilelog(logfile)
print("Raw profiling information saved to %s and processed statistics to %s.processed" % (logfile, logfile))
def realrun(self):
if self.init:
self.init()
@@ -1592,7 +1600,7 @@ class CookerParser(object):
self.feeder = Feeder(self.willparse, self.jobs, self.feeder_quit)
self.feeder.start()
for i in range(0, self.num_processes):
parser = Parser(self.jobs, self.result_queue, self.parser_quit, init)
parser = Parser(self.jobs, self.result_queue, self.parser_quit, init, self.cooker.configuration.profile)
parser.start()
self.processes.append(parser)

View File

@@ -59,7 +59,7 @@ def init():
def init_db(parent = None):
"""Return a new object representing the Bitbake data,
optionally based on an existing object"""
if parent:
if parent is not None:
return parent.createCopy()
else:
return _dict_type()
@@ -148,7 +148,7 @@ def expandKeys(alterdata, readdata = None):
readdata = alterdata
todolist = {}
for key in keys(alterdata):
for key in alterdata:
if not '${' in key:
continue
@@ -285,20 +285,24 @@ def update_data(d):
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize(parent = True)
def build_dependencies(key, keys, shelldeps, vardepvals, d):
def build_dependencies(key, keys, shelldeps, varflagsexcl, d):
deps = set()
vardeps = d.getVarFlag(key, "vardeps", True)
try:
if key[-1] == ']':
vf = key[:-1].split('[')
value = d.getVarFlag(vf[0], vf[1], False)
else:
value = d.getVar(key, False)
parser = d.expandWithRefs(value, key)
deps |= parser.references
deps = deps | (keys & parser.execs)
return deps, value
varflags = d.getVarFlags(key, ["vardeps", "vardepvalue", "vardepsexclude"]) or {}
vardeps = varflags.get("vardeps")
value = d.getVar(key, False)
if key in vardepvals:
value = d.getVarFlag(key, "vardepvalue", True)
elif d.getVarFlag(key, "func"):
if d.getVarFlag(key, "python"):
if "vardepvalue" in varflags:
value = varflags.get("vardepvalue")
elif varflags.get("func"):
if varflags.get("python"):
parsedvar = d.expandWithRefs(value, key)
parser = bb.codeparser.PythonParser(key, logger)
if parsedvar.value and "\t" in parsedvar.value:
@@ -320,19 +324,16 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
deps = deps | (keys & parser.execs)
# Add varflags, assuming an exclusion list is set
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
if varflagsexcl:
varfdeps = []
varflags = d.getVarFlags(key)
if varflags:
for f in varflags:
if f not in varflagsexcl:
varfdeps.append('%s[%s]' % (key, f))
for f in varflags:
if f not in varflagsexcl:
varfdeps.append('%s[%s]' % (key, f))
if varfdeps:
deps |= set(varfdeps)
deps |= set((vardeps or "").split())
deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split())
deps -= set(varflags.get("vardepsexclude", "").split())
except Exception as e:
raise bb.data_smart.ExpansionError(key, None, e)
return deps, value
@@ -341,16 +342,16 @@ def build_dependencies(key, keys, shelldeps, vardepvals, d):
def generate_dependencies(d):
keys = set(key for key in d.keys() if not key.startswith("__"))
shelldeps = set(key for key in keys if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport"))
vardepvals = set(key for key in keys if d.getVarFlag(key, "vardepvalue"))
keys = set(key for key in d if not key.startswith("__"))
shelldeps = set(key for key in d.getVar("__exportlist", False) if d.getVarFlag(key, "export") and not d.getVarFlag(key, "unexport"))
varflagsexcl = d.getVar('BB_SIGNATURE_EXCLUDE_FLAGS', True)
deps = {}
values = {}
tasklist = d.getVar('__BBTASKS') or []
for task in tasklist:
deps[task], values[task] = build_dependencies(task, keys, shelldeps, vardepvals, d)
deps[task], values[task] = build_dependencies(task, keys, shelldeps, varflagsexcl, d)
newdeps = deps[task]
seen = set()
while newdeps:
@@ -359,7 +360,7 @@ def generate_dependencies(d):
newdeps = set()
for dep in nextdeps:
if dep not in deps:
deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, vardepvals, d)
deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, varflagsexcl, d)
newdeps |= deps[dep]
newdeps -= seen
#print "For %s: %s" % (task, str(deps[task]))

View File

@@ -40,7 +40,7 @@ logger = logging.getLogger("BitBake.Data")
__setvar_keyword__ = ["_append", "_prepend", "_remove"]
__setvar_regexp__ = re.compile('(?P<base>.*?)(?P<keyword>_append|_prepend|_remove)(_(?P<add>.*))?$')
__expand_var_regexp__ = re.compile(r"\${[^{}]+}")
__expand_var_regexp__ = re.compile(r"\${[^{}@]+}")
__expand_python_regexp__ = re.compile(r"\${@.+?}")
def infer_caller_details(loginfo, parent = False, varval = True):
@@ -94,9 +94,13 @@ class VariableParse:
if self.varname and key:
if self.varname == key:
raise Exception("variable %s references itself!" % self.varname)
var = self.d.getVar(key, True)
if key in self.d.expand_cache:
varparse = self.d.expand_cache[key]
var = varparse.value
else:
var = self.d.getVar(key, True)
self.references.add(key)
if var is not None:
self.references.add(key)
return var
else:
return match.group()
@@ -505,12 +509,7 @@ class DataSmart(MutableMapping):
self._seen_overrides[override].add( var )
def getVar(self, var, expand=False, noweakdefault=False):
value = self.getVarFlag(var, "_content", False, noweakdefault)
# Call expand() separately to make use of the expand cache
if expand and value:
return self.expand(value, var)
return value
return self.getVarFlag(var, "_content", expand, noweakdefault)
def renameVar(self, key, newkey, **loginfo):
"""
@@ -578,17 +577,30 @@ class DataSmart(MutableMapping):
if flag == "defaultval" and '_' in var:
self._setvar_update_overrides(var)
if flag == "unexport" or flag == "export":
if not "__exportlist" in self.dict:
self._makeShadowCopy("__exportlist")
if not "_content" in self.dict["__exportlist"]:
self.dict["__exportlist"]["_content"] = set()
self.dict["__exportlist"]["_content"].add(var)
def getVarFlag(self, var, flag, expand=False, noweakdefault=False):
local_var = self._findVar(var)
value = None
if local_var:
if local_var is not None:
if flag in local_var:
value = copy.copy(local_var[flag])
elif flag == "_content" and "defaultval" in local_var and not noweakdefault:
value = copy.copy(local_var["defaultval"])
if expand and value:
value = self.expand(value, None)
if value and flag == "_content" and local_var and "_removeactive" in local_var:
# Only getvar (flag == _content) hits the expand cache
cachename = None
if flag == "_content":
cachename = var
else:
cachename = var + "[" + flag + "]"
value = self.expand(value, cachename)
if value is not None and flag == "_content" and local_var is not None and "_removeactive" in local_var:
filtered = filter(lambda v: v not in local_var["_removeactive"],
value.split(" "))
value = " ".join(filtered)
@@ -636,16 +648,17 @@ class DataSmart(MutableMapping):
self.varhistory.record(**loginfo)
self.dict[var][i] = flags[i]
def getVarFlags(self, var):
def getVarFlags(self, var, expand = False, internalflags=False):
local_var = self._findVar(var)
flags = {}
if local_var:
for i in local_var:
if i.startswith("_"):
if i.startswith("_") and not internalflags:
continue
flags[i] = local_var[i]
if expand and i in expand:
flags[i] = self.expand(flags[i], var + "[" + i + "]")
if len(flags) == 0:
return None
return flags
@@ -751,13 +764,16 @@ class DataSmart(MutableMapping):
for key in keys:
if key in config_whitelist:
continue
value = d.getVar(key, False) or ""
data.update({key:value})
varflags = d.getVarFlags(key)
varflags = d.getVarFlags(key, internalflags = True)
if not varflags:
continue
for f in varflags:
if f == "_content":
continue
data.update({'%s[%s]' % (key, f):varflags[f]})
for key in ["__BBTASKS", "__BBANONFUNCS", "__BBHANDLERS"]:

View File

@@ -341,7 +341,7 @@ def filterProvidersRunTime(providers, item, cfgData, dataCache):
if numberPreferred > 1:
logger.error("Trying to resolve runtime dependency %s resulted in conflicting PREFERRED_PROVIDER entries being found.\nThe providers found were: %s\nThe PREFERRED_PROVIDER entries resulting in this conflict were: %s", item, preferred, preferred_vars)
logger.debug(1, "sorted providers for %s are: %s", item, eligible)
logger.debug(1, "sorted runtime providers for %s are: %s", item, eligible)
return eligible, numberPreferred

View File

@@ -696,6 +696,14 @@ class RunQueueData:
prov_list[prov].append(fn)
for prov in prov_list:
if len(prov_list[prov]) > 1 and prov not in self.multi_provider_whitelist:
seen_pn = []
# If two versions of the same PN are being built its fatal, we don't support it.
for fn in prov_list[prov]:
pn = self.dataCache.pkg_fn[fn]
if pn not in seen_pn:
seen_pn.append(pn)
else:
bb.fatal("Multiple versions of %s are due to be built (%s). Only one version of a given PN should be built in any given build. You likely need to set PREFERRED_VERSION_%s to select the correct version or don't depend on multiple versions." % (pn, " ".join(prov_list[prov]), pn))
msg = "Multiple .bb files are due to be built which each provide %s (%s)." % (prov, " ".join(prov_list[prov]))
if self.warn_multi_bb:
logger.warn(msg)
@@ -703,7 +711,6 @@ class RunQueueData:
msg += "\n This usually means one provides something the other doesn't and should."
logger.error(msg)
# Create a whitelist usable by the stamp checks
stampfnwhitelist = []
for entry in self.stampwhitelist.split():
@@ -853,6 +860,8 @@ class RunQueue:
"logdefaultdomain" : bb.msg.loggerDefaultDomains,
"prhost" : self.cooker.prhost,
"buildname" : self.cfgData.getVar("BUILDNAME", True),
"date" : self.cfgData.getVar("DATE", True),
"time" : self.cfgData.getVar("TIME", True),
}
worker.stdin.write("<cookerconfig>" + pickle.dumps(self.cooker.configuration) + "</cookerconfig>")
@@ -1316,9 +1325,10 @@ class RunQueueExecuteTasks(RunQueueExecute):
if self.rqdata.taskData.abort:
self.rq.state = runQueueCleanUp
def task_skip(self, task):
def task_skip(self, task, reason):
self.runq_running[task] = 1
self.runq_buildable[task] = 1
bb.event.fire(runQueueTaskSkipped(task, self.stats, self.rq, reason), self.cfgData)
self.task_completeoutright(task)
self.stats.taskCompleted()
self.stats.taskSkipped()
@@ -1343,13 +1353,13 @@ class RunQueueExecuteTasks(RunQueueExecute):
if task in self.rq.scenequeue_covered:
logger.debug(2, "Setscene covered task %s (%s)", task,
self.rqdata.get_user_idstring(task))
self.task_skip(task)
self.task_skip(task, "covered")
return True
if self.rq.check_stamp_task(task, taskname, cache=self.stampcache):
logger.debug(2, "Stamp current task %s (%s)", task,
self.rqdata.get_user_idstring(task))
self.task_skip(task)
self.task_skip(task, "existing")
return True
taskdep = self.rqdata.dataCache.task_deps[fn]
@@ -1636,6 +1646,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
def task_complete(self, task):
self.stats.taskCompleted()
bb.event.fire(sceneQueueTaskCompleted(task, self.stats, self.rq), self.cfgData)
self.task_completeoutright(task)
def task_fail(self, task, result):
@@ -1819,6 +1830,19 @@ class runQueueTaskCompleted(runQueueEvent):
Event notifing a task completed
"""
class sceneQueueTaskCompleted(sceneQueueEvent):
"""
Event notifing a setscene task completed
"""
class runQueueTaskSkipped(runQueueEvent):
"""
Event notifing a task was skipped
"""
def __init__(self, task, stats, rq, reason):
runQueueEvent.__init__(self, task, stats, rq)
self.reason = reason
class runQueuePipe():
"""
Abstraction for a pipe between a worker thread and the server

View File

@@ -113,7 +113,7 @@ class ProcessServer(Process, BaseImplServer):
self.event_queue.close()
bb.event.unregister_UIHhandler(self.event_handle.value)
self.command_channel.close()
self.cooker.stop()
self.cooker.shutdown(True)
self.idle_commands(.1)
def idle_commands(self, delay, fds = []):

View File

@@ -169,51 +169,6 @@ class BitBakeXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
self.end_headers()
self.wfile.write(response)
class BitBakeUIEventServer(threading.Thread):
class EventAdapter():
"""
Adapter to wrap our event queue since the caller (bb.event) expects to
call a send() method, but our actual queue only has put()
"""
def __init__(self, notify):
self.queue = []
self.notify = notify
self.qlock = threading.Lock()
def send(self, event):
self.qlock.acquire()
self.queue.append(event)
self.qlock.release()
self.notify.set()
def get(self):
self.qlock.acquire()
if len(self.queue) == 0:
self.qlock.release()
return None
e = self.queue.pop(0)
if len(self.queue) == 0:
self.notify.clear()
self.qlock.release()
return e
def __init__(self, connection):
self.connection = connection
self.notify = threading.Event()
self.event = BitBakeUIEventServer.EventAdapter(self.notify)
self.quit = False
threading.Thread.__init__(self)
def terminateServer(self):
self.quit = True
def run(self):
while not self.quit:
self.notify.wait(0.1)
evt = self.event.get()
if evt:
self.connection.event.sendpickle(pickle.dumps(evt))
class XMLRPCProxyServer(BaseImplServer):
""" not a real working server, but a stub for a proxy server connection

View File

@@ -91,8 +91,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
basehash = {}
for task in tasklist:
data = d.getVar(task, False)
lookupcache[task] = data
data = lookupcache[task]
if data is None:
bb.error("Task %s from %s seems to be empty?!" % (task, fn))
@@ -115,16 +114,8 @@ class SignatureGeneratorBasic(SignatureGenerator):
alldeps = sorted(seen)
for dep in alldeps:
data = data + dep
if dep in lookupcache:
var = lookupcache[dep]
elif dep[-1] == ']':
vf = dep[:-1].split('[')
var = d.getVarFlag(vf[0], vf[1], False)
lookupcache[dep] = var
else:
var = d.getVar(dep, False)
lookupcache[dep] = var
if var:
var = lookupcache[dep]
if var is not None:
data = data + str(var)
self.basehash[fn + "." + task] = hashlib.md5(data).hexdigest()
taskdeps[task] = alldeps

View File

@@ -70,9 +70,11 @@ class SaveImageDialog (CrumbsDialog):
sub_label.set_alignment(0, 0)
sub_label.set_markup("The description should be less than 150 characters long.")
self.description_entry = gtk.TextView()
self.description_entry.get_buffer().set_text(self.description_field)
description_buffer = self.description_entry.get_buffer()
description_buffer.set_text(self.description_field)
description_buffer.connect("insert-text", self.limit_description_length)
self.description_entry.set_wrap_mode(gtk.WRAP_WORD)
self.description_entry.set_size_request(350,150)
self.description_entry.set_size_request(350,50)
sub_vbox.pack_start(label, expand=False, fill=False)
sub_vbox.pack_start(sub_label, expand=False, fill=False)
sub_vbox.pack_start(self.description_entry, expand=False, fill=False)
@@ -108,6 +110,13 @@ class SaveImageDialog (CrumbsDialog):
self.show_all()
def limit_description_length(self, textbuffer, iter, text, length):
buffer_bounds = textbuffer.get_bounds()
entire_text = textbuffer.get_text(*buffer_bounds)
entire_text += text
if len(entire_text)>150 or text=="\n":
textbuffer.emit_stop_by_name("insert-text")
def name_entry_changed(self, entry):
text = entry.get_text()
if text == '':

View File

@@ -440,12 +440,12 @@ class HobHandler(gobject.GObject):
self.building = False
def cancel_parse(self):
self.runCommand(["stateStop"])
self.runCommand(["stateForceShutdown"])
def cancel_build(self, force=False):
if force:
# Force the cooker to stop as quickly as possible
self.runCommand(["stateStop"])
self.runCommand(["stateForceShutdown"])
else:
# Wait for tasks to complete before shutting down, this helps
# leave the workdir in a usable state

View File

@@ -387,6 +387,10 @@ class ImageConfigurationPage (HobPage):
selected_image = self.__dummy_image__
self.update_image_combo(self.builder.recipe_model, None)
dialog.destroy()
else:
if self.custom_image_selected:
self.custom_image_selected = None
self.update_image_combo(self.builder.recipe_model, selected_image)
if not selected_image or (selected_image == self.__dummy_image__):
self.builder.window_sensitive(True)

View File

@@ -314,7 +314,7 @@ def main(server, eventHandler, params):
break
if shutdown == 1:
print("\nSecond Keyboard Interrupt, stopping...\n")
_, error = server.runCommand(["stateStop"])
_, error = server.runCommand(["stateForceShutdown"])
if error:
print('Unable to cleanly stop: %s' % error)
if shutdown == 0:

View File

@@ -117,5 +117,5 @@ def main (server, eventHandler, params):
except KeyboardInterrupt:
pass
finally:
server.runCommand(["stateStop"])
server.runCommand(["stateForceShutdown"])

View File

@@ -306,8 +306,10 @@ def main(server, eventHandler, params, tf = TerminalFilter):
while True:
try:
termfilter.updateFooter()
event = eventHandler.waitEvent(0.25)
event = eventHandler.waitEvent(0)
if event is None:
termfilter.updateFooter()
event = eventHandler.waitEvent(0.25)
if event is None:
if main.shutdown > 1:
break
@@ -403,8 +405,9 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if isinstance(event, bb.command.CommandFailed):
return_value = event.exitcode
errors = errors + 1
logger.error("Command execution failed: %s", event.error)
if event.error:
errors = errors + 1
logger.error("Command execution failed: %s", event.error)
main.shutdown = 2
continue
if isinstance(event, bb.command.CommandExit):
@@ -497,7 +500,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
main.shutdown = 2
if not params.observe_only and main.shutdown == 1:
print("\nSecond Keyboard Interrupt, stopping...\n")
_, error = server.runCommand(["stateStop"])
_, error = server.runCommand(["stateForceShutdown"])
if error:
logger.error("Unable to cleanly stop: %s" % error)
if not params.observe_only and main.shutdown == 0:
@@ -518,7 +521,7 @@ def main(server, eventHandler, params, tf = TerminalFilter):
if warnings:
summary += pluralise("\nSummary: There was %s WARNING message shown.",
"\nSummary: There were %s WARNING messages shown.", warnings)
if return_value:
if return_value and errors:
summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.",
"\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors)
if summary:

View File

@@ -350,7 +350,7 @@ class NCursesUI:
exitflag = True
if shutdown == 1:
mw.appendText("Second Keyboard Interrupt, stopping...\n")
_, error = server.runCommand(["stateStop"])
_, error = server.runCommand(["stateForceShutdown"])
if error:
print("Unable to cleanly stop: %s" % error)
if shutdown == 0:

View File

@@ -532,6 +532,8 @@ def approved_variables():
Determine and return the list of whitelisted variables which are approved
to remain in the envrionment.
"""
if 'BB_PRESERVE_ENV' in os.environ:
return os.environ.keys()
approved = []
if 'BB_ENV_WHITELIST' in os.environ:
approved = os.environ['BB_ENV_WHITELIST'].split()

View File

@@ -43,6 +43,10 @@ class PRTable(object):
continue
raise exc
def sync(self):
self.conn.commit()
self._execute("BEGIN EXCLUSIVE TRANSACTION")
def _getValueHist(self, version, pkgarch, checksum):
data=self._execute("SELECT value FROM %s WHERE version=? AND pkgarch=? AND checksum=?;" % self.table,
(version, pkgarch, checksum))

View File

@@ -74,7 +74,7 @@ class PRServer(SimpleXMLRPCServer):
except:
self.handle_error(request, client_address)
self.shutdown_request(request)
self.table.sync()
def process_request(self, request, client_address):
self.requestqueue.put((request, client_address))
@@ -120,6 +120,7 @@ class PRServer(SimpleXMLRPCServer):
while not self.quit:
self.handle_request()
self.table.sync()
logger.info("PRServer: stopping...")
self.server_close()
return

View File

@@ -91,7 +91,9 @@
<para>
If you use BitBake to generate the ADT Installer tarball, you must
<filename>source</filename> the environment setup script
(<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>)
(<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
or
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
located in the Source Directory before running the
BitBake command that creates the tarball.
</para>
@@ -549,8 +551,12 @@
<para>
Remember, before using any <filename>bitbake</filename> command, you
must source the <filename>&OE_INIT_PATH;</filename> script located in
the Source Directory and you must make sure your
must source the build environment setup script
(i.e.
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
or
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>)
located in the Source Directory and you must make sure your
<filename>conf/local.conf</filename> variables are correct.
In particular, you need to be sure the
<ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>

View File

@@ -1812,6 +1812,8 @@
environment, you must build the tool using BitBake.
Thus, the environment must be set up using the
<ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
or
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
script found in the
<link linkend='build-directory'>Build Directory</link>.
The following commands build and invoke <filename>menuconfig</filename> assuming the
@@ -2924,6 +2926,8 @@
<para>
This section describes a few tasks that involve packages:
<itemizedlist>
<listitem><para>Excluding packages from an image
</para></listitem>
<listitem><para>Incrementing a package revision number
</para></listitem>
<listitem><para>Handling a package name alias
@@ -2938,6 +2942,50 @@
</itemizedlist>
</para>
<section id='excluding-packages-from-an-image'>
<title>Excluding Packages from an Image</title>
<para>
You might find it necessary to prevent specific packages
from being installed into an image.
If so, you can use several variables to direct the build
system to essentially ignore installing recommended packages
or to not install a package at all.
</para>
<para>
The following list introduces variables you can use to
prevent packages from being installed into your image.
Each of these variables only works with IPK and RPM
package types.
Support for Debian packages does not exist.
Also, you can use these variables from your
<filename>local.conf</filename> file or attach them to a
specific image recipe by using a recipe name override.
For more detail on the variables, see the descriptions in the
Yocto Project Reference Manual's glossary chapter.
<itemizedlist>
<listitem><para><ulink url='&YOCTO_DOCS_REF_URL;#var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></ulink>:
Use this variable to specify "recommended-only"
packages that you do not want installed.
</para></listitem>
<listitem><para><ulink url='&YOCTO_DOCS_REF_URL;#var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></ulink>:
Use this variable to prevent all "recommended-only"
packages from being installed.
</para></listitem>
<listitem><para><ulink url='&YOCTO_DOCS_REF_URL;#var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></ulink>:
Use this variable to prevent specific packages from
being installed regardless of whether they are
"recommended-only" or not.
You need to realize that the build process could
fail with an error when you
prevent the installation of a package whose presence
is required by an installed package.
</para></listitem>
</itemizedlist>
</para>
</section>
<section id='incrementing-a-package-revision-number'>
<title>Incrementing a Package Revision Number</title>
@@ -4980,15 +5028,15 @@
BBFILES ?= ""
BBLAYERS ?= " \
##COREBASE##/meta \
##COREBASE##/meta-yocto \
##COREBASE##/meta-yocto-bsp \
##COREBASE##/meta-mylayer \
##OEROOT##/meta \
##OEROOT##/meta-yocto \
##OEROOT##/meta-yocto-bsp \
##OEROOT##/meta-mylayer \
"
BBLAYERS_NON_REMOVABLE ?= " \
##COREBASE##/meta \
##COREBASE##/meta-yocto \
##OEROOT##/meta \
##OEROOT##/meta-yocto \
"
</literallayout>
Creating and providing an archive of the

View File

@@ -156,7 +156,7 @@
"<ulink url='&YOCTO_DOCS_BSP_URL;#bsp-layers'>BSP Layers</ulink>" section in the
Yocto Project Board Support Package (BSP) Developer's Guide.</para>
<note>Four BSPs exist that are part of the
Yocto Project release: <filename>atom-pc</filename>, <filename>beagleboard</filename>,
Yocto Project release: <filename>genericx86</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 <link linkend='source-directory'>Source Directory</link>.

View File

@@ -509,7 +509,9 @@
This term refers to the area used by the OpenEmbedded build system for builds.
The area is created when you <filename>source</filename> the setup
environment script that is found in the Source Directory
(i.e. <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>).
(i.e. <ulink url='&YOCTO_DOCS_REF_URL;#structure-core-script'><filename>&OE_INIT_FILE;</filename></ulink>
or
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>).
The <ulink url='&YOCTO_DOCS_REF_URL;#var-TOPDIR'><filename>TOPDIR</filename></ulink>
variable points to the Build Directory.</para>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because it is too large Load Diff

View File

@@ -682,9 +682,11 @@
<para>
Yes - you can easily do this.
When you use BitBake to build an image, all the build output
goes into the directory created when you source the
goes into the directory created when you run the
build environment setup script (i.e.
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
setup script.
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
By default, this <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
is named <filename>build</filename> but can be named
anything you want.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -230,6 +230,30 @@
</para>
</section>
</section>
<section id='1.3-linux-kernel-naming'>
<title>Linux Kernel Naming</title>
<para>
The naming scheme for kernel output binaries has been changed to
now include
<link linkend='var-PE'><filename>PE</filename></link> as part of the
filename:
<literallayout class='monospaced'>
KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PE}-${PV}-${PR}-${MACHINE}-${DATETIME}"
</literallayout>
</para>
<para>
Because the <filename>PE</filename> variable is not set by default,
these binary files could result with names that include two dash
characters.
Here is an example:
<literallayout class='monospaced'>
bzImage--3.10.9+git0+cd502a8814_7144bcc4b8-r0-qemux86-64-20130830085431.bin
</literallayout>
</para>
</section>
</section>
<section id='moving-to-the-yocto-project-1.4-release'>

View File

@@ -322,10 +322,10 @@
$ bitbake --help
Usage: bitbake [options] [package ...]
Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.
Executes the specified task (default is 'build') for a given set of BitBake files.
It expects that BBFILES is defined, which is a space separated list of files to
be executed. BBFILES does support wildcards.
Default BBFILES are the .bb files in the current directory.
Options:
--version show program's version number and exit
@@ -348,6 +348,10 @@ Options:
what you are doing). Depending on the base.bbclass a
listtasks tasks is defined and will show available
tasks
-C INVALIDATE_STAMP, --clear-stamp=INVALIDATE_STAMP
Invalidate the stamp for the specified cmd such as
'compile' and run the default task for the specified
target(s)
-r PREFILE, --read=PREFILE
read the specified file before bitbake.conf
-R POSTFILE, --postread=POSTFILE
@@ -360,11 +364,12 @@ Options:
don't execute, just dump out the signature
construction information
-p, --parse-only quit after parsing the BB files (developers only)
-s, --show-versions show current and preferred versions of all packages
-s, --show-versions show current and preferred versions of all recipes
-e, --environment show the global or per-package environment (this is
what used to be bbread)
-g, --graphviz emit the dependency trees of the specified packages in
the dot syntax
the dot syntax, and the pn-buildlist to show the build
list
-I EXTRA_ASSUME_PROVIDED, --ignore-deps=EXTRA_ASSUME_PROVIDED
Assume these dependencies don't exist and are already
provided (equivalent to ASSUME_PROVIDED). Useful to
@@ -374,9 +379,17 @@ Options:
-P, --profile profile the command and print a report
-u UI, --ui=UI userinterface to use
-t SERVERTYPE, --servertype=SERVERTYPE
Choose which server to use, none, process or xmlrpc
Choose which server to use, process or xmlrpc
--revisions-changed Set the exit code depending on whether upstream
floating revisions have changed or not
--server-only Run bitbake without UI, the frontend can connect with
bitbake server itself
-B BIND, --bind=BIND The name/address for the bitbake server to bind to
--no-setscene Do not run any setscene tasks, forces builds
--remote-server=REMOTE_SERVER
Connect to the specified server
-m, --kill-server Terminate the remote server
--observe-only Connect to a server as an observing-only client
</screen>
</section>

View File

@@ -99,6 +99,8 @@
<xi:include href="usingpoky.xml"/>
<xi:include href="closer-look.xml"/>
<xi:include href="technical-details.xml"/>
<xi:include href="migration.xml"/>

View File

@@ -74,7 +74,11 @@
the source tree is combined with the output.
The <ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
is created initially when you <filename>source</filename>
the OpenEmbedded build environment setup script <filename>&OE_INIT_FILE;</filename>.
the OpenEmbedded build environment setup script
(i.e.
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
</para>
<para>
@@ -85,8 +89,10 @@
the setup script.
For information on separating output from your local
Source Directory files, see the
"<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>"
section.
"<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
and
"<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>"
sections.
</para>
</section>
@@ -143,7 +149,7 @@
which is a Yocto Project build user interface.
For more information on the Hob, see the
<ulink url='&YOCTO_HOME_URL;/tools-resources/projects/hob'>Hob Project</ulink>
webpage.
web page.
</para>
</section>
@@ -162,7 +168,9 @@
This directory contains various integration scripts that implement
extra functionality in the Yocto Project environment (e.g. QEMU scripts).
The <link linkend="structure-core-script"><filename>&OE_INIT_FILE;</filename></link>
script appends this directory to the shell's
and
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
scripts append this directory to the shell's
<filename>PATH</filename> environment variable.
</para>
@@ -177,11 +185,19 @@
<title><filename>&OE_INIT_FILE;</filename></title>
<para>
This script sets up the OpenEmbedded build environment.
This script is one of two scripts that set up the OpenEmbedded build
environment.
For information on the other script, see the
"<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>"
section.
</para>
<para>
Running this script with the <filename>source</filename> command in
a shell makes changes to <filename>PATH</filename> and sets other
core BitBake variables based on the current working directory.
You need to run this script before running BitBake commands.
You need to run an environment setup script before running BitBake
commands.
The script uses other scripts within the
<filename>scripts</filename> directory to do the bulk of the work.
</para>
@@ -191,7 +207,7 @@
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
argument creates the <filename>build</filename> directory.
If you provide a Build Directory argument when you
<filename>source</filename> the script, you direct OpenEmbedded
<filename>source</filename> the script, you direct the OpenEmbedded
build system to create a Build Directory of your choice.
For example, the following command creates a Build Directory named
<filename>mybuilds</filename> that is outside of the
@@ -211,6 +227,81 @@
</para>
</section>
<section id='structure-memres-core-script'>
<title><filename>oe-init-build-env-memres</filename></title>
<para>
This script is one of two scripts that set up the OpenEmbedded build
environment.
Setting up the environment with this script uses a
memory-resident BitBake.
For information on the other setup script, see the
"<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>"
section.
</para>
<para>
Memory-resident BitBake resides in memory until you specifically
remove it using the following BitBake command:
<literallayout class='monospaced'>
$ bitbake -m
</literallayout>
</para>
<para>
Running this script with the <filename>source</filename> command in
a shell makes changes to <filename>PATH</filename> and sets other
core BitBake variables based on the current working directory.
One of these variables is the
<link linkend='var-BBSERVER'><filename>BBSERVER</filename></link>
variable, which allows the OpenEmbedded build system to locate
the server that is running BitBake.
</para>
<para>
You need to run an environment setup script before running BitBake
commands.
Following is the script syntax:
<literallayout class='monospaced'>
$ source oe-init-build-env-memres &lt;port_number&gt; &lt;build_dir&gt;
</literallayout>
The script uses other scripts within the
<filename>scripts</filename> directory to do the bulk of the work.
</para>
<para>
If you do not provide a port number with the script, the default
port "12345" is used.
</para>
<para>
By default, running this script without a
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>
argument creates the <filename>build</filename> directory.
If you provide a Build Directory argument when you
<filename>source</filename> the script, you direct the OpenEmbedded
build system to create a Build Directory of your choice.
For example, the following command uses the default port number
"12345" and creates a Build Directory named
<filename>mybuilds</filename> that is outside of the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>:
<literallayout class='monospaced'>
$ source oe-init-build-env-memres ~/mybuilds
</literallayout>
<note>
The OpenEmbedded build system does not support file or
directory names that contain spaces.
If you attempt to run the
<filename>oe-init-build-env-memres</filename> script
from a Source Directory that contains spaces in either the
filenames or directory names, the script returns an error
indicating no such file or directory.
Be sure to use a Source Directory free of names containing
spaces.
</note>
</para>
</section>
<section id='structure-basic-top-level'>
<title><filename>LICENSE, README, and README.hardware</filename></title>
@@ -243,47 +334,123 @@
<title><filename>build/conf/local.conf</filename></title>
<para>
This file contains all the local user configuration for your build environment.
If there is no <filename>local.conf</filename> present, it is created from
<filename>local.conf.sample</filename>.
The <filename>local.conf</filename> file contains documentation on the various configuration options.
Any variable set here overrides any variable set elsewhere within the environment unless
that variable is hard-coded within a file (e.g. by using '=' instead of '?=').
Some variables are hard-coded for various reasons but these variables are
relatively rare.
This configuration file contains all the local user configurations
for your build environment.
The <filename>local.conf</filename> file contains documentation on
the various configuration options.
Any variable set here overrides any variable set elsewhere within
the environment unless that variable is hard-coded within a file
(e.g. by using '=' instead of '?=').
Some variables are hard-coded for various reasons but these
variables are relatively rare.
</para>
<para>
Edit this file to set the <filename><link linkend='var-MACHINE'>MACHINE</link></filename>
Edit this file to set the
<filename><link linkend='var-MACHINE'>MACHINE</link></filename>
for which you want to build, which package types you wish to use
(<link linkend='var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></link>),
the location from which you want to downloaded files
(<filename><link linkend='var-DL_DIR'>DL_DIR</link></filename>),
and how you want your host machine to use resources
(<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link> and
(<link linkend='var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></link>
and
<link linkend='var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></link>).
</para>
<para>
If <filename>local.conf</filename> is not present when you
start the build, the OpenEmbedded build system creates it from
<filename>local.conf.sample</filename> when
you <filename>source</filename> the top-level build environment
setup script (i.e.
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
</para>
<para>
The source <filename>local.conf.sample</filename> file used
depends on the <filename>$TEMPLATECONF</filename> script variable,
which defaults to <filename>/meta-yocto/conf</filename>
when you are building from the Yocto Project development
environment and defaults to <filename>/meta/conf</filename> when
you are building from the OpenEmbedded Core environment.
Because the script variable points to the source of the
<filename>local.conf.sample</filename> file, this implies that
you can configure your build environment from any layer by setting
the variable in the top-level build environment setup script as
follows:
<literallayout class='monospaced'>
TEMPLATECONF=&lt;your_layer&gt;/conf
</literallayout>
Once the build process gets the sample file, it uses
<filename>sed</filename> to substitute final
<filename>${</filename><link linkend='var-OEROOT'><filename>OEROOT</filename></link><filename>}</filename>
values for all <filename>##OEROOT##</filename> values.
<note>
You can see how the <filename>TEMPLATECONF</filename> variable
is used by looking at the
<filename>/scripts/oe-setup-builddir</filename> script in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
You can find the Yocto Project version of the
<filename>local.conf.sample</filename> file in the
<filename>/meta-yocto/conf</filename> directory.
</note>
</para>
</section>
<section id='structure-build-conf-bblayers.conf'>
<title><filename>build/conf/bblayers.conf</filename></title>
<para>
This file defines
This configuration file defines
<ulink url='&YOCTO_DOCS_DEV_URL;#understanding-and-creating-layers'>layers</ulink>,
which are directory trees, traversed (or walked) by BitBake.
If <filename>bblayers.conf</filename>
is not present, it is created from <filename>bblayers.conf.sample</filename> when
you <filename>source</filename> the environment setup script.
The <filename>bblayers.conf</filename> file uses the
<link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link>
variable to list the layers BitBake tries to find, and uses the
<link linkend='var-BBLAYERS_NON_REMOVABLE'><filename>BBLAYERS_NON_REMOVABLE</filename></link>
variable to list layers that must not be removed.
</para>
<para>
The <filename>bblayers.conf</filename> file uses the
<link linkend='var-BBLAYERS'><filename>BBLAYERS</filename></link> variable to
list the layers BitBake tries to find.
The file uses the
<link linkend='var-BBLAYERS_NON_REMOVABLE'><filename>BBLAYERS_NON_REMOVABLE</filename></link>
variable to list layers that must not be removed.
If <filename>bblayers.conf</filename> is not present when you
start the build, the OpenEmbedded build system creates it from
<filename>bblayers.conf.sample</filename> when
you <filename>source</filename> the top-level build environment
setup script (i.e.
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
</para>
<para>
The source <filename>bblayers.conf.sample</filename> file used
depends on the <filename>$TEMPLATECONF</filename> script variable,
which defaults to <filename>/meta-yocto/conf</filename>
when you are building from the Yocto Project development
environment and defaults to <filename>/meta/conf</filename> when
you are building from the OpenEmbedded Core environment.
Because the script variable points to the source of the
<filename>bblayers.conf.sample</filename> file, this implies that
you can base your build from any layer by setting the variable in
the top-level build environment setup script as follows:
<literallayout class='monospaced'>
TEMPLATECONF=&lt;your_layer&gt;/conf
</literallayout>
Once the build process gets the sample file, it uses
<filename>sed</filename> to substitute final
<filename>${</filename><link linkend='var-OEROOT'><filename>OEROOT</filename></link><filename>}</filename>
values for all <filename>##OEROOT##</filename> values.
<note>
You can see how the <filename>TEMPLATECONF</filename> variable
<filename>/scripts/oe-setup-builddir</filename> script in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
You can find the Yocto Project version of the
<filename>bblayers.conf.sample</filename> file in the
<filename>/meta-yocto/conf</filename> directory.
</note>
</para>
</section>

View File

@@ -252,9 +252,47 @@
<glossentry id='var-BAD_RECOMMENDATIONS'><glossterm>BAD_RECOMMENDATIONS</glossterm>
<glossdef>
<para>
A list of packages not to install despite being recommended by a recipe.
Lists "recommended-only" packages to not install.
Recommended-only packages are packages installed only
through the
<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
variable.
You can prevent any of these "recommended" packages from
being installed by listing them with the
<filename>BAD_RECOMMENDATIONS</filename> variable:
<literallayout class='monospaced'>
BAD_RECOMMENDATIONS = "&lt;package_name&gt; &lt;package_name&gt; &lt;package_name&gt; ..."
</literallayout>
You can set this variable globally in your
<filename>local.conf</filename> file or you can attach it to
a specific image recipe by using the recipe name override:
<literallayout class='monospaced'>
BAD_RECOMMENDATIONS_pn-&lt;target_image&gt; = "&lt;package_name&gt;"
</literallayout>
</para>
<para>
It is important to realize that if you choose to not install
packages using this variable and some other packages are
dependent on them (i.e. listed in a recipe's
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
variable), the OpenEmbedded build system ignores your
request and will install the packages to avoid dependency
errors.
</para>
<para>
Support for this variable exists only when using the
IPK packaging backend.
IPK and RPM packaging backend.
Support does not exist for DEB.
</para>
<para>
See the
<link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
and the
<link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
variables for related information.
</para>
</glossdef>
</glossentry>
@@ -455,6 +493,14 @@
</glossdef>
</glossentry>
<glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
<glossdef>
<para>The maximum number of tasks BitBake should run in parallel at any one time.
If your host development system supports multiple cores a good rule of thumb
is to set this variable to twice the number of cores.</para>
</glossdef>
</glossentry>
<glossentry id='var-BBCLASSEXTEND'><glossterm>BBCLASSEXTEND</glossterm>
<glossdef>
<para>
@@ -479,74 +525,6 @@
</glossdef>
</glossentry>
<glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
<glossdef>
<para>
Prevents BitBake from processing recipes and recipe
append files.
Use the <filename>BBMASK</filename> variable from within the
<filename>conf/local.conf</filename> file found
in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
</para>
<para>
You can use the <filename>BBMASK</filename> variable
to "hide" these <filename>.bb</filename> and
<filename>.bbappend</filename> files.
BitBake ignores any recipe or recipe append files that
match the expression.
It is as if BitBake does not see them at all.
Consequently, matching files are not parsed or otherwise
used by BitBake.</para>
<para>
The value you provide is passed to Python's regular
expression compiler.
The expression is compared against the full paths to
the files.
For complete syntax information, see Python's
documentation at
<ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
</para>
<para>
The following example uses a complete regular expression
to tell BitBake to ignore all recipe and recipe append
files in the <filename>/meta-ti/recipes-misc/</filename>
directory:
<literallayout class='monospaced'>
BBMASK = "/meta-ti/recipes-misc/"
</literallayout>
If you want to mask out multiple directories or recipes,
use the vertical bar to separate the regular expression
fragments.
This next example masks out multiple directories and
individual recipes:
<literallayout class='monospaced'>
BBMASK = "meta-ti/recipes-misc/|meta-ti/recipes-ti/packagegroup/"
BBMASK .= "|.*meta-oe/recipes-support/"
BBMASK .= "|.*openldap"
BBMASK .= "|.*opencv"
BBMASK .= "|.*lzma"
</literallayout>
Notice how the vertical bar is used to append the fragments.
<note>
When specifying a directory name, use the trailing
slash character to ensure you match just that directory
name.
</note>
</para>
</glossdef>
</glossentry>
<glossentry id='var-BB_NUMBER_THREADS'><glossterm>BB_NUMBER_THREADS</glossterm>
<glossdef>
<para>The maximum number of tasks BitBake should run in parallel at any one time.
If your host development system supports multiple cores a good rule of thumb
is to set this variable to twice the number of cores.</para>
</glossdef>
</glossentry>
<glossentry id='var-BBFILE_COLLECTIONS'><glossterm>BBFILE_COLLECTIONS</glossterm>
<glossdef>
<para>Lists the names of configured layers.
@@ -606,13 +584,6 @@
</glossdef>
</glossentry>
<glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
<glossdef>
<para>Used by BitBake to locate <filename>.bbclass</filename> and configuration files.
This variable is analogous to the <filename>PATH</filename> variable.</para>
</glossdef>
</glossentry>
<glossentry id='var-BBINCLUDELOGS'><glossterm>BBINCLUDELOGS</glossterm>
<glossdef>
<para>Variable that controls how BitBake displays logs on build failure.</para>
@@ -672,6 +643,95 @@ Core layer for images cannot be removed
</glossdef>
</glossentry>
<glossentry id='var-BBMASK'><glossterm>BBMASK</glossterm>
<glossdef>
<para>
Prevents BitBake from processing recipes and recipe
append files.
Use the <filename>BBMASK</filename> variable from within the
<filename>conf/local.conf</filename> file found
in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
</para>
<para>
You can use the <filename>BBMASK</filename> variable
to "hide" these <filename>.bb</filename> and
<filename>.bbappend</filename> files.
BitBake ignores any recipe or recipe append files that
match the expression.
It is as if BitBake does not see them at all.
Consequently, matching files are not parsed or otherwise
used by BitBake.</para>
<para>
The value you provide is passed to Python's regular
expression compiler.
The expression is compared against the full paths to
the files.
For complete syntax information, see Python's
documentation at
<ulink url='http://docs.python.org/release/2.3/lib/re-syntax.html'></ulink>.
</para>
<para>
The following example uses a complete regular expression
to tell BitBake to ignore all recipe and recipe append
files in the <filename>/meta-ti/recipes-misc/</filename>
directory:
<literallayout class='monospaced'>
BBMASK = "/meta-ti/recipes-misc/"
</literallayout>
If you want to mask out multiple directories or recipes,
use the vertical bar to separate the regular expression
fragments.
This next example masks out multiple directories and
individual recipes:
<literallayout class='monospaced'>
BBMASK = "meta-ti/recipes-misc/|meta-ti/recipes-ti/packagegroup/"
BBMASK .= "|.*meta-oe/recipes-support/"
BBMASK .= "|.*openldap"
BBMASK .= "|.*opencv"
BBMASK .= "|.*lzma"
</literallayout>
Notice how the vertical bar is used to append the fragments.
<note>
When specifying a directory name, use the trailing
slash character to ensure you match just that directory
name.
</note>
</para>
</glossdef>
</glossentry>
<glossentry id='var-BBPATH'><glossterm>BBPATH</glossterm>
<glossdef>
<para>Used by BitBake to locate <filename>.bbclass</filename> and configuration files.
This variable is analogous to the <filename>PATH</filename> variable.</para>
</glossdef>
</glossentry>
<glossentry id='var-BBSERVER'><glossterm>BBSERVER</glossterm>
<glossdef>
<para>
Points to the server that runs memory-resident BitBake.
This variable is set by the
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
setup script and should not be hand-edited.
The variable is only used when you employ memory-resident
BitBake.
The setup script exports the value as follows:
<literallayout class='monospaced'>
export BBSERVER=localhost:$port
</literallayout>
For more information on how the
<filename>BBSERVER</filename> is used, see the
<filename>oe-init-build-env-memres</filename> script, which
is located in the
<ulink url='&YOCTO_DOCS_DEV_URL;#source-directory'>Source Directory</ulink>.
</para>
</glossdef>
</glossentry>
<glossentry id='var-BINCONFIG_GLOB'><glossterm>BINCONFIG_GLOB</glossterm>
<glossdef>
<para>
@@ -724,13 +784,16 @@ Core layer for images cannot be removed
<glossentry id='var-BUILDDIR'><glossterm>BUILDDIR</glossterm>
<glossdef>
<para>Points to the location of the
<para>
Points to the location of the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
You can define this directory indirectly through the
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
script by passing in a Build Directory path when you run the
script.
If you run the script and do not provide a Build Directory
and
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>
scripts by passing in a Build Directory path when you run
the scripts.
If you run the scripts and do not provide a Build Directory
path, the <filename>BUILDDIR</filename> defaults to
<filename>build</filename> in the current directory.
</para>
@@ -968,6 +1031,28 @@ Core layer for images cannot be removed
have been built and have their contents in the appropriate
sysroots before the recipe's configure task is executed.
</para>
<para>
Consider this simple example for two recipes named "a" and
"b" that produce similarly named packages.
In this example, the <filename>DEPENDS</filename>
statement appears in the "a" recipe:
<literallayout class='monospaced'>
DEPENDS = "b"
</literallayout>
Here, the dependency is such that the
<filename>do_configure</filename> task for recipe "a"
depends on the <filename>do_populate_sysroot</filename>
task of recipe "b".
This means anything that recipe "b" puts into sysroot
is available when recipe "a" is configuring itself.
</para>
<para>
For information on runtime dependencies, see the
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
variable.
</para>
</glossdef>
</glossentry>
@@ -1145,37 +1230,40 @@ Core layer for images cannot be removed
<glossentry id='var-DL_DIR'><glossterm>DL_DIR</glossterm>
<glossdef>
<para>
The central download directory used by the build process to store downloads.
You can set this directory by defining the <filename>DL_DIR</filename>
variable in the <filename>/conf/local.conf</filename> file.
The central download directory used by the build process to
store downloads.
You can set this directory by defining the
<filename>DL_DIR</filename> variable in the
<filename>/conf/local.conf</filename> file.
This directory is self-maintaining and you should not have
to touch it.
By default, the directory is <filename>downloads</filename> in the
By default, the directory is <filename>downloads</filename>
in the
<ulink url='&YOCTO_DOCS_DEV_URL;#build-directory'>Build Directory</ulink>.
<literallayout class='monospaced'>
#DL_DIR ?= "${TOPDIR}/downloads"
</literallayout>
To specify a different download directory, simply uncomment the line
and provide your directory.
To specify a different download directory, simply remove
the comment from the line and provide your directory.
</para>
<para>
During a first build, the system downloads many different source code
tarballs from various upstream projects.
During a first build, the system downloads many different
source code tarballs from various upstream projects.
Downloading can take a while, particularly if your network
connection is slow.
Tarballs are all stored in the directory defined by
<filename>DL_DIR</filename> and the build system looks there first
to find source tarballs.
<filename>DL_DIR</filename> and the build system looks there
first to find source tarballs.
<note>
When wiping and rebuilding, you can preserve this directory to speed
up this part of subsequent builds.
When wiping and rebuilding, you can preserve this
directory to speed up this part of subsequent builds.
</note>
</para>
<para>
You can safely share this directory between multiple builds on the
same development machine.
You can safely share this directory between multiple builds
on the same development machine.
For additional information on how the build process gets
source files when working behind a firewall or proxy server,
see this specific question in the
@@ -2784,7 +2872,7 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
MACHINE ?= "qemuppc"
MACHINE ?= "qemux86"
MACHINE ?= "qemux86-64"
MACHINE ?= "atom-pc"
MACHINE ?= "genericx86"
MACHINE ?= "beagleboard"
MACHINE ?= "mpc8315e-rdb"
MACHINE ?= "routerstationpro"
@@ -3136,6 +3224,59 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-NO_RECOMMENDATIONS'><glossterm>NO_RECOMMENDATIONS</glossterm>
<glossdef>
<para>
Prevents installation of all "recommended-only" packages.
Recommended-only packages are packages installed only
through the
<link linkend='var-RRECOMMENDS'><filename>RRECOMMENDS</filename></link>
variable).
Setting the <filename>NO_RECOMMENDATIONS</filename> variable
to "1" turns this feature on:
<literallayout class='monospaced'>
NO_RECOMMENDATIONS = "1"
</literallayout>
You can set this variable globally in your
<filename>local.conf</filename> file or you can attach it to
a specific image recipe by using the recipe name override:
<literallayout class='monospaced'>
NO_RECOMMENDATIONS_pn-&lt;target_image&gt; = "&lt;package_name&gt;"
</literallayout>
</para>
<para>
It is important to realize that if you choose to not install
packages using this variable and some other packages are
dependent on them (i.e. listed in a recipe's
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
variable), the OpenEmbedded build system ignores your
request and will install the packages to avoid dependency
errors.
<note>
Some recommended packages might be required for certain
system functionality, such as kernel modules.
It is up to you to add packages with
<link linkend='var-IMAGE_INSTALL'><filename>IMAGE_INSTALL</filename></link>
variable.
</note>
</para>
<para>
Support for this variable exists only when using the
IPK and RPM packaging backend.
Support does not exist for DEB.
</para>
<para>
See the
<link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
and the
<link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
variables for related information.
</para>
</glossdef>
</glossentry>
</glossdiv>
<glossdiv id='var-glossary-o'><title>O</title>
@@ -3215,6 +3356,28 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-OEROOT'><glossterm>OEROOT</glossterm>
<glossdef>
<para>
The directory from which the top-level build environment
setup script is sourced.
The Yocto Project makes two top-level build environment
setup scripts available:
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
and
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>.
When you run one of these scripts, the
<filename>OEROOT</filename> variable resolves to the
directory that holds the script.
</para>
<para>
For additional information on how this variable is used,
see the initialization scripts.
</para>
</glossdef>
</glossentry>
<glossentry id='var-OLDEST_KERNEL'><glossterm>OLDEST_KERNEL</glossterm>
<glossdef>
<para>
@@ -3296,6 +3459,51 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-PACKAGE_EXCLUDE'><glossterm>PACKAGE_EXCLUDE</glossterm>
<glossdef>
<para>
Lists packages that should not be installed into an image.
For example:
<literallayout class='monospaced'>
PACKAGE_EXCLUDE = "&lt;package_name&gt; &lt;package_name&gt; &lt;package_name&gt; ..."
</literallayout>
You can set this variable globally in your
<filename>local.conf</filename> file or you can attach it to
a specific image recipe by using the recipe name override:
<literallayout class='monospaced'>
PACKAGE_EXCLUDE_pn-&lt;target_image&gt; = "&lt;package_name&gt;"
</literallayout>
</para>
<para>
If you choose to not install
a package using this variable and some other package is
dependent on it (i.e. listed in a recipe's
<link linkend='var-RDEPENDS'><filename>RDEPENDS</filename></link>
variable), the OpenEmbedded build system generates a fatal
installation error.
Because the build system halts the process with a fatal
error, you can use the variable with an iterative
development process to remove specific components from a
system.
</para>
<para>
Support for this variable exists only when using the
IPK and RPM packaging backend.
Support does not exist for DEB.
</para>
<para>
See the
<link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>
and the
<link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>
variables for related information.
</para>
</glossdef>
</glossentry>
<glossentry id='var-PACKAGE_EXTRA_ARCHS'><glossterm>PACKAGE_EXTRA_ARCHS</glossterm>
<glossdef>
<para>Specifies the list of architectures compatible with the device CPU.
@@ -3464,6 +3672,18 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-PE'><glossterm>PE</glossterm>
<glossdef>
<para>
the epoch of the recipe.
By default, this variable is unset.
The field is used to make upgrades possible when the
versioning scheme changes in some backwards incompatible
way.
</para>
</glossdef>
</glossentry>
<glossentry id='var-PF'><glossterm>PF</glossterm>
<glossdef>
<para>Specifies the recipe or package name and includes all version and revision
@@ -3575,6 +3795,46 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
<glossdef>
<para>
If multiple recipes provide an item, this variable
determines which recipe should be given preference.
You should always suffix the variable with the name of the
provided item, and you should set it to the
<link linkend='var-PN'><filename>PN</filename></link>
of the recipe to which you want to give precedence.
Here is an example:
<literallayout class='monospaced'>
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
</literallayout>
</para>
</glossdef>
</glossentry>
<glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
<glossdef>
<para>
If there are multiple versions of recipes available, this
variable determines which recipe should be given preference.
You must always suffix the variable with the
<link linkend='var-PN'><filename>PN</filename></link>
you want to select, and you should set to the
<link linkend='var-PV'><filename>PV</filename></link>
accordingly for precedence.
You can use the "<filename>%</filename>" character as a
wildcard to match any number of characters, which can be
useful when specifying versions that contain long revision
numbers that could potentially change.
Here are two examples:
<literallayout class='monospaced'>
PREFERRED_VERSION_python = "2.6.6"
PREFERRED_VERSION_linux-yocto = "3.0+git%"
</literallayout>
</para>
</glossdef>
</glossentry>
<glossentry id='var-PREMIRRORS'><glossterm>PREMIRRORS</glossterm>
<glossdef>
<para>
@@ -3672,57 +3932,6 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
</glossdef>
</glossentry>
<glossentry id='var-PE'><glossterm>PE</glossterm>
<glossdef>
<para>
the epoch of the recipe.
The default value is "0".
The field is used to make upgrades possible when the versioning scheme changes in
some backwards incompatible way.
</para>
</glossdef>
</glossentry>
<glossentry id='var-PREFERRED_PROVIDER'><glossterm>PREFERRED_PROVIDER</glossterm>
<glossdef>
<para>
If multiple recipes provide an item, this variable
determines which recipe should be given preference.
You should always suffix the variable with the name of the
provided item, and you should set it to the
<link linkend='var-PN'><filename>PN</filename></link>
of the recipe to which you want to give precedence.
Here is an example:
<literallayout class='monospaced'>
PREFERRED_PROVIDER_virtual/xserver = "xserver-xf86"
</literallayout>
</para>
</glossdef>
</glossentry>
<glossentry id='var-PREFERRED_VERSION'><glossterm>PREFERRED_VERSION</glossterm>
<glossdef>
<para>
If there are multiple versions of recipes available, this
variable determines which recipe should be given preference.
You must always suffix the variable with the
<link linkend='var-PN'><filename>PN</filename></link>
you want to select, and you should set to the
<link linkend='var-PV'><filename>PV</filename></link>
accordingly for precedence.
You can use the "<filename>%</filename>" character as a
wildcard to match any number of characters, which can be
useful when specifying versions that contain long revision
numbers that could potentially change.
Here are two examples:
<literallayout class='monospaced'>
PREFERRED_VERSION_python = "2.6.6"
PREFERRED_VERSION_linux-yocto = "3.0+git%"
</literallayout>
</para>
</glossdef>
</glossentry>
</glossdiv>
<!-- <glossdiv id='var-glossary-q'><title>Q</title>-->
@@ -3749,13 +3958,36 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-RDEPENDS'><glossterm>RDEPENDS</glossterm>
<glossdef>
<para>
Lists a package's run-time dependencies (i.e. other packages)
Lists a package's runtime dependencies (i.e. other packages)
that must be installed in order for the built package to run
correctly.
If a package in this list cannot be found during the build,
you will get a build error.
</para>
<para>
When you use the <filename>RDEPENDS</filename> variable
in a recipe, you are essentially stating that the recipe's
<filename>do_build</filename> task depends on the existence
of a specific package.
Consider this simple example for two recipes named "a" and
"b" that produce similarly named packages.
In this example, the <filename>RDEPENDS</filename>
statement appears in the "a" recipe:
<literallayout class='monospaced'>
RDEPENDS_${PN} = "b"
</literallayout>
Here, the dependency is such that the
<filename>do_build</filename> task for recipe "a" depends
on the <filename>do_package_write</filename> task
of recipe "b".
This means the package file for "b" must be available when
the output for recipe "a" has been completely built.
More importantly, package "a" will be marked as depending
on package "b" in a manner that is understood by the
package manager in use (i.e. rpm, opkg, or dpkg).
</para>
<para>
The names of the packages you list within
<filename>RDEPENDS</filename> must be the names of other
@@ -3798,26 +4030,32 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<para>
In many cases you do not need to explicitly add
run-time dependencies using
runtime dependencies using
<filename>RDEPENDS</filename> since some automatic
handling occurs:
<itemizedlist>
<listitem><para><emphasis><filename>shlibdeps</filename></emphasis>: If
a run-time package contains a shared library
a runtime package contains a shared library
(<filename>.so</filename>), the build
processes the library in order to determine other
libraries to which it is dynamically linked.
The build process adds these libraries to
<filename>RDEPENDS</filename> when creating the run-time
<filename>RDEPENDS</filename> when creating the runtime
package.</para></listitem>
<listitem><para><emphasis><filename>pcdeps</filename></emphasis>: If
the package ships a <filename>pkg-config</filename>
information file, the build process uses this file
to add items to the <filename>RDEPENDS</filename>
variable to create the run-time packages.
variable to create the runtime packages.
</para></listitem>
</itemizedlist>
</para>
<para>
For information on build-time dependencies, see the
<link linkend='var-DEPENDS'><filename>DEPENDS</filename></link>
variable.
</para>
</glossdef>
</glossentry>
@@ -3878,27 +4116,43 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
<glossentry id='var-RRECOMMENDS'><glossterm>RRECOMMENDS</glossterm>
<glossdef>
<para>
A list of packages that extends the usability of a package being
built.
The package being built does not depend on this list of packages in
order to successfully build, but needs them for the extended usability.
A list of packages that extends the usability of a package
being built.
The package being built does not depend on this list of
packages in order to successfully build, but needs them for
the extended usability.
To specify runtime dependencies for packages, see the
<filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename> variable.
<filename><link linkend='var-RDEPENDS'>RDEPENDS</link></filename>
variable.
</para>
<para>
The OpenEmbedded build process automatically installs the list of packages
as part of the built package.
However, you can remove them later if you want.
If, during the build, a package from the list cannot be found, the build
process continues without an error.
The OpenEmbedded build process automatically installs the
list of packages as part of the built package.
However, you can remove these packages later if you want.
If, during the build, a package from the
<filename>RRECOMMENDS</filename> list cannot be
found, the build process continues without an error.
</para>
<para>
Because the <filename>RRECOMMENDS</filename> variable applies to packages
being built, you should
always attach an override to the variable to specify the particular package
whose usability is being extended.
For example, suppose you are building a development package that is extended
to support wireless functionality.
You can also prevent packages in the list from being
installed by using several variables.
See the
<link linkend='var-BAD_RECOMMENDATIONS'><filename>BAD_RECOMMENDATIONS</filename></link>,
<link linkend='var-NO_RECOMMENDATIONS'><filename>NO_RECOMMENDATIONS</filename></link>,
and
<link linkend='var-PACKAGE_EXCLUDE'><filename>PACKAGE_EXCLUDE</filename></link>
variables for more information.
</para>
<para>
Because the <filename>RRECOMMENDS</filename> variable
applies to packages being built, you should always attach
an override to the variable to specify the particular
package whose usability is being extended.
For example, suppose you are building a development package
that is extended to support wireless functionality.
In this case, you would use the following:
<literallayout class='monospaced'>
RRECOMMENDS_${PN}-dev += "&lt;wireless_package_name&gt;"
@@ -3906,8 +4160,9 @@ recipes-graphics/xorg-font/font-alias_1.0.3.bb:PR = "${INC_PR}.3"
In the example, the package name
(<filename>${<link linkend='var-PN'>PN</link>}-dev</filename>)
must appear as it would in the
<filename><link linkend='var-PACKAGES'>PACKAGES</link></filename> namespace before any
renaming of the output package by classes like <filename>debian.bbclass</filename>.
<filename><link linkend='var-PACKAGES'>PACKAGES</link></filename>
namespace before any renaming of the output package by
classes such as <filename>debian.bbclass</filename>.
</para>
</glossdef>
</glossentry>

File diff suppressed because it is too large Load Diff

View File

@@ -27,8 +27,13 @@
<title>Build Overview</title>
<para>
The first thing you need to do is set up the OpenEmbedded build environment by sourcing
the <link linkend='structure-core-script'>environment setup script</link> as follows:
The first thing you need to do is set up the OpenEmbedded build
environment by sourcing an environment setup script
(i.e.
<link linkend='structure-core-script'><filename>&OE_INIT_FILE;</filename></link>
or
<link linkend='structure-memres-core-script'><filename>oe-init-build-env-memres</filename></link>).
Here is an example:
<literallayout class='monospaced'>
$ source &OE_INIT_FILE; [&lt;build_dir&gt;]
</literallayout>

View File

@@ -11,6 +11,21 @@
<holder>Linux Foundation</holder>
</copyright>
<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.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
<ulink url='&YOCTO_DOCS_QS_URL;'>Yocto Project Quick Start</ulink> on
the <ulink url='&YOCTO_HOME_URL;'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.
</note>
</legalnotice>
<abstract>
<imagedata fileref="figures/yocto-project-transp.png"
width="6in" depth="1in"
@@ -449,7 +464,12 @@
to the Build Directory.
Later, when the build completes, the Build Directory contains all the files
created during the build.
</para></listitem>
<note>
For information on running a memory-resident BitBake, see
the
<ulink url='&YOCTO_DOCS_REF_URL;#structure-memres-core-script'><filename>oe-init-build-env-memres</filename></ulink>
setup script.
</note></para></listitem>
</itemizedlist>
<para>
Take some time to examine your <filename>local.conf</filename> file

View File

@@ -29,9 +29,10 @@ EXTRA_IMAGECMD_jffs2 = "-lnp "
SERIAL_CONSOLE = "115200 ttyO2"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "3.4%"
PREFERRED_VERSION_linux-yocto ?= "3.10%"
KERNEL_IMAGETYPE = "uImage"
KERNEL_IMAGETYPE = "zImage"
KERNEL_DEVICETREE = "${S}/arch/arm/boot/dts/omap3-beagle.dts ${S}/arch/arm/boot/dts/omap3-beagle-xm.dts"
SPL_BINARY = "MLO"
UBOOT_SUFFIX = "img"
@@ -39,4 +40,4 @@ UBOOT_MACHINE = "omap3_beagle_config"
UBOOT_ENTRYPOINT = "0x80008000"
UBOOT_LOADADDRESS = "0x80008000"
MACHINE_FEATURES = "apm usbgadget usbhost vfat alsa"
MACHINE_FEATURES = "usbgadget usbhost vfat alsa"

View File

@@ -4,31 +4,4 @@
#@DESCRIPTION: Machine configuration for generic X86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
include conf/machine/include/tune-x86_64.inc
MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 x86 wifi acpi alsa efi pcbios"
KERNEL_IMAGETYPE = "bzImage"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "3.10%"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
XSERVER ?= "xserver-xorg \
xserver-xorg-extension-glx \
xf86-input-mouse \
xf86-input-keyboard \
xf86-input-evdev \
xf86-input-synaptics \
xf86-video-fbdev \
xf86-video-modesetting \
xf86-video-vesa \
xf86-video-intel \
mesa-driver-i915 \
mesa-driver-i965"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts linux-firmware v86d"
IMAGE_FSTYPES ?= "ext3 cpio.gz live"
GLIBC_ADDONS = "nptl"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"
include conf/machine/include/genericx86-common.inc

View File

@@ -4,33 +4,4 @@
#@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
include conf/machine/include/tune-atom.inc
MACHINE_FEATURES = "screen keyboard pci usbhost ext2 ext3 x86 wifi acpi alsa"
KERNEL_IMAGETYPE = "bzImage"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "3.10%"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
XSERVER ?= "xserver-xorg \
xserver-xorg-extension-glx \
xf86-input-mouse \
xf86-input-keyboard \
xf86-input-evdev \
xf86-input-synaptics \
xf86-video-fbdev \
xf86-video-modesetting \
xf86-video-vesa \
xf86-video-intel \
mesa-driver-i915 \
mesa-driver-i965"
#MACHINE_EXTRA_RDEPENDS = "rt2860"
MACHINE_EXTRA_RRECOMMENDS = "kernel-modules eee-acpi-scripts linux-firmware v86d"
IMAGE_FSTYPES ?= "ext3 cpio.gz live"
GLIBC_ADDONS = "nptl"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"
include conf/machine/include/genericx86-common.inc

View File

@@ -0,0 +1,20 @@
include conf/machine/include/ia32-base.inc
MACHINE_FEATURES += "wifi efi pcbios"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "3.10%"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
XSERVER ?= "${XSERVER_IA32_BASE} \
${XSERVER_IA32_EXT} \
${XSERVER_IA32_I915} \
${XSERVER_IA32_I965} \
${XSERVER_IA32_FBDEV} \
${XSERVER_IA32_VESA} \
${XSERVER_IA32_MODESETTING} \
"
MACHINE_EXTRA_RRECOMMENDS += "linux-firmware v86d"
GLIBC_ADDONS = "nptl"
EXTRA_OECONF_append_pn-matchbox-panel-2 = " --with-battery=acpi"

View File

@@ -14,7 +14,7 @@ SERIAL_CONSOLE = "115200 ttyS0"
MACHINE_FEATURES = "keyboard pci ext2 ext3 serial"
PREFERRED_VERSION_linux-yocto ?= "3.4%"
PREFERRED_VERSION_linux-yocto ?= "3.10%"
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"

View File

@@ -7,11 +7,11 @@ KBRANCH_beagleboard = "standard/beagleboard"
KMACHINE_genericx86 ?= "common-pc"
KMACHINE_genericx86-64 ?= "common-pc-64"
SRCREV_machine_genericx86 ?= "6c1528b2b78d1ec7e75bb7a9880074ec35aa1aa0"
SRCREV_machine_genericx86-64 ?= "6c1528b2b78d1ec7e75bb7a9880074ec35aa1aa0"
SRCREV_machine_routerstationpro ?= "3991d03bd450e9363d5b6e97ede0628ba073db79"
SRCREV_machine_mpc8315e-rdb ?= "8d8339af518104db03f9c36b82f4372569e55b0a"
SRCREV_machine_beagleboard ?= "6c1528b2b78d1ec7e75bb7a9880074ec35aa1aa0"
SRCREV_machine_genericx86 ?= "702040ac7c7ec66a29b4d147665ccdd0ff015577"
SRCREV_machine_genericx86-64 ?= "702040ac7c7ec66a29b4d147665ccdd0ff015577"
SRCREV_machine_routerstationpro ?= "d4e6adefaf92a1e7b6539d371ba49b78bd194a84"
SRCREV_machine_mpc8315e-rdb ?= "12dc46ba4efb80e135fec4dce913eeb87ee671b3"
SRCREV_machine_beagleboard ?= "702040ac7c7ec66a29b4d147665ccdd0ff015577"
COMPATIBLE_MACHINE_genericx86 = "genericx86"
COMPATIBLE_MACHINE_genericx86-64 = "genericx86-64"

View File

@@ -11,6 +11,6 @@ BBFILE_PRIORITY_yocto = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_yocto = "1"
LAYERVERSION_yocto = "2"
LAYERDEPENDS_yocto = "core"

View File

@@ -233,3 +233,33 @@
#groupmod -g 1020 developers; \
#usermod -s /bin/sh tester; \
#"
# Enabling FORTRAN
# Note this is not officially supported and is just illustrated here to
# show an example of how it can be done
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath libgfortran"
export BUILD_FC = "${CCACHE}${BUILD_PREFIX}gfortran ${BUILD_CC_ARCH}"
export FC = "${CCACHE}${HOST_PREFIX}gfortran ${HOST_CC_ARCH}"
#
# Kernel image features
#
# The INITRAMFS_IMAGE image variable will cause an additional recipe to
# be built as a dependency to the what ever rootfs recipe you might be
# using such as core-image-sato. The initramfs might be needed for
# the initial boot of of the target system such as to load kernel
# modules prior to mounting the root file system.
#
# INITRAMFS_IMAGE_BUNDLE variable controls if the image recipe
# specified by the INITRAMFS_IMAGE will be run through an extra pass
# through the kernel compilation in order to build a single binary
# which contains both the kernel image and the initramfs. The
# combined binary will be deposited into the tmp/deploy directory.
# NOTE: You can set INITRAMFS_IMAGE in an image recipe, but
# INITRAMFS_IMAGE_BUNDLE can only be set in a conf file.
#
#INITRAMFS_IMAGE = "core-image-minimal-initramfs"
#INITRAMFS_IMAGE_BUNDLE = "1"

View File

@@ -2,6 +2,10 @@
# This class is used for architecture independent recipes/data files (usally scripts)
#
# Expand STAGING_DIR_HOST since for cross-canadian/native/nativesdk, this will
# point elsewhere after these changes.
STAGING_DIR_HOST := "${STAGING_DIR_HOST}"
PACKAGE_ARCH = "all"
python () {

View File

@@ -108,10 +108,16 @@ 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}
if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" ]; then
if [ "${S}" != "${B}" ]; then
echo "Previously configured separate build directory detected, cleaning ${B}"
rm -rf ${B}
mkdir ${B}
else
# At least remove the .la files since automake won't automatically
# regenerate them even if CFLAGS/LDFLAGS are different
cd ${S}; find ${S} -name \*.la -delete
fi
fi
fi
}

View File

@@ -31,6 +31,29 @@ EXCLUDE_FROM_WORLD = "1"
BOOTDD_VOLUME_ID ?= "boot"
BOOTDD_EXTRA_SPACE ?= "16384"
EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}"
# Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not
# contain "efi". This way legacy is supported by default if neither is
# specified, maintaining the original behavior.
def pcbios(d):
pcbios = base_contains("MACHINE_FEATURES", "pcbios", "1", "0", d)
if pcbios == "0":
pcbios = base_contains("MACHINE_FEATURES", "efi", "0", "1", d)
return pcbios
def pcbios_class(d):
if d.getVar("PCBIOS", True) == "1":
return "syslinux"
return ""
PCBIOS = "${@pcbios(d)}"
PCBIOS_CLASS = "${@pcbios_class(d)}"
inherit ${PCBIOS_CLASS}
inherit ${EFI_CLASS}
# Get the build_syslinux_cfg() function from the syslinux class
AUTO_SYSLINUXCFG = "1"
@@ -38,17 +61,32 @@ DISK_SIGNATURE ?= "${DISK_SIGNATURE_GENERATED}"
SYSLINUX_ROOT ?= "root=/dev/sda2"
SYSLINUX_TIMEOUT ?= "10"
inherit syslinux
populate() {
DEST=$1
install -d ${DEST}
# Install bzImage, initrd, and rootfs.img in DEST for all loaders to use.
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage ${DEST}/vmlinuz
if [ -n "${INITRD}" ] && [ -s "${INITRD}" ]; then
install -m 0644 ${INITRD} ${DEST}/initrd
fi
}
build_boot_dd() {
HDDDIR="${S}/hdd/boot"
HDDIMG="${S}/hdd.image"
IMAGE=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hdddirect
install -d $HDDDIR
install -m 0644 ${STAGING_KERNEL_DIR}/bzImage $HDDDIR/vmlinuz
install -m 0644 ${S}/syslinux.cfg $HDDDIR/syslinux.cfg
install -m 444 ${STAGING_DATADIR}/syslinux/ldlinux.sys $HDDDIR/ldlinux.sys
populate ${HDDDIR}
if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_populate
fi
if [ "${EFI}" = "1" ]; then
grubefi_hddimg_populate
fi
BLOCKS=`du -bks $HDDDIR | cut -f 1`
BLOCKS=`expr $BLOCKS + ${BOOTDD_EXTRA_SPACE}`
@@ -62,7 +100,9 @@ build_boot_dd() {
mkdosfs -n ${BOOTDD_VOLUME_ID} -S 512 -C $HDDIMG $BLOCKS
mcopy -i $HDDIMG -s $HDDDIR/* ::/
syslinux $HDDIMG
if [ "${PCBIOS}" = "1" ]; then
syslinux_hdddirect_install $HDDIMG
fi
chmod 644 $HDDIMG
ROOTFSBLOCKS=`du -Lbks ${ROOTFS} | cut -f 1`
@@ -85,9 +125,11 @@ build_boot_dd() {
dd of=$IMAGE bs=1 seek=440 conv=notrunc
OFFSET=`expr $END2 / 512`
dd if=${STAGING_DATADIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc
if [ "${PCBIOS}" = "1" ]; then
dd if=${STAGING_DATADIR}/syslinux/mbr.bin of=$IMAGE conv=notrunc
fi
dd if=$HDDIMG of=$IMAGE conv=notrunc seek=1 bs=512
dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512
dd if=${ROOTFS} of=$IMAGE conv=notrunc seek=$OFFSET bs=512
cd ${DEPLOY_DIR_IMAGE}
rm -f ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.hdddirect
@@ -96,7 +138,10 @@ build_boot_dd() {
python do_bootdirectdisk() {
validate_disk_signature(d)
bb.build.exec_func('build_syslinux_cfg', d)
if d.getVar("PCBIOS", True) == "1":
bb.build.exec_func('build_syslinux_cfg', d)
if d.getVar("EFI", True) == "1":
bb.build.exec_func('build_grub_cfg', d)
bb.build.exec_func('build_boot_dd', d)
}

View File

@@ -111,6 +111,63 @@ build_iso() {
ln -s ${IMAGE_NAME}.iso ${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.iso
}
build_fat_img() {
FATSOURCEDIR=$1
FATIMG=$2
# Calculate the size required for the final image including the
# data and filesystem overhead.
# Sectors: 512 bytes
# Blocks: 1024 bytes
# Determine the sector count just for the data
SECTORS=$(expr $(du --apparent-size -ks ${FATSOURCEDIR} | cut -f 1) \* 2)
# Account for the filesystem overhead. This includes directory
# entries in the clusters as well as the FAT itself.
# Assumptions:
# FAT32 (12 or 16 may be selected by mkdosfs, but the extra
# padding will be minimal on those smaller images and not
# worth the logic here to caclulate the smaller FAT sizes)
# < 16 entries per directory
# 8.3 filenames only
# 32 bytes per dir entry
DIR_BYTES=$(expr $(find ${FATSOURCEDIR} | tail -n +2 | wc -l) \* 32)
# 32 bytes for every end-of-directory dir entry
DIR_BYTES=$(expr $DIR_BYTES + $(expr $(find ${FATSOURCEDIR} -type d | tail -n +2 | wc -l) \* 32))
# 4 bytes per FAT entry per sector of data
FAT_BYTES=$(expr $SECTORS \* 4)
# 4 bytes per FAT entry per end-of-cluster list
FAT_BYTES=$(expr $FAT_BYTES + $(expr $(find ${FATSOURCEDIR} -type d | tail -n +2 | wc -l) \* 4))
# Use a ceiling function to determine FS overhead in sectors
DIR_SECTORS=$(expr $(expr $DIR_BYTES + 511) / 512)
# There are two FATs on the image
FAT_SECTORS=$(expr $(expr $(expr $FAT_BYTES + 511) / 512) \* 2)
SECTORS=$(expr $SECTORS + $(expr $DIR_SECTORS + $FAT_SECTORS))
# Determine the final size in blocks accounting for some padding
BLOCKS=$(expr $(expr $SECTORS / 2) + ${BOOTIMG_EXTRA_SPACE})
# Ensure total sectors is an integral number of sectors per
# track or mcopy will complain. Sectors are 512 bytes, and we
# generate images with 32 sectors per track. This calculation is
# done in blocks, thus the mod by 16 instead of 32.
BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16)))
# mkdosfs will sometimes use FAT16 when it is not appropriate,
# resulting in a boot failure from SYSLINUX. Use FAT32 for
# images larger than 512MB, otherwise let mkdosfs decide.
if [ $(expr $BLOCKS / 1024) -gt 512 ]; then
FATSIZE="-F 32"
fi
mkdosfs ${FATSIZE} -n ${BOOTIMG_VOLUME_ID} -S 512 -C ${FATIMG} ${BLOCKS}
# Copy FATSOURCEDIR recursively into the image file directly
mcopy -i ${FATIMG} -s ${FATSOURCEDIR}/* ::/
}
build_hddimg() {
# Create an HDD image
if [ "${NOHDD}" != "1" ] ; then
@@ -123,58 +180,7 @@ build_hddimg() {
grubefi_hddimg_populate
fi
# Calculate the size required for the final image including the
# data and filesystem overhead.
# Sectors: 512 bytes
# Blocks: 1024 bytes
# Determine the sector count just for the data
SECTORS=$(expr $(du --apparent-size -ks ${HDDDIR} | cut -f 1) \* 2)
# Account for the filesystem overhead. This includes directory
# entries in the clusters as well as the FAT itself.
# Assumptions:
# FAT32 (12 or 16 may be selected by mkdosfs, but the extra
# padding will be minimal on those smaller images and not
# worth the logic here to caclulate the smaller FAT sizes)
# < 16 entries per directory
# 8.3 filenames only
# 32 bytes per dir entry
DIR_BYTES=$(expr $(find ${HDDDIR} | tail -n +2 | wc -l) \* 32)
# 32 bytes for every end-of-directory dir entry
DIR_BYTES=$(expr $DIR_BYTES + $(expr $(find ${HDDDIR} -type d | tail -n +2 | wc -l) \* 32))
# 4 bytes per FAT entry per sector of data
FAT_BYTES=$(expr $SECTORS \* 4)
# 4 bytes per FAT entry per end-of-cluster list
FAT_BYTES=$(expr $FAT_BYTES + $(expr $(find ${HDDDIR} -type d | tail -n +2 | wc -l) \* 4))
# Use a ceiling function to determine FS overhead in sectors
DIR_SECTORS=$(expr $(expr $DIR_BYTES + 511) / 512)
# There are two FATs on the image
FAT_SECTORS=$(expr $(expr $(expr $FAT_BYTES + 511) / 512) \* 2)
SECTORS=$(expr $SECTORS + $(expr $DIR_SECTORS + $FAT_SECTORS))
# Determine the final size in blocks accounting for some padding
BLOCKS=$(expr $(expr $SECTORS / 2) + ${BOOTIMG_EXTRA_SPACE})
# Ensure total sectors is an integral number of sectors per
# track or mcopy will complain. Sectors are 512 bytes, and we
# generate images with 32 sectors per track. This calculation is
# done in blocks, thus the mod by 16 instead of 32.
BLOCKS=$(expr $BLOCKS + $(expr 16 - $(expr $BLOCKS % 16)))
# mkdosfs will sometimes use FAT16 when it is not appropriate,
# resulting in a boot failure from SYSLINUX. Use FAT32 for
# images larger than 512MB, otherwise let mkdosfs decide.
if [ $(expr $BLOCKS / 1024) -gt 512 ]; then
FATSIZE="-F 32"
fi
IMG=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
mkdosfs ${FATSIZE} -n ${BOOTIMG_VOLUME_ID} -S 512 -C ${IMG} ${BLOCKS}
# Copy HDDDIR recursively into the image file directly
mcopy -i ${IMG} -s ${HDDDIR}/* ::/
build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
if [ "${PCBIOS}" = "1" ]; then
syslinux_hddimg_install

View File

@@ -340,7 +340,7 @@ buildhistory_get_installed() {
cat $pkgcache | while read pkg pkgfile pkgarch
do
for vendor in ${TARGET_VENDOR} ${MULTILIB_VENDORS} ; do
size=`oe-pkgdata-util read-value ${TMPDIR}/pkgdata $vendor-${TARGET_OS} "PKGSIZE" ${pkg}_${pkgarch}`
size=`oe-pkgdata-util read-value ${PKGDATA_DIR} "PKGSIZE" ${pkg}_${pkgarch}`
if [ "$size" != "" ] ; then
echo "$size $pkg" >> $1/installed-package-sizes.tmp
fi

View File

@@ -35,7 +35,7 @@ cmake_do_generate_toolchain_file() {
cat > ${WORKDIR}/toolchain.cmake <<EOF
# CMake system name must be something like "Linux".
# This is important for cross-compiling.
set( CMAKE_SYSTEM_NAME `echo ${SDK_OS} | sed 's/^./\u&/'` )
set( CMAKE_SYSTEM_NAME `echo ${TARGET_OS} | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` )
set( CMAKE_SYSTEM_PROCESSOR ${TARGET_ARCH} )
set( CMAKE_C_COMPILER ${OECMAKE_C_COMPILER} )
set( CMAKE_CXX_COMPILER ${OECMAKE_CXX_COMPILER} )

View File

@@ -31,7 +31,6 @@ STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}"
PATH_append = ":${TMPDIR}/sysroots/${HOST_ARCH}/${bindir_cross}"
PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}"
PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/"
HOST_ARCH = "${SDK_ARCH}"
@@ -89,10 +88,6 @@ FILES_${PN}-dbg += "${prefix}/.debug \
export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig"
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
# Cross-canadian packages need to pull in nativesdk dynamic libs
SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/"
SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/"
do_populate_sysroot[stamp-extra-info] = ""
USE_NLS = "${SDKUSE_NLS}"

View File

@@ -3,6 +3,15 @@ inherit terminal
DEVSHELL = "${SHELL}"
python do_devshell () {
if d.getVarFlag("do_devshell", "manualfakeroot"):
d.prependVar("DEVSHELL", "pseudo ")
fakeenv = d.getVar("FAKEROOTENV", True).split()
for f in fakeenv:
k = f.split("=")
d.setVar(k[0], k[1])
d.appendVar("OE_TERMINAL_EXPORTS", " " + k[0])
d.delVarFlag("do_devshell", "fakeroot")
oe_terminal(d.getVar('DEVSHELL', True), 'OpenEmbedded Developer Shell', d)
}
@@ -17,11 +26,8 @@ do_devshell[nostamp] = "1"
# manually
python () {
if d.getVarFlag("do_devshell", "fakeroot"):
d.prependVar("DEVSHELL", "pseudo ")
fakeenv = d.getVar("FAKEROOTENV", True).split()
for f in fakeenv:
k = f.split("=")
d.setVar(k[0], k[1])
d.appendVar("OE_TERMINAL_EXPORTS", " " + k[0])
# We need to signal our code that we want fakeroot however we
# can't manipulate the environment and variables here yet (see YOCTO #4795)
d.setVarFlag("do_devshell", "manualfakeroot", "1")
d.delVarFlag("do_devshell", "fakeroot")
}

View File

@@ -4,7 +4,7 @@ inherit populate_sdk_base
TOOLCHAIN_TARGET_TASK += "${PACKAGE_INSTALL}"
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY += "${PACKAGE_INSTALL_ATTEMPTONLY}"
POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_install_complementary populate_sdk; "
POPULATE_SDK_POST_TARGET_COMMAND += "rootfs_install_complementary populate_sdk; rootfs_sysroot_relativelinks; "
inherit gzipnative
@@ -130,6 +130,10 @@ python () {
d.setVar('MULTILIB_VENDORS', ml_vendor_list)
check_image_features(d)
initramfs_image = d.getVar('INITRAMFS_IMAGE', True) or ""
if initramfs_image != "":
d.appendVarFlag('do_build', 'depends', " %s:do_bundle_initramfs" % d.getVar('PN', True))
d.appendVarFlag('do_bundle_initramfs', 'depends', " %s:do_rootfs" % initramfs_image)
}
#
@@ -480,7 +484,7 @@ rootfs_install_complementary() {
# Use the magic script to do all the work for us :)
: > ${WORKDIR}/complementary_pkgs.txt
for vendor in '${TARGET_VENDOR}' ${MULTILIB_VENDORS} ; do
oe-pkgdata-util glob ${TMPDIR}/pkgdata $vendor-${TARGET_OS} ${WORKDIR}/installed_pkgs.txt "$GLOBS" >> ${WORKDIR}/complementary_pkgs.txt
oe-pkgdata-util glob ${PKGDATA_DIR} ${WORKDIR}/installed_pkgs.txt "$GLOBS" >> ${WORKDIR}/complementary_pkgs.txt
done
# Install the packages, if any
@@ -613,6 +617,11 @@ rootfs_trim_schemas () {
done
}
# Make any absolute links in a sysroot relative
rootfs_sysroot_relativelinks () {
sysroot-relativelinks.py ${SDK_OUTPUT}/${SDKTARGETSYSROOT}
}
EXPORT_FUNCTIONS zap_root_password remove_init_link do_rootfs make_zimage_symlink_relative set_image_autologin rootfs_update_timestamp rootfs_no_x_startup
do_fetch[noexec] = "1"
@@ -629,3 +638,11 @@ do_package_write_deb[noexec] = "1"
do_package_write_rpm[noexec] = "1"
addtask rootfs before do_build
# Allow the kernel to be repacked with the initramfs and boot image file as a single file
do_bundle_initramfs[depends] += "virtual/kernel:do_bundle_initramfs"
do_bundle_initramfs[nostamp] = "1"
do_bundle_initramfs[noexec] = "1"
do_bundle_initramfs () {
:
}
addtask bundle_initramfs after do_rootfs

View File

@@ -176,7 +176,17 @@ do_kernel_checkout() {
# case 3: we have no git repository at all.
# To support low bandwidth options for building the kernel, we'll just
# convert the tree to a git repo and let the rest of the process work unchanged
# if ${S} hasn't been set to the proper subdirectory a default of "linux" is
# used, but we can't initialize that empty directory. So check it and throw a
# clear error
cd ${S}
if [ ! -f "Makefile" ]; then
echo "[ERROR]: S is not set to the linux source directory. Check "
echo " the recipe and set S to the proper extracted subdirectory"
exit 1
fi
git init
git add .
git commit -q -m "baseline commit: creating repo for ${PN}-${PV}"
@@ -288,7 +298,8 @@ do_validate_branches() {
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
if [ "${SRCREV_machine}" = "AUTOINC" ] || "${SRCREV_machine}" = "INVALID" ] ||
[ "${SRCREV_machine}" = "" ]; then
return
fi

View File

@@ -9,6 +9,7 @@ INHIBIT_DEFAULT_DEPS = "1"
KERNEL_IMAGETYPE ?= "zImage"
INITRAMFS_IMAGE ?= ""
INITRAMFS_TASK ?= ""
INITRAMFS_IMAGE_BUNDLE ?= ""
python __anonymous () {
kerneltype = d.getVar('KERNEL_IMAGETYPE', True) or ''
@@ -19,7 +20,15 @@ python __anonymous () {
image = d.getVar('INITRAMFS_IMAGE', True)
if image:
d.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs')
d.appendVarFlag('do_bundle_initramfs', 'depends', ' ${INITRAMFS_IMAGE}:do_rootfs')
# NOTE: setting INITRAMFS_TASK is for backward compatibility
# The preferred method is to set INITRAMFS_IMAGE, because
# this INITRAMFS_TASK has circular dependency problems
# if the initramfs requires kernel modules
image_task = d.getVar('INITRAMFS_TASK', True)
if image_task:
d.appendVarFlag('do_configure', 'depends', ' ${INITRAMFS_TASK}')
}
inherit kernel-arch deploy
@@ -72,9 +81,82 @@ 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))}"
copy_initramfs() {
echo "Copying initramfs into ./usr ..."
# Find and use the first initramfs image archive type we find
rm -f ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do
if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then
cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img ${B}/usr/.
case $img in
*gz)
echo "gzip decompressing image"
gunzip -f ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.$img
break
;;
*lzo)
echo "lzo decompressing image"
lzop -df ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.$img
break
;;
*lzma)
echo "lzma decompressing image"
lzmash -df ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.$img
break
;;
*xz)
echo "xz decompressing image"
xz -df ${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.$img
break
;;
esac
fi
done
echo "Finished copy of initramfs into ./usr"
}
INITRAMFS_BASE_NAME = "${KERNEL_IMAGETYPE}-initramfs-${PV}-${PR}-${MACHINE}-${DATETIME}"
INITRAMFS_BASE_NAME[vardepsexclude] = "DATETIME"
do_bundle_initramfs () {
if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" = x1 ]; then
echo "Creating a kernel image with a bundled initramfs..."
copy_initramfs
if [ -e ${KERNEL_OUTPUT} ] ; then
mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.bak
fi
use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE}-${MACHINE}.cpio
kernel_do_compile
mv -f ${KERNEL_OUTPUT} ${KERNEL_OUTPUT}.initramfs
mv -f ${KERNEL_OUTPUT}.bak ${KERNEL_OUTPUT}
# Update install area
echo "There is kernel image bundled with initramfs: ${B}/${KERNEL_OUTPUT}.initramfs"
install -m 0644 ${B}/${KERNEL_OUTPUT}.initramfs ${D}/boot/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin
echo "${B}/${KERNEL_OUTPUT}.initramfs"
cd ${B}
# Update deploy directory
if [ -e "${KERNEL_OUTPUT}.initramfs" ]; then
echo "Copying deploy kernel-initramfs image and setting up links..."
initramfs_base_name=${INITRAMFS_BASE_NAME}
initramfs_symlink_name=${KERNEL_IMAGETYPE}-initramfs-${MACHINE}
install -m 0644 ${KERNEL_OUTPUT}.initramfs ${DEPLOY_DIR_IMAGE}/${initramfs_base_name}.bin
cd ${DEPLOY_DIR_IMAGE}
ln -sf ${initramfs_base_name}.bin ${initramfs_symlink_name}.bin
fi
fi
}
do_bundle_initramfs[nostamp] = "1"
addtask bundle_initramfs after do_compile
kernel_do_compile() {
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
# The $use_alternate_initrd is only set from
# do_bundle_initramfs() This variable is specifically for the
# case where we are making a second pass at the kernel
# compilation and we want to force the kernel build to use a
# different initramfs image. The way to do that in the kernel
# is to specify:
# make ...args... CONFIG_INITRAMFS_SOURCE=some_other_initramfs.cpio
oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
fi
@@ -219,18 +301,8 @@ kernel_do_configure() {
cp "${WORKDIR}/defconfig" "${B}/.config"
fi
yes '' | oe_runmake oldconfig
if [ ! -z "${INITRAMFS_IMAGE}" ]; then
for img in cpio.gz cpio.lzo cpio.lzma cpio.xz; do
if [ -e "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" ]; then
cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.$img" initramfs.$img
fi
done
fi
}
do_configure[depends] += "${INITRAMFS_TASK}"
do_savedefconfig() {
oe_runmake savedefconfig
}

View File

@@ -28,8 +28,7 @@ license_create_manifest() {
fi
touch ${LICENSE_MANIFEST}
for pkg in ${INSTALLED_PKGS}; do
# not the best way to do this but licenses are not arch dependant iirc
filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/${pkg}| head -1`
filename=`ls ${PKGDATA_DIR}/runtime-reverse/${pkg}| head -1`
pkged_pn="$(sed -n 's/^PN: //p' ${filename})"
# check to see if the package name exists in the manifest. if so, bail.

View File

@@ -47,7 +47,6 @@ python multilib_virtclass_handler () {
e.data.setVar("MLPREFIX", variant + "-")
e.data.setVar("PN", variant + "-" + e.data.getVar("PN", False))
e.data.setVar("SHLIBSDIR_virtclass-multilib-" + variant ,e.data.getVar("SHLIBSDIR", False) + "/" + variant)
e.data.setVar("OVERRIDES", e.data.getVar("OVERRIDES", False) + override)
# Expand the WHITELISTs with multilib prefix

View File

@@ -811,8 +811,11 @@ python split_and_strip_files () {
elf_file = isELF(file)
if elf_file & 1:
if elf_file & 2:
msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
package_qa_handle_error("already-stripped", msg, d)
if 'already-stripped' in (d.getVar('INSANE_SKIP_' + pn, True) or "").split():
bb.note("Skipping file %s from %s for already-stripped QA test" % (file[len(dvar):], pn))
else:
msg = "File '%s' from %s was already stripped, this will prevent future debugging!" % (file[len(dvar):], pn)
package_qa_handle_error("already-stripped", msg, d)
continue
# Check if it's a hard link to something else
if s.st_nlink > 1:
@@ -1301,17 +1304,8 @@ python package_do_filedeps() {
d.setVar("FILERPROVIDESFLIST_" + pkg, " ".join(provides_files[pkg]))
}
def getshlibsdirs(d):
dirs = []
triplets = (d.getVar("PKGTRIPLETS") or "").split()
for t in triplets:
dirs.append("${TMPDIR}/pkgdata/" + t + "/shlibs/")
return " ".join(dirs)
getshlibsdirs[vardepsexclude] = "PKGTRIPLETS"
SHLIBSDIRS = "${@getshlibsdirs(d)}"
SHLIBSDIR = "${TMPDIR}/pkgdata/${PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}/shlibs"
SHLIBSWORKDIR = "${PKGDESTWORK}/shlibs"
SHLIBSDIRS = "${PKGDATA_DIR}/${MLPREFIX}shlibs"
SHLIBSWORKDIR = "${PKGDESTWORK}/${MLPREFIX}shlibs"
python package_do_shlibs() {
import re, pipes
@@ -1950,6 +1944,7 @@ do_packagedata[sstate-name] = "packagedata"
do_packagedata[sstate-inputdirs] = "${PKGDESTWORK}"
do_packagedata[sstate-outputdirs] = "${PKGDATA_DIR}"
do_packagedata[sstate-lockfile-shared] = "${PACKAGELOCK}"
do_packagedata[stamp-extra-info] = "${MACHINE}"
python do_packagedata_setscene () {
sstate_setscene(d)

View File

@@ -109,7 +109,7 @@ translate_smart_to_oe() {
fi
# Workaround for bug 3565
# Simply look to see if we know of a package with that name, if not try again!
filename=`ls ${TMPDIR}/pkgdata/*/runtime-reverse/$new_pkg 2>/dev/null | head -n 1`
filename=`ls ${PKGDATA_DIR}/runtime-reverse/$new_pkg 2>/dev/null | head -n 1`
if [ -n "$filename" ] ; then
found=1
break
@@ -360,10 +360,10 @@ EOF
package_write_smart_config ${target_rootfs}
# Do the following configurations here, to avoid them being saved for field upgrade
if [ "x${NO_RECOMMENDATIONS}" = "x1" ]; then
smart --data-dir=$1/var/lib/smart config --set ignore-all-recommends=1
smart --data-dir=${target_rootfs}/var/lib/smart config --set ignore-all-recommends=1
fi
for i in ${PACKAGE_EXCLUDE}; do
smart --data-dir=$1/var/lib/smart flag --set exclude-packages $i
smart --data-dir=${target_rootfs}/var/lib/smart flag --set exclude-packages $i
done
# Optional debugging
@@ -472,11 +472,8 @@ EOF
echo "Attempting $pkgs_to_install"
echo "Note: see `dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
translate_oe_to_smart ${sdk_mode} --attemptonly $package_attemptonly
for each_pkg in $pkgs_to_install ; do
# We need to try each package individually as a single dependency failure
# will break the whole set otherwise.
smart --data-dir=${target_rootfs}/var/lib/smart install -y $each_pkg >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1 || true
done
echo "Attempting $pkgs_to_install" >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}"
smart --data-dir=${target_rootfs}/var/lib/smart install --attempt -y ${pkgs_to_install} >> "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" 2>&1
fi
}
@@ -1082,11 +1079,10 @@ python do_package_rpm () {
return name
workdir = d.getVar('WORKDIR', True)
outdir = d.getVar('DEPLOY_DIR_IPK', True)
tmpdir = d.getVar('TMPDIR', True)
pkgd = d.getVar('PKGD', True)
pkgdest = d.getVar('PKGDEST', True)
if not workdir or not outdir or not pkgd or not tmpdir:
if not workdir or not pkgd or not tmpdir:
bb.error("Variables incorrectly set, unable to package")
return

View File

@@ -1,27 +1,20 @@
python packageinfo_handler () {
import oe.packagedata
pkginfolist = []
tmpdir = e.data.getVar('TMPDIR', True)
target_vendor = e.data.getVar('TARGET_VENDOR', True)
target_os = e.data.getVar('TARGET_OS', True)
package_archs = e.data.getVar('PACKAGE_ARCHS', True)
packaging = e.data.getVar('PACKAGE_CLASSES', True).split()[0].split('_')[1]
deploy_dir = e.data.getVar('DEPLOY_DIR', True) + '/' + packaging
for arch in package_archs.split():
pkgdata_dir = tmpdir + '/pkgdata/' + arch + target_vendor + '-' + target_os + '/runtime/'
if os.path.exists(pkgdata_dir):
for root, dirs, files in os.walk(pkgdata_dir):
for pkgname in files:
if pkgname.endswith('.packaged'):
pkgname = pkgname[:-9]
pkgdatafile = root + pkgname
try:
sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
sdata['PKG'] = pkgname
pkginfolist.append(sdata)
except Exception as e:
bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
pkgdata_dir = e.data.getVar("PKGDATA_DIR", True) + '/runtime/'
if os.path.exists(pkgdata_dir):
for root, dirs, files in os.walk(pkgdata_dir):
for pkgname in files:
if pkgname.endswith('.packaged'):
pkgname = pkgname[:-9]
pkgdatafile = root + pkgname
try:
sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
sdata['PKG'] = pkgname
pkginfolist.append(sdata)
except Exception as e:
bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data)
}

View File

@@ -10,7 +10,7 @@ SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${@' packagegroup-cross-canadian-'.join(all_multilib_tune_values(d, 'TRANSLATED_TARGET_ARCH').split())}"
TOOLCHAIN_HOST_TASK ?= "nativesdk-packagegroup-sdk-host packagegroup-cross-canadian-${MACHINE}"
TOOLCHAIN_HOST_TASK_ATTEMPTONLY ?= ""
TOOLCHAIN_TARGET_TASK ?= "packagegroup-core-standalone-sdk-target packagegroup-core-standalone-sdk-target-dbg"
TOOLCHAIN_TARGET_TASK_ATTEMPTONLY ?= ""

View File

@@ -41,7 +41,7 @@ populate_sdk_rpm () {
export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${TARGET_VENDOR}-${TARGET_OS}"
export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM="$(echo '${TOOLCHAIN_TARGET_TASK_ATTEMPTONLY}' | sed 's/ *$//g')"
export INSTALL_PACKAGES_LINGUAS_RPM=""
# We don't need any of these runtime items for the SDK, so
# just make the system assume they exist.
@@ -98,7 +98,7 @@ populate_sdk_rpm () {
export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}"
export INSTALL_PLATFORM_RPM="$(echo ${TARGET_ARCH} | tr - _)${SDK_VENDOR}-${SDK_OS}"
export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${TOOLCHAIN_TARGET_HOST_ATTEMPTONLY}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM="$(echo '${TOOLCHAIN_HOST_TASK_ATTEMPTONLY}' | sed 's/ *$//g')"
export INSTALL_PACKAGES_LINGUAS_RPM=""
export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig libGL.so()(64bit) libGL.so"
export INSTALL_TASK_RPM="populate_sdk_rpm-nativesdk"

View File

@@ -16,22 +16,30 @@ RDEPENDS_${PN}-ptest_virtclass-nativesdk = ""
PACKAGES =+ "${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)}"
do_configure_ptest() {
:
}
do_configure_ptest_base() {
if [ ${PTEST_ENABLED} = 1 ]; then
if [ a$(type -t do_configure_ptest) = afunction ]; then
do_configure_ptest
fi
do_configure_ptest
fi
}
do_compile_ptest() {
:
}
do_compile_ptest_base() {
if [ ${PTEST_ENABLED} = 1 ]; then
if [ a$(type -t do_compile_ptest) = afunction ]; then
do_compile_ptest
fi
do_compile_ptest
fi
}
do_install_ptest() {
:
}
do_install_ptest_base() {
if [ ${PTEST_ENABLED} = 1 ]; then
if [ -f ${WORKDIR}/run-ptest ]; then
@@ -39,13 +47,13 @@ do_install_ptest_base() {
if grep -q install-ptest: Makefile; then
oe_runmake DESTDIR=${D}${PTEST_PATH} install-ptest
fi
if [ a$(type -t do_install_ptest) = afunction ]; then
do_install_ptest
fi
do_install_ptest
fi
fi
}
do_install_ptest_base[cleandirs] = "${D}${PTEST_PATH}"
addtask configure_ptest_base after do_configure before do_compile
addtask compile_ptest_base after do_compile before do_install
addtask install_ptest_base after do_install before do_package

View File

@@ -566,7 +566,7 @@ sstate_create_package () {
TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
# Need to handle empty directories
if [ "$(ls -A)" ]; then
tar -czf $TFILE *
tar --ignore-failed-read -czf $TFILE *
else
tar -cz --file=$TFILE --files-from=/dev/null
fi

View File

@@ -64,6 +64,11 @@ syslinux_hddimg_install() {
syslinux ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
}
syslinux_hdddirect_install() {
DEST=$1
syslinux $DEST
}
python build_syslinux_cfg () {
import copy
import sys

View File

@@ -168,6 +168,9 @@ python rm_systemd_unitdir (){
systemd_unitdir = oe.path.join(d.getVar("D", True), d.getVar('systemd_unitdir', True))
if os.path.exists(systemd_unitdir):
shutil.rmtree(systemd_unitdir)
systemd_libdir = os.path.dirname(systemd_unitdir)
if (os.path.exists(systemd_libdir) and not os.listdir(systemd_libdir)):
os.rmdir(systemd_libdir)
}
do_install[postfuncs] += "rm_systemd_unitdir "

View File

@@ -122,6 +122,7 @@ def testimage_main(d):
qemu = QemuRunner(machine, rootfs)
qemu.tmpdir = d.getVar("TMPDIR", True)
qemu.deploy_dir_image = d.getVar("DEPLOY_DIR_IMAGE", True)
qemu.display = d.getVar("BB_ORIGENV", False).getVar("DISPLAY", True)
qemu.logfile = os.path.join(testdir, "qemu_boot_log.%s" % d.getVar('DATETIME', True))
try:

View File

@@ -0,0 +1,39 @@
# Allow easy override of U-Boot config for a machine
#
# The format to specify it, in the machine, is:
#
# UBOOT_CONFIG ??= <default>
# UBOOT_CONFIG[foo] = "config,images"
#
# Copyright 2013 (C) O.S. Systems Software LTDA.
addhandler uboot_config_eventhandler
uboot_config_eventhandler[eventmask] = "bb.event.ConfigParsed"
python uboot_config_eventhandler() {
ubootconfigflags = e.data.getVarFlags('UBOOT_CONFIG')
if not ubootconfigflags:
return
ubootconfig = (e.data.getVar('UBOOT_CONFIG', True) or "").split()
if len(ubootconfig) > 1:
raise bb.parse.SkipPackage('You can only have a single default for UBOOT_CONFIG.')
elif len(ubootconfig) == 0:
raise bb.parse.SkipPackage('You must set a default in UBOOT_CONFIG.')
ubootconfig = ubootconfig[0]
for f, v in ubootconfigflags.items():
if f == 'defaultval':
continue
items = v.split(',')
if items[0] and len(items) > 2:
raise bb.parse.SkipPackage('Only config,images can be specified!')
if ubootconfig == f:
bb.debug(1, "Setting UBOOT_MACHINE to %s." % items[0])
e.data.setVar('UBOOT_MACHINE', items[0])
if items[1]:
bb.debug(1, "Appending '%s' to IMAGE_FSTYPES." % items[1])
e.data.appendVar('IMAGE_FSTYPES', ' ' + items[1])
}

View File

@@ -101,7 +101,7 @@ useradd_sysroot () {
}
useradd_sysroot_sstate () {
if [ "${BB_CURRENTTASK}" = "package_setscene" ]
if [ "${BB_CURRENTTASK}" = "package_setscene" -o "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
then
useradd_sysroot
fi
@@ -123,6 +123,7 @@ USERADDSETSCENEDEPS_virtclass-cross = ""
USERADDSETSCENEDEPS_class-native = ""
USERADDSETSCENEDEPS_class-nativesdk = ""
do_package_setscene[depends] += "${USERADDSETSCENEDEPS}"
do_populate_sysroot_setscene[depends] += "${USERADDSETSCENEDEPS}"
# Recipe parse-time sanity checks
def update_useradd_after_parse(d):

View File

@@ -293,11 +293,9 @@ END
}
def check_app_exists(app, d):
from bb import which, data
app = data.expand(app, d)
path = data.getVar('PATH', d, 1)
return bool(which(path, app))
app = d.expand(app)
path = d.getVar('PATH', d, True)
return bool(bb.utils.which(path, app))
def explode_deps(s):
return bb.utils.explode_deps(s)

13
meta/classes/waf.bbclass Normal file
View File

@@ -0,0 +1,13 @@
waf_do_configure() {
${S}/waf configure --prefix=${prefix} ${EXTRA_OECONF}
}
waf_do_compile() {
${S}/waf build ${PARALLEL_MAKE}
}
waf_do_install() {
${S}/waf install --destdir=${D}
}
EXPORT_FUNCTIONS do_configure do_compile do_install

View File

@@ -253,7 +253,7 @@ DEPCHAIN_POST = "-dev -dbg"
DEPENDS = ""
RDEPENDS = ""
PROVIDES = ""
PROVIDES_prepend = "${P} ${PF} ${PN} "
PROVIDES_prepend = "${PN} "
RPROVIDES = ""
MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
@@ -379,10 +379,10 @@ DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images"
DEPLOY_DIR_IMAGE ?= "${DEPLOY_DIR}/images/${MACHINE}"
DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
PKGDATA_DIR = "${TMPDIR}/pkgdata/${MULTIMACH_TARGET_SYS}"
PKGDATA_DIR = "${STAGING_DIR_HOST}/pkgdata"
##################################################################
# SDK variables.

View File

@@ -9,6 +9,7 @@ PREFERRED_PROVIDER_virtual/egl ?= "mesa"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
PREFERRED_PROVIDER_virtual/mesa ?= "mesa"
PREFERRED_PROVIDER_virtual/update-alternatives ?= "opkg"
PREFERRED_PROVIDER_virtual/update-alternatives-native ?= "opkg-native"
PREFERRED_PROVIDER_virtual/libx11 ?= "libx11"

View File

@@ -28,6 +28,7 @@ SECURITY_CFLAGS_pn-libgcc = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libglu = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-libpcre = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-mesa = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-mesa-gl = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-opensp = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-ppp = "${SECURITY_NO_PIE_CFLAGS}"
SECURITY_CFLAGS_pn-python = "${SECURITY_NO_PIE_CFLAGS}"

View File

@@ -34,9 +34,8 @@ B_pn-autoconf-native = "${SEPB}"
B_pn-autogen-native = "${SEPB}"
B_pn-automake = "${SEPB}"
B_pn-automake-native = "${SEPB}"
#configure: error: *** xmltoman was not found or was disabled, it is required to build the manpages as they have not been pre-built, install xmltoman, pass --disable-manpages or dont pass --disable-xmltoman
#B_pn-avahi = "${SEPB}"
#B_pn-avahi-ui = "${SEPB}"
B_pn-avahi = "${SEPB}"
B_pn-avahi-ui = "${SEPB}"
B_pn-babeltrace = "${SEPB}"
B_pn-base-passwd = "${SEPB}"
#B_pn-bash = "${SEPB}"
@@ -442,6 +441,7 @@ B_pn-menu-cache = "${SEPB}"
B_pn-mesa-demos = "${SEPB}"
# src/mapi/mapi/stub.c:51:39: error: 'MAPI_TABLE_NUM_DYNAMIC' undeclared here (not in a function)
B_pn-mesa = "${SEPB}"
B_pn-mesa-gl = "${SEPB}"
B_pn-minicom = "${SEPB}"
# Not automake, no external tree support
#B_pn-mkelfimage = "${SEPB}"

Some files were not shown because too many files have changed in this diff Show More