Compare commits

...

349 Commits

Author SHA1 Message Date
Elizabeth Flanagan
0fbd6a1615 poky.conf: Bumping SKD_VERSION
SDK_VERSION needs a bump for 1.1.1 release

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>
2012-03-14 15:49:33 -07:00
Scott Rifenbark
bda8a084f5 documentation: Updated copyright dates and release dates.
All six manuals updated.

(From yocto-docs rev: 753e3eb80b1fa6148e12f9eb93d23f4613b6be05)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-14 22:34:57 +00:00
Beth Flanagan
939ec1ca1e distro.conf: Bump for edison 1.1.1 release build
In preparation for edison 1.1.1, we need to bump DISTRO
and DISTRO_VERSION

Signed-off-by: Beth Flanagan <elizabeth.flanagan@intel.com>
2012-03-05 14:28:36 -08:00
Richard Purdie
69b307523c gnu-config: Only apply path transformations in the non-native/non-nativesdk case
The BUILD_ARCH != TARGET_ARCH check isn't a safe one to detect native builds
and doesn't cover the nativesdk case. This converts the recipe to use PN
instead which is more accurate and ensures the correct entries making it
into the correct packages.

(From OE-Core rev: 4a601314604e8428d9dace95c32a71a57eacaaf5)

(From OE-Core rev: 4066c7a3940df2740ad40b21e3ad517a9af20690)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:39:04 -08:00
Joshua Lock
6482c0e20d m4-native: explicitly set an empty BBCLASSEXTEND
The BBCLASSEXTEND from the included target results in an
m4-native-nativesdk which causes problems when running a
universe fetch.

(From OE-Core rev: 8bd88113ec7b962b570cdc90efa9f8b405730677)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:38:48 -08:00
Saul Wold
ac9c62c907 eds-tools: Convert from BZR to GIT Repo
(From OE-Core rev: b83e4e1aeed115a2b495e54b0122ccf76b4d2eed)

(From OE-Core rev: b6b0fe6747453b57fe8cab666727a650639c3a6e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:38:36 -08:00
Saul Wold
806c23ef2e libgpg-error: add BBCLASSEXTEND native for libgcrypts and gnutls-native
(From OE-Core rev: 3094a844f1ceb77153ac1a733623e6aca770b64b)

(From OE-Core rev: df48313f74e36c190cc2c25b6bdd98544acd2a28)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:38:22 -08:00
Saul Wold
4c496a970f libgcrypt: add BBCLASSEXTEND native for gnutls-native
(From OE-Core rev: 796b06e7bd4c336a5d256d54d1d16a1a9058144c)

(From OE-Core rev: d4803a9e6e661fe50da03ac04ab024cbe84a5541)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:38:09 -08:00
Richard Purdie
fa6eb32a5a binutils-cross-canadian: Clear BBCLASSEXTEND as a native version of this recipe makes no sense
(From OE-Core rev: 5980cd6af7b5260558cb234288a426c091b5de2a)

(From OE-Core rev: 3611bbe4eb7b851c4d2275e9507785d734651777)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-04 05:37:44 -08:00
Joshua Lock
eaec7e9624 sudo: backport patch to address CVE 2012-0809
This is a format string vulnerability "that can be used to crash
sudo or potentially allow an unauthorized user to elevate privileges."

(From OE-Core rev: 286cdd5db60b4f668e75cd9e05efb97acb08b7a6)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-03-01 15:59:58 +00:00
Wenzong Fan
e6ea83fece task-sdk-host-nativesdk: add autotools nativesdk to meta-toolchain
Add automake-nativesdk and autoconf-nativesdk to meta-toolchain for
fixing the configure issue:
    WARNING: unrecognized options: --with-libtool-sysroot

This will allow user to run 'autoreconf' under their projects and
process the libtool m4 macros correctly.

[YOCTO #1603]

(From OE-Core rev: d1aabea25aa7ac46a7693acb52ccfe465c63f9bf)

(From OE-Core rev: 660f7ea484d503a49fc8bdf870398ae346304b05)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:56:28 +00:00
Nitin A Kamble
613e985811 autoconf: fix nativesdk rdepends
Fixes this build error:

| error: Failed dependencies:
| 	m4 is needed by autoconf-nativesdk-2.68-r4.x86_64
| 	gnu-config is needed by autoconf-nativesdk-2.68-r4.x86_64
NOTE: package meta-toolchain-1.0-r6: task do_populate_sdk: Failed
ERROR: Task 8 (.../meta/recipes-core/meta/meta-toolchain.bb,
do_populate_sdk) failed with exit code '1'

(From OE-Core rev: df8d88e864fb6bdecf5c82b25c0252c3d54157ad)

(From OE-Core rev: )

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:56:08 +00:00
Wenzong Fan
b900d54f57 autoconf: Extend to provide nativesdk recipe
As the same reason with automake, extend autoconf to provide
nativesdk recipe too.

This patch was only used for autoconf that running on target:
    * path_prog_fixes.patch: replace '@PERL@' with '@bindir@/env perl'

It's unavailable for autoconf-native and autoconf-nativesdk, so
exclude it for those two recipes.

(From OE-Core rev: a16cf1b67f6559b182e6bb31abc1371162b04428)

(From OE-Core rev: 0b30e122e40472f5f1609cd9a513e6c4d198ac35)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:55:58 +00:00
Wenzong Fan
83e5279d62 automake: Extend to provide nativesdk recipe
We will provide autotools nativesdk in meta-tookchain for reconfigure
any autotools supported projects, as a part of the plan we should extend
their recipes first.

(From OE-Core rev: 2074285e84267f9f929ed6424f35cc4b2a00c335)

(From OE-Core rev: 4450aa5f0f757a3694db6123f6afe57a833ae986)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:55:49 +00:00
Wenzong Fan
b36cde2308 m4: Extend to provide nativesdk recipe
We need to provide autoconf-natviesdk in meta-toolchain, the
m4-nativesdk is required by it.

Both extend the m4 recipes for GPLv2 and GPLv3.

(From OE-Core rev: 3e0a0db3559ee9b15a99a95dd3b0c343dca4b2ec)

(From OE-Core rev: 139f0171432eddf67039dde3bfad402cba3cc1a6)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:55:41 +00:00
Wenzong Fan
c1a2249c96 gnu-config: Extend to provide nativesdk recipe
We need to provide autoconf-natviesdk in meta-toolchain, the
gnu-config-nativesdk is required by it.

(From OE-Core rev: 5e134b60773fa948c586dae777a6e75dce29d27d)

(From OE-Core rev: 378b9b5a9c8cda30c13bb1681fa9f0b02ef95655)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-28 14:55:32 +00:00
Joshua Lock
e3afb1ebc8 linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE
As binutils is required by perf to build and is GPLv3 licensed adding
GPLv3 to INCOMPATIBLE_LICENSE will cause linux-yocto to be skipped.

Long term we should look at moving perf to a separate recipe but as a
short term solution this patch will ensure that when GPLv3 is in
INCOMPATIBLE_LICENSE perf is not built and it's dependencies are not
added to build.

Fixes [YOCTO #1879]

(From OE-Core rev: ce61f9031b54067bffa304dab90c31278631dcdf)

(From OE-Core rev: 8c1a2fa)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-24 17:39:59 +00:00
Saul Wold
686345f1d0 ed: Fix EXTRA_OECONF to ensure right compiler is found
(From OE-Core rev: b23ab297906d7241d737f7c5e81c674deca45e32)

(From OE-Core rev: f46d9423499c2474f935728df8906d8d7346dad7)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-24 17:21:58 +00:00
Saul Wold
7b15a9372c ed: remove unsupported option
(From OE-Core rev: 65fa6a9039043a59a236d28aacce3c424a734158)

(From OE-Core rev: 05349e9323df0094904b6f4aa159e79124301d6e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-24 17:21:47 +00:00
Saul Wold
b52792d84d ed: Add SRC_URI Checksums for GPLv2
(From OE-Core rev: c30c89c8dc449cf7642565f2e35c7b1a922fcc33)

(From OE-Core rev: 7ad2af875e1d1c2d17d66c9e59d6bb85471ad2eb)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-23 17:16:57 +00:00
Nitin A Kamble
a684aa1df4 site/ix86-common: fix an error
Fixed this line
ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_int=1}

as this line
ac_cv_sizeof_unsigned_char=${ac_cv_sizeof_unsigned_char=1}

This issue was causing guile recipe to compile-fail for x86 target.

(From OE-Core rev: d71df3cc2ff2504d61078c578c0e73bbf53b6651)

(From OE-Core rev: 69ac1ad415634e125d9c366efc91353624225ad2)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-23 17:16:47 +00:00
Matthew McClintock
69a3fba2aa distutils.bbclass: override LDSHARED so we use the linker for this build and not the one used in sstate-cache
Without this fix, when packages are being built using distutils and
the python packages were deployed from sstate-cache is it possible
that the LD command will contain an invalid sysroot override.

We can fix this by always exported LDSHARED, which is the env var
that distutil looks for to override creating shared libraries.

(From OE-Core rev: 3f6b859a29ba7f570b9dae3b5bb7ab4bd7b8cee4)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-10 17:10:17 +00:00
Jessica Zhang
c6ec5a0d9e Fix the issue that adt-installer tar ball is not regenerated if sstate is on, and other minor bug fixes
(From OE-Core rev: 61da952fdc2996c27c56234c36116a69a23a378d)

Signed-off-by: Jessica Zhang <jessica.zhang@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Conflicts:

	meta/recipes-devtools/installer/adt-installer_1.0.bb
2012-02-10 17:10:08 +00:00
Lianhao Lu
de68393270 adt-installer: install autoconf(/automake)-nativesdk
[YOCTO #1909]
Install autoconf-nativesdk and automake-nativesdk to host.

(From OE-Core rev: 0b3842f5c3c1587d25e70bc8223e2b144b9043cb)

Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-10 17:10:03 +00:00
Richard Purdie
12e5797e51 fetch2/git: Add workaround for clone using alternates problem
To quote my report of this to the git mailing list:
"""

I have a problem with git clone commands using alternates failing by
mixing up different repositories. I have a situation where I could end
up with both:

/srv/mirrors/repo
/srv/mirrors/repo.git

as bare clones.

I then try cloning "repo" with alternates with the command:

$ git clone -s -n /srv/mirrors/repo /tmp/foo
Cloning into /tmp/foo...
done.

$ cat /tmp/foo/.git/objects/info/alternates
/srv/mirrors/repo.git/objects

Note how I'm now referencing repo.git, not repo. This doesn't work as
expected giving some very bizarre results when actually using the
repository.

I appreciate this is a rather bizarre corner case but its one that is
breaking the build system I work with. Ideally people would use a
consistent URL for the same repository but we have an example where they
haven't and this really shouldn't break like this.

Looking at the code, the cause seems to be

clone.c:get_repo_path():
        static char *suffix[] = { "/.git", ".git", "" };

since its looking in order for:
 repo/.git (fails)
 repo.git (suceeds, incorrect)
 repo (never looked at)

I'm not sure what would break if that order were to change, swapping the
last two options.

I can "force" the issue by running:

git clone -s -n /srv/mirrors/repo/ /tmp/foo

but this results in the slightly odd looking:

$ cat /tmp/foo/.git/objects/info/alternates

/srv/mirrors/repo//objects

which does at least work.
"""

This patch adds the trailing slash to ensure the correct repository is
referenced at the expense of some ugliness in the alternates file.

(Bitbake rev: d978e7b35550e3785c7c567ffe4c40a3c3947450)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-02-03 17:42:14 +00:00
Bruce Ashfield
6c65263f8d linux-yocto: bump kver to v3.0.18
Updating the kernel SRCREVs to pickup the stable 3.0.18 release.

(From OE-Core rev: b1a4d1a912af39dc3be7433a1e2ed4c48d5ffb93)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:49:49 +00:00
Joshua Lock
32f0a45c33 multilib.conf: add missing entry for shadow-sysroot
(From OE-Core rev: 31aff4c3db9ce985313ff9b4fc7fbe8015973749)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:49:48 +00:00
Jean-François Dagenais
726f3bce5a buildstats: tolerate absence of /proc/diskstats
In OpenVZ containers (and probably lx containers as well),
the diskstats entry is not even present. Use the "NoLogicalDrive"
introduced by Elizabeth Flanagan in such case.

This allows the bitbaking to occure within such containers.

(From OE-Core rev: 16e09b850dcb44cb1afe411439e40a4bae7e8002)

(From OE-Core rev: 84bd443d82d8022027180b6ef1f7b7cfc7d06420)

Signed-off-by: Jean-François Dagenais <jeff.dagenais@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:49:48 +00:00
Saul Wold
75f253d7d2 openssl-0.9.8: Update to 0.9.8s
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2011-4108

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

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

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

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

[YOCTO #1904]

(From OE-Core rev: 980ba5e77438c3a22c295f56ffb71f1d290db50a)

(From OE-Core rev: 3e93af369d70d20a53bd7849a62b177b910e6a36)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:49:48 +00:00
Wolfgang Denk
a5c04850e6 clutter-1.6: make build for armv4t
GCC will define __ARM_ARCH_4T__ when building with "-march=armv4t" so
we can check this to turn off the use of 'clz' instructions, which
otherwise would cause compile errors like "selected processor does
not support ARM mode `clz r3,r0'".

(From OE-Core rev: 6859e3fc34269620146d26eeecc9b93c3a9d7055)

Signed-off-by: Wolfgang Denk <wd@denx.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:51 +00:00
Joshua Lock
cef4500611 linux-tools: add binutils to perf DEPENDS
We have witnessed non-deterministic failures of perf for some platforms
whilst looking for bfd.h, a header provided by binutils.

(From OE-Core rev: ab56f27d96cbd2c79ca16d12333687ca9720934c)

(From OE-Core rev: eb014a992e0f3e6ddb4eee8e1287d28ac2f09e00)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:51 +00:00
Saul Wold
df2da07184 intltool: remove XML::Parser check
Add Patch to disable the XML::Parser check in the target
intltool.m4, this check will find the host (not native)
XML::Parser if it's installed possibly causing Host
contamination, but will also fail configuration if XML::Parser
is not installed on the host.

Since we know that XML::Parser is installed on the image, we don't
really need this check, so comment it out.

From RP in mail thread:
> If the recipe needs perl for
> some other reason than intltool, it needs perlnative but it if only
> needs perl for intltool, we shouldn't need the dependency. The .m4 macro
> checks are well intended but don't fit the way we use perl. I really
> don't want to end up in a position where intltool automatically means we
> have to add perlnative as a dependency and we've previously seen many
> problems related to that.

(From OE-Core rev: 264fb6c5a4875cd8969a24a9f0301ed916ab827b)

(From OE-Core rev: 085c76298891dc0b0e2207ef929569672c9cb254)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:51 +00:00
Matthew McClintock
77912d65c7 rpm_5.4.0.bb: Build rpm without xz
This fixes the following issue:

Log data follows:
| NOTE: Creating RPM package for perf-dbg
| NOTE: Creating RPM package for perf
| NOTE: Creating EMPTY RPM Package for kernel
| NOTE: Creating EMPTY RPM Package for kernel-3.0.9-00348-gec4b357
| NOTE: Creating RPM package for kernel-image-3.0.9-00348-gec4b357
| NOTE: Creating RPM package for kernel-dev
| NOTE: Creating RPM package for kernel-vmlinux
| NOTE: Not creating empty RPM package for kernel-misc
| NOTE: Creating RPM package for kernel-devicetree
| NOTE: Creating RPM package for kernel-module-libcrc32c
| NOTE: Creating RPM package for kernel-module-crc-itu-t
| NOTE: Creating RPM package for kernel-module-sctp
| NOTE: Creating RPM package for kernel-module-pcbc
| NOTE: Creating RPM package for kernel-module-crc32c
| NOTE: Creating RPM package for kernel-module-binfmt-misc
| NOTE: Creating RPM package for kernel-module-nfsd
| NOTE: Creating RPM package for kernel-module-exportfs
| NOTE: Creating RPM package for kernel-module-msdos
| NOTE: Creating RPM package for kernel-module-nls-utf8
| NOTE: Creating RPM package for kernel-module-udf
| NOTE: Creating RPM package for kernel-module-isofs
| NOTE: Creating RPM package for kernel-module-usbhid
| NOTE: Creating RPM package for kernel-module-scsi-wait-scan
| NOTE: Creating EMPTY RPM Package for kernel-modules
| /local/home/mattsm/git/fsl-local-sdk/build_p4080ds_release/tmp/sysroots/x86_64-linux/usr/bin/rpmbuild.real: error while loading shared libraries: liblzma.so.5: cannot open shared object file: No such file or directory
| ERROR: Function 'BUILDSPEC' failed (see /local/home/mattsm/git/fsl-local-sdk/build_p4080ds_release/tmp/work/p4080ds-fsl-linux/linux-qoriq-sdk-3.0.6-r2/temp/log.do_package_write_rpm.18943 for further information)

(From OE-Core rev: 1f55b31bdc8cf1da04ef29f4e44c1be6c0286ee2)

(From OE-Core rev: 3b0239ab2c36d7227ec4e81d2aaf93c273cdc292)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Saul Wold
878425f147 coreutils: ensure --color works so DEPEND on libcap
[YOCTO #1860]

(From OE-Core rev: 6abf6054ac5a464cfa6f1040bb166765558a1eb8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Richard Purdie
fa9ad15e41 which: Disable iberty since its not listed in DEPENDS
(From OE-Core rev: 4d6420d0aa1d6e8aecc8ec0526144f9c4396a822)

(From OE-Core rev: 778330071bcab83baff8ec8f22367f5dd0a71d35)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Nitin A Kamble
961f75d11b site/x86_64-linux: add cvs config variables
configure of cvs packages was failing on the meta-toolchain for a x86_64 target.

Configure error reported:
checking whether printf supports %p... configure: error: cannot run test program while cross compiling

This fixes [YOCTO #1781]

(From OE-Core rev: 061818adbea1af9e98fe0fdf81b21f1e7f210c00)

(From OE-Core rev: 5e0e0cf5b9d380120187d368683e9f95c1b8f6d1)

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Matthew McClintock
60c5ef3508 Nothing uses USERNAME, remove it - can cause sstate-cache conflicts
USER is the correct variable to use, also this can affect sstate
cache as well.

(From OE-Core rev: 898bf0294d01172b0990d218ecc5fecdba962711)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Matthew McClintock
e5e7a913c2 Remove EGLIBPARALLELISM from deps for EXTRA_OEMAKE
Without this simply changing the number of threads via
PARALLEL_MAKE can invalidate sstate-cache

(From OE-Core rev: b2411e12f9ea32012af20ecee1e09d95db129b75)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:50 +00:00
Richard Purdie
165e39a0bb bitbake.conf Exclude MACHINE from MACHINEOVERRIDE variable dependencies
(From OE-Core rev: 362512b83775ad7020e5870a594f0e7ca9ef83ba)

(From OE-Core rev: 3ef7e82a8b0121e2b7200179176e39ef4315971d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:49 +00:00
Khem Raj
09d5966e46 gcc-4.6: Fix gcc ICE on qt4-x11-free/armv7-a
Backport fix for PR 47551 fixes the ICE seen on armv7-a/qt4-x11-free
Bump up SRCREV past gcc 4.6.2 release

(From OE-Core rev: dd2fdf9f5a3923c37e4ea2e46e347bb0657c2f5b)

(From OE-Core rev: 320f6b71e502d65421a01a2f280c9e2c8f046619)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:49 +00:00
Richard Purdie
0bd433ebf5 opkg: Fix installation order in feeds with mutiple providers of packages
If two packages were available of differing priority, this would confuse
opkg and it was ignoring the dependency in the new dependency ordering
code. This changes it not to ignore these cases by setting the badly
named 'quiet' parameter accordingly.

(From OE-Core rev: c38693f78c968ab5f4bb557c20d1c8c55393ed6b)

(From OE-Core rev: 4c75318b75c4776cc469cc2c6511596bc7befbb4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:49 +00:00
Richard Purdie
c2e003ecd5 populate_*.bbclass: Correct INSTALL variable name after recent multilib changes
(From OE-Core rev: 379c77d1516fe8fdbd1cd7063f709b5266872b03)

(From OE-Core rev: a300e9e45f4570f0aa47fb3fabcee95433ffad99)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:49 +00:00
Richard Purdie
9f51e226dc populate_*.bbclass: Drop pointless fakeroot attribute (fakeroot is at the task level)
(From OE-Core rev: 2cac20439d4eb0b3a21ce37e2fa670941e6356c4)

(From OE-Core rev: f070a2bf7e689345ea6d9386f7298bf5d36d576f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:48 +00:00
Richard Purdie
681499ebfe scripts/runqemu-ifup: Ensure netmask is set correctly
Without this the command will add a route for the subnet 192.168.7.0 which
means multiple qemu instances can't operate correctly since all but the last
one will be masked out.

(From OE-Core rev: 9e00d6b343120496ec0dd72240c7b04e0a8b7eaa)

(From OE-Core rev: f5bcd56dcca7daad6aa6b4371d4e331d8ffd11eb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:48 +00:00
Richard Purdie
5d96094939 opkg: Drop the offlineroot_varname patch
This break things for on target opkg usage since $D must remain
unset there.

(From OE-Core rev: 746ae269a475857ae57095b1fd164fe195b3d051)

(From OE-Core rev: aa632292cc55b997a5b808b6c4a70ce33a3b9e7e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:48 +00:00
Richard Purdie
10d9e0805e opkg: Add logic to detect and creak circular dependencies
This addresses some of the concerns about the previous opkg changes
allowing it to break out of circular dependency loops with just a notice
in the logs rather than effectively going OOM.

(From OE-Core rev: 5a2b67b8faad3dd5417ba89d8e82ca564753ccc9)

(From OE-Core rev: 29f77f865434cc956e6bbccaee81ff458492ec46)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:48 +00:00
Richard Purdie
c1c6613ddd opkg: Update svn 625 -> 633 and fix preinst issues
There is a major issue with opkg images at the moment as preinst
functions are not being executed before their dependencies are installed
and this is leading to corruption of images containing avahi/dbus in
particular.

There are various changes in upstream opkg in the last 8 revisions which
make changes in this area but sadly these aren't enough to get things
working for us. I've updated to the latest svn revision with this patch
since it makes sense to pull in those changes first and then supplement
them with the attached patches.

There is a full description of the patches in the patch headers but in
summary they:

a) Ensure preinst functions execute with their dependencies installed.
   This is a pretty invasive change as it changes the package install
   ordering in general.
b) Ensure opkg sets $D, not $PKG_ROOT which we don't use
c) Change opkg to allow execution of postinstall functions which fail
   resulting in execution on the target device as rootfs_ipk.bbclass
   currently does manually.

The remaining changes interface this with the rest of the OE build
infrastructure, adding in the option to tell opkg to run the preinst and
postinst functions, ensure the correct environment is present for the
postinst scripts and removing the now unneeded rootfs_ipk class code
which opkg now does itself.

[YOCTO #1711]

(From OE-Core rev: 2feba313c991170747381c7cf821a45c2cd04632)

(From OE-Core rev: b7e2eff8c18bc59605fb711ac4540985c71f155a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:48 +00:00
Richard Purdie
5db4eaac2d update-alternatives: Various fixes
dpkg-native's update-alternatives is broken for offline work so
don't install it.

Also list update-alternatives in the multiprovider whitelist to
avoid unwanted multiple provider warnings when multiple package
backends are enabled.

(From OE-Core rev: 300336fc4a310ed16a14ad041744708d54aae189)

(From OE-Core rev: c90b1faa34e908c7f63e1a64027873858e6d7e8a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:47 +00:00
Richard Purdie
f99f36f637 package_rpm: Set _tmppath to avoid races over tmp files
Occasionally we keep seeing "unable to open temp file" messages during
do_package_write_rpm tasks. This appears to happen when multiple
processes are writing rpm files and is likely due to using the
shared system temp directory. This patch changes the tmp path
to the package work directory meaning conflicts should become
a non-issue.

(From OE-Core rev: b2ef543284c8c8d0d3badb2e1bcadad1106982d2)

(From OE-Core rev: 018442ed2cd251f85212dfa1d03c0b24a0750bfa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:47 +00:00
Jiajun Xu
7705d9a8cc sanitytest: remove rpm/zypper tests if PACKAGE_CLASSES does not set package_rpm
If PACKAGE_CLASSES does not set package_rpm as the first item, the root filesystem
will not be generated based on rpm. We need remove rpm/zypper tests against
non-rpm filesystem.

[YOCTO #1757]

(From OE-Core rev: 43adb8dcf4461b68a7ce0ba9d8acdb2012a70416)

(From OE-Core rev: f541517be97e27951157e1dd10256e132c31ab1f)

Signed-off-by: Jiajun Xu <jiajun.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:47 +00:00
Richard Purdie
bcec98bf1c package.bbclass: Ensure paths to rpmmarcos and rpmpopt are set
If rpm-native was built in an alternative location, it may not relocate correctly
unless the rpmpopt and macros paths are explicitly specified.

This fixes errors seen on the Yocto autobuilder where pkgconfig
"provides" entries could disappear leading to image dependency failures.

(From OE-Core rev: fb01bd81197057e62106aac966f9ebc4c5054f97)

(From OE-Core rev: 15f50ab3ee454dc3510801d61bb09bf37d78d1af)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:47 +00:00
Matthew McClintock
0d9809c4ec populate_sdk.bbclass: remap packages when generating sdk tarball
This fixes the issue below:

| Generating solve db for /local/home/mattsm/git/poky/build_p4080ds_release/tmp/deploy/rpm/all...
|    total:               1      0.000000 MB      0.093784 secs
|    fingerprint:         9      0.000012 MB      0.000252 secs
|    install:             3      0.000000 MB      0.039092 secs
|    dbadd:               3      0.000000 MB      0.034837 secs
|    dbget:              12      0.000000 MB      0.000062 secs
|    dbput:               3      0.009532 MB      0.002731 secs
|    readhdr:            31      0.019160 MB      0.000084 secs
|    hdrload:            15      0.027924 MB      0.000116 secs
|    hdrget:            494      0.000000 MB      0.000691 secs
| Processing task-core-standalone-sdk-target...
| Processing glib-2.0...
| Unable to find package glib-2.0 (glib-2.0)!
| ERROR: Function 'do_populate_sdk' failed (see /local/home/mattsm/git/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl-linux/fsl-toolchain-1.0-r6/temp/log.do_populate_sdk.16975 for further information)

If you have:

TOOLCHAIN_TARGET_TASK += "glib-2.0"

The package name was not getting remapped correctly for the do_populate_sdk
case.

(From OE-Core rev: 0b803ac3627c238aa7d19a23b7621f55779f2557)

(From OE-Core rev: e1a07a5fcba93b3ab127c7c6588cab5799a5df45)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:46 +00:00
Saul Wold
dcf64630f8 bitbake.conf: remove texinfo-native from ASSUME_PROVIDED
We need to build texinfo-native to get and install the makedoc tool

[YOCTO #1664]

(From OE-Core rev: 8899f4840787ef043d952f8ea2ce5d78e5cc41ab)

(From OE-Core rev: 8e802c0ed491967cd254dce1555a960382a79247)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:46 +00:00
Saul Wold
fa610f7f20 texinfo: fix compile failure due target makedoc binary being used
Need to have the texinfo-native build and install a host sysroot makedoc
binary and then patch the target build to use this binary. This requires
that we don't ASSUME_PROVIDED texinfo-native any longer since we need to
install this makedoc tool which is not part of the normal distrubtion.

[YOCTO #1664]

(From OE-Core rev: 9fa98de54a73465f06484ba863eccf1e07cc1e2a)

(From OE-Core rev: 007bbb23808cc5b036829915e3dfa04f590a05d8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:46 +00:00
Paul Eggleton
d97ad36d90 qemu: for native, do not fail if kvm is unavailable
When building qemu-native, if the linux kvm header is unavailable (as
it is on CentOS 5.x 32-bit) then do not pass the --enable-kvm switch to
the configure script, thus avoiding failed do_configure.

(From OE-Core rev: 8c21c71f005b601f58925e9912f2cf44127e291d)

(From OE-Core rev: 44d9e208c97ec1e3c5ba0a8dc6c10cef12dc270d)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:46 +00:00
Paul Eggleton
de7377a170 scripts/bitbake: add a version >= 2.6 check
Unfortunately we now have code in BitBake which is parsed before the
current version check and is incompatible with Python < 2.6. Rather than
fixing this and being eternally vigilant for >= 2.6 feature usage, just
add a version check to the wrapper script.

(From OE-Core rev: 9b8a48efa3b80fea34efa51de44d10ff2b1e3193)

(From OE-Core rev: c3ba7e8f7aca8b49739b3b92aec723c5f3375bc0)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:45 +00:00
Paul Eggleton
c471ec56b4 scripts/runqemu: show an error if /dev/net/tun is unusable
If /dev/net/tun is either not present or is not writable by the
user, then show an appropriate error message. (QEMU needs access to this
device in order to enable networking; it may be missing if it is not
enabled or loaded into the kernel, and some distributions such as CentOS
5.x set restrictive permissions upon it.)

(From OE-Core rev: a00b94900d437828f25debce1c30ffcc0bbf29e9)

(From OE-Core rev: b66fa6238a8f9c0972a60932941997517826ff03)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:45 +00:00
Mei Lei
9d55534cc7 rpm: Flush old logs by change the DB_CONFIG
Fixes [YOCTO #1174]

Rpm logs will grow indefinitely, so change the config to flush those old logs.

(From OE-Core rev: e2c4dff079722f256ddcab9630b5b3f8f6421cc9)

(From OE-Core rev: f235c7a320c401fea70a578186c5cf80dd597fcd)

Signed-off-by: Mei Lei <lei.mei@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:45 +00:00
Richard Purdie
54f4e9b66c package.bbclass: Ensure we tell rpmdeps where to find its magic file
Without this, if rpmddeps came from a sstate package which was relocated
it might not find its magic file and if that happens, requires/provides
in packages could get corrupted. This leads to failures at rootfs time
during builds with messages like:

libdbus-1.so.3 is needed by libdbus-glib-1-2-0.92-r1.armv5te

since the provides would be missing in the dbus package.

(From OE-Core rev: abe2a948905a997314c61a8fcd35e2b42a3f4408)

(From OE-Core rev: 5ee145ebbb32824e3870b6dd689ce2b3f9bf3f17)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:45 +00:00
Zhai Edwin
3e783002b3 matchbox-wm: Fix variable type in _NET_WORKAREA setting
According to XChangeProperty doc, array of "long" should be used when format is
32. Wrong _NET_WORKAREA parameter caused blank screen in matchbox-desktop on 64
bit platform.

[YOCTO #1689] got fixed.

(From OE-Core rev: 381c7857a5b303bf9eadd7fffc39d17a2b8e31f2)

(From OE-Core rev: 869601da9aa43d77564c37d291d9072b9896d3e6)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:44 +00:00
Martin Jansa
935678cbe1 bitbake.conf: add default PRINC 0 to be able to increment it
(From OE-Core rev: 656793c706d84460f397b10ceb23ebb721ed3960)

(From OE-Core rev: 32f0ad32d901ae5a97d912d8d36d4d9a2b502919)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:44 +00:00
Matthew McClintock
ee75b5020b openjade-native_1.3.2.bb: remove CONFIGUREOPTS as vardep for do_configure
This variable was being expanded immediately and pulling in
paths to the variable dependecies which causes it's sstate-cache
to never be reused

(From OE-Core rev: ddb8d3de34f809b9c72eb3a2223a74f75eff7911)

(From OE-Core rev: 8f616810b868a30fc01550c017f9fc14220ae7d8)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:44 +00:00
Richard Purdie
5f21a24580 dpkg-native: Fix perl path
The path to the native perl was incorrect leading to rootfs failures. This
patch corrects that problem.

(From OE-Core rev: 044324465bd54d53ae768f3c1e7468ae0e0c6200)

(From OE-Core rev: 8fa40eb1c2a32782b8a74bee70fa81b2c3e5cbaf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:44 +00:00
Richard Purdie
100002e4c6 bitbake.conf: We only care about the absolute value of baselib
The value of baselib can be constructed in several different ways
and from a sstate perspective we don't care how it was made up,
we only care what the final value is. This uses the new functionality
in bitbake to ensure we only include the value of baselib and not
any intermediate dependencies.

[YOCTO #1583]

(From OE-Core rev: c38567894ebc31ac977f2bc89a076d0380bddcf8)

(From OE-Core rev: 8b70cfe7a1768b8bf1e5b7e390276518e16f14af)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:44 +00:00
Richard Purdie
71824019fb eglibc-initial: Ensure symlinks point to the correct location when built from sstate cache
If the sstate files are installed into a sysroot from the sstate cache,
the directory to the main sysroot can change and the symlinks aren't
adjusted to account for this. This is a problem specific to the toolchain
bootstrap process. This patch adds up a function to recreate the
symlinks, hence ensuring they always point at the correct location.

(From OE-Core rev: ad0baa7d2f33a865011e0c6afe29f22aa1beea32)

(From OE-Core rev: bc8a384c49c60feab9d01f8277e92ac0603c8f93)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:43 +00:00
Matthew McClintock
3400b3d2df patch.bbclass: Add PATCHRESOLVE to excluded vars for generating sstate-cache
The method of resolving the patch should not effect the sstate-cache
signature.

(From OE-Core rev: b64cbe0b511de8d8943ce34cbb4901239d9f0cb0)

(From OE-Core rev: 896bd7d1442dcd3f080dc741a72f50ab95d7c38f)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:43 +00:00
Richard Purdie
745d83f968 sstate.bbclass: Ensure we expand stamp-extra-info
Without this change we can end up looking for <stamp>.${MACHINE}
instead of the expected expanded value.

(From OE-Core rev: 9f743b5033177216fe0e1d3e43ba831f356df08e)

(From OE-Core rev: de9f47b09d5434642ba925182ae21a8e77e7e429)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:43 +00:00
Richard Purdie
340a680de2 sstate: No need to spew out a debug message per file, summarise instead
(From OE-Core rev: c7b02c6e80819e30a0818282ab8d960243a2d0e8)

(From OE-Core rev: 6df929c8b58daa19423e5994bbf8bb68c912707f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:43 +00:00
Matthew McClintock
3048bd79b3 sudo_1.8.1p2.bb: Pull patch from upstream to fix parallel build issue
(From OE-Core rev: 255588da1834b45325cf6677906aef2687a3b5f6)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:42 +00:00
Michael Brown
ef37926f31 gcc-4.6: fix toolchain build for SH4
(From OE-Core rev: da7bf75bcdd5759a0f551dcb7a0326aa2f40921c)

(From OE-Core rev: 3c9fd383965f883129cf35d0e307d3bbbd5d4908)

Signed-off-by: Michael Brown <Michael_E_Brown@dell.com>

Port patch from base openembedded. Since 4.6 already has fixes for config.gcc,
the fix only requires a one line change to gcc-cross4.inc.

The patch was imported from the OpenEmbedded git server
(git://git.openembedded.org/openembedded) as of commit id
3aa8afe97e9cf1340feb9c4442a6ed88b7e32c96.

gcc-4.5: Fix toolchain builds for SH4/SH3

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:42 +00:00
Richard Purdie
4c30bcfbfe libconvert-asn1-perl/libtimedate-perl: Convert to use allarch
Both these recipes generate architecture independent packages.
They can safely use the allarch class to ensure they really
are indepentent from the target compiler and so forth and
hence ensure sstate packages with good dependencies.

[YOCTO #1075]

(From OE-Core rev: 2856d3f6aca0c20acd40f7f8970ec8590e4889a8)

(From OE-Core rev: 676a5c44fb621ae428f8ac1fc466469914cbc864)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:42 +00:00
Phil Blundell
709ad80662 libnss-mdns: avoid race condition in postinst
Writing to "/tmp/nsswitch.conf" leads to a race condition if two
copies of the postinst are running simultaneously.  Fix this by
modifying /etc/nsswitch.conf in place using sed -i.  Also make the
same change to the prerm for consistency although the race will not
occur here in practice.

(From OE-Core rev: 689884653938b98899fb3ba791221fdbe2f40e7f)

(From OE-Core rev: 2a2741c12196c34c5e6127488a8eeec7118b2952)

Signed-off-by: Phil Blundell <philb@gnu.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:42 +00:00
Martin Jansa
08a834a08a alsa-lib: use PKGSUFFIX for every package to resolve multiple runtime providers from target and nativesdk
(From OE-Core rev: 60738953f6fee24de447cd0f9cf81cce6f8966a5)

(From OE-Core rev: 4c2a9e410c46fbf52f3d64767baf06c7146d001e)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:41 +00:00
Martin Jansa
6c3dd24e59 webkit-gtk: force arm mode to work around binutils segfault
* this is just work around, would be better to fix in toolchain

(From OE-Core rev: 2df59dad90f31aa48113ad8afe1af084b71a6a2c)

(From OE-Core rev: 3648cf8f02601ac57787f81cb199677434970b34)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:41 +00:00
Martin Jansa
66d6c031b0 aspell: force ARM mode
* this is just work around for ICE, better fix would be to fix gcc
| ./common/fstream.hpp:23:9: note: the mangling of 'va_list' has changed in GCC 4.4
| modules/speller/default/typo_editdist.cpp: In function 'short int aspeller::typo_edit_distance(acommon::ParmString, acommon::ParmString, const aspeller::TypoEditDistanceInfo&)':
| modules/speller/default/typo_editdist.cpp:77:3: internal compiler error: in gen_thumb_movhi_clobber, at config/arm/arm.md:5937
| Please submit a full bug report,
| with preprocessed source if appropriate.
| See <http://gcc.gnu.org/bugs.html> for instructions.
| make[1]: *** [modules/speller/default/typo_editdist.lo] Error 1
| make[1]: *** Waiting for unfinished jobs....
| make[1]: Leaving directory `/OE/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/aspell-0.60.6.1-r0/aspell-0.60.6.1'

(From OE-Core rev: eff532ea13a270c0e4ffaf4ab059403d612a3197)

(From OE-Core rev: 9fa76ebe080ec729af429cf2a77b4aba814c2b61)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:41 +00:00
Martin Jansa
957882caef pulseaudio-0.9.23: force ARM mode
* this is just work around, should be tested again after upgrade to
  pulseaudio-1.1
* otherwise build for armv4t (om-gta02) fails with this:
| /bin/sh ../arm-oe-linux-gnueabi-libtool  --tag=CC   --mode=compile
arm-oe-linux-gnueabi-gcc  -march=armv4t -mthumb -mthumb-interwork
-mtune=arm920t --sysroot=/OE/shr-core/tmp/sysroots/om-gta02 -std=gnu99
-DHAVE_CONFIG_H -I. -I..    -I../src -I../src -I../src/modules
-I../src/modules -I../src/modules/rtp -I../src/modules/rtp
-I../src/modules/gconf -I../src/modules/gconf -I../src/modules/bluetooth
-I../src/modules/bluetooth -I../src/modules/oss -I../src/modules/oss
-I../src/modules/alsa -I../src/modules/alsa -I../src/modules/raop
-I../src/modules/raop -I../src/modules/x11 -I../src/modules/x11
-I../src/modules/jack -I../src/modules/jack -I../src/modules/echo-cancel
-I../src/modules/echo-cancel -pthread -D_POSIX_PTHREAD_SEMANTICS
-DPA_BUILDDIR=\"/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23/src\"
-DPA_DLSEARCHPATH=\"/usr/lib/pulse-0.9.23/modules\"
-DPA_DEFAULT_CONFIG_DIR=\"/etc/pulse\"
-DPA_BINARY=\"/usr/bin/pulseaudio\"
-DPA_SYSTEM_RUNTIME_PATH=\"/var/run/pulse\"
-DPA_SYSTEM_CONFIG_PATH=\"/var/lib/pulse\"
-DPA_SYSTEM_STATE_PATH=\"/var/lib/pulse\" -DAO_REQUIRE_CAS
-DPULSE_LOCALEDIR=\"/usr/share/locale\"
-DPA_MACHINE_ID=\"/var/lib/dbus/machine-id\"
-DPA_ALSA_PATHS_DIR=\"/usr/share/pulseaudio/alsa-mixer/paths\"
-DPA_ALSA_PROFILE_SETS_DIR=\"/usr/share/pulseaudio/alsa-mixer/profile-sets\"
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wextra -pipe
-Wno-long-long -Winline -Wvla -Wno-overlength-strings
-Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op
-Wsign-compare -Wformat-security -Wmissing-include-dirs
-Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self
-Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes
-Wstrict-prototypes -Wredundant-decls -Wmissing-declarations
-Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align
-Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math
-Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -c -o
libbluetooth_sbc_la-sbc.lo `test -f 'modules/bluetooth/sbc.c' || echo
'./'`modules/bluetooth/sbc.ci

| arm-oe-linux-gnueabi-libtool: compile:  arm-oe-linux-gnueabi-gcc
-march=armv4t -mthumb -mthumb-interwork -mtune=arm920t
--sysroot=/OE/shr-core/tmp/sysroots/om-gta02 -std=gnu99 -DHAVE_CONFIG_H
-I. -I.. -I../src -I../src -I../src/modules -I../src/modules
-I../src/modules/rtp -I../src/modules/rtp -I../src/modules/gconf
-I../src/modules/gconf -I../src/modules/bluetooth
-I../src/modules/bluetooth -I../src/modules/oss -I../src/modules/oss
-I../src/modules/alsa -I../src/modules/alsa -I../src/modules/raop
-I../src/modules/raop -I../src/modules/x11 -I../src/modules/x11
-I../src/modules/jack -I../src/modules/jack -I../src/modules/echo-cancel
-I../src/modules/echo-cancel -pthread -D_POSIX_PTHREAD_SEMANTICS
-DPA_BUILDDIR=\"/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23/src\"
-DPA_DLSEARCHPATH=\"/usr/lib/pulse-0.9.23/modules\"
-DPA_DEFAULT_CONFIG_DIR=\"/etc/pulse\"
-DPA_BINARY=\"/usr/bin/pulseaudio\"
-DPA_SYSTEM_RUNTIME_PATH=\"/var/run/pulse\"
-DPA_SYSTEM_CONFIG_PATH=\"/var/lib/pulse\"
-DPA_SYSTEM_STATE_PATH=\"/var/lib/pulse\" -DAO_REQUIRE_CAS
-DPULSE_LOCALEDIR=\"/usr/share/locale\"
-DPA_MACHINE_ID=\"/var/lib/dbus/machine-id\"
-DPA_ALSA_PATHS_DIR=\"/usr/share/pulseaudio/alsa-mixer/paths\"
-DPA_ALSA_PROFILE_SETS_DIR=\"/usr/share/pulseaudio/alsa-mixer/profile-sets\"
-O2 -pipe -g -feliminate-unused-debug-types -Wall -W -Wextra -pipe
-Wno-long-long -Winline -Wvla -Wno-overlength-strings
-Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op
-Wsign-compare -Wformat-security -Wmissing-include-dirs
-Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self
-Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes
-Wstrict-prototypes -Wredundant-decls -Wmissing-declarations
-Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align
-Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math
-Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -c

modules/bluetooth/sbc.c  -fPIC -DPIC -o .libs/libbluetooth_sbc_la-sbc.oi
| modules/bluetooth/sbc.c: In function 'sbc_synthesize_four':
| modules/bluetooth/sbc.c:553:18: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:553:18: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:565:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c: In function 'sbc_synthesize_eight':
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:595:29: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: declaration of 'tmp' shadows a previous local [-Wshadow]
| modules/bluetooth/sbc.c:611:40: warning: shadowed declaration is here [-Wshadow]
| {standard input}: Assembler messages:
| {standard input}:6997: Error: selected processor does not support Thumb mode `mla r3,r0,ip,r3'
| {standard input}:7012: Error: selected processor does not support Thumb mode `mla r3,r1,ip,r3'
| {standard input}:7026: Error: selected processor does not support Thumb mode `mla r3,ip,r0,r3'
| {standard input}:7215: Error: selected processor does not support Thumb mode `mla r3,r7,r0,r3'
| {standard input}:7230: Error: selected processor does not support Thumb mode `mla r3,r7,r0,r3'
| {standard input}:7241: Error: selected processor does not support Thumb mode `mla r3,r0,r7,r3'
| {standard input}:7256: Error: selected processor does not support Thumb mode `mla r3,r0,r7,r3'
| {standard input}:7267: Error: selected processor does not support Thumb mode `mla r3,r7,r0,r3'
| {standard input}:7287: Error: selected processor does not support Thumb mode `mla r3,r7,r6,r3'
| {standard input}:7301: Error: selected processor does not support Thumb mode `mla r3,r6,r5,r3'
| {standard input}:7319: Error: selected processor does not support Thumb mode `mla r3,r0,r5,r3'
| {standard input}:7327: Error: selected processor does not support Thumb mode `mla r3,r1,r0,r3'
| {standard input}:7594: Error: selected processor does not support Thumb mode `mla r3,r5,r6,r3'
| {standard input}:7604: Error: selected processor does not support Thumb mode `mla r3,r5,r6,r3'
| {standard input}:7614: Error: selected processor does not support Thumb mode `mla r3,r5,r6,r3'
| {standard input}:7624: Error: selected processor does not support Thumb mode `mla r3,r5,r6,r3'
| {standard input}:7634: Error: selected processor does not support Thumb mode `mla r3,r5,r6,r3'
| {standard input}:7647: Error: selected processor does not support Thumb mode `mla r3,r2,r5,r3'
| {standard input}:7657: Error: selected processor does not support Thumb mode `mla r3,r2,r5,r3'
| {standard input}:7815: Error: selected processor does not support Thumb mode `mla r3,r9,r7,r3'
| {standard input}:7837: Error: selected processor does not support Thumb mode `mla r3,r9,r0,r3'
| {standard input}:7853: Error: selected processor does not support Thumb mode `mla r3,r9,r0,r3'
| {standard input}:7875: Error: selected processor does not support Thumb mode `mla r3,r9,r7,r3'
| {standard input}:7891: Error: selected processor does not support Thumb mode `mla r3,r9,r7,r3'
| {standard input}:7908: Error: selected processor does not support Thumb mode `mla r3,r0,r6,r3'
| {standard input}:7931: Error: selected processor does not support Thumb mode `mla r3,r6,r5,r3'
| {standard input}:7952: Error: selected processor does not support Thumb mode `mla r3,r0,r5,r3'
| {standard input}:7960: Error: selected processor does not support Thumb mode `mla r3,r2,r0,r3'
| make[4]: *** [libbluetooth_sbc_la-sbc.lo] Error 1
| make[4]: Leaving directory `/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23/src'
| make[3]: *** [all-recursive] Error 1
| make[3]: Leaving directory `/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23/src'
| make[2]: *** [all] Error 2
| make[2]: Leaving directory `/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23/src'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/pulseaudio-0.9.23'
| make: *** [all] Error 2
| + die 'oe_runmake failed'
| + bbfatal 'oe_runmake failed'
| + echo 'ERROR: oe_runmake failed'
| ERROR: oe_runmake failed
| + exit 1
| ERROR: Function 'do_compile' failed (see /OE/shr-core/tmp/work/armv4t-oe-linux-gnueabi/pulseaudio-0.9.23-r6/temp/log.do_compile.3404 for further information)

(From OE-Core rev: 31a20d50124344dc708ade282677b2c7dda171b0)

(From OE-Core rev: 4eaf22dc67c3de9025bae3f24837f569aba91fff)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:41 +00:00
Khem Raj
8781450256 pulseaudio: inherit perlnative
manpage generatition uses xmltoman utility
which inturn uses xml-parser. So we add
libxml-parser-perl-native to DEPENDS and also
inherit perlnative so it does not use the one
from build host

(From OE-Core rev: 51f6a683ec1d740adf09d808671c7098dc3f83e2)

(From OE-Core rev: 1c5cdc8ee9edeafe86ef0fd955ee067ab67c7aa9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:41 +00:00
Martin Jansa
9d23f215a0 libatomics-ops: force ARM mode
* otherwise ie spitz (armv5te) build fails with:
| make[3]: Entering directory `/OE/shr-core/tmp/work/armv5te-oe-linux-gnueabi/libatomics-ops-1.2-r5/libatomic_ops-1.2/src'
| arm-oe-linux-gnueabi-gcc  -march=armv5te  -mthumb -mthumb-interwork  -mtune=xscale --sysroot=/OE/shr-core/tmp/sysroots/spitz -DHAVE_CONFIG_H -I.    -fPIC -O
2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -c atomic_ops.c
| arm-oe-linux-gnueabi-gcc  -march=armv5te  -mthumb -mthumb-interwork  -mtune=xscale --sysroot=/OE/shr-core/tmp/sysroots/spitz -DHAVE_CONFIG_H -I.    -fPIC -O
2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -c atomic_ops_stack.c
| arm-oe-linux-gnueabi-gcc  -march=armv5te  -mthumb -mthumb-interwork  -mtune=xscale --sysroot=/OE/shr-core/tmp/sysroots/spitz -DHAVE_CONFIG_H -I.    -fPIC -O
2 -pipe -g -feliminate-unused-debug-types -DNDEBUG -c atomic_ops_malloc.c
| atomic_ops_malloc.c: In function 'msb':
| atomic_ops_malloc.c:223:2: warning: right shift count >= width of type [enabled by default]
| rm -f libatomic_ops_gpl.a
| ar cru libatomic_ops_gpl.a atomic_ops_stack.o atomic_ops_malloc.o
| arm-oe-linux-gnueabi-ranlib libatomic_ops_gpl.a
| {standard input}: Assembler messages:
| {standard input}:286: Error: selected processor does not support Thumb mode `swp r1,r2,[r3]'
| {standard input}:329: Error: selected processor does not support Thumb mode `swp r0,r1,[r3]'

* this is just work around, proper fix proposed by Henning Heinold
  hm we should think of reworking this recipe now. Because since gcc 4.5
  pulseaudio for arm can use the gcc internal atomicstuff and in oe-core
  and meta-oe we have 4.5 or 4.6 only. The lib is
  only needed for mips and it is still the old release, on cvs
  is a much better version, which supports thumb too, if
  remember correctly.

(From OE-Core rev: 2d34fc0ce21fe06ff97208c8ffb65a718b444de9)

(From OE-Core rev: 6b403ff01863cf3788b696a2b45e56cfaca56512)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:40 +00:00
Richard Purdie
2c1a0b7d32 dpkg/update-alternatives: Fix dpkg version of update-alternatives to be usable
The version of dpkg the updates-alternatives-dpkg recipe pointed
at no longer used a perl script but a compiled binary. This meant
the "all" architecture field was invalid, as as the sed operation
during do_patch. All things considered the separate recipe was
pretty pointless.

This patch moves update-alternatives back to being built as part
of the dpkg recipe. It also moves various functionalty to the .inc
file which it belongs and fixes building and packaging of the dpkg
perl modules.

(From OE-Core rev: fad496c759066d53bebf9b8cebc63e6478c91d19)

(From OE-Core rev: 467af9ae45ce54d6e50041d5134af889ac7cf4d2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:40 +00:00
Richard Purdie
9e52c53a5d base-passwd: Move update-passwd into a separate package
update-passwd is the only user of the passwd/group.master files
and was never used by OE since it wasn't run.

This patch packages this separately and adds an appropriate postinst
to make the package useful so people can include it as they wish.

(From OE-Core rev: 77ab0f09546c5f6217a8e2f1bc30cf3d4306e3fa)

(From OE-Core rev: c26d37b65e0ad69a36e799c56f3c4426ea18f17e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:40 +00:00
Richard Purdie
f812a2c912 base-passwd: Fix the broken preinst/postinstall
The preinst accesses file which may not yet have been unpacked.
The postinst is too late for the creation of these files
for at least the opkg backend.

This patch therefore encodes the file contents into the preinst,
resolving the various issues once and for all.

(From OE-Core rev: fc708d88f97e40a5bf929e4e02ed805fb3684ffe)

(From OE-Core rev: 0f4156c0735e28812c3f8ab27075d3de5360badb)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:40 +00:00
Richard Purdie
d3c848094f opkg: Ensure we use the uname/gname fields when extracting tarballs
When extracting packages onto the target system in particular, we
really want to ensure the name fields in the tarball are used over
and above the numerical uid/gid values. This patch adds this
functionality to opkg and ensures package upgrades work correctly
permission wise.

(From OE-Core rev: f2316ff39670ed99382411e15ac035550360fbdd)

(From OE-Core rev: 56800b9906cf228331083256664407947f831185)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:39 +00:00
Richard Purdie
37d694ae80 rootfs_ipk.bbclass: Ensure bad recommendations persist in the status file
Currently bad recommendations are added to the status file with status
"ok". After a single opkg command, whilst it will ignore the recommendation,
the status changes to "installed" even if the recommended package was not
installed. Whilst this is likely a glitch in opkg's logic, the correct
way to persist the information in the status file is to set the status
to "hold" as deinstall packages with that status remain. With this change
the bad recommendations persist accross multiple opkg runs and the system
behaves as expected.

[YOCTO #1758]

(From OE-Core rev: 215ff6b2e9676c8c7dd8acfd696151bcd0f1490f)

(From OE-Core rev: 525743f5513feff67fb8fd2e4c7a1a05ae22ddc9)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:39 +00:00
Otavio Salvador
e391e1a200 xinit: rdepends on util-linux-mcookie to avoid brining whole util-linux
(From OE-Core rev: a8ed4fcd79f6283c1d45f347dce894d784183900)

(From OE-Core rev: 7fc9855421222eb671e414ef7bc190f53521e914)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:39 +00:00
Otavio Salvador
199f985754 util-linux: split mcookie into a package
(From OE-Core rev: 3e5b9ddaf3f9492e34967146c42369bcd76ddf03)

(From OE-Core rev: 66ac20ea171a5f823b4810975570885c8138d930)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:39 +00:00
Paul Eggleton
395ffa8930 util-linux: split out mkfs into its own package
For those external tools such as Webmin that call mkfs to do formatting
operations, it is useful to have it in its own package to avoid dragging
in the rest of util-linux.

(From OE-Core rev: cceee30de96b2389209fc2c9c474ebbd863ff64a)

(From OE-Core rev: d5841bc9559d9de4ca1a063ecf40571688d0d147)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>

[Merged with head]

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:38 +00:00
Matthew McClintock
90920546e4 Add new util-linux-chkdupexe package to avoid making perl a dependecy for all of util-linux
(From OE-Core rev: 57def2a05f4cff77f014c6dfb93c2dcc1b9db61b)

(From OE-Core rev: 115f49b2b4b13884be7a4fffc4261cbcb884d428)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:38 +00:00
Koen Kooi
1d9ec42166 util-linux 2.19.1: split blkid out into its own subpackage
Recent udev versions require blkid from u-l, not from e2fsprogs. In general all the non fsck related binaries from e2fsprogs are deprecated.

(From OE-Core rev: eb048308ae80d779e904951b032dba5b780898e5)

(From OE-Core rev: d9afc91bd5bce889dfbcba13b6b59ea07f288cc7)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:38 +00:00
Koen Kooi
57481984c9 util-linux: split fsck* into its own subpackage
This will allow systemd to run /sbin/fsck without dragging in all of util-linux

(From OE-Core rev: 4c95779fe1297b06adc705de30dca4e3570084ae)

(From OE-Core rev: 8b3beaddb5d44efcaa88ea173081c6e0558908ad)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:38 +00:00
Mark Hatle
05051d864d sudo: Avoid post install scripts
The post install script was removed, and the install_append updated
to ensure the permissions are set correctly.

(From OE-Core rev: 463e44ae159da2e03369f9ac14843b479de2e43d)

(From OE-Core rev: 52dac3a309f3f1d6a4ee7269b16ca381fd0cdd38)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:38 +00:00
Mark Hatle
48ee7e9b3a shadow: Generate the shadow files at rootfs construction
With the recent changes to the shadow-native package support "--root",
we can now convert the passwd/group files to their shadow forms while
doing the rootfs install, instead of waiting to run on the target.

(From OE-Core rev: 662431ace246e9bb35ad8d0ddd0510193f93517d)

(From OE-Core rev: 03c366bb36145f7bc1679307e578bb2cf44e3737)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:37 +00:00
Mark Hatle
1278cee687 wpa-supplicant: Avoid blocking the post install script at cross rootfs time.
We only want to reload dbus, if we're install on the target -- not on the host.

(From OE-Core rev: 1ce23fe7d7c33c196af3ba25b4e97496718328d1)

(From OE-Core rev: e9dc54d5c31ef50fa2f929d552e2f61533426dcc)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:37 +00:00
Mark Hatle
b5195d2739 rootfs_rpm.bbclass: Turn off script debugging
Disable script debugging, as the log files become huge and take a
long time to process during the log check step.  This results in a
performance improvement.

(From OE-Core rev: a7e70227bac72c4f7d3419f94f6915da4c7e3f43)

(From OE-Core rev: 9b6ecd1fd2f6870ace033362e3bb86fd98935bc9)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:37 +00:00
Mark Hatle
7561770d43 rootfs_rpm.bbclass: Enable pre and post install scripts
[YOCTO #1755]

We change the want the RPM rootfs install works to install pre and post install
scripts.  The new method uses a script helper that is invoked by RPM outside
of the normal chroot.

The wrapper is dynamically generated prior to the install starting.  It will
check the return code of the script.  If the script fails, it will store a copy
to be executed on the first system boot.  This is similar to the previous
mechanism.

In addition, a line of debug was added to the scripts as written by package_rpm
to list which package and which script for later debugging, if necessary.

(From OE-Core rev: 3e7120d6a9fd5e46214673d0a6e1085a7314ff42)

(From OE-Core rev: 5d74a2bbe036cf586b76aef0d9907ecb3d4a5f1d)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:43:01 +00:00
Paul Menzel
03fbfe7cf1 xinit: Fix startx looking for mcookie in sysroot
`startx` run on a system based on the demo systemd image [1] and `opkg`-installed packages fails with the following error.

	/usr/bin/startx: line 139: /OE/tentacle/build/tmp-angstrom_2010_x/sysroots/x68_64-linux/usr/bin/mcookie: No such file or directory

Applying commit 443bcc07 [1] from OE-classic

        Author: Tom Rini <tom_rini@mentor.com>
        Date:   Thu Apr 7 10:36:43 2011 -0700

            xinit: Fix mcookie / util-linux-ng dependency

            xinit just needs to know the runtime path of mcookie so we need to
            RDEPEND on util-linux-ng and pass the runtime path in via EXTRA_OECONF

            (From OE-Core rev: 1053a6a8e15851ef139d8aa4683849fc2fc277e1)

(From OE-Core rev: a32d9dbc25fce5e8566681f0c7f606eedaaf3933)

Signed-off-by: Tom Rini <tom_rini@mentor.com>

fixes this issue. Commit 7f6cec6f [2]

        Author: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
        Date:   Sun Feb 21 18:11:30 2010 +0100

            xinit: add dependency on util-linux-ng

        […]

tried to address the same problem but apparently did not help, because Tom still had problems.

[1] http://www.angstrom-distribution.org/demo/beagleboard/Angstrom-systemd-image-eglibc-ipk-v2011.11-core-beagleboard.rootfs.tar.bz2
[2] http://git.openembedded.org/openembedded/commit/443bcc0785bc004e471b3750a34d12d2fd2e5dad
[3] http://git.openembedded.org/openembedded/commit/7f6cec6f0adb6203a6dbaf8a43c67c2c4f8bf84e

Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:16 +00:00
Darren Hart
9faa58ecdc ncurses: refactor configure to avoid configuring widec when disabled
The ENABLE_WIDEC variable can be used to disable ncurses wide character support
when your C library doesn't support it. Currently, the do_configure step
configures for both narrow and wide characters regardless and only checks
ENABLE_WIDEC during compilation. This leads to QA failures with host
contamination during configure if the C library doesn't support wide characters.

Refactor do_configure with a new ncurses_configure helper function and only
configure for wide character support if ENABLE_WIDEC is true.

Ensure that configure errors are propogated back through to do_configure.

Tested with ENABLE_WIDEC as true and false via an ncurses bbappend on i586,
including basic error injection.

V2: INC_PR bump

(From OE-Core rev: 8b995deb046469c1c713fa053510d2fe94454133)

(From OE-Core rev: 802cd855f1860ef0fbbbbf87b0af7c5dcdc35975)

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:16 +00:00
Saul Wold
cc19812fb4 udev-extraconf: blacklist /dev/md
Do not mount /dev/md by default via udev, this resolved a problem
with the sanity test failing due to seeing the error while attempting
to mount /dev/md0

(From OE-Core rev: 07a2825c6f4ad3e5e3970cd1a89233bd795c68cf)

(From OE-Core rev: 8ea8e41ad7863f57a851f00154e133cd0e550ef8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:16 +00:00
Richard Purdie
110d499544 useradd: Add missing DEPEND on shadow
Without this rootfs generation fails as an RDEPENDS is added
but the package might not have bneen built.

(From OE-Core rev: bfe70c6446e6686f826f01040ba74c7d7d28bf42)

(From OE-Core rev: 30a1f1d3ec763b4929b052ab3388499dfb40b1fa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:16 +00:00
Scott Garman
7fe64f43f4 avahi: remove USERADDPN
USERADDPN is no longer used; remove it.

(From OE-Core rev: ed7e7a8e4d00cd45c74dc233c8b574d3978755d8)

(From OE-Core rev: 2a52444dd464f5dff43424ab18feae43435061ae)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:16 +00:00
Scott Garman
47007075d4 useradd-example.bb: update example documentation comments
Clarify that only packages listed in USERADD_PACKAGES will
include the user/group creation code.

(From OE-Core rev: 70aaac37968bf2b35d6a536c3f3f69fe3620255c)

(From OE-Core rev: 3d0649253cc99b658a2f6576b1d38661d65f3977)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:15 +00:00
Scott Garman
9dc2193d31 useradd.bbclass: do not modify -nativesdk packages
Exclude the addition of user/group code and RDEPENDS changes for
-nativesdk packages.

(From OE-Core rev: 2f057dd905ccb497890ce73ac4e4c256edcf0351)

(From OE-Core rev: 9acbe80fea3dbd5405030c95d8b6d411689c4911)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:15 +00:00
Scott Garman
403d5e0b7d useradd.bbclass: only modify packages in USERADD_PACKAGES
Previously we injected the user/group preinstall script into all
output packages. This fixes that so that only packages listed in
USERADD_PACKAGES get modified.

It also removes the USERADDPN variable, which is no longer needed.

(From OE-Core rev: 2f73466eb5018040a123ccb0e2af8c519525f958)

(From OE-Core rev: 424b6447ebce761c9027ffdaf68ecbcd6f28e4ec)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:15 +00:00
Paul Eggleton
5d9dfed5c4 busybox: add grep to temporary links during uninstall
In the busybox package prerm we set up some temporary links and modify
PATH so that certain utilities are provided for the purpose of running
update-alternatives; if grep is not among these then you get errors when
removing busybox, so add a temporary link for grep as well.

(From OE-Core rev: 013eca09c863862cc6b7ee3bc22923bf8fb42956)

(From OE-Core rev: a425305249cdd89ab481310b31ae04970c6ae3be)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:15 +00:00
Paul Eggleton
9924a6c72d classes/package_rpm: disable uninstall scripts for upgrades
Our current assumption (based on the behaviour of opkg) when writing
recipes is that prerm and postrm do not get called during an upgrade.
When using rpm however, these are mapped to the rpm "preun" and "postun"
events which occur after postinst for upgrades, and when these contain
removal type operations (such as update-alternatives --remove) this
causes problems.

This patch wraps each preun and postun script for rpm in a check that
determines whether or not the script is being called during an upgrade,
and skips the entire script if it is, which mimics the behaviour of opkg
under the same conditions.

Fixes [YOCTO #1760]

(From OE-Core rev: 1d3f37dc9a43ba6d6beb7b4530c077f239032b99)

(From OE-Core rev: 6e66ecd201760fe418a9884e3605b88a68208776)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:14 +00:00
Tom Zanussi
ccf6077d4e python: skip setup.py 'import check' when cross-compiling
build_extension() in setup.py, as part of the build process, does an
'import check' on the built extension.  The import check in turn
dlopen()'s the shared library associated with the extension, which
isn't something that makes sense if that library was cross-compiled
for a different architecture.

This was noticed with an x86_64 target that was compiled with avx
support, because it caused 'illegal instruction' exceptions:

| /bin/sh: line 1: 14575 Illegal instruction ... -E ./setup.py -q build

For other target architectures, it doesn't necessarily cause illegal
instruction exceptions, but still fails.  For example, on arm, the
failure pathway causes this warning:

*** WARNING: renaming "cmath" since importing it failed: .../cmath.so:
    wrong ELF class: ELFCLASS32

This patch to setup.py and the associated recipe changes allow the
whole 'import check' logic to be skipped when cross-compiling.

(From OE-Core rev: 25fae81538a92e15eab3fc169ebce44505f67839)

(From OE-Core rev: d83e4ac25cca788d2b102c2072ccb367c0cab284)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:14 +00:00
Tom Zanussi
38978dc0b8 libzypp: fix mishandling of hyphenated arches
Several hyphen-to-underscore translations were missing, causing
compiler errors trying to build arches with hyphens in their names.
This adds the missing translations.

(From OE-Core rev: 5be9785f344ec4d7580f7ec68e29dba9fceb0a0a)

(From OE-Core rev: 69f45c6e9f28aae2ba84aea87a6ed096800ed685)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:14 +00:00
Tom Zanussi
9152ef8b1d gmp_5.0.2: Set CC_FOR_BUILD to BUILD_CC
CC_FOR_BUILD was compiling the test programs using the target's
compile options and executing those on the host, causing errors such
as:

/bin/sh: line 1: 15032 Illegal instruction     ./gen-bases table 64 0 > mpn/mp_bases.c
/bin/sh: line 1: 15033 Illegal instruction     ./gen-bases header 64 0 > mp_bases.h

Export CC_FOR_BUILD using BUILD_CC to fix the problem.

(From OE-Core rev: 68cca5ca15cbdd53748ec130fb6f20cbb3fb5072)

(From OE-Core rev: 6ce3482c0f50b95d1d60d3c9250a9ab38fca76fe)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:14 +00:00
Otavio Salvador
4e4521b5bf files/device_table-minimal.txt: add /dev/kmsg
(From OE-Core rev: 1a340471694204937981513dee4cc24bc2dc6f7e)

(From OE-Core rev: 535f7e52b02b6434fca5265eba8d366f483ce33c)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:13 +00:00
Otavio Salvador
501211d4d5 libcap: fix sstate for native package
The 'lib' option needs to be given on target and native builds
otherwise it installs the binaries at ${libdir}64 when host is 64bit.

(From OE-Core rev: f768ef66c107410d4e81a69543d41910bbc6a26e)

(From OE-Core rev: 76be81b5b0f56536dd36e800bc3f597aeea6d8ef)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:13 +00:00
Eric Bénard
155aad308c useradd.bbclass: handle nativesdk case
* without this patch, building dbus-nativesdk leads to a missing
dependency on 'base-passwd-nativesdk'
This was added by commit 46e6c3fa8034b12d178d605f3f5d7efe69671a13
* this patch handle the nativesdk case in the class useradd
* close bug 1702 http://bugzilla.pokylinux.org/show_bug.cgi?id=1702
* v2 from Scott Garman with Richard Purdie's tricks

(From OE-Core rev: 140a3507fb5c14cd9bcebe4304f491aa1c5c47a2)

(From OE-Core rev: 79d5ce46b4d73e5ed39c509ce872e99e6bcb94ee)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:13 +00:00
Dongxiao Xu
11e383d24c multilib: Drop MULTILIB_IMAGE_INSTALL
There should just be a single IMAGE_INSTALL variable. If the package
backends need this split into different multilib components they should
be responsible for doing this, not the user.

This commit removes the MULTILIB_IMAGE_INSTALL variable.

[YOCTO #1564]

(From OE-Core rev: 7736862a74c92fe1afe42e170822be13117575c2)

(From OE-Core rev: 4889865934d590bf18d9f8f8ec3b63ce992cd4c5)

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:13 +00:00
Joshua Lock
aff0c68b0f contacts: fix packaging of icons
(From OE-Core rev: 1f4028337d5e288e239f44ef34e1d707b785273e)

(From OE-Core rev: 8bc45d72d3211df9ca846c775524176308027aea)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:12 +00:00
Joshua Lock
3b75e27536 gypsy: fix packaging
(From OE-Core rev: 3c272ce9df811281029d028e96ab6bc644645592)

(From OE-Core rev: 28c22b7d7cdbea39fca5867f14c22f75f7749183)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:12 +00:00
Joshua Lock
5f3b7a7616 libcanberra: add libvorbis to DEPENDS
(From OE-Core rev: 531151fdeba3779ba6f0976fc08aa8da483600f7)

(From OE-Core rev: 05f10a527099d22eb87614013e01c420bdafaf16)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:12 +00:00
Eric Bénard
fb8d219960 dbus: fix install for virtclass-nativesdk
* 46e6c3fa8034b12d178d605f3f5d7efe69671a13 changed do_install
which now fails for nativesdk (chown messagebus leads to no
such user)
* tested by building meta-toolchain-qte and running the generated
sdk

(From OE-Core rev: 5818a885df489f4bc9579d17c6b0efa7777f5ccc)

(From OE-Core rev: 7984cc2fec3179da2e1f8f3bbffca9e7e21a3788)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Acked-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:12 +00:00
Scott Garman
ae88920dec useradd.bbclass: fix how RDEPENDS is setup
Fix bug where only packages named PN included base-passwd in
RDEPENDS.

This fixes [YOCTO #1727]

(From OE-Core rev: 2c55d51afd71d708a54afc8377e10c4f80f810e3)

(From OE-Core rev: 213d31f24d911a10132ddcd75f50363a80c4dc2e)

Signed-off-by: Scott Garman <scott.a.garman@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:11 +00:00
Martin Jansa
57c6f14828 libnl-2.0: add PE/PR bump for upgradable patch for meta-openembedded users
(From OE-Core rev: 2260b18590416940eec26aaf3d68e510ceff8d31)

(From OE-Core rev: 3aa933cf91cf788246f13966471a9be6e0bc1931)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:11 +00:00
Martin Jansa
bd9a5e1b88 libnl-2.0: split to more packages, as meta-openembedded does
(From OE-Core rev: 8720e063c7b43c278b3bb406b45390ed03f8ac96)

(From OE-Core rev: 0f495eca8737a71ade6e1b5ca0fcbddf3b22181a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:11 +00:00
Martin Jansa
8614fcf709 libnl-2.0: add patch from meta-openembedded to fix pkg-config file
(From OE-Core rev: 72227178bc74d6e2e24f8df6176c3d45b640e860)

(From OE-Core rev: 64aab9609e23cdaa662cf544a31de5e879958e31)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:11 +00:00
Martin Jansa
2202d845ab libnl-2.0: move fix-pktloc_syntax_h-race.patch to libnl-2.0 subdirectory and merge with fix-makefile.patch
(From OE-Core rev: a4882cd6f98c5b3df80ba96536d94d9f556f77a2)

(From OE-Core rev: 69701f7eaec6405fe2208d2412aebaf2db5ce606)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:11 +00:00
Koen Kooi
a55d8c6aa4 image_types bbclass: use 4k bytes per inode so we don't run out of space immediately
genext2fs only creates the minimum number of inodes, after this patch it will scale with the rootfs size

(From OE-Core rev: c31cb0bdc5a61d2d9f21a2cea34c3d8ac3b47cb9)

(From OE-Core rev: 41d1091e6b821404eeb73a7c363537c2835558d3)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Martin Jansa
b6312e2d51 libcense.bbclass: fix OpenSSL mapping
[YOCTO #1712]

(From OE-Core rev: 56799ebcb5c55a7fc75458fc2be2e69a67e8fd21)

(From OE-Core rev: efb4527ff527d3e465df2a21fdfda110542b70b5)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>

Fixed YOCTO bug format and location

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Dmitry Cherukhin
5a41a612c9 tslib: fix the bug with loading libts-1.0.so
Touchpad did not work in the qtdemoE if the library libts-1.0.so was not loaded
manually using the LD_PRELOAD variable. This problem was fixed in the tslib mainline
https://github.com/kergoth/tslib after the 1.0 release. We just import the patch.

(From OE-Core rev: 0ba6d91dc527908740890c896b834e7216b0d2fb)

(From OE-Core rev: cf9fbfcb65c09d70613eb6ab87e0b9121cfcc34c)

Signed-off-by: Dmitry Cherukhin <dima_ch@emcraft.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Kumar Gala
aaea770f1f udev-164: Update init script to do an explicit add action
With udev 152 or greater the default action for 'udevadm trigger' was
modified to be 'change' instead of 'add.

To ensure initial coldplug events at boot are seen be scripts the are
expecting them as 'add' events we invoke udevadm with an explicit
'--action=add'.

(From OE-Core rev: eacafd21999ab37b60af29dc3e626c441716ef66)

(From OE-Core rev: c90e1c91efc721eb6910cd3244b7671b63a341b6)

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Elizabeth Flanagan
6e4607f23a buildstats: Fix for buildstats on tmpfs
tmpfs/encryptfs/(and most likely, but not confirmed)ramfs TMPDIRs
cause diskstats to choke. No device entry ends up in /proc/diskstats
for these fs types, which ends up causing the failure.

The short term solution is to exclude these fs types from diskstat
collection. Longer term we will want to see if we can collect
meaningful diskio for each of these, and other, use cases, but for
this cleans up Bug 1700.

[YOCTO #1700]

(From OE-Core rev: 2b14046c12855b6f484ba5bd6bc0a8022de6873e)

(From OE-Core rev: e0d26e0e1dfb9d35d71f20488c16f3cea3da862e)

Signed-off-by: Elizabeth Flanagan <elizabeth.flanagan@intel.com>

Corrected YOCTO bug location and format

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Richard Purdie
5a192f85d9 bash: Ensure we fully reautoconf the recipes so site data is used
This ensures bug 487 (missing job control functionality) really gets fixed.

[YOCTO #487]

(From OE-Core rev: 08b78066bd5a9ff2819a42eb4263ee0a78cddb97)

(From OE-Core rev: cf9d3140a9dae5bdc6145ae04a729f4775ae66a2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:10 +00:00
Koen Kooi
9ce56ec4ca rootfs_ipk bbclass: special-case base-passwd preinst to run first
Preinst are run alphabetically which breaks when e.g. avahi-daemon needs /etc/passwd present.

(From OE-Core rev: d6793165feb26c51b5f19ad1e6d1a4099878e879)

(From OE-Core rev: 0485c362ac6ee0a3e310de078d7a202b961fed11)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:09 +00:00
Koen Kooi
e47cfd447c avahi: fix useradd race condition
Avahi doesn't work at boot because of:

+ sh /OE/../rootfs/var/lib/opkg/info/avahi-daemon.preinst
Running useradd commands...
grep: /OE/../rootfs/etc/passwd: No such file or directory

That is due to:

Package: avahi-daemon
Version: 0.6.30-r9.0
 [..]
Depends: libavahi-core7 (>= 0.6.30), libdaemon0 (>= 0.14), libcap2 (>= 2.22), libavahi-common3 (>= 0.6.30), libdbus-1-3 (>= 1.4.12), sysvinit-pidof, libc6 (>= 2.12), libexpat1 (>= 2.0.1)

After this patch:

 Package: avahi-daemon
 Version: 0.6.30-r10.0
 [..]
 Depends: libavahi-core7 (>= 0.6.30), libdaemon0 (>= 0.14), libcap2 (>= 2.22), libavahi-common3 (>= 0.6.30), libdbus-1-3 (>= 1.4.12), sysvinit-pidof, libc6 (>= 2.12), shadow, libexpat1 (>= 2.0.1), base-passwd

This also changes ${PN}-daemon to avahi-daemon to be consistent with the PACKAGES/FILES lines below

(From OE-Core rev: f01fbc17b5d9bf9a227d64fe858014376cd19432)

(From OE-Core rev: 9d0b21f0723fda0e0d287788eb79d3a70b12f949)

Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:09 +00:00
Saul Wold
fc2433de1d dbus: ensure that the useradd shell is set to /bin/false
(From OE-Core rev: 899efe6bf17a31d842ff2f65704d4858892496d4)

(From OE-Core rev: 7d6ba259603ebcb1c08c1ac7b77f8b482e77b6d5)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:09 +00:00
Saul Wold
8cf7c76ce1 connman: Use useradd to add the xuser for DBus
Connmand needs to start as the xuser as defined in the dbus
configuration and needs to share this with rootless X. Since
it's possible for connmand to run on a sytem without rootless
X we still need to create the user here.

Useradd will fail gracefully if the user already exists.

Fixes: [YOCTO #1699]

(From OE-Core rev: 8139ac9284031e00d6b268210b04b57670d9268a)

(From OE-Core rev: 835ab34adb6acf562e37db99a1dd24f7b8bd95ec)

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

Conflicts:

	meta/recipes-connectivity/connman/connman_0.75.bb
2012-01-30 16:38:09 +00:00
Saul Wold
5d8269d28a xserver-nodm-init: Use useradd to add the xuser for rootless X
This also address an issue with dbus and connman, since connmand
needs to start as the xuser in the rootless X situation.

Fixes: [YOCTO #1699]

(From OE-Core rev: 6823a32035de5d0bcd82a3b41a6ad536aaddbc58)

(From OE-Core rev: 26573a84583793f64979100c2b89a95146d38dd1)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:08 +00:00
Saul Wold
9f542cf856 avahi: use useradd to create avahi user for avahi-daemon
DBus was failing to start correct since the avahi user was
not setup.

Keep the dbus reload since this could still be installed
as a package an would require a dbus restart.

Fixes: [YOCTO #1699]

(From OE-Core rev: f0bfecc8a0af1c4c76a37a9c88f334ab6ae7e7ef)

(From OE-Core rev: 925c7cd5c3ff44a4d0f2c71d0029998bfd00db48)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:08 +00:00
Holger Hans Peter Freyther
398a0159a6 udev: Fix the packaging of libgudev
Make the libgudev so go to the libgudev package, this is already
fixed in meta-oe.

(From OE-Core rev: 43ac43d7c7245e9aa2bfc8572c2620074d1e2a25)

(From OE-Core rev: 3890186dda8db3978f18c05099a6f327c122cc1d)

Signed-off-by: Holger Hans Peter Freyther <holger@moiji-mobile.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:08 +00:00
Richard Purdie
8ce627f9b1 dbus: Ensure localstatedir is added to the package
(From OE-Core rev: dc0d004fd23f686591281eb1d700327ea15d1c54)

(From OE-Core rev: 3de19d01402aa7fdee28df2e1066987c14c17a78)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:08 +00:00
Richard Purdie
a7e5ad1268 package.bbclass: Fix various problems
Before this change:

a) Ownership and permissions of files copied from packages to
   package-split could get lost during the copy process. This change
   ensures they are preserved.
b) Ownership and permissions of directories could also get lost.
   Most of the complexity in this patch is addressing this problem
   ensuring newly created directories match the source ones being
   copied.
c) There was no warning about directories being created but not
   shipped by any package.

This patch fixes all of the above issues.

(From OE-Core rev: 6021e309e69d823e1467648aee12a32182945569)

(From OE-Core rev: 5f9228b32c243ae499398763ce7c90b776dc9d24)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:08 +00:00
Richard Purdie
8223a46ca0 dbus: Use $D not ${D} in the postinstall
We need to do this as we don't want bitbake to expand the variable
but use the shell variable instead.

(From OE-Core rev: 509a8a9ea428debf3ff2115fcff0aa89d0239ced)

(From OE-Core rev: dcf118e9dfd15f7cf535c9918a6fcad9f9121ff4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:07 +00:00
Richard Purdie
1890a0f3b2 gnome-doc-utils: Add missing glib-2.0 dependency
(From OE-Core rev: c367a2d2f4b817211b6bd200e49b49355cd67fe2)

(From OE-Core rev: f4555a27bcc2174d30c1ea4ab7785325766b7c4e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:07 +00:00
Joshua Lock
2dbcd4154c lib/oe/terminal: add support for XFCE's terminal emulator
That's Terminal on Fedora and xfce4-terminal on Ubuntu/Debian... This
could get interesting!

(From OE-Core rev: 162b70a36388ac44fc1b39e172cd53579707bff3)

(From OE-Core rev: 149cc418dbcbe014225c86d16b5ef696496e3a39)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:07 +00:00
Saul Wold
0524f419cf libproxy: fix QA Packaging issues
(From OE-Core rev: d756b85565820f0caef17af4c4aee2bf29ea6794)

(From OE-Core rev: 58231521f9f20fb5606efc84f779612834225b7d)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:07 +00:00
Saul Wold
a90c197e94 libatomics-ops: fix QA Packaging issues
(From OE-Core rev: dfddbffc48e86cb0a6d07da6727782e3b17535e1)

(From OE-Core rev: 33fe21a3d446f562fde9730e3755ae99fd50e1ae)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:06 +00:00
Saul Wold
21458bd419 mdadm: fix QA Packaging issues
(From OE-Core rev: b3840f88f004c9ef371a075f1800052c66c91759)

(From OE-Core rev: 5da0710659d671e7e9494feb546fbad950b0c644)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:06 +00:00
Saul Wold
7e96247751 man: fix QA Packaging issues
(From OE-Core rev: 2f597288c141c910b945e63e8b31436984ad536b)

(From OE-Core rev: cb3cdb9da4866539ac84df811076c4ddad89e47a)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:06 +00:00
Saul Wold
07e2aa9b80 at: fix QA Packaging issues
(From OE-Core rev: f3487717ae3b7f9256a3e3cc78be331e424ec457)

(From OE-Core rev: e9b469fb19c69dffc0aedf777dc58d41f6e1815e)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:06 +00:00
Saul Wold
5c37b7ea47 dbus-glib: fix QA Packaging issues
(From OE-Core rev: 1f55db4936b43e2fd3e50f99815b547e3c5e8010)

(From OE-Core rev: b84c1d5854052af3351f853f42c6a0e4b9918dd8)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:05 +00:00
Joshua Lock
79081f46ec libxslt: Fix packaging of xsltConf.sh
xsltConf.sh is installed to libdir not bindir, fix pacakging.

(From OE-Core rev: 27b438df0b937180263346cbf68f1641abcdb068)

(From OE-Core rev: 82ff9739d7b95775636d1b9ac7aa4fb5576eccd9)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:05 +00:00
Matthew McClintock
4f9e333b05 Add readline as dependecy for gdb-cross-canadian
Got errors that we were unable to find -lreadline, this fixed the
issue

(From OE-Core rev: ddc9a58b8553599d2328ac1c4449b41681ae45d1)

(From OE-Core rev: c50f8d83749d755e58fcd159b8e4dab33fbd9036)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:05 +00:00
Julian Pidancet
dc09c258f0 Give coreutils a chance to build the df utility
The coreutils configure script is unable determine how to get free
space from the Operating System when cross-compiling.
This changes caches the result of the "statfs2_bsize" test for the
coreutils configure script.
Both glibc and uclibc defines statfs as a two-argument function
and uses a struct statfs containing a f_bsize field. That's why
the fu_cv_sys_stat_statfs2_bsize variable has to be defined for
both libcs.

(From OE-Core rev: fa1eb21933a880aa20e4ca87574753b1ec272c3b)

(From OE-Core rev: 5be987aeb5e34bb1277f86a7f294607a6d935a19)

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:05 +00:00
Khem Raj
5de0f305f9 pulseaudio: inherit perlnative
manpage generatition uses xmltoman utility
which inturn uses xml-parser. So we add
libxml-parser-perl-native to DEPENDS and also
inherit perlnative so it does not use the one
from build host

(From OE-Core rev: 51f6a683ec1d740adf09d808671c7098dc3f83e2)

(From OE-Core rev: c2ccc9a294cab3f41cab35eee64f8a464ac8ad9f)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:05 +00:00
Khem Raj
52dc5edde3 gcc-4.6: Backport fix for PR32219
This fix is needed for gold to work. Otherwise
connman fails to build since it used hidden weak
symbols.

See

http://gcc.gnu.org/bugzilla/PR32219
http://www.cygwin.com/ml/binutils/2008-02/msg00239.html

The fix proposed to gcc had reviews which were not addressed hence the
patch is not yet
applied to gcc upstream.

connman can also have workaround by changing the visibility of these
symbols to be default
 __attribute__ ((weak, visibility("hidden")))

to

 __attribute__ ((weak, visibility("default")))

in include/plugin.h

(From OE-Core rev: 3cb2b003db7371b3a47d02c08352a262e1e419b4)

(From OE-Core rev: 9a160921a16c9c37e07e4b5cb30e37348ecd205b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:04 +00:00
Otavio Salvador
9d086cd151 dbus: use useradd class to allow use in read-only filesystems
Move creation of required user/groups to useradd class thus allowing
use with read-only filesystems and booting the initial boot.

(From OE-Core rev: 46e6c3fa8034b12d178d605f3f5d7efe69671a13)

(From OE-Core rev: a115b657ed3df1c9b26b016151881a6c9c26ac2b)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:04 +00:00
Otavio Salvador
2edde1021f base-passwd: move initial criation of group and passwd to preinst
To allow use and manipulation of users and groups at rootfs building
time, the '/etc/passwd' and '/etc/group' needs to be available as soon
as possible.

(From OE-Core rev: 0395eba96d6f37f323f5b76564809a44d7ceb103)

(From OE-Core rev: 73452afe344b66c6dd8e4e120e61ac9fce8652e3)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:04 +00:00
Otavio Salvador
afc60481c7 useradd.bbclass: check if a group already exists manually
The use of groupadd -f makes much more difficult to figure when a
group is not add. This was the case of the class not working for our
usage and this being caused by the lack of '/etc/group' file but
unnoticed as groupadd wasn't failing according.

(From OE-Core rev: 82933a1ff921fd0836f03e6f379fd8536cdc0a30)

(From OE-Core rev: e3e8f15176107fa26248e878af548835692d3068)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:04 +00:00
Khem Raj
eb94ba9052 gcc-configure-sdk: Point sysroot to correct location
(From OE-Core rev: c9883733fed9267b1a936c08500a4caf8dc52d3d)

(From OE-Core rev: 1cffc4c39f897ae1db30825364ff809ce40f512b)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:03 +00:00
Khem Raj
6fa445d50e binutils-cross-canadian: Point sysroot to correct location
(From OE-Core rev: b8dad4ab77f5516bc6929e2ed094fdc62a5a52db)

(From OE-Core rev: 065b65f8835304a0ba7fe751a132b684a41b08ae)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:03 +00:00
Anders Darander
795843df09 module.bbclass: add lock to prevent error bulding ext modules
When external modules are built, files in $STAGING_KERNEL_DIR/scripts/basic will/can get
rebuilt.
This raises a potential race condition. Prevent this by adding a lock around the
do_make_scripts() function. Further, make sure that the kernel has been installed
to the sysroot, prior to executing this new task.

(From OE-Core rev: 8681b82e8b466929205edde7ba479f3ac1a6143e)

(From OE-Core rev: 694e3016e25dff3f573291830d79982c8b8793a2)

Signed-off-by: Anders Darander <anders@chargestorm.se>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:03 +00:00
Khem Raj
8a20492e8a gcc-4.6: Backport PR46934 fix
We have been hitting this issue on ARM/thumb and
have a workaround in place to compile samba
http://git.openembedded.org/openembedded/commit/recipes/samba/samba_3.2.15.bb?id=4ba7aa07c0dcd28f94515ff9927e2a04403fcf15
This backport should fix the gcc bug

(From OE-Core rev: 75f7269a7a1da2494768d4be63c44b12c5cfeeeb)

(From OE-Core rev: 446767c4c471b8ec932698a23af5a815d326a0be)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Conflicts:

	meta/recipes-devtools/gcc/gcc-4.6.inc
2012-01-30 16:38:03 +00:00
Khem Raj
70ff3b6d98 gcc-4.6: Upgrade SRCREV to latest FSF 4.6 branch
(From OE-Core rev: b1af6951e14d645fe861f289011c91ab6f1b6865)

(From OE-Core rev: f6ba855e3d8b33591c14048cac68264e93a821e8)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Lauri Hintsala
ba79e6f631 poky: fix broken ubifs link in deploy folder
Fix broken rootfs image link when ubifs is used.

Function runimagecmd is using image name "${IMAGE_NAME}.rootfs.${type}".
Let's use the same name in IMAGE_CMD_ubifs.

(From OE-Core rev: 766f6165471691f651584ebda004e1abb4ea9eb6)

(From OE-Core rev: 6c4276ee968bed7a5b3e74637183414a428facb8)

Signed-off-by: Lauri Hintsala <lauri.hintsala@bluegiga.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Martin Jansa
071d5de3f3 fontconfig: fix fix-pkgconfig.patch
* missing $ is causing problems ie when building webkit-efl
* see http://lists.linuxtogo.org/pipermail/openembedded-core/2011-June/003798.html
  for details

(From OE-Core rev: e31dd9b65f3b03f79cabab25eca157532de3bd9c)

(From OE-Core rev: 5deaf85c0c07105173e6791a7aafd03aa5b2e204)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Xiaofeng Yan
1fa324c533 lsb: Change link of ${baselib} to lib64 for 64bits system
Correct two faults:

1 Binaries of lsb test suite need ld-linux.so* in /lib64.
for example:
Target$ ./lsbcmdchk
-sh: ./lsbcmdchk: No such file or directory
Target$ strings lsbcmdchk | grep "ld-"
/lib64/ld-lsb-x86-64.so.3

"lsbcmdchk" from lsb test suite is a binary program.
A new modification to lsb_1.4.bb caused that binaries from lsb test suite can't run
because binaries of lsb test suite need ld-linux.so* in /lib64.
But the link is changed due to adding multilib. I changed this link again.

2 correct mandir
Waring will appear when running task task do_populate_sysroot

NOTE: package lsb-1.4-r2: task do_populate_sysroot: Succeeded
WARNING: For recipe lsb, the following files were installed but not shipped in any package:
WARNING:   /{datadir}/man/man1/lsb_release.1.gz

I changed mandir=${D}/man to mandir=${D}/${datadir}/man

(From OE-Core rev: f2dada2079b5f98e13d4888609368ba111967a60)

(From OE-Core rev: 9961c1e73e8f8ae426d7ac8c9ba35b05669cbffe)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Saul Wold
958c7f773f sysprof: remove duplicated patch
Apparently this pactch was duplicated by backported
patch, and needed to be applied more broaded than to
just ppc.

(From OE-Core rev: 182e4768b651e58de5b42f9fb55ae9816b57233b)

(From OE-Core rev: 62700be77386ba3388dc65b599cce9dfe5b802f6)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Saul Wold
141240c409 libomxil: Fix QA Package Errors
(From OE-Core rev: ef786ef9abcd919c651c14004a1cb0a0dcad1bff)

(From OE-Core rev: 83cad4ce6b1e942c3c45d316cbec95db4e04bebf)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:02 +00:00
Samuel Stirtzel
89e945be6a data.py: fixed message domain errors
The dynamic message domain was introduced by Richard Purdie with the following patch:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a6c48298b17e6a5844b3638b422fe226e3b67b89

(From OE-Core rev: 55a8382e460430dc5ff10755d235d637531d2ae7)

(From OE-Core rev: d08db11fcae91deca10d250430a6f77de47f9080)

Signed-off-by: Samuel Stirtzel <s.stirtzel@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:01 +00:00
Samuel Stirtzel
7d30c2df87 patch.py: fixed message domain errors
The dynamic message domain was introduced by Richard Purdie with the following patch:
http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=a6c48298b17e6a5844b3638b422fe226e3b67b89

(From OE-Core rev: 2383e06c8ed7c15aa148b9dbe40445e7095b6f57)

(From OE-Core rev: d104367903478613123c64df8d2a5188775d1f9d)

Signed-off-by: Samuel Stirtzel <s.stirtzel@googlemail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:01 +00:00
Wenzong Fan
90a4f95d3d qt4-x11-free: Fix broken regexes in qt4-x11-free's recipe.
[YOCTO #1671]

qt4-x11-free's recipe includes a sed script to sanitize it's .prl files,
which are used by qmake to generate a list of libs and includes in the
Makefiles it generates. It however, fails to take into account the possibility
of trailing slashes, and thus leaves them in, and breaks gcc's syntax.
Update these regexes to account for them.

(From OE-Core rev: 8d580ed449c09a64483519d66e14a2e3b071806a)

(From OE-Core rev: 9f655fbf0f818e25fdbf247334881da07a29e815)

Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:01 +00:00
Tom Rini
53db004d24 libnl2: Fix a race on route/pktloc_syntax.h
At issue is that route/pktloc.c (not generated) depends on
route/pktloc_syntax.h (generated).

(From OE-Core rev: 7bec22c70598a5180f754bbbe2dfdd3db2843a64)

(From OE-Core rev: b992c9e631bfb4888a20a13b7ebf3b5acf59edb5)

Signed-off-by: Tom Rini <tom_rini@mentor.com>
Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:01 +00:00
Christopher Larson
f7d5b31d6c autotools: fix multi-word arguments for EXTRA_OECONF
This is needed to better support things like the following (with a
multi-word BUILD_CC):

    EXTRA_OECONF += '"ac_cv_prog_CC_FOR_BUILD=${BUILD_CC}"'

(From OE-Core rev: 38a394e7ffedccfabda085c97add8944718943c2)

(From OE-Core rev: 5c26de72b97a670a263428ef3a1846385683feeb)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:00 +00:00
Richard Purdie
35d3782099 flac: Add missing gettext dependency (requires iconv)
(From OE-Core rev: fd310c2d64dd2df62bf3a10e5dbad25492013ae2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:00 +00:00
Matthew McClintock
1080ef1105 Fix sysprof for powerpc64
__ppc64__ is not defined on powerpc64, rather __powerpc64__ is, this
uses a patch that is already upstream to fix builds for powerpc64

(From OE-Core rev: 4732222c46652951e66aae377631f4a361179d8f)

(From OE-Core rev: d4cc180e60da43f66618d130009ac5d4930b9228)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:00 +00:00
Matthew McClintock
7bd151a4f3 Fix mdadm for powerpc64
This takes an upstream fix for compiling on powerpc64

(From OE-Core rev: 1325f506972555d4c218c15090bfa3f63fb13473)

(From OE-Core rev: c6da1a4eb9ba6885b49b0240030dff9b234ab1ca)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:38:00 +00:00
Martin Jansa
e1f53370ed zlib: fix inverted LFS logic
(From OE-Core rev: 6dd3f5c2f300c9cb5b6dbe2afe67323fc6f44c3e)

(From OE-Core rev: bf7b5c6f6b8d27e64fcb169ec9a4c4ecf2047e58)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:59 +00:00
Martin Jansa
e708d0ab68 libglade: add gdk-pixbuf dependency
(From OE-Core rev: eb709fceacab3ec33f38694d6238b96cb0474848)

(From OE-Core rev: c0382636ee2cfc0ea74464904d94eb1178512700)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:59 +00:00
Julian Pidancet
e6e867558b Use useradd and update-rc.d classes in the OpenSSH recipe
The current sshd postinst and postrm scripts in the OpenSSH make the
package dependant of the adduser/addgroup scripts which may not be
available on all systems.

This patch replaces the sshd postinst and postrm scripts with proper
usage of the useradd and update-rc.d classes.

This patch had been modified from the previous proposed version to
use useradd long options for more clarity.

(From OE-Core rev: 6b7f399d595ef58e759dab211f4ece155119a680)

(From OE-Core rev: 058116f528bff27ca5a0e56bbf8070e94f934f32)

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:59 +00:00
Julian Pidancet
ab81049f37 Fix the --root option in shadow-native programs
The add_root_cmd_options.patch that we apply to shadow-native allow the
various programs from the shadow utility package to chroot() so they can
be used to modify etc/passwd and etc/group if they are located in a
sysroot.

Some of the shadow programs (gpasswd, useradd and usermod) need to parse
the command line in two passes. But we can't use getopt_long() twice
because getopt_long() reorders the command line arguments, and
consequently corrupts the option parsing during the second pass.

This patch fixes this issue by replacing the first pass by a very simple
manual walk of the command line to handle the --root argument.

This change is a patch of another patch, I apologize if it is
difficult to read. But IMHO it wouldn't make sense to put the patch for
this issue in another separated file.

The --root options in groupadd and useradd are needed to make the
useradd class work, and this issue was preventing to use useradd and
groupadd long options while using the class.

(From OE-Core rev: 6e9e19b18597103d8fe09f258cfd9904bb5f1c27)

(From OE-Core rev: 533d99f28fab73503ed3ebaee63aaaeb23ad2a1c)

Signed-off-by: Julian Pidancet <julian.pidancet@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:59 +00:00
Jason Wessel
0b2f036a81 Allow user mode NFS server to run without rpcbind / portmap
and nfsroot mount without the need to talk to an RPC info
server as long as the port numbers for mountd and nfsd
are known in advance.

This patch updates the qemu startup scripts and the
user mode NFS server to have the ability to start
without the need to use rpcbind or portmap services.

(From OE-Core rev: 3b1346c607c41a2d592c48594457c32153cb2314)

(From OE-Core rev: 13899c6cd44a618276e1b8d236187eddcb98bc2c)

Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:58 +00:00
Richard Purdie
6ed9f0763b pkgconfig: Fix logic that was accidently leaving legacy pkg-config functionality enabled
(From OE-Core rev: aa816b0aaf39dc6f822114df0bd6d4dd62fce0b8)

(From OE-Core rev: d46496b814b9a75523b337202d53c2c6c198566b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:58 +00:00
Saul Wold
1e225af16e acl/attr: don't make symlink if base_libdir = libdir
(From OE-Core rev: 46cd3527217821a7e9a8223dc45a43294b6c5e8d)

(From OE-Core rev: c2d14090d6400f4d8cb140947ccb9b68f2086835)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:58 +00:00
Richard Purdie
385365f689 native.bbclass: Ensure native recipes have a deterministic baselib value
Changes to baselib by specific machine configuration were resulting
in sstate cache invalidation, particularly in multilib configurations.

This patch ensures this doesn't happen and native sstate cache files
are reusable.

(From OE-Core rev: d0915fb0a2cc80ad45b3fd526d3b29a91d99572c)

(From OE-Core rev: 4fe88a2a3c7cec3ad9ea13d39d71d317405c910a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:58 +00:00
Richard Purdie
dec4fb1bee sstate.bbclass: Ensure machine specific stamps are only wiped for the current task
sstate was being a little too ethusiastic about removing stamp files and
was removing stamp files for other machines when it shouldn't have been.

This patch teaches sstate about machine specific stamp extensions and
allows it to only remove the current task's stampfiles.

Based on a patch from Phil Blundell <philb@gnu.org> with some tweaks
from me.

(From OE-Core rev: 5e9488495401399d39fcb5012b86c313b6caca73)

(From OE-Core rev: e8efeedbc2ec1587b1c4d938c25cacd4e8611053)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:58 +00:00
Kumar Gala
ef1a8f21e0 scripts/oe-buildenv-internal: Add SOCKS5_{USER, PASSWD} to BB_ENV_EXTRAWHITE
If a SOCKS5 gateway is needed for a proxy access like git it might also
require authentication to the proxy via a password and username.  Adding
SOCKS5_USER & SOCKS5_PASSWD to BB_ENV_EXTRAWHITE allow for automation
of the authentication request to occur when something like a git fetch
is going through the proxy.

This patch requires the bitbake patch to add extra exportvars so
these variables get passed from Env -> bitbake -> fetcher

(From OE-Core rev: 9206ea0f7cd39d2ba6ff4b41cbeb17409d3ae5f1)

(From OE-Core rev: e0438a7ce3523c25d36d564ca85753f0931544e6)

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:57 +00:00
Richard Purdie
0c1b16db4c mtools: Disable parallel make install, its broken
(From OE-Core rev: 6f64114f5825bf6f6ab8eaaf4bed24586e05ee57)

(From OE-Core rev: b7d7af9d54fee435df88ad5d81eb32ed27cf59c7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:57 +00:00
Tom Zanussi
02c530f442 kexec-tools: fix architecture mismatch QA error
Building sato-sdk for an x86_64 target throws this QA error:

| ERROR: QA Issue: Architecture did not match (62 to 3) on /work/x86_64-poky-li\
nux/kexec-tools-2.0.2-r1/packages-split/kexec-tools/usr/lib/kexec-tools/kexec_t\
est

kexec_test uses 32-bit code for testing - add an INSANE_SKIP exception for it.

(From OE-Core rev: 0dbf91969bb16f4761f58426ff5b458139c4e235)

(From OE-Core rev: 4f4088ee53950f934b736488dbd265e27df9b033)

Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:57 +00:00
Dmitry Eremin-Solenikov
df2fddf9cb qt4: packaging fixup
Improve packaging:
* Add phrasebook packages to DYNAMIC_PACKAGES
* Correct phrasebook packages generation
* Include more files into -dbg packages
* Package fontdir and fonts README.

(From OE-Core rev: 4e3c29dd90f583cafe7a7fc863efb3720096d67b)

(From OE-Core rev: 8fbad61dc62bdd439a55bcca09601bed28fcd3af)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:57 +00:00
Martin Jansa
6f0c0167c6 hal-info: drop PACKAGE_ARCH all
RP: It would be better if we could find a way to patch out the compiler
checks in this package...
JaMa: drop PACKAGE_ARCH for now (nobody likes hal nowadays)

(From OE-Core rev: 870191c1c46e36f92c5d90a3eb049154b0597133)

(From OE-Core rev: 1f66c882937d11762916023f4233b63cc6645edc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:56 +00:00
Richard Purdie
47c5f1c3bc Improve handling of 'all' architecture recipes and their interaction with sstate
* Jansa: rebased on current master, added nocompiler patch also to
  font-alias, dropped allarch from linux-firmware, gnome-icon-theme, hal-info as
  those are checking compiler (ie in intltool check) and better to build
  them as default arch instead of rebuilding after every machine
  change.
* this is also part of [BUGID# 1075]

(From OE-Core rev: 85d8362e0c443f11fe8d3fd0fba55d1bd4983613)

(From OE-Core rev: bfb58bf95f1796deebc9759da6d22949d62e7070)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:56 +00:00
Otavio Salvador
29a5cc693c qt4: Fix translation support
The translation support was disable in build. The
fix-translation.patch was imported from OpenEmbedded to fix a linking
issue in phonon translation support.

(From OE-Core rev: 8d5a5d78f9e83c64ebddcecd7c4fd89cc1264163)

(From OE-Core rev: 23d72a8066233c592503fda4460c309adc27706a)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:56 +00:00
Denis Carikli
c3a1b97511 qt4(embedded and x11): Disable neon for armv6-vfp
Without the -no-neon flag, neon is "autodetected"
by looking if the compiler is capable of compiling
a neon test, and succeed, and neon is then enabled
during the compilation.

(From OE-Core rev: 026b59180fe3fbeb43cfd143f053ef33f482ef0c)

(From OE-Core rev: e53987e52a362e9a66c0007bfe1ff17a1d5ba2da)

Signed-off-by: Denis Carikli <denis@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:56 +00:00
Eric Bénard
f1369ae9fe qt4: fix generated sdk
- qt4-tools-nativesdk : actually the qmake binary which gets installed
comes from the native recipe. This patch fix this problem by launching
configure twice : once to compile qmake using the right toolchain for
nativesdk, and a second time using the native qmake to compile all the
other tools for the nativesdk. Then we install the right qmake.

- mkspec : the link actually created in qt4-tools-nativesdk's
do_install point to nowhere so remove it and generate the link in
meta-toolchain-qte as it's the only place where we have all the variable
to create it.

- toolchain_create_sdk_env_script_append : we need to add OE_QMAKE_CFLAGS,
OE_QMAKE_CXXFLAGS and OE_QMAKE_LDFLAGS else the sdk won't find these
variables that are inserted by qmake in the Makefiles.

- with this patch, oe-core generates a working meta-toolchain-qte which
can compile a small example and is properly recognized by qtcreator (this
brings oe-core's meta-toolchain-qte to oe-dev's functional state).

(From OE-Core rev: 5f6fb92b939147d2d6aa7790a378d4b7cce3ada5)

(From OE-Core rev: d86d55aea57966e1aaffe913c745a648c21f6c24)

Signed-off-by: Eric Bénard <eric@eukrea.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:55 +00:00
Matthew McClintock
8620d997d4 Fix lttng-ust for powerpc64
(From OE-Core rev: a75683a815343a481b3612c35e1ab79071343187)

(From OE-Core rev: 6af6e862a3f000ada27c8d7f3440821187494421)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:55 +00:00
Matthew McClintock
7d06a71c02 Update gitignore to ignore all meta-* directories
meta-XYZ directories have been manually added in the past, instead
always ignore them unless they are explicitly added

(From OE-Core rev: 3c6e85c653ce176fd2cb5a570e63c8e5da5a4e48)

(From OE-Core rev: ad5f076bee5f43c035499aa0b873ccf683e4e79e)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:55 +00:00
Richard Purdie
7c5028614b base.bbclass: Drop unneeded dependency
patch depends on unpack
configure depends on patch

We simply don't need a configure dependency on unpack. This simplifies
the dependencies of every recipe slightly and should make bitbake
slightly faster at resovling dependency graphs.

It also makes the .dot dependency graphs slightly more readable by
removing noise.

(From OE-Core rev: c54c1280fc0d06a53e23339c3913ec88eead13d9)

(From OE-Core rev: a5b205090d3244cd578d611fd45f2e2f4818b284)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:55 +00:00
Matthew McClintock
6844fac9d5 Fix flac build on e500mc cores
This core does not have altivec, so we disable it in the build,
also reestablish the config option to enable/disable building
with altivec

If SPE is not detected we always build with altivec which is wrong. This
will check to make sure altivec is enabled and pass build options
through accordingly

(From OE-Core rev: 96241de59fdf548ae0f80cc9e4668f9ba11924ef)

(From OE-Core rev: a7237f2be949aef19eedad5a4f34b91641f1660f)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:54 +00:00
Saul Wold
41b5ca8582 python: fix sqlite RPATH issue
(From OE-Core rev: 9f9612d15acc6ee3b71f52bdb3f1ec4cb56b1a17)

(From OE-Core rev: 98acff46d777a5a0931a80a33e9c9d148a0f69a6)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:54 +00:00
Matthew McClintock
7a1504dfe8 Add proper deps for nfs-utils, util-linux, and strace
These packages need these deps for the RPM generation stage:

 error: Failed dependencies:
| 	/usr/bin/python is needed by nfs-utils-1.2.3-r2.ppce5500
| 	/usr/bin/perl is needed by util-linux-2.19.1-r4.ppce5500
| 	/usr/bin/perl is needed by strace-4.5.20-r2.ppce5500

(From OE-Core rev: 9c9ea24b115a9bb87df1323b5f185ce426262aec)

(From OE-Core rev: 42acc3337ef40b3ef693000c27e6efdb79e39351)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:54 +00:00
Matthew McClintock
062623f6ef Fix sysklogd build on e500v2 cores
(From OE-Core rev: 5035097bb369dc1740b817734b92bcfa40d95d22)

(From OE-Core rev: 235ec938cdb01918df659a52711da63d3ff7441f)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:54 +00:00
Matthew McClintock
62ad5b81cb Add udev patch to compile against newer kernels
This patch is needed to compile against newer kernels which have
changed their API

(From OE-Core rev: 60b04097c7aeca2c4d529b2f23343a507fa68ea6)

(From OE-Core rev: 64ab24d5338120e7d1a1feba966269a885306a63)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:54 +00:00
Matthew McClintock
ada8ebb116 Fix HAL on newer kernels without header file
(From OE-Core rev: 3d421ecaef966b47bec49aa2feb3ccc9833d041f)

(From OE-Core rev: 4a6599a01a6dd2b856656d93e82f1411b7d352ed)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:53 +00:00
Matthew McClintock
f1f2cbbc0d Fix ghostscript on powerpc64
This adds pregenerated files for powerpc64

(From OE-Core rev: 30b91a530e7dbabc4cef24525691aa2c34ecf47b)

(From OE-Core rev: 4bef884ae1fe52916849045e4e3dca6396ee7fb3)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:53 +00:00
Matthew McClintock
c434795edf Add autoconf cache for screen on powerpc64
Screen can not run tests for the target and depends on the aotuconf
cache for information about the target system

(From OE-Core rev: 946cd8df49a8873ff93ef5ec1e3cc745a21e2a8f)

(From OE-Core rev: 3c004856e460656e16739d6b68f5189ecf0746a7)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:53 +00:00
Matthew McClintock
25330d9f38 Fixup kexec-tools compatible host for powerpc
kexec does infact work and build on powerpc, enable the compatible
host for these machines

(From OE-Core rev: 1ccc1ec56bc50cee121c03ae8bb8ccacd32b8560)

(From OE-Core rev: c7afacf05deb8ca77818aa33ee13ec3a8c5d983f)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:53 +00:00
Richard Purdie
c1c5eb6866 util-linux: Ensure perl scripts reference the correct perl
Without this change the perl path from the build system is used.

(From OE-Core rev: 18ad3a84dacc0d6c107b56874bb23d2a3c0a429f)

(From OE-Core rev: a20e75a83cd5998d7ed6ea7c0c4ea7039c22160a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:52 +00:00
Richard Purdie
51e089403a mc: Ensure perl scripts reference the correct perl
Without this change the perl path from the build system is used.

(From OE-Core rev: feff6030091d519a0738e2a5db47654dcd13ef13)

(From OE-Core rev: 077a85c4fa376b5e7ee826589bbd4fe6776a326f)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:52 +00:00
Richard Purdie
058ef489a0 openssl: Ensure perl scripts reference the correct perl
Without this change the perl path from the build system is used.

(From OE-Core rev: 1ed8fb66c51ce584c13e592176a69a61bae01f2e)

(From OE-Core rev: bc7da81942aa5676010d513407a2731bd385a165)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:52 +00:00
Khem Raj
3eb7e626d0 gcc-4.6: Update to tip of FSF gcc-4_6-branch
(From OE-Core rev: ed7deecb9503420fbf8071445e077c32beda8dc4)

(From OE-Core rev: 90e3aee700b8fff6d94f84850dfc00091b3777c9)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:52 +00:00
Andrew Gabbasov
386e75b7f0 apmd: use ${HOST_SYS}-libtool
libtool-cross uses ${HOST_SYS}- prefix while building and installing.
In some cases that may be different from ${TARGET_PREFIX}, that is currently
used in apmd recipe. It's better to have them consistent.

(From OE-Core rev: 5f1fac618fa099f6fc78cbc98f18d1c0ab792abf)

(From OE-Core rev: eda6005d2dfcf163f12e3c5cc447ea3ad495a0bb)

Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:51 +00:00
Andrew Gabbasov
f72a801d51 apr: use ${HOST_SYS}-libtool
libtool-cross uses ${HOST_SYS}- prefix while building and installing.
In some cases that may be different from ${TARGET_PREFIX}, that is currently
used in apr recipe. It's better to have them consistent.

(From OE-Core rev: 61cedb87446a27ddaaa880a5f3296399def441df)

(From OE-Core rev: 170d1fe5158eeb316009b2920b009da2c2dedae2)

Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:51 +00:00
Andrew Gabbasov
4ffc32566a libpam: add flex-native to DEPENDS
flex-native is required for building libpam. Although this dependency
is now fulfilled indirectly through bison recipe, having an explicit one
would be preferable.

(From OE-Core rev: 14018608277fe62e2a662711ff6177c93e9bc153)

(From OE-Core rev: 3a8ca44cbd31411934b6c873f75f1fb49167f93c)

Signed-off-by: Andrew Gabbasov <andrew_gabbasov@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:51 +00:00
Paul Eggleton
3f692305dc scripts/oe-setup-rpmrepo: use setup_tmpdir from runqemu
Update the internal copy of setup_tmpdir in the oe-setup-rpmrepo script
to be the same as the one in the runqemu script.

(From OE-Core rev: 4a23c4dd5ab31d9642e5e49569d5c7ab77e97adf)

(From OE-Core rev: 2174746ca6f480eb6387d91f9b3faf2581e816d3)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:51 +00:00
Paul Eggleton
4ff17dc89d scripts: use OE_TMPDIR instead of TMPDIR external variable
On OpenSUSE within an X session, TMPDIR is set to the system temporary
directory (/tmp) which is incorrect for these scripts. Thus, change
runqemu and oe-setup-rpmrepo to use OE_TMPDIR from the external
environment rather than TMPDIR.

Fixes [YOCTO #1530]

(From OE-Core rev: 4e24c10952c7a52af7f2447595fd484692d35534)

(From OE-Core rev: 354497bf3e3bf68374875caa97d9b4fdcad74789)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Saul Wold
1a506c5dfd rpm: fix QA Warning on installed but not shipped staticdev filesw
(From OE-Core rev: 62ce8f96626e061e03ca49896716bbb133721ee0)

(From OE-Core rev: 59f80f70c5ff6c62143b7bad5a67d5508b388d29)

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Simon Busch
84865e45ea meta: qt4: fix postprocessing of pkg-config files
When building qt4-embedded the generated and cleaned pkg-config files for qt are wrong.
The Cflags variable contains something like ${includedir}/qtopia/QtCore where
${includedir} is already /usr/include/qtopia/QtCore.

This patch reverts the fix up of the Cflags variable implemented in do_install.

(From OE-Core rev: b40b9c024be5e1ec81a31961158b3e6b529acfe0)

(From OE-Core rev: 960318ebd271ad5330a0863047927ab827b5e107)

Signed-off-by: Simon Busch <morphis@gravedo.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Richard Purdie
ae97dbe1db pseudo: Fix QA warnings
This fixes two QA warnings:

a) Debug files being contained in the main package (by adding
   an appropriate FILES expression)
b) Stop hardcoding the RPATH in the nativesdk case since our
   path is on the loaders default search path

(From OE-Core rev: 1577975202437f8f89ef24a5e4d3f6c6c8a88c5c)

(From OE-Core rev: 0c345e7aa83196e55cd554a958690e4cc261ef16)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Richard Purdie
edb2641243 sqlite3: Fix nativesdk packaging/QA warnings
When building sqlite3-nativesdk, there was a warning about debug files in the
main package. This was due to the order of items in PACKAGES with -dbg after
the main package which breaks an assumption native.bbclass makes. Changing
the order fixes the packaging problem with no change to the normal target
packaging.

(From OE-Core rev: 4f5fdc4dc14d287d301069024ddec9cb65d68f7f)

(From OE-Core rev: 8f2ff09f0da21e83ddfb8049bf7ddece94eb6893)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Richard Purdie
c8635bab0b grub: Fix insane/QA architecture warning
There is QA warning about this package for an architecture mismatch but
this is inappropriate in this case since the bootloader needs 32 and 64
bit code. We therefore flag the QA check to be skipped.

(From OE-Core rev: 43723e19eb5a6119c7546dc812428e792999a928)

(From OE-Core rev: f31c0b804b04cd1ae9ea7251164fd1345697c72b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:50 +00:00
Richard Purdie
cd50451812 gcc: Fix two QA issues
a) There is a QA warning from a .so being present in a main package.
   In the case of the plugin library for gcc, this is allowed.
b) Remove the unwanted libiberty.a file with the strange path. We
   don't need/want this and this removes an unpackaged file warning.

(From OE-Core rev: ca36a3edf9cede9fa0d73ba1a9538ab467cb5e3c)

(From OE-Core rev: 974677d32e0af74fab58d1b12b8d786b67323c5a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Dmitry Eremin-Solenikov
877979c8b5 libffi: really populate -dev package
As per gcc PR 11147, libffi installs headers into a target dependent
place (/usr/lib/....). Include a rule to include those files into
libffi-dev package.

Reference: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11147

(From OE-Core rev: 684a4b517d13884c315688967fadd5e6a4845b71)

(From OE-Core rev: 5cb756227b12e0d537430a527c51033572fb627e)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Dmitry Eremin-Solenikov
f69eca96d1 gconf-dbus: packaging fixup
Behave more like plain gconf: include a dtd and .la files into -dev
package.

(From OE-Core rev: 9e962c1b4c8e5a3352f5e2b7dc162aeac1335b3a)

(From OE-Core rev: 53951cffc4253850b9b0d6e24f932a9106dfafef)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
lumag
c0a8c9b985 gcc: include libgcov.a into libgcc-dev package
First, this lib is usefull for coverage analysis-enabled building.
Second, this fixes the warning about unpackaged files in libgcc recipe.

(From OE-Core rev: 2a807a98d8be3f486e703321773db32657c71d9e)

(From OE-Core rev: 651e6ee7d1ba729ed0bb5e9ede5975582d9941bf)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Dmitry Eremin-Solenikov
09ab224a2f gcc: fix possible problems with nscd compilation during eglibc-nativesdk build
Long time ago a066e7ca90a28d5681c5fa895a29e999ed7c88b was committed to
address possible problems with compilation of nscd during
eglibc-nativesdk build. Problems were related to the way gcc searches
for headers to check if it should enable it's own stack smash protection
bits or it can relay on eglibc for it.

However after 934d38530c9a67562e53d4034aee5531f0f26750 things got
broken, as for gcc-crosssdk-intermediate packages:
1) EXTRA_OECONF is ignored
2) headers are installed in a different location than expected by that
patch.

This results in eglibc-nativesdk build broken on some systems (e.g. mine
Debian x86_64 squeeze). Fix that by providing with-headers options to
crosssdk-intermediate gcc configuration.

(From OE-Core rev: 63494d638b7a9b88a5b7d7a02d2afcb3aa0fa064)

(From OE-Core rev: b4a686061f27f663321674fb42aa93dbd20c5b3a)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Dmitry Eremin-Solenikov
0e9001afd5 icecc-create-env-native: provide the script right in the tree
There is no point in downloading a tarball with no clear upstream (other than
icecc itself) and then patching it. Rather put new script in the source tree.

(From OE-Core rev: 409fa8ca4d37ad407faaa2a8935e9d2bb89776c9)

(From OE-Core rev: e68d1d5117be9631db644b70308e7360a9d76a3a)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Dmitry Eremin-Solenikov
d63678cdfa bitbake.conf: change ccache path to use MULTIMACH_HOST_SYS
Currently if I build packages for several targets (e.g. for armv5te tosa
and for armv7a beagleboard) oe will use single ccache dir for both of
those targets: build/ccache/arm-oe-linux-gnueabi. However those targets
use different opcodes, different features and binaries created for one
of those targets wont't run on the lower one. So use MULTIMACH_HOST_SYS
for ccache dir, so that it uses something like
build/ccache/armv5te-oe-linux-gnueabi dir.

(From OE-Core rev: 982373006a98cf2303514badd1cfb692108408c0)

(From OE-Core rev: 9d460e31b6b45b30b39587503d655aa2a418cbc3)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Khem Raj
1af2581f0b gnome-doc-utils: Prepend PKG_CONFIG_SYSROOT_DIR to the path returned from PKG_CONFIG
If we build say gnome based image on a build system which does not have
gnome e.g. kubuntu then packages like gedit do not build since it uses
gnome files from host system which are non existent on kubuntu

(From OE-Core rev: 7b18b3c96634e40abf690a7ec72562389b0e6c23)

(From OE-Core rev: a413f3adcfb8245550067c1c2a3197817e631ffe)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Richard Purdie
9dcb176dc8 autotools.bbclass: Set the dynamic linker search path for libtool correctly
libtool obtains the search path from /etc/ld.so.conf and hardcodes /usr/lib
and /lib. This results in host contamination and variable sets of RPATH
values ending up in binaries.

By exporting the correct values for all autotools recipes we avoid this.

(From OE-Core rev: 93e595d5c89ebacdb8d1e6fcfe6f58fe2d30de28)

(From OE-Core rev: 5e41e0973a9be890ac310e1bbf465fcd08b0add5)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Zhai Edwin
64ba74deff matchbox: Upgrade SRCREV to reflect recent accpeted patches by upstream
(From OE-Core rev: 33a1a05ef988c69f8ff8e38c6723922082e5d1aa)

(From OE-Core rev: 1194935707f4acd9029b36769bc0320ba0a90163)

Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Mark Hatle
ff047d3a77 cups: Fix recipe to use the correct cups directories
${libdir} is not used, instead they use a common ${exec_prefix}/lib
directory structure for helpers, filters, renderers, etc.

(From OE-Core rev: 24ae432b1a3906956381d83c1984687e45c5a1d1)

(From OE-Core rev: 72da8109de9c2b1e237655706cdf4de447d38393)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:49 +00:00
Khem Raj
b137421cfc eglibc-2.12: Fix build on powerpc/603e
We pass --with-cpu to eglibc now. Which breaks
the configure for cpus that it does not support
We add support for ppc603e which gets 2.12
building for qemuppc.

(From OE-Core rev: 465a988e2370ec377875b599045f2a7bad913ac6)

(From OE-Core rev: f6dbd42382d980d90f3e64a94178a0050af537cf)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Conflicts:

	meta/recipes-core/eglibc/eglibc_2.12.bb
2012-01-30 16:37:48 +00:00
Dmitry Eremin-Solenikov
3a8590f105 gcc: include plugin-related headers into packaged SDK
Include headers necessary to compile gcc plugins into cross-canadian gcc
packages.

(From OE-Core rev: d12aa92b3dac1109d510e7b6f74055d1ab927817)

(From OE-Core rev: 51c96c98fca5a4a51cb38a6442ab9b4a03938721)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:48 +00:00
Dmitry Eremin-Solenikov
3571525ab8 e2fsprogs: include devtools scripts
Some scripts are necessary to develop programs with libcom_err and
libss. Include those into e2fsprogs-dev package.

(From OE-Core rev: 46332c2313abb273f6fc889fac4daa91cf43faa3)

(From OE-Core rev: f1f22acd15591e5394254441c4364899875a0fbc)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:48 +00:00
Dmitry Eremin-Solenikov
204762c531 glib-2.0: include glib-gettextize stuff
glib-utils already includes glib-gettextize program. Include some files
necessary for glib-gettextize to work.

(From OE-Core rev: c98356e9c46cd28b7ca8e84fe0ea56dc6d812a8d)

(From OE-Core rev: 0f0d5c7d980400bb45e78b7f178844c5a6dbf630)

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:48 +00:00
Daniel Lazzari
394d340ab1 alsa-lib: Don't use versioned symbols on uclibc builds as it causes strange hangs
alsa-lib: Don't use versioned symbols on uclibc builds as it causes strange hangs. Taken from oe-classic.

(From OE-Core rev: b354eb957ce08ac7814ce46c13ca3a8449b4063a)

(From OE-Core rev: 16852546234a252103337414fe536a3b97443539)

Signed-off-by: Daniel Lazzari Jr <dlazzari@leapfrog.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:48 +00:00
Bruce Ashfield
4bf5435d95 linux-yocto: v3.0.10 + rt27
Updating the BSP base to the kernel.org v3.0.10 baseline and importing
the latest stable rt27 release.

(From OE-Core rev: e8aa8fe6e299104d4eb6da16134272a1dc7e929b)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:47 +00:00
Bruce Ashfield
05dba88379 linux-yocto: change SRC_URI to 3.0 maintenance kernel
The 3.0 yocto kernel is updated for both new feature development
and for maintenance purposes. The maintenance kernel repository
takes updates once they have been applied to the development
repository and have been deemed safe/suitable for point releases.

(From OE-Core rev: 0b6eedfe26fca031e84543cab92b20e121364fb7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:37:47 +00:00
Paul Eggleton
1ab5a6851d README.hardware: declare support for BeagleBoard xM rev B
The BeagleBoard xM revision B has been tested (by me, if nobody else.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-01-30 16:30:14 +00:00
Paul Eggleton
781866f64e README.hardware: update atom-pc instructions
The -live and -directdisk images have been superseded in the Yocto
Project 1.1 release, so update the instructions for atom-pc relating to
this change. Also fix a couple of other minor atom-pc related
capitalisation.

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2012-01-30 16:29:43 +00:00
Joshua Lock
702c428804 poky: set linux-yocto-rt preferred version for qemu machines
Signed-off-by: Joshua Lock <josh@linux.intel.com>
2012-01-30 16:19:24 +00:00
Xiaofeng Yan
5882121a94 local.conf.sample.extended: Fix bug 1674
[YOCTO #1674]
local.conf.sample.extended: An image based on gtk+-directfb don't need x11 for DEFAULT_FEATURES

Remove "x11" from DEFAULT_FEATURES and add "directfb" to it because someone could don't need x11 in their project, perhaps
gtk over directfb will meet his reqirement.

(From OE-Core rev: 5def790bdecd2726692b40a57bc12c8bdfea9179)

Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:19:15 +00:00
Joshua Lock
6c2f754a0a machine/atom-pc: enable sound
Add alsa to the MACHINE_FEATURES - looks like this was an oversight.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:19:06 +00:00
Joshua Lock
acd0bedbce ui/crumbs/hobprefs: trigger a reparse after changing IMAGE_FSTYPES
As reported on the mailing list[1] when changing IMAGE_FSTYPES through the
hob preferences a reparse is required before the changes will be picked up
by the system. This patch sets the reload_required property of the class to
true when the image types have been modified to ensure the reparse is
triggered.

1. https://lists.yoctoproject.org/pipermail/yocto/2011-December/006002.html

(Bitbake rev: 6c0babf08909307ab69a66ed06e77e8818b2a8c5)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Joshua Lock
90f8d53800 ui/crumbs/runningbuild: handle InvalidTask events
The knotty UI just ignores these and so should RunningBuild, if these events
aren't handled the UI appears to hang.

Fixes [YOCTO #1665]

(Bitbake rev: 540ba78075bd525776aa23bf38bee66350c66534)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Matthew McClintock
23c6b49566 siggen.py: If both sigs have a variable in it's whitelist then don't say it's changed
Some BB_HASHBASE_WHITELIST variables are in the lists of variable
dependencies for signatures. Ignore those differences in lists
since this difference does not matter

(Bitbake rev: 71b53a3f0766ca464560a1f6a449f9424fbdf7ae)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Robert Yang
f204d16012 bitbake: Update and fix bitbake-runtask
Since bitbake switched back to the fork instead of the exec model,
it no longer used bitbake-runtask and the code has suffered some bitrot.
bitbake-runtask is a useful tool for excuting the task without
the scheduler of bitbake, so that the external tool can invoke it
easily. It also provides a useful example of how to invoke exec_task()
with low overhead without a lot of the bitbake threading/UI overhead.

Significant changes:

* This patch changes the argument order so that the commonly used
  and mandatory arguments come first.

* The taskhash file and dryrun options are now optional

* It now uses the bitbake logging mechanisms to provide processed
  logging output to the console.

* The process handling to do with stdout/stderr redirection
  are removed since they're no longer required.

[YOCTO #1229]

RP: Logging updates to the patch based on Roberts original patch
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Richard Purdie
3796541746 bitbake/siggen.py: Don't backtrace if the taskhash data isn't present
This allows the code to safely fall back to dumping the basehash data
if the taskhash data isn't present for some reason. We could effecitvely
obsolete the runtime option and use this approach instead exclusively.

(Bitbake rev: 5ace320ccc01f4e326f90b7ba060dcbff3380dca)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Richard Purdie
0e676f74c5 build.py: Be determistic about a function's cwd
There is a subtle but nasty problem that a function's cwd can vary
depending on whether ${B} (often ${S}) exists before the funciton is
called or not. Most functions in the system can cope with this but
its bad practise and I've just witnessed build failures resulting
from this during image generation from bootimg.bbclass. I also
suspect this could explain some odd fetcher behaviour witnessed in
the past.

This change ensures we always call funcitons with a specific build
directory making things deterministic.

(Bitbake rev: ef0888f83fa4408eb768257d7e03700202faad18)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Richard Purdie
26666187e3 cooker.py: Allow the -e option to work with virtual classes and -b
Using bitbake -e -b virtual:xxxx:/path/to/the.bb would result in
zero matches since the virtual:xxxx piece wasn't being processed.

This adds in the necessary functionality to handle it correctly.

[YOCTO #1793]

(Bitbake rev: bd5a727c8447bcb747c1d2463b7de2ab6d21a7de)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Matthew McClintock
c270f92b08 Nothing uses USERNAME, remove it - can cause sstate-cache conflicts
USER is the correct variable to use, also this can affect sstate
cache as well.

(Bitbake rev: d7f9edda65dae2e046871afa275c5a51dff48fc4)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Christopher Larson
1670051a79 codeparser: silence non-literal warnings for vardeps
If the vardeps flag is not None, we now silence the warnings about
non-literal usage for that variable.

(Bitbake rev: e724b9f417d1baf898f5afc6376c73c1a2ad8db9)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Christopher Larson
c61f04c34e codeparser: drop expand tracking
There are two usual cases involving bb.data.expand:

- Calling it with a string literal -- "bb.data.expand('${FOO}/${BAZ}/bleh', d)".
- Calling it on getVar results (legacy) -- "bb.data.expand(bb.data.getVar('FOO', d), d)"

Nothing in any of the usual layers uses it in any other way, and I'm
having trouble coming up with any real use cases beyond this. The first
of the above cases is already tracked, via the expandWithRefs called
on the python code string. The second didn't emit a warning anyway,
since the getVar was already handled.

Given this, I see no reason for us to maintain explicit expansion
tracking. Further, we weren't using its results anyway (the var_expands
member).

(Bitbake rev: 405dfe69e6a608826e599ebf2f83ef8cf5083b96)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:13 +00:00
Christopher Larson
2b26745c70 codeparser: accept a name for better messages
- If a name is passed to the parser, prepend the messages with "while
  parsing <name>:". This gives a bit more context.
- Tweak the warning messages slightly (they had to be altered anyway to
  inject the variable being parsed).

Before:
  DEBUG: Warning: in call to 'bb.data.getVar': argument ''%s' % var' is \
         not a literal

After:
  DEBUG: while parsing emit_pkgdata, in call of bb.data.getVar, argument \
         ''%s' % var' is not a string literal

(Bitbake rev: 1060193ae4d54e667735dbff5d1d2be49a3f95c9)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Christopher Larson
28ca6cc34b codeparser: simplify how we compare the called node names
With the previous method, using the compare_name methods, we split the
requested match name by '.', reversed it, then compared them piecemeal
during the node traversal. The new method walks the nodes and hands back
the name of what's being called, and then we check that. This also
consolidates the two different implementations of traversal of the
attribute/name nodes (one in compare_name, one for the execs).

(Bitbake rev: 84e535b5165c7e936c5b1486bdf4626ed3649f5f)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Christopher Larson
ada59bde67 codeparser: merge the nested python parsing classes
The split is even less necessary now that we use ast.walk rather than an
actual NodeVisitor subclass.

(Bitbake rev: d6c44fac184abae8395bfa7078f06675218aa534)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
9a68fb1364 data/siggen: Add vardepvalue mechanism to allow the variable dependency code to be forced to specific values
We have a problem if we want to inject specific information into the variable
dependency code. There are cases for example where we want a dependency
on the value of X but it doesn't matter how X was constructed or what
dependencies it might have had, we only care about the absolute value.
With the current code, its near enough impossible to do this.

This patch adds such a mechanism so the user can trigger this with code like:

baselib[vardepvalue] = "${baselib}"

It also refactors some of the code so we do variable lookups once
instead of doing this in two different functions.

[YOCTO #1583]

(Bitbake rev: 6c879b44ccf42dc73fe4467076e114700d7ba81b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
f87c92143e fetch2: Improve uri_replace to handle paths with no trailing '/'
Currently if you specify a mirror like:

file://.* http://linux.freescale.net/yocto/sstate-cache

it won't work as you expect whilst:

file://.* http://linux.freescale.net/yocto/sstate-cache/

will since it has the trailing slash.

This patch handles both cases correctly. It also adds some debug to
the uri_replace function since its near impossible to debug it without
some kind of output.

[YOCTO #1578]

(Bitbake rev: a0246bf09c93bb657eaf6ba61d090b247ed33640)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
f38e44bbb2 runqueue.py: Fix debug message to reference the correct task
(Bitbake rev: 035c673c463ca450245acf824e7b7e8f889bdc89)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
4d7f50382e fetch2/local: Don't default to files in DL_DIR for file:// urls
Defaulting to any file in DL_DIR as the first match for a file:// url
doesn't make much sense and can lead to unexpected results.

This patch changes the logic so this is the last fallback location
instead. Whether it should be using DL_DIR at all for this is a
good question but something for another patch.

[YOCTO #1710]

(Bitbake rev: 5597a68fac0954c682b67471722c2643e2415f99)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Matthew McClintock
6803d97bdb siggen.py: sort task hash depedencies with basepath
Without this patch the tash hash dependencies can be in a order
that is dependent upon directory/filesystem layout. With this
change the data is sorted the same regardless.

Without this the dependent hashes could be in different orders
on different systems and consequently final md5 hash would differ
as well even though nothing else changed.

(Bitbake rev: 9a2029899c946ce9aa8adbc85f2cfe7a85b92182)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Matthew McClintock
81ed10442b bitbake: print out symmetric difference when comparing sigs
This is useful for really longs lists to pinpoint what has
actually changed

(Bitbake rev: f1eb6d3dcc10c42bb09383a87bde3afa69bc6ed9)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
1a46002fad runqueue.py: Ensure we fully process the covered list
The existing looping code can mask an existing "found = True"
by forcing it to False each time. This can lead to dependency
lists not being fully searched and results in dependency errors.

An exmaple of this was the autobuilder building linux-yocto from
sstate but then rebuilding some of the recipe's tasks for no
apparent reason. Separating the logic into two variables solves this
problem since any "found = True" value is now always preserved.

(Bitbake rev: 61017fc5d30b7a13308d038872ec92efc1a84cef)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
2747b2003e runqueue.py: Ensure setscene tasks don't break dependency order
If A depends upon B which depends upon C and the setscene for B
succeeds but C is going to get rebuilt, we should wait for C to
try and build A but currently we don't.

This is due to the timing of when we run the task_skip() as this
triggers other tasks to become buildable. This patch moves the timing
of that call to a more appropriate place allowing dependencies to
behave as expected.

(Bitbake rev: b7114d8e5d9b0720339bd5d24d243c0f2a7c1f3b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:12 +00:00
Richard Purdie
375297ea28 bitbake/runqueue.py: Sort the list of skipped tasks as it makes searching the list easier when debugging
(From Poky rev: 5de8a495fba657e1febc616bbc737a8136cc88f9)

(Bitbake rev: 110f6cccbcc5907e15262c05d5c47da101e1a47d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Richard Purdie
c2662a5095 bitbake/runqueue.py: Fix incorrect task number reference in debug message
(From Poky rev: 45887bbd5479041be05b914668f14de6ec9b9831)

(Bitbake rev: dc4439ca8c7db7ceee78bd0552f65ceddcff17a7)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Richard Purdie
da56e3df88 parse_py: Use absolute paths for FILE
Its possible for relative paths to creep into FILE. These confuse the
build system no end as its not clear where they might be releative to.

This patch ensures we always use resolved absolute paths for FILE
so that things behave in a deterministic way.

(Bitbake rev: 658d7daa70e46c2b20973b90ee53f0bbadc8bf5d)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Richard Purdie
388dbe4928 siggen.py: Include list of variables in hashes
Ensure that the list of dependencies is included in the hash
as well as their contents

Prior to this, adding or removing dependencies with values
of "None" would not change the hash, despite diffsigs reporting
this difference.

(Bitbake rev: 727ca945177ce9bd44515cf611e3e95a09466d98)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Richard Purdie
dbcce81f66 siggen.py: Fix diffsigs output for filename comparisions
When comparing sig files, if the recipe locations had changed, the
dependent tasks list would show as changed even if the actual hash
had not changed. This updates the code to only compare the base part
of the pathnames.

It also tweaks some of the output to add newlines to aid comparing
two lists of variables as it makes the location of the difference
clearer.

(Bitbake rev: 165a22ddcc647b945707fb5c483146bb336d5f66)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Christopher Larson
46ac868403 codeparser: make var_expands actually hold useful information
Previously, it was calling var_expands.update() rather than add(), with
a string argument, resulting in adding each character of that string to
the var_expands set, rather than the string itself.

(Bitbake rev: 8e4e75383e43d6da2c16ec5286186a0d0569b0f8)

Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Paul Eggleton
6e1105e1e8 lib/bb/runqueue: avoid marking runtime dependencies as covered
The code which populates setscene_covered list was adding a task to the
covered list if all of the tasks that depend upon it were also covered;
however, this means that tasks that would have installed "runtime"
dependencies were being marked as covered also, e.g. gmp-native and
mpfr-native are needed by gcc-cross at runtime since they are shared
libraries that gcc links to, but their do_populate_sysroot tasks were
being marked as covered, resulting in failures later on if gcc-cross was
available from sstate but mpfr-native and gmp-native weren't.

Since we currently have no real way to handle runtime dependencies for
native packages, add a workaround which avoids marking tasks as covered
if one or more of their revdeps are from a different recipe.

Fixes [YOCTO #1536].

(Bitbake rev: e492eb4dc9016cd0bed194377c6f2b85cf0ad113)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Richard Purdie
4494f59a26 utils.py: Fix lockfile retry handling
The lockfile retry parameter is expected to return immediately after
attempting to take the lock. There was a bug in the logic which this
patch fixed to ensure it does that.

(Bitbake rev: f421ef819f00ac659504d9af41bcc8323422ff8c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Joshua Lock
13590b23c6 hob: fix backtrace when dismissing open dialog
Clearly a logic/indentation error - we should only try and load the recipe
should the file-chooser return OK.

Fixes [YOCTO #1668]

(Bitbake rev: db59297aa1861614ffaea4295b9b054baa8a12b9)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Matthew McClintock
2c3861ee68 fetch2: Export additional variables to the fetchers
git could need these environment variables when working behind
a proxy

(Bitbake rev: dca46cc2e1c75b6add2c4801e2994a4812745f5b)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Matthew McClintock
9cf7aabecf fetch2/git: Make git fetch run with -f so rebased branches don't fail
git fetches can fail (or at least return failed) when trying to
fetch and prune rebased branches. This patch simply adds a -f
to the git fetch command so these failure are ignore

Generally, if some SHA was rebased away it's not coming back so
there is no point in not doing this force

(Bitbake rev: a7b75e4db52445b30ec0fc0053dcf454f5f7d2db)

Signed-off-by: Matthew McClintock <msm@freescale.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:16:11 +00:00
Scott Rifenbark
81d1a4aadf documentation/Makefile: new 'edison' variable for YP dev manual.
I discovered that the figures used in this manual differ depending
on the branch.  There are two figures that are different.  Thus,
the TARFILES variable in the makefile needed to be conditionalized.
If it is not, then the process that makes the tarball throws errors
because it cannot find the two figures from the other branch.

To fix this I introduced the 'BRANCH' variable.  It is to be used
only when you make or publish the YP Development Manual.  And, you
only use it to specify 'edison'.  If you are building from the 'master'
branch you don't need to use it.

Comments in the file have been updated to explain usage.

(From yocto-docs rev: 0341b19f75176fd4133fd66cb5536b765edf0294)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:03 +00:00
Scott Rifenbark
6578845f69 documentation/Makefile: fixes for missing tarfiles
I had added some edison-specific figures and they needed to
be included in the TARFILE variable for the YP development manual.
The fix now makes the TARFILE variable all-inclusive for all
.PNG files regardless of branch.  Consequently, there can be
some missing files when the manual is made but the errors are okay.
I documented the exceptions above the variable.

(From yocto-docs rev: be731afde47dfc85da6ba88f93910899ec259e87)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:03 +00:00
Scott Rifenbark
b5a4e78df5 documentation/dev-manual/dev-manual-kernel-appendix.xml: edits to example
Poor flow for the config_smp example.  Upon reading this example
it did not stand well on its own.  I added some text, albeit
redundant but necessary I felt, so that the example would stand on
its own.

(From yocto-docs rev: 1677a873e9bd1124a5ff0234edc1ee05938c19b0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:02 +00:00
Scott Rifenbark
68b55c1e85 documentation/dev-manual/dev-manual-kernel-appendix.xml: Fixed repo name
I left "work" off the name of the copy of the clone repo
for the kernel example.

(From yocto-docs rev: 26f3dd9c82beb3c8d6e50c2132756bdb4b29b56d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:02 +00:00
Scott Rifenbark
4234beb034 documentation/dev-manual/dev-manual-kernel-appendix.xml: branch info added
The example now uses an edison branch of the poky-extras repo.
Now that that is necessary, there needs to be explanation in the
example on setting that branch up after creating the local
repository.

(From yocto-docs rev: 70599a07a6efb0ae2da04baa43b5bb99c9ec4e5d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:02 +00:00
Scott Rifenbark
ddb5143d9d documentation/dev-manual/dev-manual-model.xml: updated figure
Because the names of the bare clone and copy of the bare
clone kernel repos changed in the example this figure needed
to be altered.

(From yocto-docs rev: e49ec4256bd9fe9f1193b70f8a5ab864c069c863)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:02 +00:00
Scott Rifenbark
25dcd673f5 documenation/dev-manual/figures: Figures altered.
Changing the name of the bare clone and copy of the bare
clone for the appendix A (kernel) example affected this
figure of the file structure.  I updated the figure, which
is now specific to 1.1.x and added it.  I also had to remove
the figure that will now be specific to (master) work.

(From yocto-docs rev: 048af1a6945991c66abef72de05c136e8071a9e5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:02 +00:00
Scott Rifenbark
1ad7977742 documentation/dev-manual: Changes to repo names and kernel example.
To make the kernel example more easily understood, Joshua Lock
suggested that the names used for the bare clone of the kernel
git repo and the copy of the bare clone be more different.  So
I have changed the example such that the bare clone repo is
named linux-yocto-3.0-1.1.x.git and the copy of the bare clone
(or working repo) is named my-linux-yocto-3.0-1.1.x-work.

Note that this also implies the use of the linux-yocto_3.0-1.1.x
kernel and not the linux-yocto_3.0 kernel.

All the changes made here should take care of the example.  I
did have to introduce a new figure that showed the kernel
repos based on the new names used in the example.  Also, I had
to delete the other from this branch.  The examples are now
diverging according to (master) work and 1.1.x work.

Reported-by: Joshua Lock <joshua.lock@intel.com>
(From yocto-docs rev: f4fdef6078fccfc2c72b6e0ad1dfae1f1ecb2aa6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:01 +00:00
Scott Rifenbark
fe40f117c1 documentation/poky-ref-manual/faq.xml: Fixed links to python
The links to the 32-bit and 64-bit Python tarballs in
miscsupport were broken.  I fixed them.

(From yocto-docs rev: 6dd820fe8e3d22329a4d6e4edcbba72bf70841c4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:01 +00:00
Scott Rifenbark
0550d8c73e documentation/dev-manual/dev-manual-newbie.xml: updated download link
Found a link that was still yoctoproject.org/downloads.  I changed
to downloads.yoctoproject.org.

(From yocto-docs rev: 26c87f543c95efcd7e5a546b3cd0d0756a238fa5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:01 +00:00
Scott Rifenbark
bc821a2ab5 documentation/adt-manual/adt-command.xml: Corrected wording for setup
Bad wording fixed to describe the changes to PATH when the setup
script is run.

(From yocto-docs rev: 95c6049995e8b51a46ba7fba57fcc240b6baeaaf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:01 +00:00
Scott Rifenbark
aa72ed0b23 documentation/adt-manual/adt-eclipse.xml: Fixed yoctotools reference
The menu for the YoctoTools in Eclipse moved from underneath
"Windows" to the top level.  I fixed the reference to reflect
that change in the GUI.

(From yocto-docs rev: 89830569107200f89d78e0b32b98429a947abe36)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:01 +00:00
Scott Rifenbark
e0a2bbd2a4 documentation/adt-manual/adt-eclipse.xml: Fixed menu reference
I changed the wording in an example to use "menu" instead of
the incorrect "navigator pane".

(From yocto-docs rev: d2ce174e8e427c279d90197eb896e1f4df183196)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:00 +00:00
Scott Rifenbark
1a2454fcba documentation/adt-manual/adt-eclipse.xml: Added more info for example.
I added a bit more information to the third step of the
example that reconfigures a project.

(From yocto-docs rev: d30a83e4f62015cbaba9e2532b7e69d1908dfb50)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:00 +00:00
Scott Rifenbark
92675a93ba documentation/adt-manual/adt-eclipse.xml: Removed redundant link
I removed a redundant link to the QS manual.

(From yocto-docs rev: 20c898194511bd943ca2a93b1a4caad0466fccd9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:00 +00:00
Scott Rifenbark
1bafc89431 documentation/adt-manual/adt-eclipse.xml: Updates to plug-in install
I worked through these methods and discovered a bit more on how
they actually work and when the user would use a given method.
The updates reflect this new knowledge.

(From yocto-docs rev: 346652df7a3423b82a10d41aa2d7dcddb803ad6f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:06:00 +00:00
Scott Rifenbark
dc785b64c1 documentation/adt-manual/adt-package.xml: Fixed reference to manual.
Removed redundant link for referencing a section of a different
manual.

(From yocto-docs rev: 44f4df93ead5c8d48dd536355770919871bdc283)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:59 +00:00
Scott Rifenbark
257dbe8d39 documentation/adt-manual/adt-prepare.xml: Updates for 1.1.1
These changes reflect working through the chapter using the
1.1.1 release.  Several areas needed tweaking.

(From yocto-docs rev: 566b8a492e502e88a1404f833db140a6408da592)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:59 +00:00
Scott Rifenbark
c81c4cb0c7 documentation/poky-ref-manual/ref-variables.xml: PDF formatting fixed.
In the PDF version of the reference guide there were several glossary
variables that did not format correctly.  The issue is that the two-
column list had instances where the variable name overruns the
variable description.  I added an extra line return for these cases.

(From yocto-docs rev: f3ff26568b371807986e4ba77fe41cba6875efcc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:59 +00:00
Scott Rifenbark
da3edbd85b documentation/adt-manual/adt-prepare.xml: added unpacking text
I added text to show how to unpack the generated ADT Installer
tarball.

(From yocto-docs rev: b0cf4554d3dde3a018f8f7901162474cb423ea12)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:59 +00:00
Scott Rifenbark
44aa4f320a documentation/adt-manual/adt-prepare.xml: update link to get ADT inst tarball
(From yocto-docs rev: b034cda6c18fc350636554b5ff8a4a89f503308d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:58 +00:00
Scott Rifenbark
38dbccd997 documentation/adt-manual/adt-intro.xml: Fixed broken perf link
(From yocto-docs rev: 13ddf9ab19f55e5f204ffa78180d89c47d51155f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:58 +00:00
Scott Rifenbark
6c27a7b50e documentation/adt-manual/adt-prepare.xml: Updated 6.0 to 6.0.1
Changes for the 1.1.1 release.

(From yocto-docs rev: 42ffeb43ea315b14e8b4668d3ab5ff8a16f1e7ac)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:58 +00:00
Scott Rifenbark
7ef3bc97b7 documentation/dev-manual/figures/kernel-example-repos.png: update figure
The figure that shows the kernel repos needed the git push
command fixed.  There was no ":" character in it.

(From yocto-docs rev: 69874766764788f08dc448b9835d41b6c67fcd8a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:58 +00:00
Scott Rifenbark
807b96f882 documentation/bsp-guide/bsp.xml: updated crownbay file structure
The file hiearchy was stale for the meta-crownbay examples in
recipes-graphics.  I updated in two places.

(From yocto-docs rev: a16bf8ae56efb907a50fbe4c16be0adfeec5c275)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:57 +00:00
Scott Rifenbark
2add98ffc8 documentation/bsp-guide/bsp.xml: Updated linux-yocto_3.0.bbappend example
This example had gone stale.  I cloned the meta-intel repo and
copied the edison branch version of the file into the manual.

(From yocto-docs rev: 963c53157f147c556cc4317f68fafeb0650268cc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:57 +00:00
Scott Rifenbark
ed7fe93178 documentation/dev-manual/dev-manual-kernel-appendix.xml: menuconfig update
The example that shows menuconfig and where the .config file is
was updated to show the use of linux-yocto-3.0 kernel.

(From yocto-docs rev: a9f7a73842b428242da95f3dfe6a7b31c123ebc2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:57 +00:00
Scott Rifenbark
397081ef41 documentation/dev-manual: Updates to index of releases
Had to update the figure again and I updated the surrounding
text.

(From yocto-docs rev: d3a0cb2b24dabdf4a022a7426aeb2b80b40ae544)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:57 +00:00
Scott Rifenbark
570eeea297 documentation/dev-manual/figures/index-downloads.png: updated picture
Updated the picture that shows the index of releases.  they renamed
this from index of downloads.

(From yocto-docs rev: 098648434311bbe6de68fbbf89486ee1f9c0e4ec)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:56 +00:00
Scott Rifenbark
b9232eb2b4 documentation/dev-manual/dev-manual-kernel-appendix.xml: cleared up note
There is note instructing the user to delete unused .bbappend files
or comment out the COMPATIBLE_MACHINE statements in those unused
files before running the build in the example.  the note was not
clear about the COMPATIBLE_MACHINE statement in the .bbappend file
that is actually being used.  I edited the text to be clear about
that.

(From yocto-docs rev: 44277b9c5d8a77958a4220fa790bc13e9ce697b3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:56 +00:00
Scott Rifenbark
405578286d documentation/dev-manual/dev-manual-bsp-appendix.xml: hddimg size updated
The 'dd' example needed updating for the output that shows the
size of the image.

(From yocto-docs rev: f7cee3f3b9ccf2760de182b3d545e8d53ef83786)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:56 +00:00
Scott Rifenbark
1c937b6359 documentation/dev-manual/dev-manual-start.xml: updated to clone output
Updated the console output created when you create the bare clone
and the copy of the bare clone.

(From yocto-docs rev: 73130ec4a785417c5b8a91c0b577ac3681562b77)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:56 +00:00
Scott Rifenbark
567200dcf2 documentation/dev-manual/dev-manual-start.xml: poky-extra output updated
I updated the console output returned when you set up the
poky-extras repo.

(From yocto-docs rev: f4a6bea21df8dc6df1c30288a6ea93218e7d614d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:56 +00:00
Scott Rifenbark
b4f5708c05 documentation/dev-manual/dev-manual-kernel-appendix.xml: General Edits
Better wording for the "Local Yocto Project Files Git Repository"
bulleted item.

(From yocto-docs rev: 03dea8208ba641efdfc9d1fa1d9afddc8c659cbf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:55 +00:00
Scott Rifenbark
b8cb28fc2f documentation/dev-manual/dev-manual-bsp-appendix.xml: dd example updated
After building the BSP example the dd example command is being updated
with new image.

(From yocto-docs rev: ed9dc2a1af1c1160d03b0b12f06c91028120f177)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:55 +00:00
Tom Zanussi
495d37ab0b documentation/dev-manual/dev-manual-bsp-appendix.xml: BSP example scrub
As Reported by Robert P. J. Day.

Robert was working through this BSP example in the development manual
and ran into some problems and some confusion in areas.  This launched
a long "help-desk" session with Tom Zanussi.  In addressing Robert's
issues, Tom decided to make a run through of the example as it was
written.  For the most part the example was sound but needed some
technical tweaks as well as some expansion of the text to make things
clearer.  Tom submitted the patch that addressed these concerns.

Scott Rifenbark reviewed the patch and further modified some of the
writing to make it consistent with the existing writing in the manual.

(From yocto-docs rev: b95b9077bce1de55da4c0fc6208e2f2dac10c1e5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:55 +00:00
Scott Rifenbark
9d60cb9450 documentation/dev-manual/dev-manual-bsp-appendix.xml: recipes-bsp example
For some reason the example for the "Changing recipes-bsp" section
mysteriously had the wrong first command in the example to prepare
this stuff.  The example was removing something in the recipes-graphics
area.  Don't ask me how it got there.  I checked through the commits
in the Edison branch and can't find the change.  It could have happened
during 1.1.1 scrub.

Anyway, I have fixed the 'rm' command to be appropriate for the
example, which works with recipes-bsp.

(From yocto-docs rev: a53d46b5f0dbbdfac902abc5844085bee3aeb6d9)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:55 +00:00
Scott Rifenbark
5592e80877 documentation/dev-manual/dev-manual-start.xml: update meta-intel output
Verifying the 1.1.1 release and creating the local repo of meta-intel.
The console output is significantly different.  I have updated the
returned console output.

(From yocto-docs rev: 653e1214861e98501d37543403c5324c4d153112)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:54 +00:00
Scott Rifenbark
979ecf3eea documentation/dev-manual/dev-manual-model.xml: Updated machine link
Found a couple more occurrences of old links to the machines
area of the downloads.  Fixed them.

(From yocto-docs rev: 276352d49612bf77ed9e828c54bc1bc008345839)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:54 +00:00
Scott Rifenbark
770f5bb229 documentation/dev-manual/dev-manual-model.xml: Updated machine link
Changed a couple of links for the yocto-1.1.1/machines area.  These
links were old and pointing to yoctoproject.org/downloads.  They
are now changed to http://downloads.yoctoproject.org/releases..

(From yocto-docs rev: cee9d5eb0b095ba647411abaf12f591e216e461f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:54 +00:00
Scott Rifenbark
44211ed500 documentation/dev-manual/dev-manual-model.xml: Fixed external link
Found a link that had a spacing problem and should not have
been linking to the manual in general.  Fixed the spacing problem
and removed the links to the book in general.

(From yocto-docs rev: 0894e05dfa59b08f5c4e29a5aafbc2e5487f442c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:54 +00:00
Scott Rifenbark
ac715efc14 documentation/dev-manual/dev-manual-newbie.xml: Fixed broken link to Git
Found another broken link to the Git documentation.  They must have changed
this stuff up.  So I set the link to point to the appropriate area in
the Git Community Book.  Talks about distributed workflows.

(From yocto-docs rev: b668c8c65fdc51e0100e9ddd1c54e4926579bbe2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:54 +00:00
Scott Rifenbark
b256ae8f80 documentation/dev-manual/dev-manual-newbie.xml: fixed broken link
there was a link to some Git documentation referencing workflows that
apparently had gone stale.  I replaced the reference with a link to
the Git Community Book.

(From yocto-docs rev: 3a21f7454ec04e082d58646eecc1cffe3caa046c)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:53 +00:00
Scott Rifenbark
fa969ffb59 documentation/dev-manual/figures/git-workflow.png: Updated figure flow
The Git Workflow was missing a pull line from the second (bottom) contrib
box into the project's master Git repository.  I added the line.

(From yocto-docs rev: 3988e0197a7e3a6cde647f01da9ae41fd9465c75)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:53 +00:00
Scott Rifenbark
e67311606e documentation/dev-manual/dev-manual-start.xml: top-level dir fixed
Changed the top-level directory created from unpacking the
edison-6.0.1 tarball from 'poky-1.1.1' to
'poky-edison-6.0.1'.

(From yocto-docs rev: 7af332806f1f4952f8e7672243d077e4ecde7fc5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:53 +00:00
Scott Rifenbark
b17aecd70a documentation/dev-manual: Fixed 6.0 to 6.0.1 for 1.1.1 release.
Needed to change the "6.0" occurences to "6.0.1" in the examples.

(From yocto-docs rev: d6b40b3b0e98eba7f3221e79cb9612f8f10bffaf)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:53 +00:00
Scott Rifenbark
1cb265f575 documentation/yocto-project-qs/yocto-project-qs.xml: update to pre-built
The pre-built section had a couple errors I discovered while trying
to verify the 1.1.1 release.  One is a wording problem putting the
last set of commands into context.  the other is that i needed
i586 as the expanded environment file in /opt/poky.

(From yocto-docs rev: d173f82e3e368b54889d6c1aa9bd51340e7e42be)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:53 +00:00
Scott Rifenbark
31b7cac818 documentation/yocto-project-qs/yocto-project-qs.xml: 6.0 fixes for 6.0.1
Updates to 6.0 to make them 6.0.1 for the 1.1.1 release.

(From yocto-docs rev: 19c8fb554c620d78edc7a0330e76e31a2a374ad2)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:52 +00:00
Scott Rifenbark
05738313c3 documentation/yocto-project-qs: Updates for 1.1.1 Release
Decision made to treat every release like a major release.
This caused a scrub through the manual for the string "1.1"
and "6.0" and changed to "1.1.1" and "6.0.1".

(From yocto-docs rev: 3bd37946985b5a38860a61887d0bac4930c7cde1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:52 +00:00
Scott Rifenbark
25cf1a65ec documentation/poky-ref-manual: Updates for 1.1.1 Release
Decision made to treat every release like a major release.
This caused a scrub through the manual for the string "1.1"
and "6.0" and changed to "1.1.1" and "6.0.1".  Also the
release date changed to 17 February.

(From yocto-docs rev: 893d347409543cc690ab40b06384d4a0b1519ac0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:52 +00:00
Scott Rifenbark
442730168e documentation/kernel-manual: Updates for 1.1.1 Release
Decision made to treat every release like a major release.
This caused a scrub through the manual for the string "1.1"
and "6.0" and changed to "1.1.1" and "6.0.1".  Also the
release date changed to 17 February.

(From yocto-docs rev: 23938e6066b214aaba2e84fe4521504ad7f89b58)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:52 +00:00
Scott Rifenbark
2ca5c8c03e documentation/bsp-guide: Updates for 1.1.1 Release
Decision made to treat every release like a major release.
This caused a scrub through the manual for the string "1.1"
and "6.0" and changed to "1.1.1" and "6.0.1".  Also the
release date changed to 17 February.
(From yocto-docs rev: 8438b152ba13dab079b3918fecc418be5ddc19c0)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:51 +00:00
Scott Rifenbark
fa056279ea documentation/bsp-guide: Updated History table for 1.1.1 release.
(From yocto-docs rev: 0973325ae77fe6bdbf2fa6833005df2f7b0b554e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:51 +00:00
Scott Rifenbark
7ec098bedc documentation/adt-manual: Updates for 1.1.1 Release
Decision made to treat every release like a major release.
This caused a scrub through the manual for the string "1.1"
and "6.0" and changed to "1.1.1" and "6.0.1".  Also the
release date changed to 17 February.

(From yocto-docs rev: d603f89d42442dee6287381e7a0bfb7ddcdc2353)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:51 +00:00
Scott Rifenbark
68d048abfd documentation/adt-manual: Scrub for 1.1 occurrences
Several changes made to turn "1.1" into "1.1.1" for the Edison
point release.  There could be a couple more.  I am waiting on
clarification from Beth and Jessica.

(From yocto-docs rev: 7a27eba984c4baf7dc22a61a18f9c902acc6f9d6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:51 +00:00
Scott Rifenbark
d5848aa719 documentation: cross-manual links hard-coded for 1.1.1 release.
All the links to any YP manual for the 1.1.1 release now use
"http://www.yoctoproject.org/docs/1.1.1/....".

(From yocto-docs rev: 178d16e8693550341a4d307e36af934ce0bfe4c3)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:50 +00:00
Scott Rifenbark
9edf601d2d documentation: Updates to Manual History Table for 1.1.1
All history table entries added for the five YP manuals.
At this commit the date was not known so a place holder date
of 12 January 2012 is in there.  I needed to commit this
separately so that I could move onto other changes for the
docs.

(From yocto-docs rev: 4983a6d66d659aa7a0cc5d4953716a55f24fb03b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:50 +00:00
Scott Rifenbark
155d0deae8 documentation/poky-ref-manual/technical-details.xml: edits per Richard Purdie
Richard reviewed the new sections and had a couple comments.  There
was one technical error and he also wanted YP worked out when it was
being used in the context of the code that was doing the work here.
So I replaced with more generic terms or specifically called out
BitBake as the responsible software.

(From yocto-docs rev: 89641ffa35d7978961790d750ce84073dc8520c1)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:50 +00:00
Scott Rifenbark
85408dfd36 documentation/poky-ref-manual/ref-bitbake.xml: Updated BitBake Running a Task
I added more information about how BitBake actually runs a task.
The information has to do with how tightly BB controls the execution
environment of the build tasks to prevent contamination from the
build machine from leaking into the task execution environment.
This tight control actually causes some unexpected behavior during
builds.  For example, when a user exports and BB_ENV_EXTRAWHITE
an environment item such as CCACHE_DIR, the effects of the environment
item never make it to the BB task execution environment.  They only
make it to the data store.  The user actually has to take some extra
steps to export that environment item into the task execution environment.
The added information I put into the "Running a Task" section describes
these extra steps.

Fixes [YOCTO #689]
Reported-by: Wolfgang Denk <wd@denx.de>
(From yocto-docs rev: f75a9d384c0d5ccaefe7ac2195917531b153cf5e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:50 +00:00
Scott Rifenbark
43fb63af31 documenation/poky-ref-manual/technical-details.xml: Shared State
I updated the tips and tricks section to include two sub-sections.
The first if the debugging stuff from Richard's email.  The
second section is how to invalidate a section of the sstate
cache on a per-class basis.

Fixes [YOCTO #1500]

(From yocto-docs rev: e2cc31c112fc55c3f793f3c416311a1d317ceb37)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:49 +00:00
Scott Rifenbark
8add7fccde documentation/poky-ref-manual/technical-details.xml: more on YOCTO #1500
More work on this bug for sstate.  This commit represents the third
pass through the new chapter four (Technical Details) that is
dedicated to YP components and sstate at the moment.  The material
is unreviewed by Richard as of yet.

(From yocto-docs rev: ecaba811d3125e2ed1fc09df718d51e3eb30147f)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:49 +00:00
Scott Rifenbark
01f5e6778c documenation/poky-ref-manual/technical-details.xml: Some general edits.
(From yocto-docs rev: c1684acf9249a6ace631a98f25aa256a542cee62)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:49 +00:00
Scott Rifenbark
1ff81200ac documentation/poky-ref-manual/extendpoky.xml: Fixed typo
Changed "versions" to "Versions" in the title.

(From yocto-docs rev: ce327ae04216e63315bcc735ba9b410582fe74b5)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:49 +00:00
Scott Rifenbark
d2f1ca8cba documentation/poky-ref-manual/extendpoky.xml: intro changed and order changed
Beefed up the introductory paragraph and I re-ordered the "Making and
Maintaining Changes" section towards the end of the chapter.

(From yocto-docs rev: a58c0e73d720ffb7a4931fbc196ea3831992b514)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:49 +00:00
Scott Rifenbark
caab52f6cc documentation/poky-ref-manual/usingpoky.xml: updated intro paragraph
Beefed up the introductory paragraph a bit.

(From yocto-docs rev: 99e0b95d4827dcc309ab0f212801fc86758a297d)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:48 +00:00
Scott Rifenbark
b4eb195b34 documentation/poky-ref-manual/introduction.xml: Added reference
Added a reference to the YP development manual in the introductory
paragraph.

(From yocto-docs rev: 977eb862e27e0f2165a2d38cdaff06271726e9fc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:48 +00:00
Scott Rifenbark
3dbabb693d documentation/poky-ref-manual/introduction.xml: added new chapter
The list that describes the organization of the book needed the
"Technical Details" chapter added.

(From yocto-docs rev: bdaeb303e92f145fa6499e95ee88c629dd1c6486)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:48 +00:00
Scott Rifenbark
5dd34a717e documentation/poky-ref-manual: New chapter introduced
Long-term strategy for the YP Reference Manual is that it contains
reference material and not "how-to-information".  A step in this
direction is to isolate any discussions on components and other
areas of YP that need talked about.  So to start with, I have created
a new chapter for now named "Technical Details" that so far has
a discussion of some components and shared state.  This is a
step in the direction of making this manual a reference manual and
not a "how to" manual.

Changes included removing redundant material from the 'usingpoky.xml'
chapter and also adding the new chapter 'technical-details' into the
'poky-ref-manual.xml' file used for the make.

(From yocto-docs rev: a01477f787768230bc25da2d094326922be23dd4)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:48 +00:00
Scott Rifenbark
e7cfb3b469 documentation/poky-ref-manual/usingpoky.xml: Removed comments
Removed some comments that were buried in the file that were
notes for working on the sstate section.

(From yocto-docs rev: bd03315031bbb1b682dcd2253f85fc184822a28e)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:47 +00:00
Scott Rifenbark
c2494d3014 documentation/poky-ref-manual/usingpoky.xml: partial for YOCTO #1500
First draft of a re-write to the "Running a Build" section to try
and satisfy YOCTO #1500.  I segmented the section into three areas
rather than a single area.  This allowed me to create a sub-section
for the sstate stuff where it could be addressed on its own.  I sent
the draft out to Richard and Mark H. and got feedback from RP that
is going to cause further changes.  Thus, I am committing this partial
change.

(From yocto-docs rev: f040ed6979e988968863016103aa3ad4e7365159)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:05:47 +00:00
Scott Rifenbark
9d87cd9952 documentation/poky-ref-manual/introduction.xml: Fixed broken link
Robert identified this broken link to the stable Yocto Releases.

As Reported by: Robert P. J. Day
(From yocto-docs rev: acbcfe054ce345156346b3963b41e73f20b679cc)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:01:23 +00:00
Scott Rifenbark
1851a96b47 documentation/yocto-project-qs/yocto-project-qs.xml: Updated packages section
Split the instructions for getting the packages needed for Yocto
into sections that specifically support Ubuntu, Fedora, and openSUSE.
Also, added a couple packages to openSUSE.  I did not implement a
suggested change to include a note indicating future support of
the dash shell since it probably is not good policy to document plans
as they change.

Reported-by: Darren Hart
(From yocto-docs rev: 215af24bd6f697e4a3650f4669e12c6e191e2dab)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 16:00:05 +00:00
Scott Rifenbark
efd2d7ee05 documentation/yocto-project-qs/yocto-project-qs.xml: Fixed broken link
Deleted the "www" from the URL to get the edison tarball.  This fixed
the link.

Reported-by: William Mills
(From yocto-docs rev: aa19ff9bfb465b6a6623cda1c7a080a0c3924995)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 15:59:07 +00:00
Scott Rifenbark
b16bc3d277 documentation/poky-ref-manual/ref-classes.xml: insane.bbclass updated
Added explanation about this class being configurable for
generating warnings or errors through use of the WARN_QA and
ERROR_QA variables.  Also provided a list of tests that can
be tested for.

Fixes [YOCTO #1773]

Reported-by: Mark Hatle <mark.hatle@windriver.com>
(From yocto-docs rev: 2b15aa9076ec120d078bfcd570001a49e81df038)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2012-01-30 15:56:51 +00:00
Scott Rifenbark
adcf8bf7b5 documentation/adt-manual/adt-prepare.xml: Fixed bad URL for edison tarball
The URL for the edision tarball was old and had been locked down in
the manual too early.  It changed and now this fixes it.

(From yocto-docs rev: 8790b84e3a2d04e557f048e30085813a1e8fb003)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-25 15:26:48 +00:00
Scott Rifenbark
fda17235fd documentation/dev-manual/dev-manual-newbie.xml: Updates to Bugzilla use
I updated the Bug Tracking section to include rudimentary use of
Bugzilla for entering a new bug.

Fixes [YOCTO #237]

(From yocto-docs rev: 425965d7562f990c1f46901220caf4d79313336a)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-25 15:26:37 +00:00
Scott Rifenbark
c5bdef5617 documentation/adt-manual/adt-prepare.xml: Fixed broken link
Michael Tomer from Koko Fitclub reported that the link to the
ADT Installer tarball was broken.  Fixed the link.

As Reported by: Michael Tomer <michael.tomer@kokofitclub.com>
(From yocto-docs rev: 0a78be08b9fd2223737c50f3d0d83d14f3099834)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-08 21:49:45 +00:00
Scott Rifenbark
77640e96dd documentation/yocto-project-qs/yocto-project-qs.xml: Robert P. J. Day Review
As Reported By:  Robert P. J. Day.

Community member Robert P. J. Day scrubbed the Quick Start manual for Release
1.1.  He found several areas that were incorrect.  Many items were documented
pre-release and changed during the actual realeas.  Naming conventions for
images and such had to be changed.  Robert also found and suggested several
wording changes that resulted in clearer text.

I was not able to patch all the changes using the 'patch' command.  I need to
work out some process issues still in order to apply patches directly to the
yocto-docs repository.  Meanwhile, I hand-inserted the changes.  Also, some
text changes were modified slightly by me to conform to the books style, etc.

Kudos to Robert for such a detailed look at the YP Quick Start.

(From yocto-docs rev: 50145cde42b6203412dbba227cde300d5b10111b)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-11-08 21:49:29 +00:00
Scott Rifenbark
98d9b82759 documentation/yocto-project-qs/yocto-project-qs.xml: dyslexic statement fixed.
I somehow had that having a host with multiple cores and threads could
be used to increase the build time.  It obviously should have been
"decrease".  Kudos to Bill Fishburn for finding this goof.

(From yocto-docs rev: 8ca44aab26d4a48745dbd0cbaffa0fe9b28d7063)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-31 22:38:17 +00:00
Scott Rifenbark
1aac5c310f documentation/yocto-project-qs/yocto-project-qs.xml: fix tarball URL
Community member Robert P.J. Day pointed out that the URL used to
reference the Edison tarball in the manual was incorrect.  It was
pointing to the old Poky area and not the Yocto-1.1 area.  I have
updated the example 'wget' command with the correct URL.

(From yocto-docs rev: 402500c03a625dd7e2561775926e3a983daa0ab6)

Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-10-31 22:38:09 +00:00
348 changed files with 5685 additions and 2481 deletions

8
.gitignore vendored
View File

@@ -9,11 +9,9 @@ build*/pyshtables.py
pstage/
scripts/oe-git-proxy-socks
sources/
meta-darwin
meta-maemo
meta-extras
meta-m2
meta-prvt*
meta-*
!meta-skeleton
!meta-demoapps
*.swp
*.orig
*.rej

View File

@@ -68,12 +68,12 @@ Intel Atom based PCs and devices (atom-pc)
The atom-pc MACHINE is tested on the following platforms:
o Asus eee901
o Asus EeePC 901
o Acer Aspire One
o Toshiba NB305
o Intel Embedded Development Board 1-N450 (Black Sand)
and is likely to work on many unlisted atom based devices. The MACHINE type
and is likely to work on many unlisted Atom based devices. The MACHINE type
supports ethernet, wifi, sound, and i915 graphics by default in addition to
common PC input devices, busses, and so on.
@@ -83,26 +83,18 @@ straightforward with a caveat for USB devices. The following examples assume the
target boot device is /dev/sdb, be sure to verify this and use the correct
device as the following commands are run as root and are not reversable.
Hard Disk:
1. Build a directdisk image format. This will generate proper partition tables
that will in turn be written to the physical media. For example:
$ bitbake core-image-minimal-directdisk
2. Use the "dd" utility to write the image to the raw block device. For example:
# dd if=core-image-minimal-directdisk-atom-pc.hdddirect of=/dev/sdb
USB Device:
1. Build an hddimg image format. This is a simple filesystem without partition
tables and is suitable for USB keys. For example:
1. Build a live image. This image type consists of a simple filesystem
without a partition table, which is suitable for USB keys, and with the
default setup for the atom-pc machine, this image type is built
automatically for any image you build. For example:
$ bitbake core-image-minimal-live
$ bitbake core-image-minimal
2. Use the "dd" utility to write the image to the raw block device. For
example:
# dd if=core-image-minimal-live-atom-pc.hddimg of=/dev/sdb
# dd if=core-image-minimal-atom-pc.hddimg of=/dev/sdb
If the device fails to boot with "Boot error" displayed, it is likely the BIOS
cannot understand the physical layout of the disk (or rather it expects a
@@ -126,7 +118,7 @@ USB Device:
b. Copy the contents of the poky image to the USB-ZIP mode device:
# mount -o loop core-image-minimal-live-atom-pc.hddimg /tmp/image
# mount -o loop core-image-minimal-atom-pc.hddimg /tmp/image
# mount /dev/sdb4 /tmp/usbkey
# cp -rf /tmp/image/* /tmp/usbkey
@@ -150,7 +142,7 @@ faster CPU, more RAM, an ethernet port, more USB ports, microSD, and removes
the NAND flash. The beagleboard MACHINE is tested on the following platforms:
o Beagleboard C4
o Beagleboard xM Rev A
o Beagleboard xM rev A & B
The Beagleboard C4 has NAND, while the xM does not. For the sake of simplicity,
these instructions assume you have erased the NAND on the C4 so its boot

View File

@@ -4,6 +4,10 @@ import os
import sys
import warnings
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(sys.argv[0])), 'lib'))
from bb import fetch2
import logging
logger = logging.getLogger("BitBake")
try:
import cPickle as pickle
@@ -16,13 +20,20 @@ class BBConfiguration(object):
Manages build options and configurations for one run
"""
def __init__(self, debug, debug_domains):
setattr(self, "data", {})
setattr(self, "file", [])
setattr(self, "cmd", None)
setattr(self, "dump_signatures", True)
setattr(self, "debug", debug)
setattr(self, "debug_domains", debug_domains)
def __init__(self, **options):
self.data = {}
self.file = []
self.cmd = None
self.dump_signatures = True
self.prefile = []
self.postfile = []
self.parse_only = True
def __getattr__(self, attribute):
try:
return super(BBConfiguration, self).__getattribute__(attribute)
except AttributeError:
return None
_warnings_showwarning = warnings.showwarning
def _showwarning(message, category, filename, lineno, file=None, line=None):
@@ -39,82 +50,70 @@ warnings.showwarning = _showwarning
warnings.simplefilter("ignore", DeprecationWarning)
import bb.event
# Need to map our I/O correctly. stdout is a pipe to the server expecting
# events. We save this and then map stdout to stderr.
eventfd = os.dup(sys.stdout.fileno())
bb.event.worker_pipe = os.fdopen(eventfd, 'w', 0)
# map stdout to stderr
os.dup2(sys.stderr.fileno(), sys.stdout.fileno())
# Replace those fds with our own
#logout = data.expand("${TMPDIR}/log/stdout.%s" % os.getpid(), self.cfgData, True)
#mkdirhier(os.path.dirname(logout))
#newso = open("/tmp/stdout.%s" % os.getpid(), 'w')
#os.dup2(newso.fileno(), sys.stdout.fileno())
#os.dup2(newso.fileno(), sys.stderr.fileno())
# Don't read from stdin from the parent
si = file("/dev/null", 'r')
os.dup2(si.fileno( ), sys.stdin.fileno( ))
# We don't want to see signals to our parent, e.g. Ctrl+C
os.setpgrp()
# Save out the PID so that the event can include it the
# events
bb.event.worker_pid = os.getpid()
bb.event.useStdout = False
hashfile = sys.argv[1]
buildfile = sys.argv[2]
taskname = sys.argv[3]
import bb.cooker
p = pickle.Unpickler(file(hashfile, "rb"))
hashdata = p.load()
buildfile = sys.argv[1]
taskname = sys.argv[2]
if len(sys.argv) >= 4:
dryrun = sys.argv[3]
else:
dryrun = False
if len(sys.argv) >= 5:
hashfile = sys.argv[4]
p = pickle.Unpickler(file(hashfile, "rb"))
hashdata = p.load()
else:
hashdata = None
debug = hashdata["msg-debug"]
debug_domains = hashdata["msg-debug-domains"]
verbose = hashdata["verbose"]
handler = bb.event.LogHandler()
logger.addHandler(handler)
bb.utils.init_logger(bb.msg, verbose, debug, debug_domains)
#An example to make debug log messages show up
#bb.msg.init_msgconfig(True, 3, [])
cooker = bb.cooker.BBCooker(BBConfiguration(debug, debug_domains), None)
cooker.parseConfiguration()
console = logging.StreamHandler(sys.stdout)
format = bb.msg.BBLogFormatter("%(levelname)s: %(message)s")
bb.msg.addDefaultlogFilter(console)
console.setFormatter(format)
cooker.bb_cache = bb.cache.init(cooker)
cooker.status = bb.cache.CacheData()
def worker_fire(event, d):
if isinstance(event, logging.LogRecord):
console.handle(event)
bb.event.worker_fire = worker_fire
bb.event.worker_pid = os.getpid()
(fn, cls) = cooker.bb_cache.virtualfn2realfn(buildfile)
initialenv = os.environ.copy()
config = BBConfiguration()
def register_idle_function(self, function, data):
pass
cooker = bb.cooker.BBCooker(config, register_idle_function, initialenv)
config_data = cooker.configuration.data
cooker.status = config_data
cooker.handleCollections(bb.data.getVar("BBFILE_COLLECTIONS", config_data, 1))
fn, cls = bb.cache.Cache.virtualfn2realfn(buildfile)
buildfile = cooker.matchFile(fn)
fn = cooker.bb_cache.realfn2virtual(buildfile, cls)
fn = bb.cache.Cache.realfn2virtual(buildfile, cls)
cooker.buildSetVars()
# Load data into the cache for fn and parse the loaded cache data
the_data = cooker.bb_cache.loadDataFull(fn, cooker.get_file_appends(fn), cooker.configuration.data)
cooker.bb_cache.setData(fn, buildfile, the_data)
cooker.bb_cache.handle_data(fn, cooker.status)
#exportlist = bb.utils.preserved_envvars_export_list()
#bb.utils.filter_environment(exportlist)
the_data = bb.cache.Cache.loadDataFull(fn, cooker.get_file_appends(fn), cooker.configuration.data)
if taskname.endswith("_setscene"):
the_data.setVarFlag(taskname, "quieterrors", "1")
bb.parse.siggen.set_taskdata(hashdata["hashes"], hashdata["deps"])
for h in hashdata["hashes"]:
bb.data.setVar("BBHASH_%s" % h, hashdata["hashes"][h], the_data)
for h in hashdata["deps"]:
bb.data.setVar("BBHASHDEPS_%s" % h, hashdata["deps"][h], the_data)
if hashdata:
bb.parse.siggen.set_taskdata(hashdata["hashes"], hashdata["deps"])
for h in hashdata["hashes"]:
bb.data.setVar("BBHASH_%s" % h, hashdata["hashes"][h], the_data)
for h in hashdata["deps"]:
bb.data.setVar("BBHASHDEPS_%s" % h, hashdata["deps"][h], the_data)
ret = 0
if sys.argv[4] != "True":
if dryrun != "True":
ret = bb.build.exec_task(fn, taskname, the_data)
sys.exit(ret)

View File

@@ -149,8 +149,7 @@ def exec_func(func, d, dirs = None):
adir = dirs[-1]
else:
adir = data.getVar('B', d, 1)
if not os.path.exists(adir):
adir = None
bb.utils.mkdirhier(adir)
ispython = flags.get('python')
if flags.get('fakeroot') and not flags.get('task'):

View File

@@ -150,117 +150,79 @@ def parser_cache_savemerge(d):
bb.utils.unlockfile(glf)
Logger = logging.getLoggerClass()
class BufferedLogger(Logger):
def __init__(self, name, level=0, target=None):
Logger.__init__(self, name)
self.setLevel(level)
self.buffer = []
self.target = target
def handle(self, record):
self.buffer.append(record)
def flush(self):
for record in self.buffer:
self.target.handle(record)
self.buffer = []
class PythonParser():
class ValueVisitor():
"""Visitor to traverse a python abstract syntax tree and obtain
the variables referenced via bitbake metadata APIs, and the external
functions called.
getvars = ("d.getVar", "bb.data.getVar", "data.getVar")
execfuncs = ("bb.build.exec_func", "bb.build.exec_task")
def warn(self, func, arg):
"""Warn about calls of bitbake APIs which pass a non-literal
argument for the variable name, as we're not able to track such
a reference.
"""
getvars = ("d.getVar", "bb.data.getVar", "data.getVar")
expands = ("d.expand", "bb.data.expand", "data.expand")
execs = ("bb.build.exec_func", "bb.build.exec_task")
try:
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
self.log.debug(2, 'Failed to convert function and argument to source form')
else:
self.log.debug(1, self.unhandled_message % (funcstr, argstr))
@classmethod
def _compare_name(cls, strparts, node):
"""Given a sequence of strings representing a python name,
where the last component is the actual Name and the prior
elements are Attribute nodes, determine if the supplied node
matches.
"""
def visit_Call(self, node):
name = self.called_node_name(node.func)
if name in self.getvars:
if isinstance(node.args[0], ast.Str):
self.var_references.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif name in self.execfuncs:
if isinstance(node.args[0], ast.Str):
self.var_execs.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif name and isinstance(node.func, (ast.Name, ast.Attribute)):
self.execs.add(name)
if not strparts:
return True
current, rest = strparts[0], strparts[1:]
def called_node_name(self, node):
"""Given a called node, return its original string form"""
components = []
while node:
if isinstance(node, ast.Attribute):
if current == node.attr:
return cls._compare_name(rest, node.value)
components.append(node.attr)
node = node.value
elif isinstance(node, ast.Name):
if current == node.id:
return True
return False
@classmethod
def compare_name(cls, value, node):
"""Convenience function for the _compare_node method, which
can accept a string (which is split by '.' for you), or an
iterable of strings, in which case it checks to see if any of
them match, similar to isinstance.
"""
if isinstance(value, basestring):
return cls._compare_name(tuple(reversed(value.split("."))),
node)
components.append(node.id)
return '.'.join(reversed(components))
else:
return any(cls.compare_name(item, node) for item in value)
break
def __init__(self, value):
self.var_references = set()
self.var_execs = set()
self.direct_func_calls = set()
self.var_expands = set()
self.value = value
@classmethod
def warn(cls, func, arg):
"""Warn about calls of bitbake APIs which pass a non-literal
argument for the variable name, as we're not able to track such
a reference.
"""
try:
funcstr = codegen.to_source(func)
argstr = codegen.to_source(arg)
except TypeError:
logger.debug(2, 'Failed to convert function and argument to source form')
else:
logger.debug(1, "Warning: in call to '%s', argument '%s' is "
"not a literal", funcstr, argstr)
def visit_Call(self, node):
if self.compare_name(self.getvars, node.func):
if isinstance(node.args[0], ast.Str):
self.var_references.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif self.compare_name(self.expands, node.func):
if isinstance(node.args[0], ast.Str):
self.warn(node.func, node.args[0])
self.var_expands.update(node.args[0].s)
elif isinstance(node.args[0], ast.Call) and \
self.compare_name(self.getvars, node.args[0].func):
pass
else:
self.warn(node.func, node.args[0])
elif self.compare_name(self.execs, node.func):
if isinstance(node.args[0], ast.Str):
self.var_execs.add(node.args[0].s)
else:
self.warn(node.func, node.args[0])
elif isinstance(node.func, ast.Name):
self.direct_func_calls.add(node.func.id)
elif isinstance(node.func, ast.Attribute):
# We must have a qualified name. Therefore we need
# to walk the chain of 'Attribute' nodes to determine
# the qualification.
attr_node = node.func.value
identifier = node.func.attr
while isinstance(attr_node, ast.Attribute):
identifier = attr_node.attr + "." + identifier
attr_node = attr_node.value
if isinstance(attr_node, ast.Name):
identifier = attr_node.id + "." + identifier
self.direct_func_calls.add(identifier)
def __init__(self):
#self.funcdefs = set()
def __init__(self, name, log):
self.var_references = set()
self.var_execs = set()
self.execs = set()
#self.external_cmds = set()
self.references = set()
self.log = BufferedLogger('BitBake.Data.%s' % name, logging.DEBUG, log)
self.unhandled_message = "in call of %s, argument '%s' is not a string literal"
self.unhandled_message = "while parsing %s, %s" % (name, self.unhandled_message)
def parse_python(self, node):
h = hash(str(node))
if h in pythonparsecache:
@@ -271,24 +233,25 @@ class PythonParser():
code = compile(check_indent(str(node)), "<string>", "exec",
ast.PyCF_ONLY_AST)
visitor = self.ValueVisitor(code)
for n in ast.walk(code):
if n.__class__.__name__ == "Call":
visitor.visit_Call(n)
self.visit_Call(n)
self.references.update(visitor.var_references)
self.references.update(visitor.var_execs)
self.execs = visitor.direct_func_calls
self.references.update(self.var_references)
self.references.update(self.var_execs)
pythonparsecache[h] = {}
pythonparsecache[h]["refs"] = self.references
pythonparsecache[h]["execs"] = self.execs
class ShellParser():
def __init__(self):
def __init__(self, name, log):
self.funcdefs = set()
self.allexecs = set()
self.execs = set()
self.log = BufferedLogger('BitBake.Data.%s' % name, logging.DEBUG, log)
self.unhandled_template = "unable to handle non-literal command '%s'"
self.unhandled_template = "while parsing %s, %s" % (name, self.unhandled_template)
def parse_shell(self, value):
"""Parse the supplied shell code in a string, returning the external
@@ -403,8 +366,7 @@ class ShellParser():
cmd = word[1]
if cmd.startswith("$"):
logger.debug(1, "Warning: execution of non-literal "
"command '%s'", cmd)
self.log.debug(1, self.unhandled_template % cmd)
elif cmd == "eval":
command = " ".join(word for _, word in words[1:])
self.parse_shell(command)

View File

@@ -288,7 +288,9 @@ class BBCooker:
self.status = bb.cache.CacheData(self.caches_array)
self.handleCollections( bb.data.getVar("BBFILE_COLLECTIONS", self.configuration.data, 1) )
fn = self.matchFile(buildfile)
fn, cls = bb.cache.Cache.virtualfn2realfn(buildfile)
fn = self.matchFile(fn)
fn = bb.cache.Cache.realfn2virtual(fn, cls)
elif len(pkgs_to_build) == 1:
self.updateCache()

View File

@@ -49,6 +49,7 @@ from bb import data_smart
from bb import codeparser
import bb
logger = data_smart.logger
_dict_type = data_smart.DataSmart
def init():
@@ -258,7 +259,7 @@ def emit_func(func, o=sys.__stdout__, d = init()):
emit_var(key, o, d, False) and o.write('\n')
emit_var(func, o, d, False) and o.write('\n')
newdeps = bb.codeparser.ShellParser().parse_shell(d.getVar(func, True))
newdeps = bb.codeparser.ShellParser(func, logger).parse_shell(d.getVar(func, True))
seen = set()
while newdeps:
deps = newdeps
@@ -267,39 +268,45 @@ def emit_func(func, o=sys.__stdout__, d = init()):
for dep in deps:
if bb.data.getVarFlag(dep, "func", d):
emit_var(dep, o, d, False) and o.write('\n')
newdeps |= bb.codeparser.ShellParser().parse_shell(d.getVar(dep, True))
newdeps |= bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep, True))
newdeps -= seen
def update_data(d):
"""Performs final steps upon the datastore, including application of overrides"""
d.finalize()
def build_dependencies(key, keys, shelldeps, d):
def build_dependencies(key, keys, shelldeps, vardepvals, d):
deps = set()
vardeps = d.getVarFlag(key, "vardeps", True)
try:
if d.getVarFlag(key, "func"):
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"):
parsedvar = d.expandWithRefs(d.getVar(key, False), key)
parser = bb.codeparser.PythonParser()
parsedvar = d.expandWithRefs(value, key)
parser = bb.codeparser.PythonParser(key, logger)
parser.parse_python(parsedvar.value)
deps = deps | parser.references
else:
parsedvar = d.expandWithRefs(d.getVar(key, False), key)
parser = bb.codeparser.ShellParser()
parsedvar = d.expandWithRefs(value, key)
parser = bb.codeparser.ShellParser(key, logger)
parser.parse_shell(parsedvar.value)
deps = deps | shelldeps
if vardeps is None:
parser.log.flush()
deps = deps | parsedvar.references
deps = deps | (keys & parser.execs) | (keys & parsedvar.execs)
else:
parser = d.expandWithRefs(d.getVar(key, False), key)
parser = d.expandWithRefs(value, key)
deps |= parser.references
deps = deps | (keys & parser.execs)
deps |= set((d.getVarFlag(key, "vardeps", True) or "").split())
deps |= set((vardeps or "").split())
deps -= set((d.getVarFlag(key, "vardepsexclude", True) or "").split())
except:
bb.note("Error expanding variable %s" % key)
raise
return deps
return deps, value
#bb.note("Variable %s references %s and calls %s" % (key, str(deps), str(execs)))
#d.setVarFlag(key, "vardeps", deps)
@@ -307,12 +314,14 @@ 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"))
deps = {}
values = {}
tasklist = bb.data.getVar('__BBTASKS', d) or []
for task in tasklist:
deps[task] = build_dependencies(task, keys, shelldeps, d)
deps[task], values[task] = build_dependencies(task, keys, shelldeps, vardepvals, d)
newdeps = deps[task]
seen = set()
while newdeps:
@@ -321,11 +330,11 @@ def generate_dependencies(d):
newdeps = set()
for dep in nextdeps:
if dep not in deps:
deps[dep] = build_dependencies(dep, keys, shelldeps, d)
deps[dep], values[dep] = build_dependencies(dep, keys, shelldeps, vardepvals, d)
newdeps |= deps[dep]
newdeps -= seen
#print "For %s: %s" % (task, str(taskdeps[task]))
return tasklist, deps
return tasklist, deps, values
def inherits_class(klass, d):
val = getVar('__inherit_cache', d) or []

View File

@@ -68,8 +68,14 @@ class VariableParse:
code = match.group()[3:-1]
codeobj = compile(code.strip(), self.varname or "<expansion>", "eval")
parser = bb.codeparser.PythonParser()
parser = bb.codeparser.PythonParser(self.varname, logger)
parser.parse_python(code)
if self.varname:
vardeps = self.d.getVarFlag(self.varname, "vardeps", True)
if vardeps is None:
parser.log.flush()
else:
parser.log.flush()
self.references |= parser.references
self.execs |= parser.execs

View File

@@ -197,6 +197,7 @@ def uri_replace(ud, uri_find, uri_replace, d):
uri_decoded = list(decodeurl(ud.url))
uri_find_decoded = list(decodeurl(uri_find))
uri_replace_decoded = list(decodeurl(uri_replace))
logger.debug(2, "For url %s comparing %s to %s" % (uri_decoded, uri_find_decoded, uri_replace_decoded))
result_decoded = ['', '', '', '', '', {}]
for i in uri_find_decoded:
loc = uri_find_decoded.index(i)
@@ -209,12 +210,18 @@ def uri_replace(ud, uri_find, uri_replace, d):
result_decoded[loc] = re.sub(i, uri_replace_decoded[loc], uri_decoded[loc])
if uri_find_decoded.index(i) == 2:
if ud.mirrortarball:
result_decoded[loc] = os.path.join(os.path.dirname(result_decoded[loc]), os.path.basename(ud.mirrortarball))
if result_decoded[loc].endswith("/"):
result_decoded[loc] = os.path.dirname(result_decoded[loc])
result_decoded[loc] = os.path.join(result_decoded[loc], os.path.basename(ud.mirrortarball))
elif ud.localpath:
result_decoded[loc] = os.path.join(os.path.dirname(result_decoded[loc]), os.path.basename(ud.localpath))
if result_decoded[loc].endswith("/"):
result_decoded[loc] = os.path.dirname(result_decoded[loc])
result_decoded[loc] = os.path.join(result_decoded[loc], os.path.basename(ud.localpath))
else:
return ud.url
return encodeurl(result_decoded)
result = encodeurl(result_decoded)
logger.debug(2, "For url %s returning %s" % (ud.url, result))
return result
methods = []
urldata_cache = {}
@@ -385,7 +392,8 @@ def runfetchcmd(cmd, d, quiet = False, cleanup = []):
exportvars = ['PATH', 'GIT_PROXY_COMMAND', 'GIT_PROXY_HOST',
'GIT_PROXY_PORT', 'GIT_CONFIG', 'http_proxy', 'ftp_proxy',
'https_proxy', 'no_proxy', 'ALL_PROXY', 'all_proxy',
'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME']
'SSH_AUTH_SOCK', 'SSH_AGENT_PID', 'HOME',
'GIT_PROXY_IGNORE', 'SOCKS5_USER', 'SOCKS5_PASSWD']
for var in exportvars:
val = bb.data.getVar(var, d, True)

View File

@@ -190,7 +190,7 @@ class Git(FetchMethod):
logger.debug(1, "No Origin")
runfetchcmd("%s remote add --mirror=fetch origin %s" % (ud.basecmd, repourl), d)
fetch_cmd = "%s fetch --prune %s refs/*:refs/*" % (ud.basecmd, repourl)
fetch_cmd = "%s fetch -f --prune %s refs/*:refs/*" % (ud.basecmd, repourl)
bb.fetch2.check_network_access(d, fetch_cmd, ud.url)
runfetchcmd(fetch_cmd, d)
runfetchcmd("%s prune-packed" % ud.basecmd, d)
@@ -220,7 +220,7 @@ class Git(FetchMethod):
if os.path.exists(destdir):
bb.utils.prunedir(destdir)
runfetchcmd("git clone -s -n %s %s" % (ud.clonedir, destdir), d)
runfetchcmd("git clone -s -n %s/ %s" % (ud.clonedir, destdir), d)
if not ud.nocheckout:
os.chdir(destdir)
if subdir != "":

View File

@@ -50,9 +50,6 @@ class Local(FetchMethod):
path = url.split("://")[1]
path = path.split(";")[0]
newpath = path
dldirfile = os.path.join(data.getVar("DL_DIR", d, True), os.path.basename(path))
if os.path.exists(dldirfile):
return dldirfile
if path[0] != "/":
filespath = data.getVar('FILESPATH', d, True)
if filespath:
@@ -62,6 +59,7 @@ class Local(FetchMethod):
if filesdir:
newpath = os.path.join(filesdir, path)
if not os.path.exists(newpath) and path.find("*") == -1:
dldirfile = os.path.join(data.getVar("DL_DIR", d, True), os.path.basename(path))
return dldirfile
return newpath

View File

@@ -148,7 +148,7 @@ def handle(fn, d, include):
# DONE WITH PARSING... time to evaluate
if ext != ".bbclass":
data.setVar('FILE', fn, d)
data.setVar('FILE', abs_fn, d)
statements.eval(d)

View File

@@ -102,7 +102,7 @@ def handle(fn, data, include):
feeder(lineno, s, fn, statements)
# DONE WITH PARSING... time to evaluate
bb.data.setVar('FILE', fn, data)
bb.data.setVar('FILE', abs_fn, data)
statements.eval(data)
if oldfile:
bb.data.setVar('FILE', oldfile, data)

View File

@@ -1203,8 +1203,14 @@ class RunQueueExecuteTasks(RunQueueExecute):
if task in self.rq.scenequeue_covered:
continue
if len(self.rqdata.runq_revdeps[task]) > 0 and self.rqdata.runq_revdeps[task].issubset(self.rq.scenequeue_covered):
self.rq.scenequeue_covered.add(task)
found = True
ok = True
for revdep in self.rqdata.runq_revdeps[task]:
if self.rqdata.runq_fnid[task] != self.rqdata.runq_fnid[revdep]:
ok = False
break
if ok:
found = True
self.rq.scenequeue_covered.add(task)
# Detect when the real task needs to be run anyway by looking to see
# if any of its dependencies within the same package are scheduled
@@ -1227,9 +1233,6 @@ class RunQueueExecuteTasks(RunQueueExecute):
logger.debug(1, 'Full skip list %s', self.rq.scenequeue_covered)
for task in self.rq.scenequeue_covered:
self.task_skip(task)
event.fire(bb.event.StampUpdate(self.rqdata.target_pairs, self.rqdata.dataCache.stamp), self.cfgData)
schedulers = self.get_schedulers()
@@ -1323,8 +1326,14 @@ class RunQueueExecuteTasks(RunQueueExecute):
task = self.sched.next()
if task is not None:
fn = self.rqdata.taskData.fn_index[self.rqdata.runq_fnid[task]]
taskname = self.rqdata.runq_task[task]
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)
return True
if self.rq.check_stamp_task(task, taskname):
logger.debug(2, "Stamp current task %s (%s)", task,
self.rqdata.get_user_idstring(task))
@@ -1506,8 +1515,9 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
for task in xrange(len(self.sq_revdeps)):
if task not in valid_new and task not in noexec:
realtask = self.rqdata.runq_setscene[task]
logger.debug(2, 'No package found, so skipping setscene task %s',
self.rqdata.get_user_idstring(task))
self.rqdata.get_user_idstring(realtask))
self.task_failoutright(task)
logger.info('Executing SetScene Tasks')
@@ -1580,7 +1590,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
taskname = self.rqdata.runq_task[realtask] + "_setscene"
if self.rq.check_stamp_task(realtask, self.rqdata.runq_task[realtask]):
logger.debug(2, 'Stamp for underlying task %s(%s) is current, so skipping setscene variant',
task, self.rqdata.get_user_idstring(task))
task, self.rqdata.get_user_idstring(realtask))
self.task_failoutright(task)
return True
@@ -1622,7 +1632,7 @@ class RunQueueExecuteScenequeue(RunQueueExecute):
for task in oldcovered:
self.rq.scenequeue_covered.add(self.rqdata.runq_setscene[task])
logger.debug(1, 'We can skip tasks %s', self.rq.scenequeue_covered)
logger.debug(1, 'We can skip tasks %s', sorted(self.rq.scenequeue_covered))
self.rq.state = runQueueRunInit
return True

View File

@@ -72,11 +72,10 @@ class SignatureGeneratorBasic(SignatureGenerator):
def _build_data(self, fn, d):
tasklist, gendeps = bb.data.generate_dependencies(d)
tasklist, gendeps, lookupcache = bb.data.generate_dependencies(d)
taskdeps = {}
basehash = {}
lookupcache = {}
for task in tasklist:
data = d.getVar(task, False)
@@ -101,6 +100,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
alldeps = seen - self.basewhitelist
for dep in sorted(alldeps):
data = data + dep
if dep in lookupcache:
var = lookupcache[dep]
else:
@@ -135,7 +135,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
k = fn + "." + task
data = dataCache.basetaskhash[k]
self.runtaskdeps[k] = []
for dep in sorted(deps):
for dep in sorted(deps, key=clean_basepath):
# We only manipulate the dependencies for packages not in the whitelist
if self.twl and not self.twl.search(dataCache.pkg_fn[fn]):
# then process the actual dependencies
@@ -159,7 +159,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
k = fn + "." + task
if runtime == "customfile":
sigfile = stampbase
elif runtime:
elif runtime and k in self.taskhash:
sigfile = stampbase + "." + task + ".sigdata" + "." + self.taskhash[k]
else:
sigfile = stampbase + "." + task + ".sigbasedata" + "." + self.basehash[k]
@@ -180,7 +180,7 @@ class SignatureGeneratorBasic(SignatureGenerator):
data['gendeps'][dep] = self.gendeps[fn][dep]
data['varvals'][dep] = self.lookupcache[fn][dep]
if runtime:
if runtime and k in self.taskhash:
data['runtaskdeps'] = self.runtaskdeps[k]
data['runtaskhashes'] = {}
for dep in data['runtaskdeps']:
@@ -217,19 +217,32 @@ def dump_this_task(outfile, d):
task = "do_" + d.getVar("BB_CURRENTTASK", True)
bb.parse.siggen.dump_sigtask(fn, task, outfile, "customfile")
def clean_basepath(a):
if a.startswith("virtual:"):
b = a.rsplit(":", 1)[0] + a.rsplit("/", 1)[1]
else:
b = a.rsplit("/", 1)[1]
return b
def clean_basepaths(a):
b = {}
for x in a:
b[clean_basepath(x)] = a[x]
return b
def compare_sigfiles(a, b):
p1 = pickle.Unpickler(file(a, "rb"))
a_data = p1.load()
p2 = pickle.Unpickler(file(b, "rb"))
b_data = p2.load()
def dict_diff(a, b):
def dict_diff(a, b, whitelist=set()):
sa = set(a.keys())
sb = set(b.keys())
common = sa & sb
changed = set()
for i in common:
if a[i] != b[i]:
if a[i] != b[i] and i not in whitelist:
changed.add(i)
added = sa - sb
removed = sb - sa
@@ -237,20 +250,23 @@ def compare_sigfiles(a, b):
if 'basewhitelist' in a_data and a_data['basewhitelist'] != b_data['basewhitelist']:
print "basewhitelist changed from %s to %s" % (a_data['basewhitelist'], b_data['basewhitelist'])
print "changed items: %s" % a_data['basewhitelist'].symmetric_difference(b_data['basewhitelist'])
if 'taskwhitelist' in a_data and a_data['taskwhitelist'] != b_data['taskwhitelist']:
print "taskwhitelist changed from %s to %s" % (a_data['taskwhitelist'], b_data['taskwhitelist'])
print "changed items: %s" % a_data['taskwhitelist'].symmetric_difference(b_data['taskwhitelist'])
if a_data['taskdeps'] != b_data['taskdeps']:
print "Task dependencies changed from %s to %s" % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))
print "Task dependencies changed from:\n%s\nto:\n%s" % (sorted(a_data['taskdeps']), sorted(b_data['taskdeps']))
if a_data['basehash'] != b_data['basehash']:
print "basehash changed from %s to %s" % (a_data['basehash'], b_data['basehash'])
changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'])
changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basewhitelist'] & b_data['basewhitelist'])
if changed:
for dep in changed:
print "List of dependencies for variable %s changed from %s to %s" % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep])
print "changed items: %s" % a_data['gendeps'][dep].symmetric_difference(b_data['gendeps'][dep])
if added:
for dep in added:
print "Dependency on variable %s was added" % (dep)
@@ -265,7 +281,9 @@ def compare_sigfiles(a, b):
print "Variable %s value changed from %s to %s" % (dep, a_data['varvals'][dep], b_data['varvals'][dep])
if 'runtaskhashes' in a_data and 'runtaskhashes' in b_data:
changed, added, removed = dict_diff(a_data['runtaskhashes'], b_data['runtaskhashes'])
a = clean_basepaths(a_data['runtaskhashes'])
b = clean_basepaths(b_data['runtaskhashes'])
changed, added, removed = dict_diff(a, b)
if added:
for dep in added:
print "Dependency on task %s was added" % (dep)
@@ -274,9 +292,10 @@ def compare_sigfiles(a, b):
print "Dependency on task %s was removed" % (dep)
if changed:
for dep in changed:
print "Hash for dependent task %s changed from %s to %s" % (dep, a_data['runtaskhashes'][dep], b_data['runtaskhashes'][dep])
print "Hash for dependent task %s changed from %s to %s" % (dep, a[dep], b[dep])
elif 'runtaskdeps' in a_data and 'runtaskdeps' in b_data and sorted(a_data['runtaskdeps']) != sorted(b_data['runtaskdeps']):
print "Tasks this task depends on changed from %s to %s" % (sorted(a_data['runtaskdeps']), sorted(b_data['runtaskdeps']))
print "changed items: %s" % a_data['runtaskdeps'].symmetric_difference(b_data['runtaskdeps'])
def dump_sigfile(a):
p1 = pickle.Unpickler(file(a, "rb"))

View File

@@ -39,6 +39,7 @@ class HobPrefs(gtk.Dialog):
self.selected_image_types = handler.remove_image_output_type(ot)
self.configurator.setConfVar('IMAGE_FSTYPES', "%s" % " ".join(self.selected_image_types).lstrip(" "))
self.reload_required = True
def sdk_machine_combo_changed_cb(self, combo, handler):
sdk_mach = combo.get_active_text()

View File

@@ -179,6 +179,10 @@ class RunningBuild (gobject.GObject):
# that we need to attach to a task.
self.tasks_to_iter[(package, task)] = i
# If we don't handle these the GUI does not proceed
elif isinstance(event, bb.build.TaskInvalid):
return
elif isinstance(event, bb.build.TaskBase):
current = self.tasks_to_iter[(package, task)]
parent = self.tasks_to_iter[(package, None)]

View File

@@ -400,9 +400,9 @@ class MainWindow (gtk.Window):
if response == gtk.RESPONSE_OK:
rep.loadRecipe(recipe)
self.save_path = recipe
self.model.load_image_rep(rep)
self.dirty = False
chooser.destroy()
self.model.load_image_rep(rep)
self.dirty = False
def bake_clicked_cb(self, button):
build_image = True

View File

@@ -443,7 +443,7 @@ def lockfile(name, shared=False, retry=True):
return lf
lf.close()
except Exception:
continue
pass
if not retry:
return None
@@ -505,7 +505,6 @@ def preserved_envvars_exported():
'SHELL',
'TERM',
'USER',
'USERNAME',
]
def preserved_envvars_exported_interactive():

View File

@@ -1,48 +1,61 @@
# This is a single Makefile to handle all generated Yocto Project documents.
# The Makefile needs to live in the documents directory and all figures used
# in any manuals must be PNG files and live in the individual book's figures
# directory.
# in any manuals must be .PNG files and live in the individual book's figures
# directory. Note that the figures for the Yocto Project Development Manual
# differ between the 'master' and 'edison' branches.
#
# The Makefile has these targets:
#
# pdf: generates a PDF version of a manual. Not valid for the Quick Start
# html: generates an HTML version of a manual.
# tarball: creates a tarball for the doc files.
# pdf: generates a PDF version of a manual. Not valid for the Quick Start
# html: generates an HTML version of a manual.
# tarball: creates a tarball for the doc files.
# validate: validates
# publish: pushes generated files to the Yocto Project website
# clean: removes files
# publish: pushes generated files to the Yocto Project website
# clean: removes files
#
# The Makefile generates an HTML and PDF version of every document except the
# Yocto Project Quick Start. The Quick Start is in HTML form only. The variable
# The command-line argument DOC represents the folder name in which a particular
# document is stored. The command-line argument VER represents the distro
# version of the Yocto Release for which the manuals are being generated.
# DOC is used to indicate the folder name for a given manual. The variable
# VER represents the distro version of the Yocto Release for which the manuals
# are being generated. The variable BRANCH is used to indicate the 'edison'
# branch and is used only when DOC=dev-manual (making the YP Development
# Manual).
#
# To build the HTML and PDF versions of the manual you must invoke the Makefile
# with the DOC argument. If you are going to publish the manual then you
# you must invoke the Makefile with both the DOC and the VER argument.
# If you are building the 'edison' version of the YP DEvelopment Manual then
# you must use the DOC and BRANCH arguments.
#
# Examples:
#
# make DOC=bsp-guide
# make DOC=yocto-project-qs
# make pdf DOC=poky-ref-manual
# make DOC=dev-manual BRANCH=edison
#
# The first example generates the HTML and PDF versions of the BSP Guide.
# The second example generates the HTML version only of the Quick Start. Note that
# the Quick Start only has an HTML version available. The third example generates
# both the PDF and HTML versions of the Yocto Project Reference Manual.
# both the PDF and HTML versions of the Yocto Project Reference Manual. The
# last example generates both the PDF and HTML 'edison' versions of the YP
# Development Manual.
#
# Use the publish target to push the generated manuals to the Yocto Project
# website. All files needed for the manual's HTML form are pushed as well as the
# PDF version (if applicable).
# Examples:
#
# make publish DOC=bsp-guide VER=1.1
# make publish DOC=adt-manual VER=1.1
# make publish DOC=bsp-guide VER=1.2
# make publish DOC=adt-manual VER=1.2
# make publish DOC=dev-manual VER=1.1.1 BRANCH=edison
# make publish DOC=dev-manual VER=1.2
#
# The first example publishes the 1.1 version of both the PDF and HTML versions of
# the BSP Guide. The second example publishes the 1.1 version of both the PDF and
# HTML versions of the ADT Manual.
# The first example publishes the 1.2 version of both the PDF and HTML versions of
# the BSP Guide. The second example publishes the 1.2 version of both the PDF and
# HTML versions of the ADT Manual. The third example publishes the PDF and HTML
# 'edison' versions of the YP Development Manual. Finally, the last example publishes
# the PDF and HTML 'master' versions of the YP Development Manual.
#
ifeq ($(DOC),bsp-guide)
@@ -66,11 +79,32 @@ XSLTOPTS = --stringparam html.stylesheet style.css \
--stringparam section.label.includes.component.label 1 \
--xinclude
ALLPREQ = html pdf tarball
TARFILES = style.css dev-manual.html dev-manual.pdf figures/bsp-dev-flow.png figures/dev-title.png \
#
# Note that the tarfile might produce the "Cannot stat: No such file or directory" error
# message for .PNG files that are not present when building a particular branch. The
# list of files is all-inclusive for all branches.
#
ifeq ($(BRANCH),edison)
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos.png figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3.png figures/source-repos.png figures/yp-download.png \
figures/kernel-example-repos-edison.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3-edison.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
else
TARFILES = style.css dev-manual.html dev-manual.pdf \
figures/app-dev-flow.png figures/bsp-dev-flow.png figures/dev-title.png \
figures/git-workflow.png figures/index-downloads.png figures/kernel-dev-flow.png \
figures/kernel-example-repos.png \
figures/kernel-overview-1.png figures/kernel-overview-2.png \
figures/kernel-overview-3.png \
figures/source-repos.png figures/yp-download.png \
figures/wip.png
endif
MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf
FIGURES = figures
STYLESHEET = $(DOC)/*.css

View File

@@ -12,9 +12,9 @@
Toolchain Tarball)</link>".
And, that sourcing your architecture-specific environment setup script
initializes a suitable cross-toolchain development environment.
This setup occurs by adding the compiler, QEMU scripts, QEMU binary,
During the setup, locations for the compiler, QEMU scripts, QEMU binary,
a special version of <filename>pkgconfig</filename> and other useful
utilities to the <filename>PATH</filename> variable.
utilities are added to the <filename>PATH</filename> variable.
Variables to assist <filename>pkgconfig</filename> and <filename>autotools</filename>
are also defined so that,
for example, <filename>configure.sh</filename> can find pre-generated

View File

@@ -53,10 +53,12 @@
<para>
Once you have downloaded the tarball, extract it into a clean
directory.
For example, the following command unpacks and installs the Eclipse IDE
For example, the following commands unpack and install the Eclipse IDE
tarball found in the <filename>Downloads</filename> area
into a clean directory using the default name <filename>eclipse</filename>:
<literallayout class='monospaced'>
$ tar -xzvf ~/Downloads/Eclipse-SDK-3.7-linux-gtk-x86_64.tar.gz
$ cd ~
$ tar -xzvf ~/Downloads/eclipse-SDK-3.7.1-linux-gtk-x86_64.tar.gz
</literallayout>
</para>
@@ -138,30 +140,36 @@
</section>
<section id='installing-the-eclipse-yocto-plug-in'>
<title>Installing the Eclipse Yocto Plug-in</title>
<title>Installing or Accessing the Eclipse Yocto Plug-in</title>
<para>
You can install the Eclipse Yocto Plug-in one of three methods: as new software
from within the Eclipse IDE, from the Yocto Project source repositories, or as a built zip file.
You can install the Eclipse Yocto Plug-in into the Eclipse application
one of two ways: using the Eclipse IDE and installing the plug-in as new software, or
using a built zip file.
If you don't want to permanently install the plug-in but just want to try it out
within the Eclipse environment, you can import the plug-in project from the
Yocto Project source repositories.
</para>
<section id='new-software'>
<title>New Software</title>
<title>Installing the Plug-in as New Software</title>
<para>
To install the Eclipse Yocto Plug-in directly into the Eclipse IDE,
To install the Eclipse Yocto Plug-in as new software directly into the Eclipse IDE,
follow these steps:
<orderedlist>
<listitem><para>Start up the Eclipse IDE.</para></listitem>
<listitem><para>In Eclipse, select "Install New Software" from the "Help" menu.</para></listitem>
<listitem><para>Click "Add..." in the "Work with:" area.</para></listitem>
<listitem><para>Enter
<filename>http://www.yoctoproject.org/downloads/eclipse-plugin/1.1</filename>
<filename>http://downloads.yoctoproject.org/releases/eclipse-plugin/1.1.1</filename>
in the URL field and provide a meaningful name in the "Name" field.</para></listitem>
<listitem><para>Click "OK" to have the entry added to the "Work with:"
drop-down list.</para></listitem>
<listitem><para>Select the entry for the plug-in from the "Work with:" drop-down
list.</para></listitem>
<listitem><para>Check the box next to <filename>Development tools and SDKs for Yocto Linux</filename>.
</para></listitem>
<listitem><para>Complete the remaining software installation steps and
then restart the Eclipse IDE to finish the installation of the plug-in.
</para></listitem>
@@ -169,46 +177,8 @@
</para>
</section>
<section id='yocto-project-source'>
<title>Yocto Project Source</title>
<para>
To install the Eclipse Yocto Plug-in from the Yocto Project source repositories,
follow these steps:
<orderedlist>
<listitem><para>Open a shell and create a Git repository with:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
</literallayout>
For this example, the repository is named
<filename>~/yocto-eclipse</filename>.</para></listitem>
<listitem><para>In Eclipse, select "Import" from the "File" menu.</para></listitem>
<listitem><para>Expand the "General" box and pick "existing projects into workspace".
</para></listitem>
<listitem><para>Select the root directory and browse to "~/yocto-eclipse/plugins".
</para></listitem>
<listitem><para>There will be three things there.
Select each one and install one at a time.
Do all three.</para></listitem>
<listitem><para>Restart everything.</para></listitem>
</orderedlist>
</para>
<para>
At this point you should be able to invoke Eclipse from the shell using the following:
<literallayout class='monospaced'>
$ cd ~/eclipse
$ ./eclipse -vmargs -XX:PermSize=256M
</literallayout>
The left navigation pane shows the default projects.
Right-click on one of these projects and run it as an Eclipse application.
This brings up a second instance of Eclipse IDE that has the Yocto Plug-in.
</para>
</section>
<section id='zip-file-method'>
<title>Zip File Method</title>
<title>Installing the Plug-in from a Zip File</title>
<para>
To install the Eclipse Yocto Plug-in by building and installing a plug-in
zip file, follow these steps:
@@ -234,9 +204,9 @@
name of the Git branch along with the Yocto Project release you are
using.
Here is an example that uses the <filename>master</filename> Git repository
and the <filename>1.1M4</filename> release:
and the <filename>1.1.1</filename> release:
<literallayout class='monospaced'>
$ scripts/build.sh master 1.1M4
$ scripts/build.sh master 1.1.1
</literallayout>
After running the script, the file
<filename>org.yocto.sdk-&lt;release&gt;-&lt;date&gt;-archive.zip</filename>
@@ -247,22 +217,57 @@
</para></listitem>
<listitem><para>Click "Add".</para></listitem>
<listitem><para>Provide anything you want in the "Name" field.</para></listitem>
<listitem><para>For the "Archive" field, select the ZIP file you built in step
4.
<listitem><para>Click "Archive" and browse to the ZIP file you built
in step four.
This ZIP file should not be "unzipped", and must be the
<filename>*archive.zip</filename> file created by running the
<filename>build.sh</filename> script.</para></listitem>
<listitem><para>Select the new entry in the installation window and complete
<listitem><para>Check the box next to the new entry in the installation window and complete
the installation.</para></listitem>
<listitem><para>Restart the Eclipse IDE if necessary.</para></listitem>
</orderedlist>
</para>
<para>
At this point you should be able to configure the Eclipse Yocto Plug-in as described in
the next section.
At this point you should be able to configure the Eclipse Yocto Plug-in as described in the
"<link linkend='configuring-the-eclipse-yocto-plug-in'>Configuring the Eclipse Yocto Plug-in</link>"
section.</para>
</section>
<section id='yocto-project-source'>
<title>Importing the Plug-in Project into the Eclipse Environment</title>
<para>
Importing the Eclipse Yocto Plug-in project from the Yocto Project source repositories
is useful when you want to try out the latest plug-in from the tip of plug-in's
development tree.
It is important to understand when you import the plug-in you are not installing
it into the Eclipse application.
Rather, you are importing the project and just using it.
To import the plug-in project, follow these steps:
<orderedlist>
<listitem><para>Open a shell and create a Git repository with:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/eclipse-poky yocto-eclipse
</literallayout>
For this example, the repository is named
<filename>~/yocto-eclipse</filename>.</para></listitem>
<listitem><para>In Eclipse, select "Import" from the "File" menu.</para></listitem>
<listitem><para>Expand the "General" box and select "existing projects into workspace"
and then click "Next".</para></listitem>
<listitem><para>Select the root directory and browse to "~/yocto-eclipse/plugins".
</para></listitem>
<listitem><para>There will be three things there.
Select each one and install one at a time.
Do all three.</para></listitem>
</orderedlist>
</para>
<para>
The left navigation pane in the Eclipse application shows the default projects.
Right-click on one of these projects and run it as an Eclipse application.
This brings up a second instance of Eclipse IDE that has the Yocto Plug-in.
</para>
</section>
</section>
</section>
<section id='configuring-the-eclipse-yocto-plug-in'>
@@ -317,7 +322,7 @@
</para></listitem>
<listitem><para><emphasis>Point to the Toolchain:</emphasis>
If you are using a stand-alone pre-built toolchain, you should be pointing to the
<filename>/opt/poky/1.1</filename> directory.
<filename>/opt/poky/1.1.1</filename> directory.
This is the location for toolchains installed by the ADT Installer or by hand.
Sections "<link linkend='configuring-and-running-the-adt-installer-script'>Configuring
and Running the ADT Installer Script</link>" and
@@ -349,9 +354,8 @@
The pull-down menu should have the supported architectures.
If the architecture you need is not listed in the menu, you
will need to build the image.
See the "<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink> for more information.</para></listitem>
See the "<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section
of The Yocto Project Quick Start for more information.</para></listitem>
</itemizedlist>
</para>
</section>
@@ -467,7 +471,9 @@
The script also runs <filename>libtoolize</filename>, <filename>aclocal</filename>,
<filename>autoconf</filename>, <filename>autoheader</filename>,
<filename>automake --a</filename>, and
<filename>./configure</filename>.</para></listitem>
<filename>./configure</filename>.
Click on the <filename>Console</filename> tab beneath your source code to
see the results of reconfiguring your project.</para></listitem>
</orderedlist>
</para>
</section>
@@ -490,7 +496,7 @@
<listitem><para>Expose the <filename>Run -&gt; External Tools</filename> menu.
Your image should appear as a selectable menu item.
</para></listitem>
<listitem><para>Select your image in the navigation pane to launch the
<listitem><para>Select your image from the menu to launch the
emulator in a new window.</para></listitem>
<listitem><para>If needed, enter your host root password in the shell window at the prompt.
This sets up a <filename>Tap 0</filename> connection needed for running in user-space
@@ -509,8 +515,8 @@
<title>Deploying and Debugging the Application</title>
<para>
Once the QEMU emulator is running the image, you can deploy your application and use the emulator
to perform debugging.
Once the QEMU emulator is running the image, using the Eclipse IDE
you can deploy your application and use the emulator to perform debugging.
Follow these steps to deploy the application.
<orderedlist>
<listitem><para>Select <filename>Run -&gt; Debug Configurations...</filename></para></listitem>
@@ -550,7 +556,7 @@
your development experience.
These tools are aids in developing and debugging applications and images.
You can run these user-space tools from within the Eclipse IDE through the
<filename>Window -&gt; YoctoTools</filename> menu.
<filename>YoctoTools</filename> menu.
</para>
<para>

View File

@@ -114,7 +114,7 @@
<listitem><para><emphasis>Perf:</emphasis> Performance counters for Linux used
to keep track of certain types of hardware and software events.
For more information on these types of counters see
<ulink url='https://perf.wiki.kernel.org/index.php'></ulink> and click
<ulink url='https://perf.wiki.kernel.org/'></ulink> and click
on “Perf tools.”</para></listitem>
<listitem><para><emphasis>SystemTap:</emphasis> A free software infrastructure
that simplifies information gathering about a running Linux system.

View File

@@ -43,10 +43,15 @@
<date>6 October 2011</date>
<revremark>Released with the Yocto Project 1.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>15 March 2012</date>
<revremark>Released with the Yocto Project 1.1.1 Release.</revremark>
</revision>
</revhistory>
<copyright>
<year>2010-2011</year>
<year>2010-2012</year>
<holder>Linux Foundation</holder>
</copyright>
@@ -58,7 +63,7 @@
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>
Application Developer's Toolkit (ADT) User's Guide</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.

View File

@@ -54,9 +54,7 @@
<note>
For build performance information related to the PMS, see
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>
in <ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink> in The Yocto Project Reference Manual.
</note>
<para>

View File

@@ -55,8 +55,10 @@
<para>
The ADT Installer is contained in the ADT Installer tarball.
You can download the tarball into any directory from
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/adt-installer/'></ulink>.
You can download the tarball into any directory from the
<ulink url='http://downloads.yoctoproject.org/releases'>Index of Releases</ulink>, specifically
at
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/adt_installer'></ulink>.
Or, you can use BitBake to generate the tarball inside the existing Yocto Project
build tree.
</para>
@@ -79,9 +81,9 @@
$ cd ~
$ mkdir yocto-project
$ cd yocto-project
$ wget http://www.yoctoproject.org/downloads/poky/poky-edison-6.0.tar.bz2
$ tar xjf poky-edison-6.0.tar.bz2
$ source poky-edison-6.0/oe-init-build-env
$ wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/poky-edison-6.0.1.tar.bz2
$ tar xjf poky-edison-6.0.1.tar.bz2
$ source poky-edison-6.0.1/oe-init-build-env
$ bitbake adt-installer
</literallayout>
</para>
@@ -93,6 +95,14 @@
<para>
Before running the ADT Installer script, you need to unpack the tarball.
You can unpack the tarball in any directory you wish.
For example, this command copies the ADT Installer tarball from where
it was built into the home directory and then unpacks the tarball into
a top-level directory named <filename>adt-installer</filename>:
<literallayout class='monospaced'>
$ cd ~
$ cp ~/yocto-project/build/tmp/deploy/sdk/adt_installer.tar.bz2 $HOME
$ tar -xjf adt_installer.tar.bz2
</literallayout>
Unpacking it creates the directory <filename>adt-installer</filename>,
which contains the ADT Installer script (<filename>adt_installer</filename>)
and its configuration file (<filename>adt_installer.conf</filename>).
@@ -155,18 +165,19 @@
<para>
After you have configured the <filename>adt_installer.conf</filename> file,
run the installer using the following command:
run the installer for this example using the following commands:
<literallayout class='monospaced'>
$ adt_installer
$ cd ~/adt-installer
$ ./adt_installer
</literallayout>
</para>
<note>
The ADT Installer requires the <filename>libtool</filename> package to complete.
If you install the recommended packages as described in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>Packages</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#packages'>Packages</ulink>"
section of
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink>, then you will have libtool installed.
</note>
@@ -181,7 +192,7 @@
<para>
Once the installation completes, the ADT, which includes the cross-toolchain, is installed.
You will notice environment setup files for the cross-toolchain in
<filename>/opt/poky/1.1</filename>,
<filename>/opt/poky/1.1.1</filename>,
and image tarballs in the <filename>adt-installer</filename>
directory according to your installer configurations, and the target sysroot located
according to the <filename>YOCTOADT_TARGET_SYSROOT_LOC_&lt;arch&gt;</filename> variable
@@ -204,9 +215,9 @@
Follow these steps:
<orderedlist>
<listitem><para>Go to
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/toolchain'></ulink>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/toolchain'></ulink>
and find the folder that matches your host development system
(i.e. <filename>i586</filename> for 32-bit machines or
(i.e. <filename>i686</filename> for 32-bit machines or
<filename>x86_64</filename> for 64-bit machines).</para></listitem>
<listitem><para>Go into that folder and download the toolchain tarball whose name
includes the appropriate target architecture.
@@ -214,7 +225,7 @@
you are going to use your cross-toolchain for an Intel-based 32-bit target, go into the
<filename>x86_64</filename> folder and download the following tarball:
<literallayout class='monospaced'>
yocto-eglibc-x86_64-i586-toolchain-1.1.tar.bz2
poky-eglibc-x86_64-i586-toolchain-1.1.1.tar.bz2
</literallayout>
<note><para>As an alternative to steps one and two, you can build the toolchain tarball
if you have a Yocto Project build tree.
@@ -231,9 +242,15 @@
</para></note></para></listitem>
<listitem><para>Make sure you are in the root directory with root privileges and then expand
the tarball.
The tarball expands into <filename>/opt/poky/1.1</filename>.
The tarball expands into <filename>/opt/poky/1.1.1</filename>.
Once the tarball is expanded, the cross-toolchain is installed.
You will notice environment setup files for the cross-toolchain in the directory.
Here is an example where the tarball exists in the user's <filename>Downloads</filename>
directory:
<literallayout class='monospaced'>
# cd /
# tar -xjf /home/scottrif/Downloads/poky-eglibc-x86_64-i586-toolchain-gmae-1.1.tar.bz2
</literallayout>
</para></listitem>
</orderedlist>
</para>
@@ -270,7 +287,7 @@
command.</note></para></listitem>
<listitem><para>Run <filename>bitbake meta-ide-support</filename> to complete the
cross-toolchain installation.
<note>If change out of your working directory after you
<note>If you change out of your working directory after you
<filename>source</filename> the environment setup script and before you run
the <filename>bitbake</filename> command, the command might not work.
Be sure to run the <filename>bitbake</filename> command immediately
@@ -294,21 +311,21 @@
Before you can develop using the cross-toolchain, you need to set up the
cross-development environment by sourcing the toolchain's environment setup script.
If you used the ADT Installer or used an existing ADT tarball to install the ADT,
then you can find this script in the <filename>/opt/poky/1.1</filename>
then you can find this script in the <filename>/opt/poky/1.1.1</filename>
directory.
If you installed the toolchain in the build tree, you can find the environment setup
script for the toolchain in the Yocto Project build tree's <filename>tmp</filename> directory.
</para>
<para>
Be sure to run the environment setup script that matches the architecture for
Be sure to source the environment setup script that matches the architecture for
which you are developing.
Environment setup scripts begin with the string “<filename>environment-setup</filename>
and include as part of their name the architecture.
For example, the toolchain environment setup script for a 64-bit IA-based architecture would
be the following:
For example, the command to source the toolchain environment setup script
for a 64-bit IA-based machine would be the following:
<literallayout class='monospaced'>
/opt/poky/1.1/environment-setup-x86_64-poky-linux
$ source /opt/poky/1.1.1/environment-setup-x86_64-poky-linux
</literallayout>
</para>
</section>
@@ -330,10 +347,8 @@
To get the kernel and filesystem images, you either have to build them or download
pre-built versions.
You can find examples for both these situations in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#test-run'>A
Quick Test Run</ulink>" section of
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#test-run'>A
Quick Test Run</ulink>" section of The Yocto Project Quick Start.
</para>
<para>
@@ -342,12 +357,10 @@
<filename>mips</filename>, <filename>powerpc</filename>, and <filename>arm</filename>)
that you can use unaltered in the QEMU emulator.
These kernel images reside in the Yocto Project release
area - <ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/machines/'></ulink>
area - <ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/'></ulink>
and are ideal for experimentation within Yocto Project.
For information on the image types you can build using the Yocto Project, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>" appendix in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>" appendix in The Yocto Project Reference Manual.
</para>
<para>
@@ -363,7 +376,7 @@
If you want to use a different image type that contains the <filename>tcf-agent</filename>,
you can do so one of two ways:
<itemizedlist>
<listitem><para>Modify the <filename>conf/local.conf</filename> configuration in
<listitem><para>Modify the <filename>conf/local.conf</filename> configuration file in
the Yocto Project build directory and then rebuild the image.
With this method, you need to modify the <filename>EXTRA_IMAGE_FEATURES</filename>
variable to have the value of "tools-debug" before rebuilding the image.
@@ -419,16 +432,17 @@
To extract the root filesystem, first <filename>source</filename>
the cross-development environment setup script and then
use the <filename>runqemu-extract-sdk</filename> command on the
filesystem image.
For example, the following commands set up the environment and then extract
filesystem image tarball.
For example, the following commands set up the environment by sourcing
the setup script from within the build directory and then extracting
the root filesystem from a previously built filesystem image tarball named
<filename>core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2</filename>.
<filename>core-image-sato-sdk-qemux86.tar.bz2</filename>.
The example extracts the root filesystem into the <filename>$HOME/qemux86-sato</filename>
directory:
<literallayout class='monospaced'>
$ source $HOME/poky/build/tmp/environment-setup-i586-poky-linux
$ runqemu-extract-sdk \
tmp/deploy/images/core-image-sato-sdk-qemux86-2011091411831.rootfs.tar.bz2 \
tmp/deploy/images/core-image-sato-sdk-qemux86.tar.bz2 \
$HOME/qemux86-sato
</literallayout>
In this case, you could now point to the target sysroot at

View File

@@ -55,10 +55,15 @@
<date>6 October 2011</date>
<revremark>Released with the Yocto Project 1.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>15 March 2012</date>
<revremark>Released with the Yocto Project 1.1.1 Release.</revremark>
</revision>
</revhistory>
<copyright>
<year>2010-2011</year>
<year>2010-2012</year>
<holder>Linux Foundation</holder>
</copyright>
@@ -70,7 +75,7 @@
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html'>
Board Support Package (BSP) Developer's Guide</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.

View File

@@ -30,9 +30,9 @@
<note>
The information here does not provide an example of how to create a BSP.
For examples on how to create a BSP, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>
BSP Development Example</ulink> in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
You can also see the
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_creating_one_generic_Atom_BSP_from_another'>
@@ -100,9 +100,9 @@
"
</literallayout>
For more detailed information on layers, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#usingpoky-changes-layers'>BitBake Layers</ulink>" section of the Yocto Project Reference Manual.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#usingpoky-changes-layers'>BitBake Layers</ulink>" section of the Yocto Project Reference Manual.
You can also see the detailed examples in the appendices of
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
@@ -149,10 +149,7 @@
meta-crownbay/recipes-core/tasks/task-core-tools.bbappend
meta-crownbay/recipes-graphics/
meta-crownbay/recipes-graphics/xorg-xserver/
meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/
meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin-1.6/.gitignore
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf
@@ -407,7 +404,6 @@
For example, the Crown Bay BSP contains the following files that support
building a BSP that supports and does not support the Intel EMGD:
<literallayout class='monospaced'>
meta-crownbay/recipes-graphics/xorg-xserver/emgd-driver-bin_1.6.bb
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay/xorg.conf
meta-crownbay/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd/xorg.conf
@@ -465,11 +461,11 @@
KMACHINE_crownbay-noemgd = "yocto/standard/crownbay"
KERNEL_FEATURES_append_crownbay-noemgd += " cfg/smp.scc"
SRCREV_machine_pn-linux-yocto_crownbay ?= "6b4b9acde5fb0ff66ae58fa98274bfe631501499"
SRCREV_meta_pn-linux-yocto_crownbay ?= "5b535279e61197cb194bb2dfceb8b7a04128387c"
SRCREV_machine_pn-linux-yocto_crownbay ?= "2247da9131ea7e46ed4766a69bb1353dba22f873"
SRCREV_meta_pn-linux-yocto_crownbay ?= "d05450e4aef02c1b7137398ab3a9f8f96da74f52"
SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= "6b4b9acde5fb0ff66ae58fa98274bfe631501499"
SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= "5b535279e61197cb194bb2dfceb8b7a04128387c"
SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= "2247da9131ea7e46ed4766a69bb1353dba22f873"
SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= "d05450e4aef02c1b7137398ab3a9f8f96da74f52"
</literallayout>
This append file contains statements used to support the Crown Bay BSP for both
Intel EMGD and non-EMGD.
@@ -484,8 +480,8 @@
KMACHINE_crownbay = "yocto/standard/crownbay"
KERNEL_FEATURES_append_crownbay += " cfg/smp.scc"
SRCREV_machine_pn-linux-yocto_crownbay ?= "6b4b9acde5fb0ff66ae58fa98274bfe631501499"
SRCREV_meta_pn-linux-yocto_crownbay ?= "5b535279e61197cb194bb2dfceb8b7a04128387c"
SRCREV_machine_pn-linux-yocto_crownbay ?= "2247da9131ea7e46ed4766a69bb1353dba22f873"
SRCREV_meta_pn-linux-yocto_crownbay ?= "d05450e4aef02c1b7137398ab3a9f8f96da74f52"
</literallayout>
The append file defines <filename>crownbay</filename> as the compatible machine,
defines the <filename>KMACHINE</filename>, points to some configuration fragments
@@ -542,7 +538,7 @@
The configuration options will likely end up in that location anyway if the BSP gets
added to the Yocto Project.
For information on how to add these configurations directly, see
<ulink url='http://yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
<ulink url='http://yoctoproject.org/docs/1.1.1/kernel-manual/kernel-manual.html'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.</para>
<para>
In general, however, the Yocto Project maintainers take care of moving the

View File

@@ -10,8 +10,11 @@
The example assumes the following:
<itemizedlist>
<listitem><para>No previous preparation or use of the Yocto Project.</para></listitem>
<listitem><para>Use of the Crown Bay Board Support Package (BSP) as a base BSP from
which to work from.</para></listitem>
<listitem><para>Use of the Crown Bay Board Support Package (BSP) as a "base" BSP from
which to work.
The example begins with the Crown Bay BSP as the starting point
but ends by building a new 'atom-pc' BSP, which was based on the Crown Bay BSP.
</para></listitem>
<listitem><para>Shell commands assume <filename>bash</filename></para></listitem>
<listitem><para>Example was developed on an Intel-based Core i7 platform running
Ubuntu 10.04 LTS released in April of 2010.</para></listitem>
@@ -24,10 +27,30 @@
<para>
You need to have the Yocto Project files available on your host system.
You can get files through tarball extraction or by cloning the <filename>poky</filename>
Git repository.
See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.
Git repository.
The following paragraphs describe both methods.
For additional information, see the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>".
</para>
<para>
As mentioned, one way to get the Yocto Project files is to use Git to clone the
<filename>poky</filename> repository:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/poky
$ cd poky
</literallayout>
Alternatively, you can start with the downloaded Poky "edison" tarball:
<literallayout class='monospaced'>
$ tar xfj poky-edison-6.0.1.tar.bz2
$ cd poky
</literallayout>
<note>If you're using the tarball method, you can ignore all the following steps that
ask you to carry out Git operations.
You already have the results of those operations
in the form of the edison release tarballs.
Consequently, there is nothing left to do other than extract those tarballs into the
proper locations.</note>
</para>
<para>
@@ -39,12 +62,11 @@
$ git branch -a
$ git tag -l
</literallayout>
For this example we are going to use the Yocto Project 1.1 Release, which is code
For this example we are going to use the Yocto Project 1.1.1 Release, which is code
named "edison".
These commands create a local branch named <filename>edison</filename>
that tracks the remote branch of the same name.
<literallayout class='monospaced'>
$ cd poky
$ git checkout -b edison origin/edison
Switched to a new branch 'edison'
</literallayout>
@@ -58,7 +80,12 @@
For this example, the base BSP is the <trademark class='registered'>Intel</trademark>
<trademark class='trade'>Atom</trademark> Processor E660 with Intel Platform
Controller Hub EG20T Development Kit, which is otherwise referred to as "Crown Bay."
The BSP layer is <filename>meta-crownbay</filename>.
The BSP layer is <filename>meta-crownbay</filename>.
The base BSP is simply the BSP
we will be using as a starting point, so don't worry if you don't actually have Crown Bay
hardware.
The remainder of the example transforms the base BSP into a BSP that should be
able to boot on generic atom-pc (netbook) hardware.
</para>
<para>
@@ -73,27 +100,52 @@
<para>
You need to have the base BSP layer on your development system.
Similar to the local Yocto Project files, you can get the BSP
layer one of two ways:
layer a couple of different ways:
download the BSP tarball and extract it, or set up a local Git repository that
has the Yocto Project BSP layers.
You should use the same method that you used to get the local Yocto Project files earlier.
See "<link linkend='getting-setup'>Getting Setup</link>" for information on how to get
the BSP files.
</para>
<para>
This example assumes the local <filename>meta-intel</filename> Git repository is
inside the local <filename>poky</filename> Git repository.
The <filename>meta-intel</filename> Git repository contains all the metadata
that supports BSP creation.
This example assumes the BSP layer will be located within a directory named
<filename>meta-intel</filename> contained within the <filename>poky</filename>
parent directory.
The following steps will automatically create the
<filename>meta-intel</filename> directory and the contained meta-crownbay
starting point in both the Git and the tarball cases.
</para>
<para>
If you're using the Git method, you could do the following to create
the starting layout after you have made sure you are in the <filename>poky</filename>
directory created in the previous steps:
<literallayout class='monospaced'>
$ git clone git://git.yoctoproject.org/meta-intel.git
$ cd meta-intel
</literallayout>
Alternatively, you can start with the downloaded <filename>meta-intel</filename>
edison tarball.
Again, be sure that you are already in the <filename>poky</filename> directory
as described previously:
<literallayout class='monospaced'>
$ tar xfj crownbay-noemgd-edison-6.0.1.tar.bz2
$ cd meta-intel
</literallayout>
</para>
<para>
The <filename>meta-intel</filename> directory contains all the metadata
that supports BSP creation.
If you're using the Git method, the following
step will switch to the edison metadata.
If you're using the tarball method, you already have the correct metadata and can
skip to the next step.
Because <filename>meta-intel</filename> is its own Git repository, you will want
to be sure you are in the appropriate branch for your work.
For this example we are going to use the <filename>edison</filename> branch.
<literallayout class='monospaced'>
$ cd meta-intel
$ git checkout -b edison origin/edison
Switched to a new branch 'edison'
</literallayout>
@@ -112,15 +164,12 @@
<para>
For this example, the new layer will be named <filename>meta-mymachine</filename>.
The name must follow the BSP layer naming convention, which is
The name should follow the BSP layer naming convention, which is
<filename>meta-&lt;name&gt;</filename>.
The following example assumes your working directory is <filename>meta-intel</filename>
The following assumes your working directory is <filename>meta-intel</filename>
inside the local Yocto Project files.
If you downloaded and expanded a Crown Bay tarball then you simply copy the resulting
<filename>meta-crownbay</filename> directory structure to a location of your choice.
Good practice for a Git repository, however, is to just copy the new layer alongside
the existing
BSP layers in the <filename>meta-intel</filename> Git repository:
To start your new layer, just copy the new layer alongside the existing
BSP layers in the <filename>meta-intel</filename> directory:
<literallayout class='monospaced'>
$ cp -a meta-crownbay/ meta-mymachine
</literallayout>
@@ -162,9 +211,14 @@
</para>
<para>
The next step makes changes to <filename>mymachine.conf</filename> itself.
The only changes needed for this example are changes to the comment lines.
Here we simply substitute the Crown Bay name with an appropriate name.
Next, we need to make changes to the <filename>mymachine.conf</filename> itself.
The only changes we want to make for this example are to the comment lines.
Changing comments, of course, is never strictly necessary, but it's alway good form to make
them reflect reality as much as possible.
Here, simply substitute the Crown Bay name with an appropriate name for the BSP
(<filename>mymachine</filename> in this case) and change the description to
something that describes your hardware.
</para>
<para>
@@ -176,11 +230,12 @@
</para>
<para>
The next configuration file in the new BSP layer we need to edit is <filename>layer.conf</filename>.
The next configuration file in the new BSP layer we need to edit is
<filename>meta-mymachine/conf/layer.conf</filename>.
This file identifies build information needed for the new layer.
You can see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html#bsp-filelayout-layer'>Layer Configuration File</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html'>The Board
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html#bsp-filelayout-layer'>Layer Configuration File</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html'>The Board
Support Packages (BSP) Development Guide</ulink>
for more information on this configuration file.
Basically, we are changing the existing statements to work with our BSP.
@@ -232,7 +287,7 @@
the remaining one that doesn't support EMGD.
These commands take care of the <filename>recipes-bsp</filename> recipes:
<literallayout class='monospaced'>
$ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/*emgd*
$ rm -rf meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay
$ mv meta-mymachine/recipes-bsp/formfactor/formfactor/crownbay-noemgd/ \
meta-mymachine/recipes-bsp/formfactor/formfactor/mymachine
</literallayout>
@@ -248,7 +303,6 @@
be sure to rename remaining directories appropriately.
The following commands clean up the <filename>recipes-graphics</filename> directory:
<literallayout class='monospaced'>
$ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-emgd*
$ rm -rf meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay
$ mv meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/crownbay-noemgd \
meta-mymachine/recipes-graphics/xorg-xserver/xserver-xf86-config/mymachine
@@ -304,6 +358,10 @@
The <filename>SRCREV_machine</filename> and <filename>SRCREV_meta</filename>
statements point to the exact commits used by the Yocto Project development team
in their source repositories that identify the right kernel for our hardware.
In other words, the <filename>SRCREV</filename> values are simply Git commit
IDs that identify which commit on each
of the kernel branches (machine and meta) will be checked out and used to build
the kernel.
</para>
<para>
@@ -323,12 +381,12 @@
SRCREV_machine_pn-linux-yocto_crownbay ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
SRCREV_meta_pn-linux-yocto_crownbay ?= \
"67a46a608f47c19f16995be7de7b272025864b1b"
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
SRCREV_machine_pn-linux-yocto_crownbay-noemgd ?= \
"2247da9131ea7e46ed4766a69bb1353dba22f873"
SRCREV_meta_pn-linux-yocto_crownbay-noemgd ?= \
"67a46a608f47c19f16995be7de7b272025864b1b"
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
</literallayout>
</para>
@@ -343,24 +401,49 @@
</para>
<para>
To fix this situation in <filename>linux-yocto_3.0.bbappend</filename>
To fix this situation in <filename>linux-yocto_3.0.bbappend</filename>,
we delete the two <filename>SRCREV</filename> statements that support
EMGD (the top pair).
We also change the remaining pair to specify <filename>mymachine</filename>
and insert the commit identifiers to identify the kernel in which we
are interested, which will be based on the <filename>atom-pc-standard</filename>
kernel.
In this case, because we're working with the edison branch of everything, we
need to use the <filename>SRCREV</filename> values for the atom-pc branch
that are associated with the edison release.
To find those values, we need to find the <filename>SRCREV</filename>
values that edison uses for the atom-pc branch, which we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
file.
</para>
<para>
The machine <filename>SRCREV</filename> we want is in the
<filename>SRCREV_machine_atom-pc</filename> variable.
The meta <filename>SRCREV</filename> isn't specified in this file, so it must be
specified in the base kernel recipe in the
<filename>poky/meta/recipes-kernel/linux/linux-yocto_3.0.bb</filename>
file, in the <filename>SRCREV_meta variable</filename> found there.
It happens to be the same as the value we already inherited from the
<filename>meta-crownbay</filename> BSP.
Here are the final <filename>SRCREV</filename> statements:
<literallayout class='monospaced'>
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"06c798f25a19281d7fa944b14366dd75820ba009"
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"67a46a608f47c19f16995be7de7b272025864b1b"
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
</literallayout>
</para>
<para>
If you are familiar with Git repositories you probably wont have trouble locating the
In this example, we're using the <filename>SRCREV</filename> values we
found already captured in the edison release because we're creating a BSP based on
edison.
If, instead, we had based our BSP on the master branches, we would want to use
the most recent <filename>SRCREV</filename> values taken directly from the kernel repo.
We will not be doing that for this example.
However, if you do base a future BSP on master and
if you are familiar with Git repositories, you probably wont have trouble locating the
exact commit strings in the Yocto Project source repositories you need to change
the <filename>SRCREV</filename> statements.
You can find all the <filename>machine</filename> and <filename>meta</filename>
@@ -394,19 +477,25 @@
Because we are not interested in supporting EMGD those three can be deleted.
The remaining three must be changed so that <filename>mymachine</filename> replaces
<filename>crownbay-noemgd</filename> and <filename>crownbay</filename>.
Because we are using the atom-pc branch for this new BSP, we can also find
the exact branch we need for the KMACHINE variable in our new BSP from the value
we find in the
<filename>poky/meta-yocto/recipes-kernel/linux/linux-yocto_3.0.bbappend</filename>
file we looked at in a previous step.
In this case, the value we want is in the KMACHINE_atom-pc variable in that file.
Here is the final <filename>linux-yocto_3.0.bbappend</filename> file after all
the edits:
<literallayout class='monospaced'>
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
COMPATIBLE_MACHINE_mymachine = "mymachine"
KMACHINE_mymachine = "yocto/standard/mymachine"
KMACHINE_mymachine = "yocto/standard/common-pc/atom-pc"
KERNEL_FEATURES_append_mymachine += " cfg/smp.scc"
SRCREV_machine_pn-linux-yocto_mymachine ?= \
"06c798f25a19281d7fa944b14366dd75820ba009"
"1e18e44adbe79b846e382370eb29bc4b8cd5a1a0"
SRCREV_meta_pn-linux-yocto_mymachine ?= \
"67a46a608f47c19f16995be7de7b272025864b1b"
"d05450e4aef02c1b7137398ab3a9f8f96da74f52"
</literallayout>
</para>
</section>
@@ -485,14 +574,14 @@
<para>
The appendix
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-variables-glos'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-variables-glos'>
Reference: Variables Glossary</ulink> in the Yocto Project Reference Manual has more information
on configuration variables.
</para>
</section>
<section id='building-the-image-app'>
<title>Building the Image</title>
<title>Building and Booting the Image</title>
<para>
To build the image for our <filename>meta-mymachine</filename> BSP enter the following command
@@ -513,6 +602,65 @@
If the build results in any type of error you should check for misspellings in the
files you changed or problems with your host development environment such as missing packages.
</para>
<para>
Finally, once you have an image, you can try booting it from a device
(e.g. a USB device).
To prepare a bootable USB device, insert a USB flash drive into your build system and
copy the <filename>.hddimage</filename>, located in the
<filename>poky/build/tmp/deploy/images</filename>
directory after a successful build to the flash drive.
Assuming the USB flash drive takes device <filename>/dev/sdc</filename>,
use <filename>dd</filename> to copy the live image to it.
For example:
<literallayout class='monospaced'>
# dd if=core-image-sato-mymachine-20120111232235.hddimg of=/dev/sdc
# sync
# eject /dev/sdc
</literallayout>
You should now have a bootable USB flash device.
</para>
<para>
Insert the device
into a bootable USB socket on the target, and power it on.
The system should boot to the Sato graphical desktop.
</para>
<para>
For reference, the sato image produced by the previous steps for edison
should look like the following in terms of size.
If your sato image is much different from this,
you probably made a mistake in one of the above steps:
<literallayout class='monospaced'>
358709248 2012-01-11 20:43 core-image-sato-mymachine-20120111232235.hddimg
</literallayout>
<note>The previous instructions are also present in the README that was copied
from meta-crownbay, which should also be updated to reflect the specifics of your
new BSP.
That file and the <filename>README.hardware</filename> file in the top-level
<filename>poky</filename> directory
also provides some suggestions for things to try if booting fails and produces
strange error messages.</note>
</para>
<para>
Because this new image is not in any way tailored to the system you're
booting it on, which is assumed to be some sort of atom-pc (netbook) system for this
example, it might not be completely functional though it should at least boot to a text
prompt.
Specifically, it might fail to boot into graphics without some tweaking.
If this ends up being the case, a possible next step would be to replace the
<filename>mymachine.conf</filename>
contents with the contents of <filename>atom-pc.conf</filename> and replace
<filename>xorg.conf</filename> with <filename>atom-pc xorg.conf</filename>
in <filename>meta-yocto</filename> and see if it fares any better.
In any case, following the previous steps should
probably give you a buildable and bootable image.
Getting things working like you want
them to for your hardware will normally require some amount of experimentation with
configuration settings.
</para>
</section>
</appendix>

View File

@@ -69,7 +69,7 @@
<listitem><para>Reference material.
This type of material resides in an appropriate reference manual.
For example, system variables are documented in the
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
Yocto Project Reference Manual</ulink>.</para></listitem>
<listitem><para>Detailed public information that is not specific to the Yocto Project.
For example, exhaustive information on how to use Git is covered better through the
@@ -90,27 +90,27 @@
</emphasis> The home page for the Yocto Project provides lots of information on the project
as well as links to software and documentation.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink>:</emphasis> This short document lets you get started
with the Yocto Project quickly and start building an image.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>:</emphasis> This manual is a reference
guide to the Yocto Project build component known as "Poky."
The manual also contains a reference chapter on Board Support Package (BSP)
layout.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>
The Yocto Project Application Development Toolkit (ADT) User's Guide</ulink>:</emphasis>
This guide provides information that lets you get going with the ADT to
develop projects using the Yocto Project.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html'>
The Yocto Project Board Support Package (BSP) Developer's Guide</ulink>:</emphasis>
This guide defines the structure for BSP components.
Having a commonly understood structure encourages standardization.</para></listitem>
<listitem><para><emphasis>
<ulink url='http://www.yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/kernel-manual/kernel-manual.html'>
The Yocto Project Kernel Architecture and Use Manual</ulink>:</emphasis>
This manual describes the architecture of the Yocto Project kernel and provides
some work flow examples.</para></listitem>

View File

@@ -65,7 +65,7 @@
</para>
<para>
<imagedata fileref="figures/kernel-example-repos.png" width="7in" depth="5in"
<imagedata fileref="figures/kernel-example-repos-edison.png" width="7in" depth="5in"
align="center" scale="100" />
</para>
@@ -75,9 +75,10 @@
<listitem><para><emphasis>Local Yocto Project Files Git Repository:</emphasis>
This area contains all the metadata that supports building images in the
Yocto Project build environment - the local Yocto Project files.
The local Yocto Project files Git repository also contains the build directory
and a configuration directory that let you control the build.
Note also that in this example, the repository also contains the
In this example, the local Yocto Project files Git repository also
contains the build directory, which contains the configuration directory
that lets you control the build.
In this example, the repository also contains the
<filename>poky-extras</filename> Git repository.</para>
<para>See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
@@ -148,7 +149,7 @@
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1 Release code named "edison",
This example uses the Yocto Project 1.1.1 Release code named "edison",
which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>edison</filename>
branch:
@@ -171,13 +172,34 @@
<filename>poky-extras</filename> Git Repository</link>"
for information on how to get the <filename>poky-extras</filename> repository.
</para>
<para>
Once you have the repository set up,
you have many development branches from which you can work.
From inside the repository you can see the branch names and the tag names used
in the Git repository using either of the following two commands:
<literallayout class='monospaced'>
$ cd poky
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1.1 Release code named "edison",
which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>edison</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b edison origin/edison
Branch edison set up to track remote branch edison from origin.
Switched to a new branch 'edison'
</literallayout>
</para>
</section>
<section id='setting-up-the-bare-clone-and-its-copy'>
<title>Setting Up the Bare Clone and its Copy</title>
<para>
This example modifies the <filename>linux-yocto-3.0</filename> kernel.
This example modifies the <filename>linux-yocto-3.0-1.1.x</filename> kernel.
Thus, you need to create a bare clone of that kernel and then make a copy of the
bare clone.
See the bulleted item
@@ -189,13 +211,14 @@
The bare clone exists for the kernel build tools and simply as the receiving end
of <filename>git push</filename>
commands after you make edits and commits inside the copy of the clone.
The copy (<filename>linux-yocto-3.0</filename> in this example) has to have
The copy (<filename>my-linux-yocto-3.0-1.1.x-work</filename> in this example) has to have
a local branch created and checked out for your work.
This example uses <filename>common-pc-base</filename> as the local branch.
The following commands create and checkout the branch:
<literallayout class='monospaced'>
$ cd ~/linux-yocto-3.0
$ cd ~/my-linux-yocto-3.0-1.1.x-work
$ git checkout -b common-pc-base origin/yocto/standard/common-pc/base
Checking out files: 100% (7289/7289), done.
Branch common-pc-base set up to track remote branch
yocto/standard/common-pc/base from origin.
Switched to a new branch 'common-pc-base'
@@ -225,8 +248,8 @@
of cores your machine supports and set <filename>PARALLEL_MAKE</filename> to one and
a half times the number of cores your machine supports.
</note>
The following two commands build the default <filename>qemux86</filename> image and
<filename>source</filename> build environment setup script.
The following two commands <filename>source</filename> the build environment setup script
and build the default <filename>qemux86</filename> image.
If necessary, the script creates the build directory:
<literallayout class='monospaced'>
$ cd ~/poky
@@ -289,7 +312,7 @@
<para>
The file you change in this example is named <filename>calibrate.c</filename>
and is located in the <filename>linux-yocto-3.0</filename> Git repository
and is located in the <filename>my-linux-yocto-3.0-1.1.x-work</filename> Git repository
(the copy of the bare clone) in <filename>init</filename>.
This example simply inserts several <filename>printk</filename> statements
at the beginning of the <filename>calibrate_delay</filename> function.
@@ -414,13 +437,13 @@
<filename>poky-extras/meta-kernel-dev/recipes-kernel/linux</filename>
directory, you need to identify the location of the
local source code, which in this example is the bare clone named
<filename>linux-yocto-3.0.git</filename>.
<filename>linux-yocto-3.0-1.1.x.git</filename>.
To do this, set the <filename>KSRC_linux_yocto</filename> variable to point to your
local <filename>linux-yocto-3.0.git</filename> Git repository by adding the
local <filename>linux-yocto-3.0-1.1.x.git</filename> Git repository by adding the
following statement.
Be sure to substitute your user information in the statement:
<literallayout class='monospaced'>
KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0.git
KSRC_linux_yocto ?= /home/scottrif/linux-yocto-3.0-1.1.x.git
</literallayout></para></listitem>
<listitem><para><emphasis>Specify the Kernel Machine:</emphasis> Also in the
<filename>linux-yocto_3.0.bbappend</filename> file, you need to specify
@@ -437,7 +460,8 @@
Because all the kernel <filename>.bbappend</filename> files are parsed during the
build process regardless of whether you are using them or not, you should either
comment out the <filename>COMPATIBLE_MACHINE</filename> statements in all
<filename>.bbappend</filename> files, or you should simply remove all the files
unused <filename>.bbappend</filename> files.
Alternatively, you can simply remove all the files
except the one your are using for the build
(i.e. <filename>linux-yocto_3.0.bbappend</filename> in this example).
</note>
@@ -508,46 +532,94 @@
in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source
Code</link>" you should already have the Yocto Project files set up on your
host machine.
If this is the case, go to then next section titled
"<link linkend='examining-the-default-config-smp-behavior'>Examining the Default
<filename>CONFIG_SMP</filename> Behavior</link>" and continue with the
example.
</para>
<para>
If you don't have the Yocto Project files established on your system,
See "<link linkend='setting-up-the-local-yocto-project-files-git-repository'>Setting
Up the Local Yocto Project Files Git Repository</link>" for
information.
To reconfigure the kernel, this is the only Git repository you need to have set up.
you can get them through tarball extraction or by
cloning the <filename>poky</filename> Git repository.
This example uses <filename>poky</filename> as the root directory of the
local Yocto Project files Git repository.
See the bulleted item
"<link linkend='local-yp-release'>Yocto Project Release</link>"
for information on how to get these files.
</para>
<!--
<para>
Once you have the repository set up,
you have many development branches from which you can work.
From inside the repository you can see the branch names and the tag names used
in the Git repository using either of the following two commands:
<literallayout class='monospaced'>
$ cd poky
$ git branch -a
$ git tag -l
</literallayout>
This example uses the Yocto Project 1.1.1 Release code named "edison",
which maps to the <filename>edison</filename> branch in the repository.
The following commands create and checkout the local <filename>edison</filename>
branch:
<literallayout class='monospaced'>
$ git checkout -b edison origin/edison
Branch edison set up to track remote branch edison from origin.
Switched to a new branch 'edison'
</literallayout>
</para>
<para>
If you took the time to work through the example that modifies the kernel source code
in "<link linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source
Code</link>" you are already set up to quickly work through this example.
If not, then work through the following list to prepare:
<itemizedlist>
<listitem><para><emphasis>Understand the development environment:</emphasis>
See "<link linkend='understanding-the-files-you-need'>Understanding
the Files You Need</link>" for information.</para></listitem>
<listitem><para><emphasis>Set up the local Yocto Project files Git
repository:</emphasis>
See "<link linkend='setting-up-the-local-yocto-project-files-git-repository'>Setting
Up the Local Yocto Project Files Git Repository</link>" for
information.</para></listitem>
<listitem><para><emphasis>Set up the <filename>poky-extras</filename> Git
repository:</emphasis>
See "<link linkend='setting-up-the-poky-extras-git-repository'>Setting
Up <filename>poky-extras</filename> Git repository</link>" for
information.</para></listitem>
<listitem><para><emphasis>Set up the the bare clone and its copy:</emphasis>
See "<link linkend='setting-up-the-bare-clone-and-its-copy'>Setting Up the
Bare Clone and its Copy</link>" for information.</para></listitem>
<listitem><para><emphasis>Build the default QEMU kernel image:</emphasis>
See "<link linkend='building-and-booting-the-default-qemu-kernel-image'>Building
and Booting the Default QEMU Kernel image</link>" for information.
Do not boot the image in the QEMU emulator at this point.</para></listitem>
</itemizedlist>
</para> -->
Next, you need to build the default <filename>qemux86</filename> image that you
can boot using QEMU.
<note>
Because a full build can take hours, you should check two variables in the
<filename>build</filename> directory that is created after you source the
<filename>oe-init-build-env</filename> script.
You can find these variables
<filename>BB_NUMBER_THREADS</filename> and <filename>PARALLEL_MAKE</filename>
in the <filename>build/conf</filename> directory in the
<filename>local.conf</filename> configuration file.
By default, these variables are commented out.
If your host development system supports multi-core and multi-thread capabilities,
you can uncomment these statements and set the variables to significantly shorten
the full build time.
As a guideline, set <filename>BB_NUMBER_THREADS</filename> to twice the number
of cores your machine supports and set <filename>PARALLEL_MAKE</filename> to one and
a half times the number of cores your machine supports.
</note>
The following two commands <filename>source</filename> the build environment setup script
and build the default <filename>qemux86</filename> image.
If necessary, the script creates the build directory:
<literallayout class='monospaced'>
$ cd ~/poky
$ source oe-init-build-env
### Shell environment set up for builds. ###
You can now run 'bitbake &lt;target&gt;'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
meta-toolchain-sdk
adt-installer
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
</literallayout>
</para>
<para>
The following <filename>bitbake</filename> command starts the build:
<literallayout class='monospaced'>
$ bitbake -k core-image-minimal
</literallayout>
<note>Be sure to check the settings in the <filename>local.conf</filename>
before starting the build.</note>
</para>
</section>
<section id='examining-the-default-config-smp-behavior'>
@@ -596,7 +668,7 @@
<para>
After setting up the environment to run <filename>menuconfig</filename>, you are ready
to use the tool to interactively change the kernel configuration.
In this example, we are basing our changes on the <filename>linux-yocto-3.0</filename>
In this example, we are basing our changes on the <filename>linux-yocto-3.0-1.1.x</filename>
kernel.
The Yocto Project build environment recognizes this kernel as
<filename>linux-yocto</filename>.
@@ -629,8 +701,8 @@
in the actually filename are omitted in order to make it more
readable:
<literallayout class='monospaced'>
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-2.6.37+git1+84f...
...r20/linux-qemux86-standard-build
~/poky/build/tmp/work/qemux86-poky-linux/linux-yocto-3.0.10+git1+d38...
...3a9ac596f7a-r3/linux-qemux86-standard-build
</literallayout>
</para>

View File

@@ -24,7 +24,7 @@
For a user-space application development example that uses the
<trademark class='trade'>Eclipse</trademark> IDE,
see the
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>
The Yocto Project Application Development Toolkit (ADT) User's Guide</ulink>.
</para>
@@ -79,8 +79,8 @@
<orderedlist>
<listitem><para><emphasis>Set up your host development system to support
development using the Yocto Project</emphasis>: See the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and the
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the Yocto Project files on your
system</emphasis>: You need to have the Yocto Project files available on your host system.
@@ -137,7 +137,7 @@
N450, and Sugar Bay are isolated.</note>
<para>When you set up a layer for a new BSP, you should follow a standard layout.
This layout is described in the section
"<ulink url='http://www.yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html#bsp-filelayout'>Example Filesystem Layout</ulink>" section of the Board Support Package (BSP) Development Guide.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html#bsp-filelayout'>Example Filesystem Layout</ulink>" section of the Board Support Package (BSP) Development Guide.
In the standard layout, you will notice a suggested structure for recipes and
configuration information.
You can see the standard layout for the Crown Bay BSP in this example by examining the
@@ -160,7 +160,7 @@
You need to get the build environment ready by sourcing an environment setup script
and you need to be sure two key configuration files are configured appropriately.</para>
<para>The entire process for building an image is overviewed in the section
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the Yocto Project Quick Start.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the Yocto Project Quick Start.
You might want to reference this information.</para></listitem>
<listitem><para><emphasis>Build the image</emphasis>: The Yocto Project uses the BitBake
tool to build images based on the type of image you want to create.
@@ -168,9 +168,9 @@
<ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para>
<para>The build process supports several types of images to satisfy different needs.
See the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>" appendix in the
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
Yocto Project Reference Manual</ulink>for information on supported images.</para></listitem>
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>"
appendix in The Yocto Project Reference Manual for information on
supported images.</para></listitem>
</orderedlist>
</para>
@@ -178,7 +178,7 @@
You can view a video presentation on "Building Custom Embedded Images with Yocto"
at <ulink url='http://free-electrons.com/blog/elc-2011-videos'>Free Electrons</ulink>.
You can also find supplemental information in
<ulink url='http://yoctoproject.org/docs/1.1/bsp-guide/bsp-guide.html'>
<ulink url='http://yoctoproject.org/docs/1.1.1/bsp-guide/bsp-guide.html'>
The Board Support Package (BSP) Development Guide</ulink>.
Finally, there is wiki page write up of the example also located
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_creating_one_generic_Atom_BSP_from_another'>
@@ -201,7 +201,7 @@
The remainder of this section presents a high-level overview of the Linux Yocto
kernel architecture and the steps to modify the Linux Yocto kernel.
For a complete discussion of the kernel, see
<ulink url='http://www.yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/kernel-manual/kernel-manual.html'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.
You can reference the appendix
"<link linkend='dev-manual-kernel-appendix'>Kernel Modification Example</link>"
@@ -231,8 +231,12 @@
stable Linux Yocto kernel that is based on the Linux 2.6.34 release.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-2.6.37</filename></emphasis> - The
stable Linux Yocto kernel that is based on the Linux 2.6.37 release.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.0</filename></emphasis> - The current
Linux Yocto kernel that is based on the Linux 3.0 release.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.0</filename></emphasis> - The
stable Linux Yocto kernel to use with the Yocto Project current (master) development.
This kernel is based on the Linux 3.0 release.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-3.0-1.1.x</filename></emphasis> - The
stable Linux Yocto kernel to use with the Yocto Project Release 1.1.x.
This kernel is based on the Linux 3.0 release.</para></listitem>
<listitem><para><emphasis><filename>linux-yocto-dev</filename></emphasis> - A development
kernel based on the latest upstream release candidate available.</para></listitem>
</itemizedlist>
@@ -311,7 +315,7 @@
</para>
<para>
<imagedata fileref="figures/kernel-overview-3.png"
<imagedata fileref="figures/kernel-overview-3-edison.png"
width="6in" depth="4in" align="center" scale="100" />
</para>
@@ -349,7 +353,7 @@
<para>
Again, for a complete discussion of the Yocto Project kernel's architcture and its
branching strategy,
see the <ulink url='http://www.yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
see the <ulink url='http://www.yoctoproject.org/docs/1.1.1/kernel-manual/kernel-manual.html'>
The Yocto Project Kernel Architecture and Use Manual</ulink>.
Also, you can reference
<xref linkend='modifying-the-kernel-source-code'>Modifying the Kernel Source Code</xref>
@@ -373,8 +377,8 @@
<orderedlist>
<listitem><para><emphasis>Set up your host development system to support
development using the Yocto Project</emphasis>: See
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<listitem><para><emphasis>Establish a local copy of the Yocto Project files on your
system</emphasis>: Having the Yocto Project files on your system gives you access to
@@ -443,7 +447,7 @@
(<filename>local.conf</filename> and <filename>bblayers.conf</filename>)
are configured appropriately.</para>
<para>The entire process for building an image is overviewed in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the Yocto Project Quick Start.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>" section of the Yocto Project Quick Start.
You might want to reference this information.
Also, you should look at the detailed examples found in the appendices at
at the end of this manual.</para></listitem>
@@ -454,10 +458,8 @@
<ulink url='http://bitbake.berlios.de/manual/'>here</ulink>.</para>
<para>The build process supports several types of images to satisfy different needs.
See the appendix
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>" in the
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
Yocto Project Reference Manual</ulink> for information on supported
images.</para></listitem>
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>"
in The Yocto Project Reference Manual for information on supported images.</para></listitem>
<listitem><para><emphasis>Make your configuration changes available
in the kernel layer</emphasis>: Up to this point, all the configuration changes to the
kernel have been done and tested iteratively.
@@ -507,7 +509,7 @@
provides an overview of the general development process.
If you want to see a detailed example of the process as it is used from within the Eclipse
IDE, see
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>
The Application Development Toolkit (ADT) User's Manual</ulink>.
</para>
@@ -524,8 +526,8 @@
<orderedlist>
<listitem><para><emphasis>Prepare the Host System for the Yocto Project</emphasis>:
See
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#the-linux-distro'>The Linux Distributions</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>" sections both
in the Yocto Project Quick Start for requirements.</para></listitem>
<!--
@@ -553,12 +555,12 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
(QEMU or real hardware), the area you get the image from differs.
<itemizedlist>
<listitem><para>Download the image from
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/machines/'>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/'>
<filename>machines</filename></ulink> if your target architecture is supported
and you are going to develop and test your application on actual hardware.
</para></listitem>
<listitem><para>Download the image from the
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/machines/qemu/'>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/qemu/'>
<filename>machines/qemu</filename></ulink> if your target architecture is supported
and you are going to develop and test your application using the QEMU
emulator.</para></listitem>
@@ -573,9 +575,9 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
</itemizedlist></para>
<para>For information on pre-built kernel image naming schemes for images
that can run on the QEMU emulator, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
section in
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink>.</para></listitem>
<listitem><para><emphasis>Install the ADT</emphasis>:
The ADT provides a target-specific cross-development toolchain, the root filesystem,
@@ -584,8 +586,8 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
easy method.
You can get these pieces by running an ADT installer script, which is configurable.
For information on how to install the ADT, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#using-the-adt-installer'>Using the ADT Installer</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>The Yocto Project
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#using-the-adt-installer'>Using the ADT Installer</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>The Yocto Project
Application Development (ADT) User's Manual</ulink>.</para></listitem>
<listitem><para><emphasis>If Applicable, Secure the Target Root Filesystem</emphasis>:
If you choose not to install the ADT using the ADT Installer,
@@ -630,14 +632,14 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
<orderedlist>
<listitem><para><emphasis>Install the cross-development toolchain for your target hardware:</emphasis>
For information on how to install the toolchain, see the
"<ulink url='http://www.yoctoproject/docs/1.1/adt-manual/adt-manual.html#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" section in
<ulink url='http://www.yoctoproject/docs/1.1/adt-manual/adt-manual.html'>The Yocto Project
"<ulink url='http://www.yoctoproject/docs/1.1.1/adt-manual/adt-manual.html#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" section in
<ulink url='http://www.yoctoproject/docs/1.1.1/adt-manual/adt-manual.html'>The Yocto Project
Application Development (ADT) User's Manual</ulink>.</para></listitem>
<listitem><para><emphasis>Download the Target Image:</emphasis> The Yocto Project supports
several target architectures and has many pre-built kernel images and root filesystem
images.</para>
<para>If you are going to develop your application on hardware, go to the
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/machines/'>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/'>
<filename>machines</filename></ulink> download area and choose a target machine area
from which to download the kernel image and root filesystem.
This download area could have several files in it that support development using
@@ -647,7 +649,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
Be sure to get the files you need for your particular development process.</para>
<para>If you are going to develop your application and then run and test it using the QEMU
emulator, go to the
<ulink url='http://www.yoctoproject.org/downloads/yocto-1.1/machines/qemu/'>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/qemu/'>
<filename>machines/qemu</filename></ulink> download area.
From this area, go down into the directory for your target architecture
(e.g. <filename>qemux86_64</filename> for an
@@ -655,7 +657,7 @@ WRITER NOTE: The areas to get the kernel and root filesystem are located in the
Download kernel, root filesystem, and any other files you need for your process.
<note>In order to use the root filesystem in QEMU, you need to extract it.
See the
"<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#extracting-the-root-filesystem'>Extracting the Root Filesystem</ulink>" section for information on how to extract the
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#extracting-the-root-filesystem'>Extracting the Root Filesystem</ulink>" section for information on how to extract the
root filesystem.</note></para></listitem>
<listitem><para><emphasis>Develop and Test your Application:</emphasis> At this point,
you have the tools to develop your application.

View File

@@ -101,8 +101,8 @@
<para>
<imagedata fileref="figures/source-repos.png" align="center" width="6in" depth="4in" />
</para></listitem>
<listitem><para><anchor id='index-downloads' /><emphasis><ulink url='http://www.yoctoproject.org/downloads/'>Index of /downloads:</ulink></emphasis>
This area contains an index of downloads such as
<listitem><para><anchor id='index-downloads' /><emphasis><ulink url='http://downloads.yoctoproject.org/releases/'>Index of /releases:</ulink></emphasis>
This area contains an index releases such as
the <trademark class='trade'>Eclipse</trademark>
Yocto Plug-in, miscellaneous support, Poky, pseudo, cross-development toolchains,
and all released versions of Yocto Project in the form of images or tarballs.
@@ -115,7 +115,7 @@
This page on the Yocto Project website allows you to download any Yocto Project
release or Board Support Package (BSP) in tarball form.
The tarballs are similar to those found in the
<ulink url='http://www.yoctoproject.org/downloads/'>Index of /downloads:</ulink> area.</para>
<ulink url='http://downloads.yoctoproject.org/releases/'>Index of /releases:</ulink> area.</para>
<para>
<imagedata fileref="figures/yp-download.png" align="center" width="6in" depth="4in" />
</para></listitem>
@@ -170,9 +170,9 @@
Images are the binary output that runs on specific hardware and for specific
use cases.
For a list of the supported image types that the Yocto Project provides, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink>"
appendix in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.</para></listitem>
<listitem><para><emphasis>Layer:</emphasis> A collection of recipes representing the core,
a BSP, or an application stack.</para></listitem>
@@ -216,14 +216,14 @@
system in order to do any development using the Yocto Project.</para>
<para>The name of the top-level directory of the Yocto Project file structure
is derived from the Yocto Project release tarball.
For example, downloading and unpacking <filename>poky-edison-6.0.tar.bz2</filename>
For example, downloading and unpacking <filename>poky-edison-6.0.1.tar.bz2</filename>
results in a Yocto Project file structure whose Yocto Project source directory is named
<filename>poky-edison-6.0</filename>.
<filename>poky-edison-6.0.1</filename>.
If you create a Git repository, then you can name the repository anything you like.</para>
<para>You can find instruction on how to set up the Yocto Project files on your
host development system by reading
the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#getting-setup'>Getting
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#getting-setup'>Getting
Setup</ulink>" section.</para></listitem>
<listitem><para><emphasis>Yocto Project Build Directory:</emphasis>
This term refers to the area used by the Yocto Project for builds.
@@ -233,9 +233,9 @@
You can create the Yocto Project build directory anywhere you want on your
development system.
Here is an example that creates the directory in <filename>mybuilds</filename>
and names the Yocto Project build directory <filename>YP-6.0</filename>:
and names the Yocto Project build directory <filename>YP-6.0.1</filename>:
<literallayout class='monospaced'>
$ source poky-edison-6.0/oe-init-build-env $HOME/mybuilds/YP-6.0
$ source poky-edison-6.0.1/oe-init-build-env $HOME/mybuilds/YP-6.0.1
</literallayout>
If you don't specifically name the directory, BitBake creates it
in the current directory and uses the name <filename>build</filename>.
@@ -486,8 +486,8 @@
While each development environment is unique, there are some best practices or methods
that help development run smoothly.
The following list describes some of these practices.
For more detailed information about these strategies see
<ulink url='http://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html'>Git Workflows</ulink>.
For more information about Git workflows, see the workflow topics in the
<ulink url='http://book.git-scm.com'>Git Community Book</ulink>.
<itemizedlist>
<listitem><para><emphasis>Make Small Changes:</emphasis> It is best to keep your changes you commit
small as compared to bundling many disparate changes into a single commit.
@@ -542,44 +542,59 @@
<title>Tracking Bugs</title>
<para>
The Yocto Project uses <ulink url='http://www.bugzilla.org/about/'>Bugzilla</ulink> to track bugs.
This bug-tracking application works well for group development because it tracks bugs and code
The Yocto Project uses its own implementation of
<ulink url='http://www.bugzilla.org/about/'>Bugzilla</ulink> to track bugs.
Implementations of Bugzilla work well for group development because they track bugs and code
changes, can be used to communicate changes and problems with developers, can be used to
submit and review patches, and can be used to manage quality assurance.
You can find a good overview of Bugzilla <ulink url='http://www.bugzilla.org/about/'>here</ulink>.
submit and review patches, and can be used to manage quality assurance.
The home page for the Yocto Project implementation of Bugzilla is
<ulink url='http://bugzilla.yoctoproject.org'>http://bugzilla.yoctoproject.org</ulink>.
</para>
<para>
Sometimes it is helpful to submit, investigate, or track a bug against the Yocto Project itself
such as when discovering an issue with some component of the build system that acts contrary
to the documentation or your expectations.
You can find information
for Bugzilla configuration and bug tracking procedures specific to the Yocto Project
Following is the general procedure for submitting a new bug using the Yocto Project
Bugzilla.
You can find more information on defect management, bug tracking, and feature request
processes all accomplished through the Yocto Project Bugzilla on the wiki page
<ulink url='https://wiki.yoctoproject.org/wiki/Bugzilla_Configuration_and_Bug_Tracking'>here</ulink>.
<orderedlist>
<listitem><para>Always use the Yocto Project implementation of Bugzilla to submit
a bug.</para></listitem>
<listitem><para>When submitting a new bug, be sure to choose the appropriate
Classification, Product, and Component for which the issue was found.
Defects for Yocto Project fall into one of four classifications: Yocto Projects,
Infrastructure, Poky, and Yocto Metadata Layers.
Each of these Classifications break down into multiple Products and, in some
cases, multiple Components.</para></listitem>
<listitem><para>Use the bug form to choose the correct Hardware and Architecture
for which the bug applies.</para></listitem>
<listitem><para>Indicate the Yocto Project version you were using when the issue
occurred.</para></listitem>
<listitem><para>Be sure to indicate the Severity of the bug.
Severity communicates how the bug impacted your work.</para></listitem>
<listitem><para>Provide a brief summary of the issue.
Try to limit your summary to just a line or two and be sure to capture the
essence of the issue.</para></listitem>
<listitem><para>Provide a detailed description of the issue.
You should provide as much detail as you can about the context, behavior, output,
and so forth that surround the issue.
You can even attach supporting files for output or log by using the "Add an attachment"
button.</para></listitem>
<listitem><para>Submit the bug by clicking the "Submit Bug" button.</para></listitem>
</orderedlist>
</para>
<para>
The Yocto Project uses its own version of the Bugzilla application.
You can find the home page <ulink url='http://bugzilla.yoctoproject.org'>here</ulink>.
You need to use this implementation of Bugzilla when logging a defect against anything released
by the Yocto Project team.
</para>
<para>
Here are some things to remember when dealing with bugs against the Yocto Project:
<itemizedlist>
<listitem><para>The Yocto Project follows a bug-naming convention:
<filename>[YOCTO #&lt;number&gt;]</filename>, where <filename>&lt;number&gt;</filename> is the
assigned defect ID used in Bugzilla.
So, for example, a valid way to refer to a defect when creating a commit comment
would be <filename>[YOCTO #1011]</filename>.
This convention becomes important if you are submitting patches against the Yocto Project
code itself.
See the following section for more information.</para></listitem>
<listitem><para>Defects for Yocto Project fall into one of four classifications: Yocto Projects,
Infrastructure, Poky, and Yocto Metadata Layers.</para></listitem>
</itemizedlist>
</para>
<note>
Bugs in the Yocto Project Bugzilla follow naming convention:
<filename>[YOCTO #&lt;number&gt;]</filename>, where <filename>&lt;number&gt;</filename> is the
assigned defect ID used in Bugzilla.
So, for example, a valid way to refer to a defect would be <filename>[YOCTO #1011]</filename>.
This convention becomes important if you are submitting patches against the Yocto Project
code itself.
</note>
</section>
<section id='how-to-submit-a-change'>
@@ -590,8 +605,8 @@
You should send patches to the appropriate Yocto Project mailing list to get them
in front of the Yocto Project Maintainer.
For a list of the Yocto Project mailing lists, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#resources-mailinglist'>Mailing lists</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'> The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#resources-mailinglist'>Mailing lists</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'> The
Yocto Project Reference Manual</ulink>.
</para>
@@ -733,9 +748,8 @@
</para>
<para>
You can find general Git information on how to push a change upstream
<ulink url='http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#Developing-With-git'>
here</ulink>.
You can find general Git information on how to push a change upstream in the
<ulink url='http://book.git-scm.com/3_distributed_workflows.html'>Git Community Book</ulink>.
</para>
</section>

View File

@@ -9,7 +9,7 @@
This chapter introduces the Yocto Project and gives you an idea of what you need to get started.
You can find enough information to set up your development host and build or use images for
hardware supported by the Yocto Project by reading
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
The Yocto Project Quick Start</ulink>.
</para>
@@ -57,7 +57,7 @@
</para></listitem>
<listitem><para><emphasis>Packages:</emphasis> The Yocto Project requires certain packages
exist on your development system (e.g. Python 2.6 or 2.7).
See "<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>"
See "<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#packages'>The Packages</ulink>"
section in the Yocto Project Quick start for the exact package
requirements and the installation commands to install them
for the supported distributions.</para></listitem>
@@ -75,11 +75,11 @@
back into the Yocto Project, you can simply download the Yocto Project release you want
from the websites <ulink url='http://yoctoproject.org/download'>download page</ulink>.
Once you have the tarball, just extract it into a directory of your choice.</para>
<para>For example, the following command extracts the Yocto Project 1.1 release tarball
<para>For example, the following command extracts the Yocto Project 1.1.1 release tarball
into the current working directory and sets up the Yocto Project file structure
with a top-level directory named <filename>poky-1.1</filename>:
with a top-level directory named <filename>poky-edison-6.0.1</filename>:
<literallayout class='monospaced'>
$ tar xfj poky-edison-6.0.tar.bz2
$ tar xfj poky-edison-6.0.1.tar.bz2
</literallayout></para>
<para>This method does not produce a Git repository.
Instead, you simply end up with a local snapshot of the
@@ -117,28 +117,30 @@
For simplicity, it is recommended that you create these structures outside of the
Yocto Project files' Git repository.</para>
<para>As an example, the following transcript shows how to create the bare clone
of the <filename>linux-yocto-3.0</filename> kernel and then create a copy of
of the <filename>linux-yocto-3.0-1.1.x</filename> kernel and then create a copy of
that clone.
<note>When you have a local Linux Yocto kernel Git repository, you can
reference that repository rather than the upstream Git repository as
part of the <filename>clone</filename> command.
Doing so can speed up the process.</note>
In the following example, the bare clone is named
<filename>linux-yocto-3.0.git</filename>, while the
copy is named <filename>linux-yocto-3.0</filename>:
<filename>linux-yocto-3.0-1.1.x.git</filename>, while the
copy is named <filename>my-linux-yocto-3.0-1.1.x-work</filename>:
<literallayout class='monospaced'>
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.0 linux-yocto-3.0.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.0.git/
remote: Counting objects: 2123870, done.
remote: Compressing objects: 100% (341338/341338), done.
remote: Total 2123870 (delta 1778780), reused 2107534 (delta 1762583)
Receiving objects: 100% (2123870/2123870), 445.72 MiB | 2.06 MiB/s, done.
Resolving deltas: 100% (1778780/1778780), done. </literallayout></para>
$ git clone --bare git://git.yoctoproject.org/linux-yocto-3.0-1.1.x linux-yocto-3.0-1.1.x.git
Initialized empty Git repository in /home/scottrif/linux-yocto-3.0-1.1.x.git/
remote: Counting objects: 2259181, done.
remote: Compressing objects: 100% (373259/373259), done.
remote: Total 2259181 (delta 1892638), reused 2231556 (delta 1865300)
Receiving objects: 100% (2259181/2259181), 482.44 MiB | 580 KiB/s, done.
Resolving deltas: 100% (1892638/1892638), done.
</literallayout></para>
<para>Now create a clone of the bare clone just created:
<literallayout class='monospaced'>
$ git clone linux-yocto-3.0.git linux-yocto-3.0
Initialized empty Git repository in /home/scottrif/linux-yocto-3.0/.git/
Checking out files: 100% (36898/36898), done. </literallayout></para></listitem>
$ git clone linux-yocto-3.0-1.1.x.git my-linux-yocto-3.0-1.1.x-work
Initialized empty Git repository in /home/scottrif/my-linux-yocto-3.0-1.1.x/.git/
Checking out files: 100% (36898/36898), done.
</literallayout></para></listitem>
<listitem id='poky-extras-repo'><para><emphasis>
The <filename>poky-extras</filename> Git Repository</emphasis>:
The <filename>poky-extras</filename> Git repository contains metadata needed to
@@ -157,11 +159,12 @@
$ cd ~/poky
$ git clone git://git.yoctoproject.org/poky-extras poky-extras
Initialized empty Git repository in /home/scottrif/poky/poky-extras/.git/
remote: Counting objects: 543, done.
remote: Compressing objects: 100% (483/483), done.
remote: Total 543 (delta 144), reused 307 (delta 39)
Receiving objects: 100% (543/543), 520.55 KiB, done.
Resolving deltas: 100% (144/144), done. </literallayout></para></listitem>
remote: Counting objects: 561, done.
remote: Compressing objects: 100% (501/501), done.
remote: Total 561 (delta 159), reused 306 (delta 39)
Receiving objects: 100% (561/561), 519.96 KiB | 479 KiB/s, done.
Resolving deltas: 100% (159/159), done.
</literallayout></para></listitem>
<listitem><para><emphasis>Supported Board Support Packages (BSPs):</emphasis>
Similar considerations exist for BSPs.
You can get set up for BSP development one of two ways: tarball extraction or
@@ -198,11 +201,11 @@
$cd poky
$ git clone git://git.yoctoproject.org/meta-intel.git
Initialized empty Git repository in /home/scottrif/poky/meta-intel/.git/
remote: Counting objects: 1325, done.
remote: Compressing objects: 100% (1078/1078), done.
remote: Total 1325 (delta 546), reused 85 (delta 27)
Receiving objects: 100% (1325/1325), 1.56 MiB | 330 KiB/s, done.
Resolving deltas: 100% (546/546), done.
remote: Counting objects: 3279, done.
remote: Compressing objects: 100% (2708/2708), done.
remote: Total 3279 (delta 1761), reused 194 (delta 105)
Receiving objects: 100% (3279/3279), 1.75 MiB | 377 KiB/s, done.
Resolving deltas: 100% (1761/1761), done.
</literallayout></para>
<para>The same
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_from_git_checkout_to_meta-intel_BSP'>
@@ -213,7 +216,7 @@
applications using the Eclipse Integrated Development Environment (IDE),
you will need this plug-in.
See the
"<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#setting-up-the-eclipse-ide'>Setting up the Eclipse IDE</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#setting-up-the-eclipse-ide'>Setting up the Eclipse IDE</ulink>"
section in the Yocto Application Development Toolkit (ADT)
Users Guide for more information.</para></listitem>
</itemizedlist>
@@ -226,7 +229,7 @@
<para>
The build process creates an entire Linux distribution, including the toolchain, from source.
For more information on this topic, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>Building an Image</ulink>"
section in the Yocto Project Quick Start.
</para>
@@ -264,7 +267,7 @@
<para>
You can find details on all these steps in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>Using Pre-Built Binaries and QEMU</ulink>"
section of the Yocto Project Quick Start.
</para>
</section>

View File

@@ -33,10 +33,15 @@
<date>6 October 2011</date>
<revremark>The initial document released with the Yocto Project 1.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>15 March 2012</date>
<revremark>Released with the Yocto Project 1.1.1 Release.</revremark>
</revision>
</revhistory>
<copyright>
<year>2010-2011</year>
<year>2010-2012</year>
<holder>Linux Foundation</holder>
</copyright>
@@ -51,7 +56,7 @@
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -159,8 +159,8 @@
The features are tagged and organized by way of a branching strategy implemented by the
source code manager (SCM) Git.
For information on Git as applied to the Yocto Project, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
section in <ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
section in <ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>.
</para>
<para>
@@ -288,8 +288,8 @@
<para>
You can find documentation on Git at <ulink url='http://git-scm.com/documentation'></ulink>.
You can also get an introduction to Git as it applies to the Yocto Project in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
section in <ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
section in <ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>.
This section overviews Git and describes a minimal set of commands that allow you to be
functional using Git.

View File

@@ -45,10 +45,10 @@
<para>
For more discussion on the Yocto Project kernel, you can also see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#kernel-overview'>Kernel Overview</ulink>",
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#kernel-modification-workflow'>Kernel Modification Workflow</ulink>", and
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#dev-manual-kernel-appendix'>Kernel Modification Example</ulink>" sections all in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The Yocto Project Development Manual</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#kernel-overview'>Kernel Overview</ulink>",
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#kernel-modification-workflow'>Kernel Modification Workflow</ulink>", and
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#dev-manual-kernel-appendix'>Kernel Modification Example</ulink>" sections all in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The Yocto Project Development Manual</ulink>.
</para>
<para>

View File

@@ -50,8 +50,8 @@
</literallayout>
For another example of how to set up a local Git repository of the Linux Yocto
kernel files, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted item in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The Yocto Project Development Manual</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#local-kernel-files'>Linux Yocto Kernel</ulink>" bulleted item in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The Yocto Project Development Manual</ulink>.
</para>
<para>
Once the Git repository is set up on your local machine, you can switch to the
@@ -226,9 +226,9 @@
You can find Git documentation at
<ulink url='http://git-scm.com/documentation'></ulink>.
You can find a simple overview of using Git with the Yocto Project in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#git'>Git</ulink>"
section of
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The Yocto
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The Yocto
Project Development Manual</ulink>.
</para>
@@ -354,9 +354,9 @@
The Yocto Project provides scripts that help you work in a collaborative development
environment.
For information on these scripts, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#pushing-a-change-upstream'>Pushing a Change Upstream and Requesting a Pull</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#submitting-a-patch'>Submitting a Patch Through Email</ulink>" sections in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#pushing-a-change-upstream'>Pushing a Change Upstream and Requesting a Pull</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#submitting-a-patch'>Submitting a Patch Through Email</ulink>" sections in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>".
</para>
@@ -637,8 +637,8 @@
The messages used to commit changes are a large part of these standards.
Consequently, be sure that the headers for each commit have the required information.
For information on how to follow the Yocto Project commit message standards, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#how-to-submit-a-change'>How to Submit a Change</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#how-to-submit-a-change'>How to Submit a Change</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>".
</para>
@@ -772,8 +772,8 @@
existing similar BSP.
The information is introductory in nature and does not provide step-by-step examples.
For detailed information on how to create a BSP given an existing similar BSP, see
the "<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>BSP Development Example</ulink>" appendix in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
the "<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>BSP Development Example</ulink>" appendix in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>, or see the
<ulink url='https://wiki.yoctoproject.org/wiki/Transcript:_creating_one_generic_Atom_BSP_from_another'>Transcript:_creating_one_generic_Atom_BSP_from_another</ulink>
wiki page.

View File

@@ -48,10 +48,15 @@
<date>6 October 2011</date>
<revremark>Released with the Yocto Project 1.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>15 March 2012</date>
<revremark>Released with the Yocto Project 1.1.1 Release.</revremark>
</revision>
</revhistory>
<copyright>
<year>2010-2011</year>
<year>2010-2012</year>
<holder>Linux Foundation</holder>
</copyright>
@@ -63,7 +68,7 @@
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
<ulink url='http://www.yoctoproject.org/docs/1.1/kernel-manual/kernel-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/kernel-manual/kernel-manual.html'>
The Yocto Project Kernel Architecture and Use Manual</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.

View File

@@ -91,9 +91,9 @@
with other plug-ins installed into the Eclipse IDE.
Once you have your environment setup you need to configure the Eclipse plug-in.
For information on how to install and configure the Eclipse plug-in, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#adt-eclipse'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#adt-eclipse'>
"Working Within Eclipse"</ulink> chapter in the
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>
"Application Development Toolkit (ADT) User's Guide."</ulink>
</para>
</section>
@@ -102,7 +102,7 @@
<title>External Development Using the QEMU Emulator</title>
<para>
Running Poky QEMU images is covered in the
<ulink url="http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html">
<ulink url="http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html">
Yocto Project Quick Start</ulink> in the "A Quick Test Run" section.
</para>
<para>

View File

@@ -3,13 +3,14 @@
<chapter id='extendpoky'>
<title>Extending the Yocto Project</title>
<title>Common Tasks</title>
<para>
This chapter provides information about how to extend the functionality
already present in the Yocto Project.
The chapter also documents standard tasks such as adding new
This chapter describes standard tasks such as adding new
software packages, extending or customizing images or porting the Yocto Project to
new hardware (adding a new machine).
The chapter also describes ways to modify package source code, combine multiple
versions of library files into a single image, track license changes, and handle
a package name alias.
Finally, the chapter contains advice about how to make changes to the
Yocto Project to achieve the best results.
</para>
@@ -531,9 +532,9 @@
<para>
For a complete example that shows how to add a new machine to the Yocto Project,
see the
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#dev-manual-bsp-appendix'>
BSP Development Example</ulink> in Appendix A of
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
@@ -658,6 +659,412 @@
</section>
</section>
<section id="usingpoky-modifing-packages">
<title>Modifying Package Source Code</title>
<para>
Although the Yocto Project is usually used to build software, you can use it to modify software.
</para>
<para>
During a build, source is available in the
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename> directory.
The actual location depends on the type of package and the architecture of the target device.
For a standard recipe not related to
<filename><link linkend='var-MACHINE'>MACHINE</link></filename>, the location is
<filename>tmp/work/PACKAGE_ARCH-poky-TARGET_OS/PN-PV-PR/</filename>.
For target device-dependent packages, you should use the <filename>MACHINE</filename>
variable instead of
<filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>
in the directory name.
</para>
<tip>
Be sure the package recipe sets the
<filename><link linkend='var-S'>S</link></filename> variable to something
other than the standard <filename>WORKDIR/PN-PV/</filename> value.
</tip>
<para>
After building a package, you can modify the package source code without problems.
The easiest way to test your changes is by calling the
<filename>compile</filename> task as shown in the following example:
<literallayout class='monospaced'>
$ bitbake -c compile -f NAME_OF_PACKAGE
</literallayout>
</para>
<para>
The <filename>-f</filename> or <filename>--force</filename>
option forces re-execution of the specified task.
You can call other tasks this way as well.
But note that all the modifications in
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>
are gone once you execute <filename>-c clean</filename> for a package.
</para>
</section>
<section id="usingpoky-modifying-packages-quilt">
<title>Modifying Package Source Code with Quilt</title>
<para>
By default Poky uses <ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink>
to manage patches in the <filename>do_patch</filename> task.
This is a powerful tool that you can use to track all modifications to package sources.
</para>
<para>
Before modifying source code, it is important to notify Quilt so it can track the changes
into the new patch file:
<literallayout class='monospaced'>
$ quilt new NAME-OF-PATCH.patch
</literallayout>
</para>
<para>
After notifying Quilt, add all modified files into that patch:
<literallayout class='monospaced'>
$ quilt add file1 file2 file3
</literallayout>
</para>
<para>
You can now start editing.
Once you are done editing, you need to use Quilt to generate the final patch that
will contain all your modifications.
<literallayout class='monospaced'>
$ quilt refresh
</literallayout>
</para>
<para>
You can find the resulting patch file in the
<filename>patches/</filename> subdirectory of the source
(<filename><link linkend='var-S'>S</link></filename>) directory.
For future builds, you should copy the patch into the Yocto Project metadata and add it into the
<filename><link linkend='var-SRC_URI'>SRC_URI</link></filename> of a recipe.
Here is an example:
<literallayout class='monospaced'>
SRC_URI += "file://NAME-OF-PATCH.patch"
</literallayout>
</para>
<para>
Finally, don't forget to 'bump' the
<filename><link linkend='var-PR'>PR</link></filename> value in the same recipe since
the resulting packages have changed.
</para>
</section>
<section id="building-multiple-architecture-libraries-into-one-image">
<title>Combining Multiple Versions of Library Files into One Image</title>
<para>
The build system offers the ability to build libraries with different
target optimizations or architecture formats and combine these together
into one system image.
You can link different binaries in the image
against the different libraries as needed for specific use cases.
This feature is called "Multilib."
</para>
<para>
An example would be where you have most of a system compiled in 32-bit
mode using 32-bit libraries, but you have something large, like a database
engine, that needs to be a 64-bit application and use 64-bit libraries.
Multilib allows you to get the best of both 32-bit and 64-bit libraries.
</para>
<para>
While the Multilib feature is most commonly used for 32 and 64-bit differences,
the approach the build system uses facilitates different target optimizations.
You could compile some binaries to use one set of libraries and other binaries
to use other different sets of libraries.
The libraries could differ in architecture, compiler options, or other
optimizations.
</para>
<para>
This section overviews the Multilib process only.
For more details on how to implement Multilib, see the
<ulink url='https://wiki.yoctoproject.org/wiki/Multilib'>Multilib</ulink> wiki
page.
</para>
<section id='preparing-to-use-multilib'>
<title>Preparing to use Multilib</title>
<para>
User-specific requirements drive the Multilib feature,
Consequently, there is no one "out-of-the-box" configuration that likely
exists to meet your needs.
</para>
<para>
In order to enable Multilib, you first need to ensure your recipe is
extended to support multiple libraries.
Many standard recipes are already extended and support multiple libraries.
You can check in the <filename>meta/conf/multilib.conf</filename>
configuration file in the Yocto Project files directory to see how this is
done using the <filename>BBCLASSEXTEND</filename> variable.
Eventually, all recipes will be covered and this list will be unneeded.
</para>
<para>
For the most part, the Multilib class extension works automatically to
extend the package name from <filename>${PN}</filename> to
<filename>${MLPREFIX}${PN}</filename>, where <filename>MLPREFIX</filename>
is the particular multilib (e.g. "lib32-" or "lib64-").
Standard variables such as <filename>DEPENDS</filename>,
<filename>RDEPENDS</filename>, <filename>RPROVIDES</filename>,
<filename>RRECOMMENDS</filename>, <filename>PACKAGES</filename>, and
<filename>PACKAGES_DYNAMIC</filename> are automatically extended by the system.
If you are extending any manual code in the recipe, you can use the
<filename>${MLPREFIX}</filename> variable to ensure those names are extended
correctly.
This automatic extension code resides in <filename>multilib.bbclass</filename>.
</para>
</section>
<section id='using-multilib'>
<title>Using Multilib</title>
<para>
After you have set up the recipes, you need to define the actual
combination of multiple libraries you want to build.
You accomplish this through your <filename>local.conf</filename>
configuration file in the Yocto Project build directory.
An example configuration would be as follows:
<literallayout class='monospaced'>
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
MULTILIB_IMAGE_INSTALL = "lib32-connman"
</literallayout>
This example enables an
additional library named <filename>lib32</filename> alongside the
normal target packages.
When combining these "lib32" alternatives, the example uses "x86" for tuning.
For information on this particular tuning, see
<filename>meta/conf/machine/include/ia32/arch-ia32.inc</filename>.
</para>
<para>
The example then includes <filename>lib32-connman</filename>
in all the images, which illustrates one method of including a
multiple library dependency.
You can use a normal image build to include this dependency,
for example:
<literallayout class='monospaced'>
$ bitbake core-image-sato
</literallayout>
You can also build Multilib packages specifically with a command like this:
<literallayout class='monospaced'>
$ bitbake lib32-connman
</literallayout>
</para>
</section>
<section id='additional-implementation-details'>
<title>Additional Implementation Details</title>
<para>
Different packaging systems have different levels of native Multilib
support.
For the RPM Package Management System, the following implementation details
exist:
<itemizedlist>
<listitem><para>A unique architecture is defined for the Multilib packages,
along with creating a unique deploy folder under
<filename>tmp/deploy/rpm</filename> in the Yocto
Project build directory.
For example, consider <filename>lib32</filename> in a
<filename>qemux86-64</filename> image.
The possible architectures in the system are "all", "qemux86_64",
"lib32_qemux86_64", and "lib32_x86".</para></listitem>
<listitem><para>The <filename>${MLPREFIX}</filename> variable is stripped from
<filename>${PN}</filename> during RPM packaging.
The naming for a normal RPM package and a Multilib RPM package in a
<filename>qemux86-64</filename> system resolves to something similar to
<filename>bash-4.1-r2.x86_64.rpm</filename> and
<filename>bash-4.1.r2.lib32_x86.rpm</filename>, respectively.
</para></listitem>
<listitem><para>When installing a Multilib image, the RPM backend first
installs the base image and then installs the Multilib libraries.
</para></listitem>
<listitem><para>The build system relies on RPM to resolve the identical files in the
two (or more) Multilib packages.</para></listitem>
</itemizedlist>
</para>
<para>
For the IPK Package Management System, the following implementation details exist:
<itemizedlist>
<listitem><para>The <filename>${MLPREFIX}</filename> is not stripped from
<filename>${PN}</filename> during IPK packaging.
The naming for a normal RPM package and a Multilib IPK package in a
<filename>qemux86-64</filename> system resolves to something like
<filename>bash_4.1-r2.x86_64.ipk</filename> and
<filename>lib32-bash_4.1-rw_x86.ipk</filename>, respectively.
</para></listitem>
<listitem><para>The IPK deploy folder is not modified with
<filename>${MLPREFIX}</filename> because packages with and without
the Multilib feature can exist in the same folder due to the
<filename>${PN}</filename> differences.</para></listitem>
<listitem><para>IPK defines a sanity check for Multilib installation
using certain rules for file comparison, overridden, etc.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id="usingpoky-configuring-LIC_FILES_CHKSUM">
<title>Tracking License Changes</title>
<para>
The license of an upstream project might change in the future. In order to prevent these changes
going unnoticed, the Yocto Project provides a
<filename><link linkend='var-LIC_FILES_CHKSUM'>LIC_FILES_CHKSUM</link></filename>
variable to track changes to the license text. The checksums are validated at the end of the
configure step, and if the checksums do not match, the build will fail.
</para>
<section id="usingpoky-specifying-LIC_FILES_CHKSUM">
<title>Specifying the <filename>LIC_FILES_CHKSUM</filename> Variable</title>
<para>
The <filename>LIC_FILES_CHKSUM</filename>
variable contains checksums of the license text in the source code for the recipe.
Following is an example of how to specify <filename>LIC_FILES_CHKSUM</filename>:
<literallayout class='monospaced'>
LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \
file://licfile1.txt;beginline=5;endline=29;md5=yyyy \
file://licfile2.txt;endline=50;md5=zzzz \
..."
</literallayout>
</para>
<para>
The Yocto Project uses the
<filename><link linkend='var-S'>S</link></filename> variable as the
default directory used when searching files listed in
<filename>LIC_FILES_CHKSUM</filename>.
The previous example employs the default directory.
</para>
<para>
You can also use relative paths as shown in the following example:
<literallayout class='monospaced'>
LIC_FILES_CHKSUM = "file://src/ls.c;startline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
</literallayout>
</para>
<para>
In this example, the first line locates a file in
<filename><link linkend='var-S'>S</link>/src/ls.c</filename>.
The second line refers to a file in
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>, which is the parent
of <filename>S</filename>.
</para>
<para>
Note that this variable is mandatory for all recipes, unless the
<filename>LICENSE</filename> variable is set to "CLOSED".
</para>
</section>
<section id="usingpoky-LIC_FILES_CHKSUM-explanation-of-syntax">
<title>Explanation of Syntax</title>
<para>
As mentioned in the previous section, the
<filename>LIC_FILES_CHKSUM</filename> variable lists all the
important files that contain the license text for the source code.
It is possible to specify a checksum for an entire file, or a specific section of a
file (specified by beginning and ending line numbers with the "beginline" and "endline"
parameters, respectively).
The latter is useful for source files with a license notice header,
README documents, and so forth.
If you do not use the "beginline" parameter, then it is assumed that the text begins on the
first line of the file.
Similarly, if you do not use the "endline" parameter, it is assumed that the license text
ends with the last line of the file.
</para>
<para>
The "md5" parameter stores the md5 checksum of the license text.
If the license text changes in any way as compared to this parameter
then a mismatch occurs.
This mismatch triggers a build failure and notifies the developer.
Notification allows the developer to review and address the license text changes.
Also note that if a mismatch occurs during the build, the correct md5
checksum is placed in the build log and can be easily copied to the recipe.
</para>
<para>
There is no limit to how many files you can specify using the
<filename>LIC_FILES_CHKSUM</filename> variable.
Generally, however, every project requires a few specifications for license tracking.
Many projects have a "COPYING" file that stores the license information for all the source
code files.
This practice allows you to just track the "COPYING" file as long as it is kept up to date.
</para>
<tip>
If you specify an empty or invalid "md5" parameter, BitBake returns an md5 mis-match
error and displays the correct "md5" parameter value during the build.
The correct parameter is also captured in the build log.
</tip>
<tip>
If the whole file contains only license text, you do not need to use the "beginline" and
"endline" parameters.
</tip>
</section>
</section>
<section id="usingpoky-configuring-DISTRO_PN_ALIAS">
<title>Handling a Package Name Alias</title>
<para>
Sometimes a package name you are using might exist under an alias or as a similarly named
package in a different distribution.
The Yocto Project implements a <filename>distro_check</filename>
task that automatically connects to major distributions
and checks for these situations.
If the package exists under a different name in a different distribution, you get a
<filename>distro_check</filename> mismatch.
You can resolve this problem by defining a per-distro recipe name alias using the
<filename><link linkend='var-DISTRO_PN_ALIAS'>DISTRO_PN_ALIAS</link></filename> variable.
</para>
<para>
Following is an example that shows how you specify the <filename>DISTRO_PN_ALIAS</filename>
variable:
<literallayout class='monospaced'>
DISTRO_PN_ALIAS_pn-PACKAGENAME = "distro1=package_name_alias1 \
distro2=package_name_alias2 \
distro3=package_name_alias3 \
..."
</literallayout>
</para>
<para>
If you have more than one distribution alias, separate them with a space.
Note that the Yocto Project currently automatically checks the
Fedora, OpenSuSE, Debian, Ubuntu,
and Mandriva distributions for source package recipes without having to specify them
using the <filename>DISTRO_PN_ALIAS</filename> variable.
For example, the following command generates a report that lists the Linux distributions
that include the sources for each of the Yocto Project recipes.
<literallayout class='monospaced'>
$ bitbake world -f -c distro_check
</literallayout>
The results are stored in the <filename>build/tmp/log/distro_check-${DATETIME}.results</filename>
file found in the Yocto Project files area.
</para>
</section>
<section id="usingpoky-changes">
<title>Making and Maintaining Changes</title>
<para>
@@ -976,411 +1383,6 @@
</section>
</section>
<section id="usingpoky-modifing-packages">
<title>Modifying Package Source Code</title>
<para>
Although the Yocto Project is usually used to build software, you can use it to modify software.
</para>
<para>
During a build, source is available in the
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename> directory.
The actual location depends on the type of package and the architecture of the target device.
For a standard recipe not related to
<filename><link linkend='var-MACHINE'>MACHINE</link></filename>, the location is
<filename>tmp/work/PACKAGE_ARCH-poky-TARGET_OS/PN-PV-PR/</filename>.
For target device-dependent packages, you should use the <filename>MACHINE</filename>
variable instead of
<filename><link linkend='var-PACKAGE_ARCH'>PACKAGE_ARCH</link></filename>
in the directory name.
</para>
<tip>
Be sure the package recipe sets the
<filename><link linkend='var-S'>S</link></filename> variable to something
other than the standard <filename>WORKDIR/PN-PV/</filename> value.
</tip>
<para>
After building a package, you can modify the package source code without problems.
The easiest way to test your changes is by calling the
<filename>compile</filename> task as shown in the following example:
<literallayout class='monospaced'>
$ bitbake -c compile -f NAME_OF_PACKAGE
</literallayout>
</para>
<para>
The <filename>-f</filename> or <filename>--force</filename>
option forces re-execution of the specified task.
You can call other tasks this way as well.
But note that all the modifications in
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>
are gone once you execute <filename>-c clean</filename> for a package.
</para>
</section>
<section id="usingpoky-modifying-packages-quilt">
<title>Modifying Package Source Code with Quilt</title>
<para>
By default Poky uses <ulink url='http://savannah.nongnu.org/projects/quilt'>Quilt</ulink>
to manage patches in the <filename>do_patch</filename> task.
This is a powerful tool that you can use to track all modifications to package sources.
</para>
<para>
Before modifying source code, it is important to notify Quilt so it can track the changes
into the new patch file:
<literallayout class='monospaced'>
$ quilt new NAME-OF-PATCH.patch
</literallayout>
</para>
<para>
After notifying Quilt, add all modified files into that patch:
<literallayout class='monospaced'>
$ quilt add file1 file2 file3
</literallayout>
</para>
<para>
You can now start editing.
Once you are done editing, you need to use Quilt to generate the final patch that
will contain all your modifications.
<literallayout class='monospaced'>
$ quilt refresh
</literallayout>
</para>
<para>
You can find the resulting patch file in the
<filename>patches/</filename> subdirectory of the source
(<filename><link linkend='var-S'>S</link></filename>) directory.
For future builds, you should copy the patch into the Yocto Project metadata and add it into the
<filename><link linkend='var-SRC_URI'>SRC_URI</link></filename> of a recipe.
Here is an example:
<literallayout class='monospaced'>
SRC_URI += "file://NAME-OF-PATCH.patch"
</literallayout>
</para>
<para>
Finally, don't forget to 'bump' the
<filename><link linkend='var-PR'>PR</link></filename> value in the same recipe since
the resulting packages have changed.
</para>
</section>
<section id="building-multiple-architecture-libraries-into-one-image">
<title>Combining Multiple versions of Library Files into One Image</title>
<para>
The build system offers the ability to build libraries with different
target optimizations or architecture formats and combine these together
into one system image.
You can link different binaries in the image
against the different libraries as needed for specific use cases.
This feature is called "Multilib."
</para>
<para>
An example would be where you have most of a system compiled in 32-bit
mode using 32-bit libraries, but you have something large, like a database
engine, that needs to be a 64-bit application and use 64-bit libraries.
Multilib allows you to get the best of both 32-bit and 64-bit libraries.
</para>
<para>
While the Multilib feature is most commonly used for 32 and 64-bit differences,
the approach the build system uses facilitates different target optimizations.
You could compile some binaries to use one set of libraries and other binaries
to use other different sets of libraries.
The libraries could differ in architecture, compiler options, or other
optimizations.
</para>
<para>
This section overviews the Multilib process only.
For more details on how to implement Multilib, see the
<ulink url='https://wiki.yoctoproject.org/wiki/Multilib'>Multilib</ulink> wiki
page.
</para>
<section id='preparing-to-use-multilib'>
<title>Preparing to use Multilib</title>
<para>
User-specific requirements drive the Multilib feature,
Consequently, there is no one "out-of-the-box" configuration that likely
exists to meet your needs.
</para>
<para>
In order to enable Multilib, you first need to ensure your recipe is
extended to support multiple libraries.
Many standard recipes are already extended and support multiple libraries.
You can check in the <filename>meta/conf/multilib.conf</filename>
configuration file in the Yocto Project files directory to see how this is
done using the <filename>BBCLASSEXTEND</filename> variable.
Eventually, all recipes will be covered and this list will be unneeded.
</para>
<para>
For the most part, the Multilib class extension works automatically to
extend the package name from <filename>${PN}</filename> to
<filename>${MLPREFIX}${PN}</filename>, where <filename>MLPREFIX</filename>
is the particular multilib (e.g. "lib32-" or "lib64-").
Standard variables such as <filename>DEPENDS</filename>,
<filename>RDEPENDS</filename>, <filename>RPROVIDES</filename>,
<filename>RRECOMMENDS</filename>, <filename>PACKAGES</filename>, and
<filename>PACKAGES_DYNAMIC</filename> are automatically extended by the system.
If you are extending any manual code in the recipe, you can use the
<filename>${MLPREFIX}</filename> variable to ensure those names are extended
correctly.
This automatic extension code resides in <filename>multilib.bbclass</filename>.
</para>
</section>
<section id='using-multilib'>
<title>Using Multilib</title>
<para>
After you have set up the recipes, you need to define the actual
combination of multiple libraries you want to build.
You accomplish this through your <filename>local.conf</filename>
configuration file in the Yocto Project build directory.
An example configuration would be as follows:
<literallayout class='monospaced'>
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"
MULTILIB_IMAGE_INSTALL = "lib32-connman"
</literallayout>
This example enables an
additional library named <filename>lib32</filename> alongside the
normal target packages.
When combining these "lib32" alternatives, the example uses "x86" for tuning.
For information on this particular tuning, see
<filename>meta/conf/machine/include/ia32/arch-ia32.inc</filename>.
</para>
<para>
The example then includes <filename>lib32-connman</filename>
in all the images, which illustrates one method of including a
multiple library dependency.
You can use a normal image build to include this dependency,
for example:
<literallayout class='monospaced'>
$ bitbake core-image-sato
</literallayout>
You can also build Multilib packages specifically with a command like this:
<literallayout class='monospaced'>
$ bitbake lib32-connman
</literallayout>
</para>
</section>
<section id='additional-implementation-details'>
<title>Additional Implementation Details</title>
<para>
Different packaging systems have different levels of native Multilib
support.
For the RPM Package Management System, the following implementation details
exist:
<itemizedlist>
<listitem><para>A unique architecture is defined for the Multilib packages,
along with creating a unique deploy folder under
<filename>tmp/deploy/rpm</filename> in the Yocto
Project build directory.
For example, consider <filename>lib32</filename> in a
<filename>qemux86-64</filename> image.
The possible architectures in the system are "all", "qemux86_64",
"lib32_qemux86_64", and "lib32_x86".</para></listitem>
<listitem><para>The <filename>${MLPREFIX}</filename> variable is stripped from
<filename>${PN}</filename> during RPM packaging.
The naming for a normal RPM package and a Multilib RPM package in a
<filename>qemux86-64</filename> system resolves to something similar to
<filename>bash-4.1-r2.x86_64.rpm</filename> and
<filename>bash-4.1.r2.lib32_x86.rpm</filename>, respectively.
</para></listitem>
<listitem><para>When installing a Multilib image, the RPM backend first
installs the base image and then installs the Multilib libraries.
</para></listitem>
<listitem><para>The build system relies on RPM to resolve the identical files in the
two (or more) Multilib packages.</para></listitem>
</itemizedlist>
</para>
<para>
For the IPK Package Management System, the following implementation details exist:
<itemizedlist>
<listitem><para>The <filename>${MLPREFIX}</filename> is not stripped from
<filename>${PN}</filename> during IPK packaging.
The naming for a normal RPM package and a Multilib IPK package in a
<filename>qemux86-64</filename> system resolves to something like
<filename>bash_4.1-r2.x86_64.ipk</filename> and
<filename>lib32-bash_4.1-rw_x86.ipk</filename>, respectively.
</para></listitem>
<listitem><para>The IPK deploy folder is not modified with
<filename>${MLPREFIX}</filename> because packages with and without
the Multilib feature can exist in the same folder due to the
<filename>${PN}</filename> differences.</para></listitem>
<listitem><para>IPK defines a sanity check for Multilib installation
using certain rules for file comparison, overridden, etc.
</para></listitem>
</itemizedlist>
</para>
</section>
</section>
<section id="usingpoky-configuring-LIC_FILES_CHKSUM">
<title>Tracking License Changes</title>
<para>
The license of an upstream project might change in the future. In order to prevent these changes
going unnoticed, the Yocto Project provides a
<filename><link linkend='var-LIC_FILES_CHKSUM'>LIC_FILES_CHKSUM</link></filename>
variable to track changes to the license text. The checksums are validated at the end of the
configure step, and if the checksums do not match, the build will fail.
</para>
<section id="usingpoky-specifying-LIC_FILES_CHKSUM">
<title>Specifying the <filename>LIC_FILES_CHKSUM</filename> Variable</title>
<para>
The <filename>LIC_FILES_CHKSUM</filename>
variable contains checksums of the license text in the source code for the recipe.
Following is an example of how to specify <filename>LIC_FILES_CHKSUM</filename>:
<literallayout class='monospaced'>
LIC_FILES_CHKSUM = "file://COPYING;md5=xxxx \
file://licfile1.txt;beginline=5;endline=29;md5=yyyy \
file://licfile2.txt;endline=50;md5=zzzz \
..."
</literallayout>
</para>
<para>
The Yocto Project uses the
<filename><link linkend='var-S'>S</link></filename> variable as the
default directory used when searching files listed in
<filename>LIC_FILES_CHKSUM</filename>.
The previous example employs the default directory.
</para>
<para>
You can also use relative paths as shown in the following example:
<literallayout class='monospaced'>
LIC_FILES_CHKSUM = "file://src/ls.c;startline=5;endline=16;\
md5=bb14ed3c4cda583abc85401304b5cd4e"
LIC_FILES_CHKSUM = "file://../license.html;md5=5c94767cedb5d6987c902ac850ded2c6"
</literallayout>
</para>
<para>
In this example, the first line locates a file in
<filename><link linkend='var-S'>S</link>/src/ls.c</filename>.
The second line refers to a file in
<filename><link linkend='var-WORKDIR'>WORKDIR</link></filename>, which is the parent
of <filename>S</filename>.
</para>
<para>
Note that this variable is mandatory for all recipes, unless the
<filename>LICENSE</filename> variable is set to "CLOSED".
</para>
</section>
<section id="usingpoky-LIC_FILES_CHKSUM-explanation-of-syntax">
<title>Explanation of Syntax</title>
<para>
As mentioned in the previous section, the
<filename>LIC_FILES_CHKSUM</filename> variable lists all the
important files that contain the license text for the source code.
It is possible to specify a checksum for an entire file, or a specific section of a
file (specified by beginning and ending line numbers with the "beginline" and "endline"
parameters respectively).
The latter is useful for source files with a license notice header,
README documents, and so forth.
If you do not use the "beginline" parameter, then it is assumed that the text begins on the
first line of the file.
Similarly, if you do not use the "endline" parameter, it is assumed that the license text
ends with the last line of the file.
</para>
<para>
The "md5" parameter stores the md5 checksum of the license text.
If the license text changes in any way as compared to this parameter
then a mismatch occurs.
This mismatch triggers a build failure and notifies the developer.
Notification allows the developer to review and address the license text changes.
Also note that if a mismatch occurs during the build, the correct md5
checksum is placed in the build log and can be easily copied to the recipe.
</para>
<para>
There is no limit to how many files you can specify using the
<filename>LIC_FILES_CHKSUM</filename> variable.
Generally, however, every project requires a few specifications for license tracking.
Many projects have a "COPYING" file that stores the license information for all the source
code files.
This practice allows you to just track the "COPYING" file as long as it is kept up to date.
</para>
<tip>
If you specify an empty or invalid "md5" parameter, BitBake returns an md5 mis-match
error and displays the correct "md5" parameter value during the build.
The correct parameter is also captured in the build log.
</tip>
<tip>
If the whole file contains only license text, you do not need to use the "beginline" and
"endline" parameters.
</tip>
</section>
</section>
<section id="usingpoky-configuring-DISTRO_PN_ALIAS">
<title>Handling a Package Name Alias</title>
<para>
Sometimes a package name you are using might exist under an alias or as a similarly named
package in a different distribution.
The Yocto Project implements a <filename>distro_check</filename>
task that automatically connects to major distributions
and checks for these situations.
If the package exists under a different name in a different distribution, you get a
<filename>distro_check</filename> mismatch.
You can resolve this problem by defining a per-distro recipe name alias using the
<filename><link linkend='var-DISTRO_PN_ALIAS'>DISTRO_PN_ALIAS</link></filename> variable.
</para>
<para>
Following is an example that shows how you specify the <filename>DISTRO_PN_ALIAS</filename>
variable:
<literallayout class='monospaced'>
DISTRO_PN_ALIAS_pn-PACKAGENAME = "distro1=package_name_alias1 \
distro2=package_name_alias2 \
distro3=package_name_alias3 \
..."
</literallayout>
</para>
<para>
If you have more than one distribution alias, separate them with a space.
Note that the Yocto Project currently automatically checks the
Fedora, OpenSuSE, Debian, Ubuntu,
and Mandriva distributions for source package recipes without having to specify them
using the <filename>DISTRO_PN_ALIAS</filename> variable.
For example, the following command generates a report that lists the Linux distributions
that include the sources for each of the Yocto Project recipes.
<literallayout class='monospaced'>
$ bitbake world -f -c distro_check
</literallayout>
The results are stored in the <filename>build/tmp/log/distro_check-${DATETIME}.results</filename>
file found in the Yocto Project files area.
</para>
</section>
</chapter>
<!--

View File

@@ -33,8 +33,8 @@
You can use a stand-alone tarball to provide Python 2.6.
You can find pre-built 32 and 64-bit versions of Python 2.6 at the following locations:
<itemizedlist>
<listitem><para><ulink url='http://www.yoctoproject.org/downloads/miscsupport/yocto-1.1-python-nativesdk/python-nativesdk-standalone-i686.tar.bz2'>32-bit tarball</ulink></para></listitem>
<listitem><para><ulink url='http://www.yoctoproject.org/downloads/miscsupport/yocto-1.1-python-nativesdk/python-nativesdk-standalone-x86_64.tar.bz2'>64-bit tarball</ulink></para></listitem>
<listitem><para><ulink url='http://downloads.yoctoproject.org/releases/miscsupport/yocto-1.0-python-nativesdk/python-nativesdk-standalone-i686.tar.bz2'>32-bit tarball</ulink></para></listitem>
<listitem><para><ulink url='http://downloads.yoctoproject.org/releases/miscsupport/yocto-1.0-python-nativesdk/python-nativesdk-standalone-x86_64.tar.bz2'>64-bit tarball</ulink></para></listitem>
</itemizedlist>
</para>
<para>

View File

@@ -15,8 +15,11 @@
construct complete Linux images.
You can find complete introductory and getting started information on the Yocto Project
by reading the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink>.
For task-based information using the Yocto Project, see
<ulink url='http://www.yoctoproject.org/docs/1.1.1//dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
You can also find lots of information on the Yocto Project on the
<ulink url="http://www.yoctoproject.org">Yocto Project website</ulink>.
</para>
@@ -36,6 +39,11 @@
<link linkend='extendpoky'>Extending the Yocto Project</link>:</emphasis> This chapter
provides information about how to extend and customize the Yocto Project
along with advice on how to manage these changes.</para></listitem>
<listitem><para><emphasis>
<link linkend='technical-details'>Technical Details</link>:</emphasis>
This chapter describes fundamental Yocto Project components as well as an explanation
behind how the Yocto Project uses shared state (sstate) cache to speed build time.
</para></listitem>
<listitem><para><emphasis>
<link linkend='bsp'>Board Support Packages (BSP) - Developer's Guide</link>:</emphasis>
This chapter describes the example filesystem layout for BSP development and
@@ -90,9 +98,9 @@
<title>System Requirements</title>
<para>
For system Yocto Project system requirements, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#resources'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#resources'>
What You Need and How You Get It</ulink> section in the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink>.
</para>
</section>
@@ -104,7 +112,7 @@
of methods:
<itemizedlist>
<listitem><para><emphasis>Releases:</emphasis> Stable, tested releases are available through
<ulink url='http://yoctoproject.org/downloads/poky/'/>.</para></listitem>
<ulink url='http://downloads.yoctoproject.org/releases/yocto/'/>.</para></listitem>
<listitem><para><emphasis>Nightly Builds:</emphasis> These releases are available at
<ulink url='http://autobuilder.yoctoproject.org/nightly'/>.
These builds include Yocto Project releases, meta-toolchain tarballs, and
@@ -125,9 +133,9 @@
You can get these files by downloading a Yocto Project release tarball and unpacking it,
or by establishing a Git repository of the files.
For information on both these methods, see
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#getting-setup'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#getting-setup'>
Getting Setup</ulink> section in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
</section>

View File

@@ -62,10 +62,15 @@
<date>6 October 2011</date>
<revremark>Released with the Yocto Project 1.1 Release.</revremark>
</revision>
<revision>
<revnumber>1.1.1</revnumber>
<date>15 March 2012</date>
<revremark>Released with the Yocto Project 1.1.1 Release.</revremark>
</revision>
</revhistory>
<copyright>
<year>2007-2011</year>
<year>2007-2012</year>
<holder>Linux Foundation</holder>
</copyright>
@@ -77,7 +82,7 @@
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.
@@ -92,6 +97,8 @@
<xi:include href="extendpoky.xml"/>
<xi:include href="technical-details.xml"/>
<xi:include href="../bsp-guide/bsp.xml"/>
<xi:include href="development.xml"/>

View File

@@ -207,9 +207,9 @@
It is worth noting that you can greatly speed up the build time by properly setting
the <filename>BB_NUMBER_THREADS</filename> variable.
See the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>
Building an Image</ulink> section in the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink> for more information.
</para>
@@ -260,8 +260,50 @@
<para>
Once all the tasks have been completed BitBake exits.
</para>
</section>
<para>
When running a task, BitBake tightly controls the execution environment
of the build tasks to make sure unwanted contamination from the build machine
cannot influence the build.
Consequently, if you do want something to get passed into the build
task's environment, you must take a few steps:
<orderedlist>
<listitem><para>Tell BitBake to load what you want from the environment
into the data store.
You can do so through the <filename>BB_ENV_WHITELIST</filename>
variable.
For example, assume you want to prevent the build system from
accessing your <filename>$HOME/.ccache</filename> directory.
The following command tells BitBake to load
<filename>CCACHE_DIR</filename> from the environment into the data
store:
<literallayout class='monospaced'>
export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"
</literallayout></para></listitem>
<listitem><para>Tell BitBake to export what you have loaded into the
environment store to the task environment of every running task.
Loading something from the environment into the data store
(previous step) only makes it available in the datastore.
To export it to the task environment of every running task,
use a command similar to the following in your
<filename>local.conf</filename> or distro configuration file:
<literallayout class='monospaced'>
export CCACHE_DIR
</literallayout></para></listitem>
</orderedlist>
</para>
<note>
A side effect of the previous steps is that BitBake records the variable
as a dependency of the build process in things like the shared state
checksums.
If doing so results in unnecessary rebuilds of tasks, you can whitelist the
variable so that the shared state code ignores the dependency when it creates
checksums.
For information on this process, see the <filename>BB_HASHBASE_WHITELIST</filename>
example in <xref linkend='checksums'>Checksums (Signatures)</xref>.
</note>
</section>
<section id='ref-bitbake-commandline'>
<title>BitBake Command Line</title>

View File

@@ -391,6 +391,87 @@
for common problems that show up during runtime.
Distribution policy usually dictates whether to include this class as the Yocto Project does.
</para>
<para>
You can configure the sanity checks so that specific test failures either raise a warning or
an error message.
Typically, failures for new tests generate a warning.
Subsequent failures for the same test would then generate an error message
once the metadata is in a known and good condition.
You use the <filename>WARN_QA</filename> variable to specify tests for which you
want to generate a warning message on failure.
You use the <filename>ERROR_QA</filename> variable to specify tests for which you
want to generate an error message on failure.
</para>
<para>
The following list shows the tests you can list with the <filename>WARN_QA</filename>
and <filename>ERROR_QA</filename> variables:
<itemizedlist>
<listitem><para><emphasis><filename>ldflags:</filename></emphasis>
Ensures that the binaries were linked with the
<filename>LDFLAGS</filename> options provided by the build system.
If this test fails, check that the <filename>LDFLAGS</filename> variable
is being passed to the linker command.</para></listitem>
<listitem><para><emphasis><filename>useless-rpaths:</filename></emphasis>
Checks for dynamic library load paths (rpaths) in the binaries that
by default on a standard system are searched by the linker (e.g.
<filename>/lib</filename> and <filename>/usr/lib</filename>).
While these paths will not cause any breakage, they do waste space and
are unnecessary.</para></listitem>
<listitem><para><emphasis><filename>rpaths:</filename></emphasis>
Checks for rpaths in the binaries that contain build system paths such
as <filename>TMPDIR</filename>.
If this test fails, bad <filename>-rpath</filename> options are being
passed to the linker commands and your binaries have potential security
issues.</para></listitem>
<listitem><para><emphasis><filename>dev-so:</filename></emphasis>
Checks that the <filename>.so</filename> symbolic links are in the
<filename>-dev</filename> package and not in any of the other packages.
In general, these symlinks are only useful for development purposes.
Thus, the <filename>-dev</filename> package is the correct location for
them.
Some very rare cases do exist for dynamically loaded modules where
these symlinks are needed instead in the main package.
</para></listitem>
<listitem><para><emphasis><filename>debug-files:</filename></emphasis>
Checks for <filename>.debug</filename> directories in anything but the
<filename>-dbg</filename> package.
The debug files should all be in the <filename>-dbg</filename> package.
Thus, anything packaged elsewhere is incorrect packaging.</para></listitem>
<listitem><para><emphasis><filename>arch:</filename></emphasis>
Checks the Executable and Linkable Format (ELF) type, bit size and endianness
of any binaries to ensure it matches the target architecture.
This test fails if any binaries don't match the type since there would be an
incompatibility.
Sometimes software, like bootloaders, might need to bypass this check.
</para></listitem>
<listitem><para><emphasis><filename>debug-deps:</filename></emphasis>
Checks that <filename>-dbg</filename> packages only depend on other
<filename>-dbg</filename> packages and not on any other types of packages,
which would cause a packaging bug.</para></listitem>
<listitem><para><emphasis><filename>dev-deps:</filename></emphasis>
Checks that <filename>-dev</filename> packages only depend on other
<filename>-dev</filename> packages and not on any other types of packages,
which would be a packaging bug.</para></listitem>
<listitem><para><emphasis><filename>pkgconfig:</filename></emphasis>
Checks <filename>.pc</filename> files for any
<filename>TMPDIR/WORKDIR</filename> paths.
Any <filename>.pc</filename> file containing these paths is incorrect
since <filename>pkg-config</filename> itself adds the correct sysroot prefix
when the files are accessed.</para></listitem>
<listitem><para><emphasis><filename>la:</filename></emphasis>
Checks <filename>.la</filename> files for any <filename>TMPDIR</filename>
paths.
Any <filename>.la</filename> file continaing these paths is incorrect since
<filename>libtool</filename> adds the correct sysroot prefix when using the
files automatically itself.</para></listitem>
<listitem><para><emphasis><filename>desktop:</filename></emphasis>
Runs the <filename>desktop-file-validate</filename> program against any
<filename>.desktop</filename> files to validate their contents against
the specification for <filename>.desktop</filename> files.</para></listitem>
</itemizedlist>
</para>
</section>
<section id='ref-classes-siteinfo'>

View File

@@ -14,9 +14,9 @@
<para>
For information on how to establish the Yocto Project files on your local development system, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#getting-started'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#getting-started'>
Getting Setup</ulink> section in the
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>

View File

@@ -285,6 +285,7 @@
<glossentry id='var-DISTRO_EXTRA_RRECOMMENDS'><glossterm>DISTRO_EXTRA_RRECOMMENDS</glossterm>
<glossdef>
<para></para>
<para>The list of packages which extend usability of the image.
Those packages will automatically be installed but can be removed by user.</para>
</glossdef>
@@ -328,6 +329,7 @@
<glossentry id='var-ENABLE_BINARY_LOCALE_GENERATION'><glossterm>ENABLE_BINARY_LOCALE_GENERATION</glossterm>
<glossdef>
<para></para>
<para>Variable that controls which locales for <filename>eglibc</filename> are
to be generated during the build (useful if the target device has 64Mbytes
of RAM or less).</para>
@@ -693,6 +695,7 @@
<glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RDEPENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RDEPENDS</glossterm>
<glossdef>
<para></para>
<para>
A list of required packages to install as part of the package being
built.
@@ -722,6 +725,7 @@
<glossentry id='var-MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS'><glossterm>MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS</glossterm>
<glossdef>
<para></para>
<para>
A list of recommended packages to install as part of the package being
built.
@@ -805,6 +809,7 @@
<glossentry id='var-MACHINE_EXTRA_RRECOMMENDS'><glossterm>MACHINE_EXTRA_RRECOMMENDS</glossterm>
<glossdef>
<para></para>
<para>
A list of optional but non-machine essential packages to install as
part of the package being built.
@@ -1230,6 +1235,7 @@
<glossentry id='var-SRC_URI_OVERRIDES_PACKAGE_ARCH'><glossterm>SRC_URI_OVERRIDES_PACKAGE_ARCH</glossterm>
<glossdef>
<para></para>
<para>
By default, the Yocto Project automatically detects whether
<filename><link linkend='var-SRC_URI'>SRC_URI</link></filename>

View File

@@ -10,9 +10,9 @@
The Yocto Project team is happy for people to experiment with the Yocto Project.
A number of places exist to find help if you run into difficulties or find bugs.
To find out how to download source code,
see the <ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#local-yp-release'>
see the <ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#local-yp-release'>
Yocto Project Release</ulink> list item in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The Yocto
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The Yocto
Project Development Manual</ulink>.
</para>
</section>
@@ -97,9 +97,9 @@
You can submit changes to the project either by creating and sending pull requests,
or by submitting patches through email.
For information on how to do both, see
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#how-to-submit-a-change'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#how-to-submit-a-change'>
How to Submit a Change</ulink> in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
</section>

View File

@@ -0,0 +1,574 @@
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<chapter id='technical-details'>
<title>Technical Details</title>
<para>
This chapter provides technical details for various parts of the Yocto Project.
Currently, topics include Yocto Project components and shared state (sstate) cache.
</para>
<section id='usingpoky-components'>
<title>Yocto Project Components</title>
<para>
The BitBake task executor together with various types of configuration files form the
Yocto Project core.
This section overviews the BitBake task executor and the
configuration files by describing what they are used for and how they interact.
</para>
<para>
BitBake handles the parsing and execution of the data files.
The data itself is of various types:
<itemizedlist>
<listitem><para><emphasis>Recipes:</emphasis> Provides details about particular
pieces of software</para></listitem>
<listitem><para><emphasis>Class Data:</emphasis> An abstraction of common build
information (e.g. how to build a Linux kernel).</para></listitem>
<listitem><para><emphasis>Configuration Data:</emphasis> Defines machine-specific settings,
policy decisions, etc.
Configuration data acts as the glue to bind everything together.</para></listitem>
</itemizedlist>
For more information on data, see the
<ulink url='http://www.yoctoproject.org/docs/1.1.1//dev-manual/dev-manual.html#yocto-project-terms'>
Yocto Project Terms</ulink> section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1//dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
<para>
BitBake knows how to combine multiple data sources together and refers to each data source
as a "<link linkend='usingpoky-changes-layers'>layer</link>".
</para>
<para>
Following are some brief details on these core components.
For more detailed information on these components see the
<link linkend='ref-structure'>'Reference: Directory Structure'</link>
appendix.
</para>
<section id='usingpoky-components-bitbake'>
<title>BitBake</title>
<para>
BitBake is the tool at the heart of the Yocto Project and is responsible
for parsing the metadata, generating a list of tasks from it,
and then executing those tasks.
To see a list of the options BitBake supports, use the following help command:
<literallayout class='monospaced'>
$ bitbake --help
</literallayout>
</para>
<para>
The most common usage for BitBake is <filename>bitbake &lt;packagename&gt;</filename>, where
<filename>packagename</filename> is the name of the package you want to build
(referred to as the "target" in this manual).
The target often equates to the first part of a <filename>.bb</filename> filename.
So, to run the <filename>matchbox-desktop_1.2.3.bb</filename> file, you
might type the following:
<literallayout class='monospaced'>
$ bitbake matchbox-desktop
</literallayout>
Several different versions of <filename>matchbox-desktop</filename> might exist.
BitBake chooses the one selected by the distribution configuration.
You can get more details about how BitBake chooses between different
target versions and providers in the
<link linkend='ref-bitbake-providers'>Preferences and Providers</link> section.
</para>
<para>
BitBake also tries to execute any dependent tasks first.
So for example, before building <filename>matchbox-desktop</filename>, BitBake
would build a cross compiler and <filename>eglibc</filename> if they had not already
been built.
<note>This release of the Yocto Project does not support the <filename>glibc</filename>
GNU version of the Unix standard C library. By default, the Yocto Project builds with
<filename>eglibc</filename>.</note>
</para>
<para>
A useful BitBake option to consider is the <filename>-k</filename> or
<filename>--continue</filename> option.
This option instructs BitBake to try and continue processing the job as much
as possible even after encountering an error.
When an error occurs, the target that
failed and those that depend on it cannot be remade.
However, when you use this option other dependencies can still be processed.
</para>
</section>
<section id='usingpoky-components-metadata'>
<title>Metadata (Recipes)</title>
<para>
The <filename>.bb</filename> files are usually referred to as "recipes."
In general, a recipe contains information about a single piece of software.
The information includes the location from which to download the source patches
(if any are needed), which special configuration options to apply,
how to compile the source files, and how to package the compiled output.
</para>
<para>
The term "package" can also be used to describe recipes.
However, since the same word is used for the packaged output from the Yocto
Project (i.e. <filename>.ipk</filename> or <filename>.deb</filename> files),
this document avoids using the term "package" when refering to recipes.
</para>
</section>
<section id='usingpoky-components-classes'>
<title>Classes</title>
<para>
Class files (<filename>.bbclass</filename>) contain information that is useful to share
between metadata files.
An example is the Autotools class, which contains
common settings for any application that Autotools uses.
The <link linkend='ref-classes'>Reference: Classes</link> appendix provides details
about common classes and how to use them.
</para>
</section>
<section id='usingpoky-components-configuration'>
<title>Configuration</title>
<para>
The configuration files (<filename>.conf</filename>) define various configuration variables
that govern the Yocto Project build process.
These files fall into several areas that define machine configuration options,
distribution configuration options, compiler tuning options, general common configuration
options and user configuration options (<filename>local.conf</filename>, which is found
in the Yocto Project files build directory).
</para>
</section>
</section>
<section id="shared-state-cache">
<title>Shared State Cache</title>
<para>
By design, the Yocto Project build system builds everything from scratch unless
BitBake can determine that parts don't need to be rebuilt.
Fundamentally, building from scratch is attractive as it means all parts are
built fresh and there is no possibility of stale data causing problems.
When developers hit problems, they typically default back to building from scratch
so they know the state of things from the start.
</para>
<para>
Building an image from scratch is both an advantage and a disadvantage to the process.
As mentioned in the previous paragraph, building from scratch ensures that
everything is current and starts from a known state.
However, building from scratch also takes much longer as it generally means
rebuiding things that don't necessarily need rebuilt.
</para>
<para>
The Yocto Project implements shared state code that supports incremental builds.
The implementation of the shared state code answers the following questions that
were fundamental roadblocks within the Yocto Project incremental build support system:
<itemizedlist>
<listitem>What pieces of the system have changed and what pieces have not changed?</listitem>
<listitem>How are changed pieces of software removed and replaced?</listitem>
<listitem>How are pre-built components that don't need to be rebuilt from scratch
used when they are available?</listitem>
</itemizedlist>
</para>
<para>
For the first question, the build system detects changes in the "inputs" to a given task by
creating a checksum (or signature) of the task's inputs.
If the checksum changes, the system assumes the inputs have changed and the task needs to be
rerun.
For the second question, the shared state (sstate) code tracks which tasks add which output
to the build process.
This means the output from a given task can be removed, upgraded or otherwise manipulated.
The third question is partly addressed by the solution for the second question
assuming the build system can fetch the sstate objects from remote locations and
install them if they are deemed to be valid.
</para>
<para>
The rest of this section goes into detail about the overall incremental build
architecture, the checksums (signatures), shared state, and some tips and tricks.
</para>
<section id='overall-architecture'>
<title>Overall Architecture</title>
<para>
When determining what parts of the system need to be built, BitBake
uses a per-task basis and does not use a per-recipe basis.
You might wonder why using a per-task basis is preferred over a per-recipe basis.
To help explain, consider having the IPK packaging backend enabled and then switching to DEB.
In this case, <filename>do_install</filename> and <filename>do_package</filename>
output are still valid.
However, with a per-recipe approach, the build would not include the
<filename>.deb</filename> files.
Consequently, you would have to invalidate the whole build and rerun it.
Rerunning everything is not the best situation.
Also in this case, the core must be "taught" much about specific tasks.
This methodology does not scale well and does not allow users to easily add new tasks
in layers or as external recipes without touching the packaged-staging core.
</para>
</section>
<section id='checksums'>
<title>Checksums (Signatures)</title>
<para>
The shared state code uses a checksum, which is a unique signature of a task's
inputs, to determine if a task needs to be run again.
Because it is a change in a task's inputs that triggers a rerun, the process
needs to detect all the inputs to a given task.
For shell tasks, this turns out to be fairly easy because
the build process generates a "run" shell script for each task and
it is possible to create a checksum that gives you a good idea of when
the task's data changes.
</para>
<para>
To complicate the problem, there are things that should not be included in
the checksum.
First, there is the actual specific build path of a given task -
the <filename>WORKDIR</filename>.
It does not matter if the working directory changes because it should not
affect the output for target packages.
Also, the build process has the objective of making native/cross packages relocatable.
The checksum therefore needs to exclude <filename>WORKDIR</filename>.
The simplistic approach for excluding the worknig directory is to set
<filename>WORKDIR</filename> to some fixed value and create the checksum
for the "run" script.
</para>
<para>
Another problem results from the "run" scripts containing functions that
might or might not get called.
The incremental build solution contains code that figures out dependencies
between shell functions.
This code is used to prune the "run" scripts down to the minimum set,
thereby alleviating this problem and making the "run" scripts much more
readable as a bonus.
</para>
<para>
So far we have solutions for shell scripts.
What about python tasks?
The same approach applies even though these tasks are more difficult.
The process needs to figure out what variables a python function accesses
and what functions it calls.
Again, the incremental build solution contains code that first figures out
the variable and function dependencies, and then creates a checksum for the data
used as the input to the task.
</para>
<para>
Like the <filename>WORKDIR</filename> case, situations exist where dependencies
should be ignored.
For these cases, you can instruct the build process to ignore a dependency
by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardepsexclude] = "MACHINE"
</literallayout>
This example ensures that the <filename>PACKAGE_ARCHS</filename> variable does not
depend on the value of <filename>MACHINE</filename>, even if it does reference it.
</para>
<para>
Equally, there are cases where we need to add dependencies BitBake is not able to find.
You can accomplish this by using a line like the following:
<literallayout class='monospaced'>
PACKAGE_ARCHS[vardeps] = "MACHINE"
</literallayout>
This example explicitly adds the <filename>MACHINE</filename> variable as a
dependency for <filename>PACKAGE_ARCHS</filename>.
</para>
<para>
Consider a case with inline python, for example, where BitBake is not
able to figure out dependencies.
When running in debug mode (i.e. using <filename>-DDD</filename>), BitBake
produces output when it discovers something for which it cannot figure out
dependencies.
The Yocto Project team has currently not managed to cover those dependencies
in detail and is aware of the need to fix this situation.
</para>
<para>
Thus far, this section has limited discussion to the direct inputs into a task.
Information based on direct inputs is referred to as the "basehash" in the code.
However, there is still the question of a task's indirect inputs, the things that
were already built and present in the build directory.
The checksum (or signature) for a particular task needs to add the hashes of all the
tasks on which the particular task depends.
Choosing which dependencies to add is a policy decision.
However, the effect is to generate a master checksum that combines the
basehash and the hashes of the task's dependencies.
</para>
<para>
While figuring out the dependencies and creating these checksums is good,
what does the Yocto Project build system do with the checksum information?
The build system uses a signature handler that is responsible for
processing the checksum information.
By default, there is a dummy "noop" signature handler enabled in BitBake.
This means that behaviour is unchanged from previous versions.
OECore uses the "basic" signature handler through this setting in the
<filename>bitbake.conf</filename> file:
<literallayout class='monospaced'>
BB_SIGNATURE_HANDLER ?= "basic"
</literallayout>
Also within the BitBake configuration file, we can give BitBake
some extra information to help it handle this information.
The following statements effectively result in a list of global
variable dependency excludes - variables never included in
any checksum:
<literallayout class='monospaced'>
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH"
BB_HASHBASE_WHITELIST += "DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS"
BB_HASHBASE_WHITELIST += "FILE_DIRNAME HOME LOGNAME SHELL TERM USER"
BB_HASHBASE_WHITELIST += "FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET"
BB_HASHTASK_WHITELIST += "(.*-cross$|.*-native$|.*-cross-initial$| \
.*-cross-intermediate$|^virtual:native:.*|^virtual:nativesdk:.*)"
</literallayout>
This example is actually where <filename>WORKDIR</filename>
is excluded since <filename>WORKDIR</filename> is constructed as a
path within <filename>TMPDIR</filename>, which is on the whitelist.
</para>
<para>
The <filename>BB_HASHTASK_WHITELIST</filename> covers dependent tasks and
excludes certain kinds of tasks from the dependency chains.
The effect of the previous example is to isolate the native, target,
and cross-components.
So, for example, toolchain changes do not force a rebuild of the whole system.
</para>
<para>
The end result of the "basic" handler is to make some dependency and
hash information available to the build.
This includes:
<literallayout class='monospaced'>
BB_BASEHASH_task-&lt;taskname&gt; - the base hashes for each task in the recipe
BB_BASEHASH_&lt;filename:taskname&gt; - the base hashes for each dependent task
BBHASHDEPS_&lt;filename:taskname&gt; - The task dependencies for each task
BB_TASKHASH - the hash of the currently running task
</literallayout>
There is also a "basichash" <filename>BB_SIGNATURE_HANDLER</filename>,
which is the same as the basic version but adds the task hash to the stamp files.
This results in any metadata change that changes the task hash,
automatically causing the task to be run again.
This removes the need to bump <filename>PR</filename>
values and changes to metadata automatically ripple across the build.
Currently, this behavior is not the default behavior.
However, it is likely that the Yocto Project team will go forward with this
behavior in the future since all the functionality exists.
The reason for the delay is the potential impact to the distribution feed
creation as they need increasing <filename>PR</filename> fields
and the Yocto Project currently lacks a mechanism to automate incrementing
this field.
</para>
</section>
<section id='shared-state'>
<title>Shared State</title>
<para>
Checksums and dependencies, as discussed in the previous section, solve half the
problem.
The other part of the problem is being able to use checksum information during the build
and being able to reuse or rebuild specific components.
</para>
<para>
The shared state class (<filename>sstate.bbclass</filename>)
is a relatively generic implementation of how to "capture" a snapshot of a given task.
The idea is that the build process does not care about the source of a task's output.
Output could be freshly built or it could be downloaded and unpacked from
somewhere - the build process doesn't need to worry about its source.
</para>
<para>
There are two types of output, one is just about creating a directory
in <filename>WORKDIR</filename>.
A good example is the output of either <filename>do_install</filename> or
<filename>do_package</filename>.
The other type of output occurs when a set of data is merged into a shared directory
tree such as the sysroot.
</para>
<para>
The Yocto Project team has tried to keep the details of the implementation hidden in
<filename>sstate.bbclass</filename>.
From a user's perspective, adding shared state wrapping to a task
is as simple as this <filename>do_deploy</filename> example taken from
<filename>do_deploy.bbclass</filename>:
<literallayout class='monospaced'>
DEPLOYDIR = "${WORKDIR}/deploy-${PN}"
SSTATETASKS += "do_deploy"
do_deploy[sstate-name] = "deploy"
do_deploy[sstate-inputdirs] = "${DEPLOYDIR}"
do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
python do_deploy_setscene () {
sstate_setscene(d)
}
addtask do_deploy_setscene
</literallayout>
In the example, we add some extra flags to the task, a name field ("deploy"), an
input directory where the task sends data, and the output
directory where the data from the task should eventually be copied.
We also add a <filename>_setscene</filename> variant of the task and add the task
name to the <filename>SSTATETASKS</filename> list.
</para>
<para>
If you have a directory whose contents you need to preserve, you can do this with
a line like the following:
<literallayout class='monospaced'>
do_package[sstate-plaindirs] = "${PKGD} ${PKGDEST}"
</literallayout>
This method, as well as the following example, also works for mutliple directories.
<literallayout class='monospaced'>
do_package[sstate-inputdirs] = "${PKGDESTWORK} ${SHLIBSWORKDIR}"
do_package[sstate-outputdirs] = "${PKGDATA_DIR} ${SHLIBSDIR}"
do_package[sstate-lockfile] = "${PACKAGELOCK}"
</literallayout>
These methods also include the ability to take a lockfile when manipulating
shared state directory structures since some cases are sensitive to file
additions or removals.
</para>
<para>
Behind the scenes, the shared state code works by looking in
<filename>SSTATE_DIR</filename> and
<filename>SSTATE_MIRRORS</filename> for shared state files.
Here is an example:
<literallayout class='monospaced'>
SSTATE_MIRRORS ?= "\
file://.* http://someserver.tld/share/sstate/ \n \
file://.* file:///some/local/dir/sstate/"
</literallayout>
</para>
<para>
The shared state package validity can be detected just by looking at the
filename since the filename contains the task checksum (or signature) as
described earlier in this section.
If a valid shared state package is found, the build process downloads it
and uses it to accelerate the task.
</para>
<para>
The build processes uses the <filename>*_setscene</filename> tasks
for the task acceleration phase.
BitBake goes through this phase before the main execution code and tries
to accelerate any tasks for which it can find shared state packages.
If a shared state package for a task is available, the shared state
package is used.
This means the task and any tasks on which it is dependent are not
executed.
</para>
<para>
As a real world example, the aim is when building an IPK-based image,
only the <filename>do_package_write_ipk</filename> tasks would have their
shared state packages fetched and extracted.
Since the sysroot is not used, it would never get extracted.
This is another reason why a task-based approach is preferred over a
recipe-based approach, which would have to install the output from every task.
</para>
</section>
<section id='tips-and-tricks'>
<title>Tips and Tricks</title>
<para>
The code in the Yocto Project that supports incremental builds is not
simple code.
This section presents some tips and tricks that help you work around
issues related to shared state code.
</para>
<section id='debugging'>
<title>Debugging</title>
<para>
When things go wrong, debugging needs to be straightforward.
Because of this, the Yocto Project team included strong debugging
tools:
<itemizedlist>
<listitem><para>Whenever a shared state package is written out, so is a
corresponding <filename>.siginfo</filename> file.
This practice results in a pickled python database of all
the metadata that went into creating the hash for a given shared state
package.</para></listitem>
<listitem><para>If BitBake is run with the <filename>--dump-signatures</filename>
(or <filename>-S</filename>) option, BitBake dumps out
<filename>.siginfo</filename> files in
the stamp directory for every task it would have executed instead of
building the specified target package.</para></listitem>
<listitem><para>There is a <filename>bitbake-diffsigs</filename> command that
can process these <filename>.siginfo</filename> files.
If one file is specified, it will dump out the dependency
information in the file.
If two files are specified, it will compare the two files and dump out
the differences between the two.
This allows the question of "What changed between X and Y?" to be
answered easily.</para></listitem>
</itemizedlist>
</para>
</section>
<section id='invalidating-shared-state'>
<title>Invalidating Shared State</title>
<para>
The shared state code uses checksums and shared state memory
cache to avoid unnecessarily rebuilding tasks.
As with all schemes, this one has some drawbacks.
It is possible that you could make implicit changes that are not factored
into the checksum calculation, but do affect a task's output.
A good example is perhaps when a tool changes its output.
Let's say that the output of <filename>rpmdeps</filename> needed to change.
The result of the change should be that all the "package", "package_write_rpm",
and "package_deploy-rpm" shared state cache items would become invalid.
But, because this is a change that is external to the code and therefore implicit,
the associated shared state cache items do not become invalidated.
In this case, the build process would use the cached items rather than running the
task again.
Obviously, these types of implicit changes can cause problems.
</para>
<para>
To avoid these problems during the build, you need to understand the effects of any
change you make.
Note that any changes you make directly to a function automatically are factored into
the checksum calculation and thus, will invalidate the associated area of sstate cache.
You need to be aware of any implicit changes that are not obvious changes to the
code and could affect the output of a given task.
Once you are aware of such a change, you can take steps to invalidate the cache
and force the task to run.
The step to take is as simple as changing a function's comments in the source code.
For example, to invalidate package shared state files, change the comment statments
of <filename>do_package</filename> or the comments of one of the functions it calls.
The change is purely cosmetic, but it causes the checksum to be recalculated and
forces the task to be run again.
</para>
<note>
For an example of a commit that makes a cosmetic change to invalidate
a shared state, see this
<ulink url='http://git.yoctoproject.org/cgit.cgi/poky/commit/meta/classes/package.bbclass?id=737f8bbb4f27b4837047cb9b4fbfe01dfde36d54'>commit</ulink>.
</note>
</section>
</section>
</section>
</chapter>
<!--
vim: expandtab tw=80 ts=4
-->

View File

@@ -4,213 +4,84 @@
<title>Using the Yocto Project</title>
<para>
This section gives an overview of the components that make up the Yocto Project
followed by information about Yocto Project builds and dealing with any
problems that might arise.
This chapter describes common usage for the Yocto Project.
The information is introductory in nature as other manuals in the Yocto Project
provide more details on how to use the Yocto Project.
</para>
<section id='usingpoky-components'>
<title>Yocto Project Components</title>
<para>
The BitBake task executor together with various types of configuration files form the
Yocto Project core.
This section overviews the BitBake task executor and the
configuration files by describing what they are used for and they they interact.
</para>
<para>
BitBake handles the parsing and execution of the data files.
The data itself is of various types:
<itemizedlist>
<listitem><para><emphasis>Recipes:</emphasis> Provides details about particular
pieces of software</para></listitem>
<listitem><para><emphasis>Class Data:</emphasis> An abstraction of common build
information (e.g. how to build a Linux kernel).</para></listitem>
<listitem><para><emphasis>Configuration Data:</emphasis> Defines machine-specific settings,
policy decisions, etc.
Configuration data acts a the glue to bind everything together.</para></listitem>
</itemizedlist>
For more information on data, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#yocto-project-terms'>
Yocto Project Terms</ulink> section in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>
The Yocto Project Development Manual</ulink>.
</para>
<para>
BitBake knows how to combine multiple data sources together and refers to each data source
as a <link linkend='usingpoky-changes-layers'>'layer'</link>.
</para>
<para>
Following are some brief details on these core components.
For more detailed information on these components see the
<link linkend='ref-structure'>'Reference: Directory Structure'</link>
appendix.
</para>
<section id='usingpoky-components-bitbake'>
<title>BitBake</title>
<para>
BitBake is the tool at the heart of the Yocto Project and is responsible
for parsing the metadata, generating a list of tasks from it,
and then executing those tasks.
To see a list of the options BitBake supports, use the following help command:
<literallayout class='monospaced'>
$ bitbake --help
</literallayout>
</para>
<para>
The most common usage for BitBake is <filename>bitbake &lt;packagename&gt;</filename>, where
<filename>packagename</filename> is the name of the package you want to build
(referred to as the "target" in this manual).
The target often equates to the first part of a <filename>.bb</filename> filename.
So, to run the <filename>matchbox-desktop_1.2.3.bb</filename> file, you
might type the following:
<literallayout class='monospaced'>
$ bitbake matchbox-desktop
</literallayout>
Several different versions of <filename>matchbox-desktop</filename> might exist.
BitBake chooses the one selected by the distribution configuration.
You can get more details about how BitBake chooses between different
target versions and providers in the
<link linkend='ref-bitbake-providers'>Preferences and Providers</link> section.
</para>
<para>
BitBake also tries to execute any dependent tasks first.
So for example, before building <filename>matchbox-desktop</filename>, BitBake
would build a cross compiler and <filename>eglibc</filename> if they had not already
been built.
<note>This release of the Yocto Project does not support the <filename>glibc</filename>
GNU version of the Unix standard C library. By default, the Yocto Project builds with
<filename>eglibc</filename>.</note>
</para>
<para>
A useful BitBake option to consider is the <filename>-k</filename> or
<filename>--continue</filename> option.
This option instructs BitBake to try and continue processing the job as much
as possible even after encountering an error.
When an error occurs, the target that
failed and those that depend on it cannot be remade.
However, when you use this option other dependencies can still be processed.
</para>
</section>
<section id='usingpoky-components-metadata'>
<title>Metadata (Recipes)</title>
<para>
The <filename>.bb</filename> files are usually referred to as "recipes."
In general, a recipe contains information about a single piece of software.
The information includes the location from which to download the source patches
(if any are needed), which special configuration options to apply,
how to compile the source files, and how to package the compiled output.
</para>
<para>
The term "package" can also be used to describe recipes.
However, since the same word is used for the packaged output from the Yocto
Project (i.e. <filename>.ipk</filename> or <filename>.deb</filename> files),
this document avoids using the term "package" to refer to recipes.
</para>
</section>
<section id='usingpoky-components-classes'>
<title>Classes</title>
<para>
Class files (<filename>.bbclass</filename>) contain information that is useful to share
between metadata files.
An example is the Autotools class, which contains
common settings for any application that Autotools uses.
The <link linkend='ref-classes'>Reference: Classes</link> appendix provides details
about common classes and how to use them.
</para>
</section>
<section id='usingpoky-components-configuration'>
<title>Configuration</title>
<para>
The configuration files (<filename>.conf</filename>) define various configuration variables
that govern the Yocto Project build process.
These files fall into several areas that define machine configuration options,
distribution configuration options, compiler tuning options, general common configuration
options and user configuration options (<filename>local.conf</filename>, which is found
in the Yocto Project files build directory).
</para>
</section>
</section>
<section id='usingpoky-build'>
<title>Running a Build</title>
<para>
You can find information on how to build an image using the Yocto Project in the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#building-image'>
You can find general information on how to build an image using the
Yocto Project in the
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#building-image'>
Building an Image</ulink> section of the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink>.
This section provides a quick overview.
This section provides a summary of the build process and provides information
for less obvious aspects of the build process.
</para>
<para>
The first thing you need to do is set up the Yocto Project build environment by sourcing
the environment setup script as follows:
<literallayout class='monospaced'>
$ source oe-init-build-env [build_dir];
</literallayout>
</para>
<section id='build-overview'>
<title>Build Overview</title>
<para>
The <filename>build_dir</filename> is optional and specifies the directory Yocto Project
uses for the build.
If you do not specify a build directory it defaults to <filename>build</filename>
in the Yocto Project files directory structure.
A common practice is to use a different build directory for different targets.
For example, <filename>~/build/x86</filename> for a <filename>qemux86</filename>
target, and <filename>~/build/arm</filename> for a <filename>qemuarm</filename> target.
See <link linkend="structure-core-script">oe-init-build-env</link>
for more information on this script.
</para>
<para>
The first thing you need to do is set up the Yocto Project build environment by sourcing
the environment setup script as follows:
<literallayout class='monospaced'>
$ source oe-init-build-env [build_dir]
</literallayout>
</para>
<para>
Once the Yocto Project build environment is set up, you can build a target using:
<literallayout class='monospaced'>
<para>
The <filename>build_dir</filename> is optional and specifies the directory Yocto Project
uses for the build.
If you do not specify a build directory it defaults to <filename>build</filename>
in your current working directory.
A common practice is to use a different build directory for different targets.
For example, <filename>~/build/x86</filename> for a <filename>qemux86</filename>
target, and <filename>~/build/arm</filename> for a <filename>qemuarm</filename> target.
See <link linkend="structure-core-script">oe-init-build-env</link>
for more information on this script.
</para>
<para>
Once the Yocto Project build environment is set up, you can build a target using:
<literallayout class='monospaced'>
$ bitbake &lt;target&gt;
</literallayout>
</para>
</literallayout>
</para>
<para>
The <filename>target</filename> is the name of the recipe you want to build.
Common targets are the images in <filename>meta/recipes-core/images</filename>,
<filename>/meta/recipes-sato/images</filename>, etc. all found in the Yocto Project
files.
Or, the target can be the name of a recipe for a specific piece of software such as
<application>busybox</application>.
For more details about the images Yocto Project supports, see the
<link linkend="ref-images">'Reference: Images'</link> appendix.
</para>
<para>
The <filename>target</filename> is the name of the recipe you want to build.
Common targets are the images in <filename>meta/recipes-core/images</filename>,
<filename>/meta/recipes-sato/images</filename>, etc. all found in the Yocto Project
files.
Or, the target can be the name of a recipe for a specific piece of software such as
<application>busybox</application>.
For more details about the images Yocto Project supports, see the
<link linkend="ref-images">'Reference: Images'</link> appendix.
</para>
<note>
Building an image without GNU Public License Version 3 (GPLv3) components is
only supported for minimal and base images.
See <link linkend='ref-images'>'Reference: Images'</link> for more information.
</note>
<note>
Building an image without GNU Public License Version 3 (GPLv3) components is
only supported for minimal and base images.
See <link linkend='ref-images'>'Reference: Images'</link> for more information.
</note>
</section>
<note>
When building an image using GPL components, you need to maintain your original
settings and not switch back and forth applying different versions of the GNU
Public License.
If you rebuild using different versions of GPL, dependency errors might occur
due to some components not being rebuilt.
</note>
<section id='building-an-image-using-gpl-components'>
<title>Building an Image Using GPL Components</title>
<para>
When building an image using GPL components, you need to maintain your original
settings and not switch back and forth applying different versions of the GNU
Public License.
If you rebuild using different versions of GPL, dependency errors might occur
due to some components not being rebuilt.
</para>
</section>
</section>
<section id='usingpoky-install'>
@@ -222,9 +93,9 @@
<filename class="directory">tmp/deploy/images</filename>.
For information on how to run pre-built images such as <filename>qemux86</filename>
and <filename>qemuarm</filename>, see the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html#using-pre-built'>
Using Pre-Built Binaries and QEMU</ulink> section in the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink>.
For information about how to install these images, see the documentation for your
particular board/machine.

View File

@@ -6,7 +6,7 @@
<section id='fake-title'>
<title>Yocto Project Quick Start</title>
<para>Copyright &copy; 2010-2011 Linux Foundation</para>
<para>Copyright &copy; 2010-2012 Linux Foundation</para>
</section>
<section id='welcome'>
@@ -37,13 +37,13 @@
Finally, you might find the Frequently Asked Questions (FAQ) for the Yocto Project
at <ulink url='https://wiki.yoctoproject.org/wiki/FAQ'>Yocto Project FAQ</ulink> and
the FAQ appendix located in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink> helpful.
</para>
<note>
Due to production processes, there could be differences between the Yocto Project
documentation bundled in the release tarball and the
<ulink url='http://www.yoctoproject.org/docs/1.1/yocto-project-qs/yocto-project-qs.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/yocto-project-qs/yocto-project-qs.html'>
Yocto Project Quick Start</ulink> on
the <ulink url='http://www.yoctoproject.org'>Yocto Project</ulink> website.
For the latest version of this manual, see the manual on the website.
@@ -130,7 +130,7 @@
<para>A host system running a supported Linux distribution (i.e. recent releases of
Fedora, openSUSE, Debian, and Ubuntu).
If the host system supports multiple cores and threads, you can configure the
Yocto Project build system to increase the time needed to build images
Yocto Project build system to decrease the time needed to build images
significantly.
</para>
</listitem>
@@ -149,7 +149,7 @@
The Yocto Project team is continually verifying more and more Linux
distributions with each release.
In general, if you have the current release minus one of the following
distributions you should no problems.
distributions you should have no problems.
<itemizedlist>
<listitem><para>Ubuntu</para></listitem>
<listitem><para>Fedora</para></listitem>
@@ -191,33 +191,44 @@
<para>
Packages and package installation vary depending on your development system.
In general, you need to have root access and then install the required packages.
The next few sections show you how to get set up with the right packages for
Ubuntu, Fedora, and openSUSE.
</para>
<section id='ubuntu'>
<title>Ubuntu</title>
<note><para>
If you are using a Fedora version prior to version 15, you will need to take some
extra steps to enable <filename>sudo</filename>.
See the <ulink url='https://fedoraproject.org/wiki/Configuring_Sudo'>Configuring Sudo</ulink>
wiki page for details.
</para></note>
<para>
If your distribution is Ubuntu, you need to be running the bash shell.
You can be sure you are running this shell by entering the following command and
selecting "No" at the prompt:
<literallayout class='monospaced'>
$ sudo dpkg-reconfigure dash
</literallayout>
</para>
<para>
The packages you need for a Debian-based host are shown in the following command:
</para>
<para>
The packages you need for a supported Ubuntu distribution are shown in the following command:
</para>
<literallayout class='monospaced'>
<literallayout class='monospaced'>
$ sudo apt-get install sed wget cvs subversion git-core coreutils \
unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk \
python-pysqlite2 diffstat help2man make gcc build-essential \
g++ desktop-file-utils chrpath libgl1-mesa-dev libglu1-mesa-dev \
mercurial autoconf automake groff libtool xterm
</literallayout>
</literallayout>
</section>
<para>
The packages you need for an RPM-based host like Fedora and openSUSE,
respectively, are as follows:
</para>
<section id='fedora'>
<title>Fedora</title>
<literallayout class='monospaced'>
<para>
The packages you need for a supported Fedora distribution are shown in the following
commands:
</para>
<literallayout class='monospaced'>
$ sudo yum groupinstall "development tools"
$ sudo yum install python m4 make wget curl ftp hg tar bzip2 gzip \
unzip python-psyco perl texinfo texi2html diffstat openjade \
@@ -227,14 +238,31 @@
perl-ExtUtils-MakeMaker tcl-devel gettext chrpath ncurses apr \
SDL-devel mesa-libGL-devel mesa-libGLU-devel gnome-doc-utils \
autoconf automake libtool xterm
</literallayout>
</literallayout>
<literallayout class='monospaced'>
<note><para>
If you are using a Fedora version prior to version 15, you will need to take some
extra steps to enable <filename>sudo</filename>, or you will need to run
the commands as root user.
See the <ulink url='https://fedoraproject.org/wiki/Configuring_Sudo'>Configuring Sudo</ulink>
wiki page for details.
</para></note>
</section>
<section id='opensuse'>
<title>openSUSE</title>
<para>
The packages you need for a supported openSUSE distribution are shown in the following
command:
</para>
<literallayout class='monospaced'>
$ sudo zypper install python gcc gcc-c++ libtool \
subversion git chrpath automake \
help2man diffstat texinfo mercurial wget
</literallayout>
subversion git chrpath automake make wget help2man \
diffstat texinfo mercurial freeglut-devel libSDL-devel
</literallayout>
</section>
</section>
<section id='releases'>
@@ -257,9 +285,9 @@
development system.
Doing so allows you to contribute back to the project.
For information on how to get set up using this method, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#local-yp-release'>Yocto
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#local-yp-release'>Yocto
Project Release</ulink>" item in
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The Yocto Project
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The Yocto Project
Development Manual</ulink>.
</para>
</section>
@@ -278,7 +306,7 @@
<para>Build an image and run it in the QEMU emulator</para>
</listitem>
<listitem>
<para>Or, use a pre-built image and run it in the QEMU emulator</para>
<para>Use a pre-built image and run it in the QEMU emulator</para>
</listitem>
</itemizedlist>
@@ -317,23 +345,22 @@
If you encounter problems with the Yocto Project finding and downloading source code, see
the FAQ entry "How does Poky obtain source code and will it work behind my
firewall or proxy server?" in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.
</para></note>
<para>
<literallayout class='monospaced'>
$ wget http://www.yoctoproject.org/downloads/poky/poky-edison-6.0.tar.bz2
$ tar xjf poky-edison-6.0.tar.bz2
$ source poky-edison-6.0/oe-init-build-env edison-6.0-build
$ wget http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/poky-edison-6.0.1.tar.bz2
$ tar xjf poky-edison-6.0.1.tar.bz2
$ source poky-edison-6.0.1/oe-init-build-env edison-6.0.1-build
</literallayout>
</para>
<tip><para>
To help conserve disk space during builds, you can add the following statement
to your <filename>local.conf</filename> file in the Yocto Project build
directory, which for this example
is <filename>edison-6.0-build</filename>.
to your project's configuration file, which for this example
is <filename>edison-6.0.1-build/conf/local.conf</filename>.
Adding this statement deletes the work directory used for building a package
once the package is built.
<literallayout class='monospaced'>
@@ -342,21 +369,20 @@
</para></tip>
<itemizedlist>
<listitem><para>The first command retrieves the Yocto Project release tarball from the
source repositories.
Notice, the example uses the <filename>wget</filename> shell command.
<listitem><para>In the previous example, the first command retrieves the Yocto Project
release tarball from the source repositories using the
<filename>wget</filename> command.
Alternatively, you can go to the
<ulink url='http://www.yoctoproject.org'>Yocto Project website</ulink> downloads
area to retrieve the tarball.</para></listitem>
<ulink url='http://www.yoctoproject.org/download'>Yocto Project website</ulink>
Downloads page to retrieve the tarball.</para></listitem>
<listitem><para>The second command extracts the files from the tarball and places
them into a directory named <filename>poky-edison-6.0</filename> in the current
directory.
</para></listitem>
them into a directory named <filename>poky-edison-6.0.1</filename> in the current
directory.</para></listitem>
<listitem><para>The third command runs the Yocto Project environment setup script.
Running this script defines Yocto Project build environment settings needed to
complete the build.
The script also creates the Yocto Project
build directory, which is <filename>edison-6.0-build</filename> in this case.
build directory, which is <filename>edison-6.0.1-build</filename> in this case.
After the script runs, your current working directory is set
to the build directory.
Later, when the build completes, the build directory contains all the files
@@ -364,32 +390,31 @@
</para></listitem>
</itemizedlist>
<para>
Take some time to examine your <filename>conf/local.conf</filename> file found in the
Yocto Project build directory.
The defaults in the <filename>local.conf</filename> should work fine.
Take some time to examine your <filename>local.conf</filename> file
in your project's configuration directory.
The defaults in that file should work fine.
However, there are some variables of interest at which you might look.
</para>
<para>
By default, the target architecture for the build is <filename>qemux86</filename>,
which is an image that can be used in the QEMU emulator and is targeted for an
which produces an image that can be used in the QEMU emulator and is targeted at an
<trademark class='registered'>Intel</trademark> 32-bit based architecture.
To change this default, edit the value of the <filename>MACHINE</filename> variable in the
<filename>conf/local.conf</filename> file in the build directory before
launching the build.
To change this default, edit the value of the <filename>MACHINE</filename> variable
in the configuration file before launching the build.
</para>
<para>
Another couple of variables of interest are the
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink> and the
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> variables.
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#var-BB_NUMBER_THREADS'><filename>BB_NUMBER_THREADS</filename></ulink> and the
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#var-PARALLEL_MAKE'><filename>PARALLEL_MAKE</filename></ulink> variables.
By default, these variables are commented out.
However, if you have a multi-core CPU you might want to remove the comment
and set the variable
However, if you have a multi-core CPU you might want to uncomment
the lines and set the variable
<filename>BB_NUMBER_THREADS</filename> equal to twice the number of your
host's processor cores.
Also, you could set the variable <filename>PARALLEL_MAKE</filename> equal to the number
of processor cores.
Also, you could set the variable <filename>PARALLEL_MAKE</filename> equal to
1.5 times the number of processor cores.
Setting these variables can significantly shorten your build time.
</para>
@@ -398,10 +423,10 @@
the image.
By default, the Yocto Project build system uses the RPM package manager.
You can control this configuration by using the
<filename><ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
<filename><ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#var-PACKAGE_CLASSES'><filename>PACKAGE_CLASSES</filename></ulink></filename> variable.
For additional package manager selection information, see
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>" in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-classes-package'>Packaging - <filename>package*.bbclass</filename></ulink>" in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.
</para>
@@ -410,15 +435,15 @@
<filename>core-image-sato</filename> in this example.
For information on the <filename>-k</filename> option use the
<filename>bitbake --help</filename> command or see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#usingpoky-components-bitbake'>BitBake</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>The Yocto Project Reference Manual</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#usingpoky-components-bitbake'>BitBake</ulink>" section in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>The Yocto Project Reference Manual</ulink>.
<literallayout class='monospaced'>
$ bitbake -k core-image-sato
</literallayout>
<note><para>
BitBake requires Python 2.6 or 2.7. For more information on this requirement,
see the FAQ appendix in
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html'>
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html'>
The Yocto Project Reference Manual</ulink>.
</para></note>
The final command runs the image:
@@ -471,10 +496,10 @@
<title>Installing the Toolchain</title>
<para>
You can download the pre-built toolchain, which includes the <filename>runqemu</filename>
script and support files, from
<ulink url='http://yoctoproject.org/downloads/yocto-1.1/toolchain/'></ulink>.
script and support files, from the appropriate directory under
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/toolchain/'></ulink>.
Toolchains are available for 32-bit and 64-bit development systems from the
<filename>i686</filename> and <filename>x86_64</filename> folders, respectively.
<filename>i686</filename> and <filename>x86_64</filename> directories, respectively.
Each type of development system supports five target architectures.
The tarball files are named such that a string representing the host system appears
first in the filename and then is immediately followed by a string representing
@@ -482,7 +507,7 @@
</para>
<literallayout class='monospaced'>
yocto-eglibc&lt;<emphasis>host_system</emphasis>&gt;-&lt;<emphasis>arch</emphasis>&gt;-toolchain-gmae-&lt;<emphasis>release</emphasis>&gt;.tar.bz2
poky-eglibc&lt;<emphasis>host_system</emphasis>&gt;-&lt;<emphasis>arch</emphasis>&gt;-toolchain-gmae-&lt;<emphasis>release</emphasis>&gt;.tar.bz2
Where:
&lt;<emphasis>host_system</emphasis>&gt; is a string representing your development system:
@@ -500,7 +525,7 @@
</para>
<literallayout class='monospaced'>
yocto-eglibc-x86_64-i586-toolchain-gmae-1.1.tar.bz2
poky-eglibc-x86_64-i586-toolchain-gmae-1.1.1.tar.bz2
</literallayout>
<para>
@@ -513,16 +538,16 @@
<para>
<literallayout class='monospaced'>
$ cd /
$ sudo tar -xvjf ~/toolchains/yocto-eglibc-x86_64-i586-toolchain-gmae-1.1.tar.bz2
$ sudo tar -xvjf ~/toolchains/poky-eglibc-x86_64-i586-toolchain-gmae-1.1.1.tar.bz2
</literallayout>
</para>
<para>
For more information on how to install tarballs, see the
"<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Yocto Project Build Tree</ulink>" sections in
<ulink url='http://www.yoctoproject.org/docs/1.1/adt-manual/adt-manual.html'>The Yocto Project
Application Development Toolkit (ADT) Development Manual</ulink>.
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#using-an-existing-toolchain-tarball'>Using a Cross-Toolchain Tarball</ulink>" and
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html#using-the-toolchain-from-within-the-build-tree'>Using BitBake and the Yocto Project Build Tree</ulink>" sections in
<ulink url='http://www.yoctoproject.org/docs/1.1.1/adt-manual/adt-manual.html'>The Yocto Project
Application Development Toolkit (ADT) User's Guide</ulink>.
</para>
</section>
@@ -531,7 +556,7 @@
<para>
You can download the pre-built Linux kernel suitable for running in the QEMU emulator from
<ulink url='http://yoctoproject.org/downloads/yocto-1.1/machines/qemu'></ulink>.
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/qemu'></ulink>.
Be sure to use the kernel that matches the architecture you want to simulate.
Download areas exist for the five supported machine architectures:
<filename>qemuarm</filename>, <filename>qemumips</filename>, <filename>qemuppc</filename>,
@@ -541,24 +566,19 @@
<para>
Most kernel files have one of the following forms:
<literallayout class='monospaced'>
*zImage-&lt;<emphasis>kernel-rev</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;-&lt;<emphasis>release</emphasis>&gt;*.bin
vmlinux-&lt;<emphasis>kernel-rev</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;-&lt;<emphasis>release</emphasis>&gt;*.bin
*zImage-qemu&lt;<emphasis>arch</emphasis>&gt;.bin
vmlinux-qemu&lt;<emphasis>arch</emphasis>&gt;.bin
Where:
&lt;<emphasis>kernel-rev</emphasis>&gt; is the base Linux kernel revision
(e.g. 2.6.37).
&lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
x86, x86-64, ppc, mips, or arm.
&lt;<emphasis>release</emphasis>&gt; is the version of Yocto Project.
</literallayout>
</para>
<para>
You can learn more about downloading a Yocto Project kernel in the
"<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html#local-kernel-files'>Linux Yocto Kernel</ulink>" section of
<ulink url='http://www.yoctoproject.org/docs/1.1/dev-manual/dev-manual.html'>The
"<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html#local-kernel-files'>Linux Yocto Kernel</ulink>" section of
<ulink url='http://www.yoctoproject.org/docs/1.1.1/dev-manual/dev-manual.html'>The
Yocto Project Development Manual</ulink>.
</para>
</section>
@@ -568,7 +588,7 @@
<para>
You can also download the filesystem image suitable for your target architecture from
<ulink url='http://yoctoproject.org/downloads/yocto-1.1/machines/qemu'></ulink>.
<ulink url='http://downloads.yoctoproject.org/releases/yocto/yocto-1.1.1/machines/qemu'></ulink>.
Again, be sure to use the filesystem that matches the architecture you want
to simulate.
</para>
@@ -581,19 +601,17 @@
The <filename>tar</filename> form can be flattened out in your host development system
and used for Yocto Project build purposes.
<literallayout class='monospaced'>
yocto-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;-&lt;<emphasis>release</emphasis>&gt;.rootfs.ext3.bz2
yocto-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;-&lt;<emphasis>release</emphasis>&gt;.rootfs.tar.bz2
core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.ext3
core-image-&lt;<emphasis>profile</emphasis>&gt;-qemu&lt;<emphasis>arch</emphasis>&gt;.tar.bz2
Where:
&lt;<emphasis>profile</emphasis>&gt; is the filesystem image's profile:
lsb, lsb-dev, lsb-sdk, minimal, minimal-dev, sato, sato-dev, or sato-sdk.
lsb, lsb-dev, lsb-sdk, lsb-qt3, minimal, minimal-dev, sato, sato-dev, or sato-sdk.
For information on these types of image profiles, see
<ulink url='http://www.yoctoproject.org/docs/1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink> in the Yocto Project Reference Manual.
<ulink url='http://www.yoctoproject.org/docs/1.1.1/poky-ref-manual/poky-ref-manual.html#ref-images'>Reference: Images</ulink> in the Yocto Project Reference Manual.
&lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
x86, x86-64, ppc, mips, or arm.
&lt;<emphasis>release</emphasis>&gt; is the version of Yocto Project.
</literallayout>
</para>
</section>
@@ -605,7 +623,7 @@
Before you start the QEMU emulator, you need to set up the emulation environment.
The following command form sets up the emulation environment.
<literallayout class='monospaced'>
$ source /opt/poky/1.1/environment-setup-&lt;<emphasis>arch</emphasis>&gt;-poky-linux-&lt;<emphasis>if</emphasis>&gt;
$ source /opt/poky/1.1.1/environment-setup-&lt;<emphasis>arch</emphasis>&gt;-poky-linux-&lt;<emphasis>if</emphasis>&gt;
Where:
&lt;<emphasis>arch</emphasis>&gt; is a string representing the target architecture:
@@ -635,12 +653,13 @@
<para>
Continuing with the example, the following two commands setup the emulation
environment and launch QEMU.
This example assumes the root filesystem tarball has been downloaded and expanded, and
This example assumes the toolchain tarball has been downloaded and expanded
into <filename>/opt/poky</filename> and
that the kernel and filesystem are for a 32-bit target architecture.
<literallayout class='monospaced'>
$ source /opt/poky/1.1/environment-setup-i686-poky-linux
$ runqemu qemux86 bzImage-3.0-qemux86-1.1.bin \
yocto-image-sato-qemux86-1.1.rootfs.ext3
$ source /opt/poky/1.1.1/environment-setup-i586-poky-linux
$ runqemu qemux86 bzImage-3.0-qemux86-1.1.1.bin \
core-image-sato-qemux86.ext3
</literallayout>
</para>

View File

@@ -17,13 +17,12 @@ PACKAGES =+ "${PN}-user3"
inherit useradd
# Specify which package(s) should include the user/group code.
# Make sure that any packages which install files owned by custom
# users/groups are included here. The code which adds users and
# groups is idempotent.
# You must set USERADD_PACKAGES when you inherit useradd. This
# lists which output packages will include the user/group
# creation code.
USERADD_PACKAGES = "${PN} ${PN}-user3"
# You *must* set USERADD_PARAM and/or GROUPADD_PARAM when
# You must also set USERADD_PARAM and/or GROUPADD_PARAM when
# you inherit useradd.
# USERADD_PARAM specifies command line options to pass to the

View File

@@ -1,8 +1,8 @@
DISTRO = "poky"
DISTRO_NAME = "Yocto (Built by Poky 6.0)"
DISTRO_VERSION = "1.1"
DISTRO_NAME = "Yocto (Built by Poky 6.0.1)"
DISTRO_VERSION = "1.1.1"
SDK_VENDOR = "-pokysdk"
SDK_VERSION := "${@'${DISTRO_VERSION}'.replace('snapshot-${DATE}','snapshot')}"
SDK_VERSION := "${DISTRO_VERSION}"
MAINTAINER = "Poky <poky@yoctoproject.org>"
@@ -18,6 +18,11 @@ PREFERRED_VERSION_linux-yocto_qemux86-64 ?= "3.0%"
PREFERRED_VERSION_linux-yocto_qemuarm ?= "3.0%"
PREFERRED_VERSION_linux-yocto_qemumips ?= "3.0%"
PREFERRED_VERSION_linux-yocto_qemuppc ?= "3.0%"
PREFERRED_VERSION_linux-yocto-rt_qemux86 ?= "3.0%"
PREFERRED_VERSION_linux-yocto-rt_qemux86-64 ?= "3.0%"
PREFERRED_VERSION_linux-yocto-rt_qemuarm ?= "3.0%"
PREFERRED_VERSION_linux-yocto-rt_qemumips ?= "3.0%"
PREFERRED_VERSION_linux-yocto-rt_qemuppc ?= "3.0%"
SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${TARGET_ARCH}"
SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"

View File

@@ -15,6 +15,9 @@
#DISTRO_FEATURES = "alsa bluetooth ext2 irda pcmcia usbgadget usbhost wifi nfs zeroconf pci ${DISTRO_FEATURES_LIBC}"
# If you want to get an image based on gtk+directfb without x11, Please copy this variable to build/conf/local.conf
#DISTRO_FEATURES = "alsa argp bluetooth ext2 irda largefile pcmcia usbgadget usbhost wifi xattr nfs zeroconf pci 3g directfb ${DISTRO_FEATURES_LIBC}"
# ENABLE_BINARY_LOCALE_GENERATION controls the generation of binary locale
# packages at build time using qemu-native. Disabling it (by setting it to 0)
# will save some build time at the expense of breaking i18n on devices with

View File

@@ -6,7 +6,7 @@
include conf/machine/include/tune-atom.inc
MACHINE_FEATURES = "kernel26 screen keyboard pci usbhost ext2 ext3 x86 wifi \
acpi"
acpi alsa"
KERNEL_IMAGETYPE = "bzImage"

View File

@@ -31,6 +31,8 @@ export CONFIG_SITE = "${@siteinfo_get_files(d)}"
acpaths = "default"
EXTRA_AUTORECONF = "--exclude=autopoint"
export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir}"
def autotools_set_crosscompiling(d):
if not bb.data.inherits_class('native', d):
return " cross_compiling=yes"
@@ -66,10 +68,8 @@ CONFIGUREOPTS = " --build=${BUILD_SYS} \
oe_runconf () {
if [ -x ${S}/configure ] ; then
cfgcmd="${S}/configure \
${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
bbnote "Running $cfgcmd..."
$cfgcmd || bbfatal "oe_runconf failed"
bbnote "Running ${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} $@"
${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF} "$@" || bbfatal "oe_runconf failed"
else
bbfatal "no configure script found"
fi

View File

@@ -283,7 +283,7 @@ python base_eventhandler() {
logfile.close()
}
addtask configure after do_unpack do_patch
addtask configure after do_patch
do_configure[dirs] = "${CCACHE_DIR} ${S} ${B}"
do_configure[deptask] = "do_populate_sysroot"
base_do_configure() {
@@ -327,7 +327,7 @@ python () {
# If PRINC is set, try and increase the PR value by the amount specified
princ = bb.data.getVar('PRINC', d, True)
if princ:
if princ and princ != "0":
pr = bb.data.getVar('PR', d, True)
pr_prefix = re.search("\D+",pr)
prval = re.search("\d+",pr)

View File

@@ -48,14 +48,27 @@ def set_device(e):
# something like stick DL_DIR on a different partition and this would
# throw stats gathering off. The same goes with SSTATE_DIR. However, let's
# get the basics in here and work on the cornercases later.
# A note. /proc/diskstats does not contain info on encryptfs, tmpfs, etc.
# If we end up hitting one of these fs, we'll just skip diskstats collection.
############################################################################
device=os.stat(tmpdir)
majordev=os.major(device.st_dev)
minordev=os.minor(device.st_dev)
for line in open("/proc/diskstats", "r"):
if majordev == int(line.split()[0]) and minordev == int(line.split()[1]):
rdev=line.split()[2]
file = open(bb.data.getVar('DEVFILE', e.data, True), "w")
############################################################################
# Bug 1700:
# Because tmpfs/encryptfs/ramfs etc inserts no entry in /proc/diskstats
# we set rdev to NoLogicalDevice and search for it later. If we find NLD
# we do not collect diskstats as the method to collect meaningful statistics
# for these fs types requires a bit more research.
############################################################################
rdev="NoLogicalDevice"
try:
for line in open("/proc/diskstats", "r"):
if majordev == int(line.split()[0]) and minordev == int(line.split()[1]):
rdev=line.split()[2]
except:
pass
file = open(e.data.getVar('DEVFILE', True), "w")
file.write(rdev)
file.close()
@@ -71,12 +84,15 @@ def get_diskstats(dev):
# For info on what these are, see kernel doc file iostats.txt
############################################################################
DSTAT_KEYS = ['ReadsComp', 'ReadsMerged', 'SectRead', 'TimeReads', 'WritesComp', 'SectWrite', 'TimeWrite', 'IOinProgress', 'TimeIO', 'WTimeIO']
for x in open("/proc/diskstats", "r"):
if dev in x:
diskstats_val = x.rstrip().split()[4:]
diskstats = dict(itertools.izip(DSTAT_KEYS, diskstats_val))
try:
for x in open("/proc/diskstats", "r"):
if dev in x:
diskstats_val = x.rstrip().split()[4:]
except IOError as e:
return
diskstats = dict(itertools.izip(DSTAT_KEYS, diskstats_val))
return diskstats
def set_diskdata(var, dev, data):
data.setVar(var, get_diskstats(dev))
@@ -133,10 +149,11 @@ def write_task_data(status, logfile, dev, e):
# For the best information, running things with BB_TOTAL_THREADS = "1"
# would return accurate per task results.
############################################################################
diskdata = get_diskdata("__diskdata_task", dev, e.data)
if diskdata:
for key in sorted(diskdata.iterkeys()):
file.write(key + ": " + diskdata[key] + "\n")
if dev != "NoLogicalDevice":
diskdata = get_diskdata("__diskdata_task", dev, e.data)
if diskdata:
for key in sorted(diskdata.iterkeys()):
file.write(key + ": " + diskdata[key] + "\n")
if status is "passed":
file.write("Status: PASSED \n")
else:
@@ -169,7 +186,8 @@ python run_buildstats () {
bb.mkdirhier(bsdir)
except:
pass
set_diskdata("__diskdata_build", device, e.data)
if device != "NoLogicalDevice":
set_diskdata("__diskdata_build", device, e.data)
set_timedata("__timedata_build", e.data)
build_time = os.path.join(bsdir, "build_stats")
# write start of build into build_time
@@ -185,7 +203,7 @@ python run_buildstats () {
elif isinstance(e, bb.event.BuildCompleted):
bn = get_bn(e)
dev = get_device(e)
device = get_device(e)
bsdir = os.path.join(bb.data.getVar('BUILDSTATS_BASE', e.data, True), bn)
taskdir = os.path.join(bsdir, bb.data.expand("${PF}", e.data))
build_time = os.path.join(bsdir, "build_stats")
@@ -201,10 +219,11 @@ python run_buildstats () {
file.write("Elapsed time: %0.2f seconds \n" % (time))
if cpu:
file.write("CPU usage: %0.1f%% \n" % cpu)
diskio = get_diskdata("__diskdata_build", dev, e.data)
if diskio:
for key in sorted(diskio.iterkeys()):
file.write(key + ": " + diskio[key] + "\n")
if device != "NoLogicalDevice":
diskio = get_diskdata("__diskdata_build", device, e.data)
if diskio:
for key in sorted(diskio.iterkeys()):
file.write(key + ": " + diskio[key] + "\n")
file.close()
if isinstance(e, bb.build.TaskStarted):
@@ -212,7 +231,8 @@ python run_buildstats () {
device = get_device(e)
bsdir = os.path.join(bb.data.getVar('BUILDSTATS_BASE', e.data, True), bn)
taskdir = os.path.join(bsdir, bb.data.expand("${PF}", e.data))
set_diskdata("__diskdata_task", device, e.data)
if device != "NoLogicalDevice":
set_diskdata("__diskdata_task", device, e.data)
set_timedata("__timedata_task", e.data)
try:
bb.mkdirhier(taskdir)

View File

@@ -72,3 +72,5 @@ distutils_do_install() {
}
EXPORT_FUNCTIONS do_compile do_install
export LDSHARED="${CCLD} -shared"

View File

@@ -5,8 +5,7 @@ inherit imagetest-${IMAGETEST}
LICENSE = "MIT"
PACKAGES = ""
MULTILIB_IMAGE_INSTALL ?= ""
RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${MULTILIB_IMAGE_INSTALL} ${NORMAL_FEATURE_INSTALL}"
RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_INSTALL}"
RRECOMMENDS += "${NORMAL_FEATURE_INSTALL_OPTIONAL}"
INHIBIT_DEFAULT_DEPS = "1"
@@ -54,7 +53,6 @@ IMAGE_INSTALL ?= ""
IMAGE_INSTALL[type] = "list"
IMAGE_BASENAME[export] = "1"
export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${FEATURE_INSTALL}"
export MULTILIB_PACKAGE_INSTALL ?= "${MULTILIB_IMAGE_INSTALL}"
PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}"
# Images are generally built explicitly, do not need to be part of world.

View File

@@ -38,22 +38,22 @@ IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${DEPLO
IMAGE_CMD_cramfs = "mkcramfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cramfs ${EXTRA_IMAGECMD}"
IMAGE_CMD_ext2 = "genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2"
IMAGE_CMD_ext2 = "genext2fs -b $ROOTFS_SIZE -i 4096 -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2"
IMAGE_CMD_ext2.gz () {
rm -rf ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN} && mkdir ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}
genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext2
genext2fs -b $ROOTFS_SIZE -i 4096 -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext2
gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext2
mv ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz
rmdir ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}
}
IMAGE_CMD_ext3 () {
genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3
genext2fs -b $ROOTFS_SIZE -i 4096 -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3
tune2fs -j ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3
}
IMAGE_CMD_ext3.gz () {
rm -rf ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN} && mkdir ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}
genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext3
genext2fs -b $ROOTFS_SIZE -i 4096 -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext3
tune2fs -j ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext3
gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext3
mv ${DEPLOY_DIR_IMAGE}/tmp.gz-${PN}/${IMAGE_NAME}.rootfs.ext3.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3.gz
@@ -61,7 +61,7 @@ IMAGE_CMD_ext3.gz () {
}
oe_mkext4fs () {
genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} $1
genext2fs -b $ROOTFS_SIZE -i 4096 -d ${IMAGE_ROOTFS} ${EXTRA_IMAGECMD} $1
tune2fs -O extents,uninit_bg,dir_index,has_journal $1
e2fsck -yfDC0 $1 || chk=$?
case $chk in
@@ -111,7 +111,7 @@ IMAGE_CMD_ubi () {
echo vol_flags=autoresize >> ubinize.cfg
mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS} && ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg
}
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS}"
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS}"
EXTRA_IMAGECMD = ""
EXTRA_IMAGECMD_jffs2 ?= "--pad --little-endian --eraseblock=0x40000"

View File

@@ -70,7 +70,7 @@ def qemuimagetest_main(d):
os.environ["DISPLAY"] = bb.data.getVar("DISPLAY", d, True)
os.environ["COREBASE"] = bb.data.getVar("COREBASE", d, True)
os.environ["TOPDIR"] = bb.data.getVar("TOPDIR", d, True)
os.environ["TMPDIR"] = bb.data.getVar("TMPDIR", d, True)
os.environ["OE_TMPDIR"] = bb.data.getVar("TMPDIR", d, True)
os.environ["TEST_STATUS"] = bb.data.getVar("TEST_STATUS", d, True)
os.environ["TARGET_IPSAVE"] = bb.data.getVar("TARGET_IPSAVE", d, True)
os.environ["TEST_SERIALIZE"] = bb.data.getVar("TEST_SERIALIZE", d, True)
@@ -80,9 +80,31 @@ def qemuimagetest_main(d):
bb.note("Run %s test in scenario %s" % (case, scen))
os.system("%s" % fulltestpath)
"""function to check testcase list and remove inappropriate cases"""
def check_list(list):
final_list = []
for test in list:
(scen, case, fullpath) = test
"""Skip rpm/zypper if package_rpm not set for PACKAGE_CLASSES"""
if case.find("zypper") != -1 or case.find("rpm") != -1:
if d.getVar("PACKAGE_CLASSES", True).find("rpm", 0, 11) == -1:
bb.note("skip rpm/zypper cases since package_rpm not set in PACKAGE_CLASSES")
continue
else:
final_list.append((scen, case, fullpath))
else:
final_list.append((scen, case, fullpath))
if not final_list:
raise bb.build.FuncFailed("There is no suitable testcase for this target")
return final_list
"""Generate testcase list in runtime"""
def generate_list(testlist):
list = []
final_list = []
if len(testlist) == 0:
raise bb.build.FuncFailed("No testcase defined in TEST_SCEN")
@@ -114,7 +136,8 @@ def qemuimagetest_main(d):
if not os.path.isfile(fulltestcase):
raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase)
list.append((item, casefile, fulltestcase))
return list
final_list = check_list(list)
return final_list
"""Clean tmp folder for testing"""
def clean_tmp():

View File

@@ -44,7 +44,7 @@ SPDXLICENSEMAP[MPLv1.1] = "MPL-1"
SPDXLICENSEMAP[MIT-X] = "MIT"
#Openssl variations
SPDXLICENSEMAP[openssl] = "Openssl"
SPDXLICENSEMAP[openssl] = "OpenSSL"
#Other variations
SPDXLICENSEMAP[AFL2.1] = "AFL-2"

View File

@@ -14,8 +14,11 @@ do_make_scripts() {
-C ${STAGING_KERNEL_DIR} scripts
}
addtask make_scripts before do_compile
do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
do_make_scripts[deptask] = "do_populate_sysroot"
module_do_compile() {
do_make_scripts
unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
oe_runmake KERNEL_PATH=${STAGING_KERNEL_DIR} \
KERNEL_SRC=${STAGING_KERNEL_DIR} \

View File

@@ -56,9 +56,8 @@ python __anonymous () {
map_dependencies("PACKAGE_INSTALL", d)
map_dependencies("LINGUAS_INSTALL", d)
map_dependencies("RDEPENDS", d)
pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True) + " " + d.getVar("MULTILIB_PACKAGE_INSTALL", False)
d.setVar("MULTILIB_PACKAGE_INSTALL", pinstall)
d.setVar("PACKAGE_INSTALL", "")
pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True)
d.setVar("PACKAGE_INSTALL", pinstall)
d.setVar("LINGUAS_INSTALL", "")
# FIXME, we need to map this to something, not delete it!
d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "")

View File

@@ -69,6 +69,11 @@ exec_prefix = "${STAGING_DIR_NATIVE}${prefix_native}"
libdir = "${STAGING_DIR_NATIVE}${libdir_native}"
baselib = "lib"
# Libtool's default paths are correct for the native machine
lt_cv_sys_lib_dlsearch_path_spec[unexport] = "1"
NATIVE_PACKAGE_PATH_SUFFIX = ""
bindir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"
libdir .= "${NATIVE_PACKAGE_PATH_SUFFIX}"

View File

@@ -916,16 +916,37 @@ python populate_packages () {
if file in seen:
continue
seen.append(file)
def mkdir(src, dest, p):
src = os.path.join(src, p)
dest = os.path.join(dest, p)
bb.mkdirhier(dest)
fstat = os.stat(src)
os.chmod(dest, fstat.st_mode)
os.chown(dest, fstat.st_uid, fstat.st_gid)
if p not in seen:
seen.append(p)
def mkdir_recurse(src, dest, paths):
while paths.startswith("./"):
paths = paths[2:]
p = "."
for c in paths.split("/"):
p = os.path.join(p, c)
if not os.path.exists(os.path.join(dest, p)):
mkdir(src, dest, p)
if os.path.isdir(file) and not os.path.islink(file):
bb.mkdirhier(os.path.join(root,file))
os.chmod(os.path.join(root,file), os.stat(file).st_mode)
mkdir_recurse(dvar, root, file)
continue
mkdir_recurse(dvar, root, os.path.dirname(file))
fpath = os.path.join(root,file)
dpath = os.path.dirname(fpath)
bb.mkdirhier(dpath)
if not os.path.islink(file):
os.link(file, fpath)
fstat = os.stat(file)
os.chmod(fpath, fstat.st_mode)
os.chown(fpath, fstat.st_uid, fstat.st_gid)
continue
ret = bb.copyfile(file, fpath)
if ret is False or ret == 0:
@@ -939,13 +960,13 @@ python populate_packages () {
dir = root[len(dvar):]
if not dir:
dir = os.sep
for f in files:
for f in (files + dirs):
path = os.path.join(dir, f)
if ('.' + path) not in seen:
unshipped.append(path)
if unshipped != []:
bb.warn("For recipe %s, the following files were installed but not shipped in any package:" % pn)
bb.warn("For recipe %s, the following files/directories were installed but not shipped in any package:" % pn)
for f in unshipped:
bb.warn(" " + f)
@@ -1089,7 +1110,7 @@ if [ x"$D" = "x" ]; then
fi
}
RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/bin/rpmdeps"
RPMDEPS = "${STAGING_LIBDIR_NATIVE}/rpm/bin/rpmdeps --macros ${STAGING_LIBDIR_NATIVE}/rpm/macros --define '_rpmfc_magic_path ${STAGING_DIR_NATIVE}/usr/share/misc/magic.mgc' --rpmpopt ${STAGING_LIBDIR_NATIVE}/rpm/rpmpopt"
# Collect perfile run-time dependency metadata
# Output:

View File

@@ -83,12 +83,34 @@ package_tryout_install_multilib_ipk() {
fi
done
}
split_multilib_packages() {
INSTALL_PACKAGES_NORMAL_IPK=""
INSTALL_PACKAGES_MULTILIB_IPK=""
for pkg in ${INSTALL_PACKAGES_IPK}; do
is_multilib=0
for item in ${MULTILIB_VARIANTS}; do
local pkgname_prefix="${item}-"
if [ ${pkg:0:${#pkgname_prefix}} == ${pkgname_prefix} ]; then
is_multilib=1
break
fi
done
if [ ${is_multilib} = 0 ]; then
INSTALL_PACKAGES_NORMAL_IPK="${INSTALL_PACKAGES_NORMAL_IPK} ${pkg}"
else
INSTALL_PACKAGES_MULTILIB_IPK="${INSTALL_PACKAGES_MULTILIB_IPK} ${pkg}"
fi
done
}
#
# install a bunch of packages using opkg
# the following shell variables needs to be set before calling this func:
# INSTALL_ROOTFS_IPK - install root dir
# INSTALL_CONF_IPK - configuration file
# INSTALL_PACKAGES_NORMAL_IPK - packages to be installed
# INSTALL_PACKAGES_IPK - packages to be installed
# INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only
# INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc
# INSTALL_TASK_IPK - task name
@@ -97,15 +119,18 @@ package_install_internal_ipk() {
local target_rootfs="${INSTALL_ROOTFS_IPK}"
local conffile="${INSTALL_CONF_IPK}"
local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}"
local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}"
local package_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}"
local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}"
local task="${INSTALL_TASK_IPK}"
split_multilib_packages
local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}"
local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}"
mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/
local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite"
local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite --force_postinstall"
opkg-cl ${ipkg_args} update

View File

@@ -154,7 +154,7 @@ resolve_package_rpm () {
# INSTALL_PLATFORM_RPM - main platform
# INSTALL_PLATFORM_EXTRA_RPM - extra platform
# INSTALL_CONFBASE_RPM - configuration file base name
# INSTALL_PACKAGES_NORMAL_RPM - packages to be installed
# INSTALL_PACKAGES_RPM - packages to be installed
# INSTALL_PACKAGES_ATTEMPTONLY_RPM - packages attemped to be installed only
# INSTALL_PACKAGES_LINGUAS_RPM - additional packages for uclibc
# INSTALL_PROVIDENAME_RPM - content for provide name
@@ -166,8 +166,7 @@ package_install_internal_rpm () {
local platform="${INSTALL_PLATFORM_RPM}"
local platform_extra="${INSTALL_PLATFORM_EXTRA_RPM}"
local confbase="${INSTALL_CONFBASE_RPM}"
local package_to_install="${INSTALL_PACKAGES_NORMAL_RPM}"
local multilib_to_install="${INSTALL_PACKAGES_MULTILIB_RPM}"
local package_to_install="${INSTALL_PACKAGES_RPM}"
local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_RPM}"
local package_linguas="${INSTALL_PACKAGES_LINGUAS_RPM}"
local providename="${INSTALL_PROVIDENAME_RPM}"
@@ -211,12 +210,14 @@ package_install_internal_rpm () {
echo "Processing $pkg..."
archvar=base_archs
manifest=install.manifest
ml_prefix=`echo ${pkg} | cut -d'-' -f1`
ml_pkg=$pkg
for i in ${MULTILIB_PREFIX_LIST} ; do
if [ ${ml_prefix} == ${i} ]; then
ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
archvar=ml_archs
manifest=install_multilib.manifest
break
fi
done
@@ -226,7 +227,7 @@ package_install_internal_rpm () {
echo "Unable to find package $pkg ($ml_pkg)!"
exit 1
fi
echo $pkg_name >> ${target_rootfs}/install/install.manifest
echo $pkg_name >> ${target_rootfs}/install/${manifest}
done
fi
fi
@@ -235,12 +236,14 @@ package_install_internal_rpm () {
echo "Processing $pkg..."
archvar=base_archs
manifest=install.manifest
ml_prefix=`echo ${pkg} | cut -d'-' -f1`
ml_pkg=$pkg
for i in ${MULTILIB_PREFIX_LIST} ; do
if [ ${ml_prefix} == ${i} ]; then
ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
archvar=ml_archs
manifest=install_multilib.manifest
break
fi
done
@@ -250,7 +253,7 @@ package_install_internal_rpm () {
echo "Unable to find package $pkg ($ml_pkg)!"
exit 1
fi
echo $pkg_name >> ${target_rootfs}/install/install.manifest
echo $pkg_name >> ${target_rootfs}/install/${manifest}
done
fi
@@ -356,29 +359,7 @@ package_install_internal_rpm () {
touch ${target_rootfs}/install/install_multilib_solution.manifest
if [ ! -z "${multilib_to_install}" ]; then
for pkg in ${multilib_to_install} ; do
echo "Processing $pkg..."
archvar=base_archs
ml_prefix=`echo ${pkg} | cut -d'-' -f1`
ml_pkg=$pkg
for i in ${MULTILIB_PREFIX_LIST} ; do
if [ ${ml_prefix} == ${i} ]; then
ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
archvar=ml_archs
break
fi
done
pkg_name=$(resolve_package_rpm ${confbase}-${archvar}.conf ${ml_pkg})
if [ -z "$pkg_name" ]; then
echo "Unable to find package $pkg ($ml_pkg)!"
exit 1
fi
echo $pkg_name >> ${target_rootfs}/install/install_multilib.manifest
done
if [ -e "${target_rootfs}/install/install_multilib.manifest" ]; then
# multilib package installation
# Generate an install solution by doing a --justdb install, then recreate it with
@@ -401,13 +382,39 @@ package_install_internal_rpm () {
cat ${target_rootfs}/install/install_solution.manifest > ${target_rootfs}/install/total_solution.manifest
cat ${target_rootfs}/install/install_multilib_solution.manifest >> ${target_rootfs}/install/total_solution.manifest
# Construct install scriptlet wrapper
cat << EOF > ${WORKDIR}/scriptlet_wrapper
#!/bin/bash
export PATH="${PATH}"
export D="${target_rootfs}"
export OFFLINE_ROOT="\$D"
export IPKG_OFFLINE_ROOT="\$D"
export OPKG_OFFLINE_ROOT="\$D"
\$2 \$1/\$3 \$4
if [ \$? -ne 0 ]; then
mkdir -p \$1/etc/rpm-postinsts
num=100
while [ -e \$1/etc/rpm-postinsts/\${num} ]; do num=\$((num + 1)); done
echo "#!\$2" > \$1/etc/rpm-postinsts/\${num}
echo "# Arg: \$4" >> \$1/etc/rpm-postinsts/\${num}
cat \$1/\$3 >> \$1/etc/rpm-postinsts/\${num}
chmod +x \$1/etc/rpm-postinsts/\${num}
fi
EOF
chmod 0755 ${WORKDIR}/scriptlet_wrapper
# Attempt install
${RPM} --root ${target_rootfs} \
--predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \
--predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \
-D "_var ${localstatedir}" \
-D "_dbpath ${rpmlibdir}" \
--noscripts --notriggers --noparentdirs --nolinktos --replacepkgs \
--noparentdirs --nolinktos --replacepkgs \
-D "__dbi_txn create nofsync private" \
-D "_cross_scriptlet_wrapper ${WORKDIR}/scriptlet_wrapper" \
-Uhv ${target_rootfs}/install/total_solution.manifest
}
@@ -490,6 +497,16 @@ python write_specfile () {
else:
target.append(path + "/" + file)
# Prevent the prerm/postrm scripts from being run during an upgrade
def wrap_uninstall(scriptvar):
scr = scriptvar.strip()
if scr.startswith("#!"):
pos = scr.find("\n") + 1
else:
pos = 0
scr = scr[:pos] + 'if [ "$1" = "0" ] ; then\n' + scr[pos:] + '\nfi'
return scr
packages = bb.data.getVar('PACKAGES', d, True)
if not packages or packages == '':
bb.debug(1, "No packages; nothing to do")
@@ -690,8 +707,11 @@ python write_specfile () {
spec_scriptlets_bottom.append('%%post -n %s' % splitname)
elif script == 'prerm':
spec_scriptlets_bottom.append('%%preun -n %s' % splitname)
scriptvar = wrap_uninstall(scriptvar)
elif script == 'postrm':
spec_scriptlets_bottom.append('%%postun -n %s' % splitname)
scriptvar = wrap_uninstall(scriptvar)
spec_scriptlets_bottom.append('# %s - %s' % (splitname, script))
spec_scriptlets_bottom.append(scriptvar)
spec_scriptlets_bottom.append('')
@@ -769,19 +789,25 @@ python write_specfile () {
if srcpreinst:
spec_scriptlets_top.append('%pre')
spec_scriptlets_top.append('# %s - preinst' % srcname)
spec_scriptlets_top.append(srcpreinst)
spec_scriptlets_top.append('')
if srcpostinst:
spec_scriptlets_top.append('%post')
spec_scriptlets_top.append('# %s - postinst' % srcname)
spec_scriptlets_top.append(srcpostinst)
spec_scriptlets_top.append('')
if srcprerm:
spec_scriptlets_top.append('%preun')
spec_scriptlets_top.append(srcprerm)
spec_scriptlets_top.append('# %s - prerm' % srcname)
scriptvar = wrap_uninstall(srcprerm)
spec_scriptlets_top.append(scriptvar)
spec_scriptlets_top.append('')
if srcpostrm:
spec_scriptlets_top.append('%postun')
spec_scriptlets_top.append(srcpostrm)
spec_scriptlets_top.append('# %s - postrm' % srcname)
scriptvar = wrap_uninstall(srcpostrm)
spec_scriptlets_top.append(scriptvar)
spec_scriptlets_top.append('')
# Write the SPEC file
@@ -929,6 +955,7 @@ python do_package_rpm () {
cmd = cmd + " --define '_unpackaged_files_terminate_build 0'"
cmd = cmd + " --define 'debug_package %{nil}'"
cmd = cmd + " --define '_rpmfc_magic_path " + magicfile + "'"
cmd = cmd + " --define '_tmppath " + workdir + "'"
cmd = cmd + " -bb " + outspecfile
# Build the rpm package!

View File

@@ -138,7 +138,7 @@ python patch_do_patch() {
raise bb.build.FuncFailed(str(sys.exc_value))
resolver.Resolve()
}
patch_do_patch[vardepsexclude] = "DATE SRCDATE"
patch_do_patch[vardepsexclude] = "DATE SRCDATE PATCHRESOLVE"
addtask patch after do_unpack
do_patch[dirs] = "${WORKDIR}"

View File

@@ -18,6 +18,13 @@ PID = "${@os.getpid()}"
EXCLUDE_FROM_WORLD = "1"
python () {
# If we don't do this we try and run the mapping hooks while parsing which is slow
# bitbake should really provide something to let us know this...
if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
}
fakeroot do_populate_sdk() {
rm -rf ${SDK_OUTPUT}
mkdir -p ${SDK_OUTPUT}

View File

@@ -13,7 +13,7 @@ populate_sdk_post_deb () {
tar -cf - -C ${STAGING_ETCDIR_NATIVE} -ps apt | tar -xf - -C ${target_rootfs}/etc
}
fakeroot populate_sdk_deb () {
populate_sdk_deb () {
# update index
package_update_index_deb
@@ -27,7 +27,7 @@ fakeroot populate_sdk_deb () {
export INSTALL_ROOTFS_DEB="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
export INSTALL_BASEARCH_DEB="${DPKG_ARCH}"
export INSTALL_ARCHS_DEB="${PACKAGE_ARCHS}"
export INSTALL_PACKAGES_NORMAL_DEB="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_DEB="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_DEB=""
export PACKAGES_LINGUAS_DEB=""
export INSTALL_TASK_DEB="populate_sdk-target"
@@ -43,7 +43,7 @@ fakeroot populate_sdk_deb () {
export INSTALL_ROOTFS_DEB="${SDK_OUTPUT}"
export INSTALL_BASEARCH_DEB="${DEB_SDK_ARCH}"
export INSTALL_ARCHS_DEB="${SDK_PACKAGE_ARCHS}"
export INSTALL_PACKAGES_NORMAL_DEB="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_DEB="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_DEB=""
export PACKAGES_LINGUAS_DEB=""
export INSTALL_TASK_DEB="populate_sdk-nativesdk"

View File

@@ -1,7 +1,7 @@
do_populate_sdk[depends] += "opkg-native:do_populate_sysroot opkg-utils-native:do_populate_sysroot"
do_populate_sdk[recrdeptask] += "do_package_write_ipk"
fakeroot populate_sdk_ipk() {
populate_sdk_ipk() {
rm -f ${IPKGCONF_TARGET}
touch ${IPKGCONF_TARGET}
@@ -18,14 +18,14 @@ fakeroot populate_sdk_ipk() {
#install target
export INSTALL_ROOTFS_IPK="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
export INSTALL_CONF_IPK="${IPKGCONF_TARGET}"
export INSTALL_PACKAGES_NORMAL_IPK="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_IPK="${TOOLCHAIN_TARGET_TASK}"
package_install_internal_ipk
#install host
export INSTALL_ROOTFS_IPK="${SDK_OUTPUT}"
export INSTALL_CONF_IPK="${IPKGCONF_SDK}"
export INSTALL_PACKAGES_NORMAL_IPK="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_IPK="${TOOLCHAIN_HOST_TASK}"
package_install_internal_ipk

View File

@@ -21,7 +21,7 @@ populate_sdk_post_rpm () {
rm -rf ${target_rootfs}/install
}
fakeroot populate_sdk_rpm () {
populate_sdk_rpm () {
package_update_index_rpm
package_generate_rpm_conf
@@ -32,7 +32,7 @@ fakeroot populate_sdk_rpm () {
export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}/${SDKTARGETSYSROOT}"
export INSTALL_PLATFORM_RPM="${TARGET_ARCH}"
export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}"
export INSTALL_PACKAGES_NORMAL_RPM="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_RPM="${TOOLCHAIN_TARGET_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM=""
export INSTALL_PACKAGES_LINGUAS_RPM=""
export INSTALL_PROVIDENAME_RPM="/bin/sh /bin/bash /usr/bin/env /usr/bin/perl pkgconfig pkgconfig(pkg-config)"
@@ -81,7 +81,7 @@ EOF
export INSTALL_ROOTFS_RPM="${SDK_OUTPUT}"
export INSTALL_PLATFORM_RPM="${SDK_ARCH}"
export INSTALL_CONFBASE_RPM="${RPMCONF_HOST_BASE}"
export INSTALL_PACKAGES_NORMAL_RPM="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_RPM="${TOOLCHAIN_HOST_TASK}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM=""
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"

View File

@@ -44,7 +44,7 @@ fakeroot rootfs_ipk_do_rootfs () {
pkginfo="`opkg-cl ${IPKG_ARGS} info $i`"
if [ ! -z "$pkginfo" ]; then
echo "$pkginfo" | grep -e '^Package:' -e '^Architecture:' -e '^Version:' >> $STATUS
echo "Status: deinstall ok not-installed" >> $STATUS
echo "Status: deinstall hold not-installed" >> $STATUS
echo >> $STATUS
else
echo "Requested ignored recommendation $i is not a package"
@@ -58,10 +58,7 @@ fakeroot rootfs_ipk_do_rootfs () {
export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}"
export INSTALL_CONF_IPK="${IPKGCONF_TARGET}"
export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}"
export INSTALL_PACKAGES_MULTILIB_IPK="${MULTILIB_PACKAGE_INSTALL}"
package_install_internal_ipk
export INSTALL_PACKAGES_IPK="${PACKAGE_INSTALL}"
#post install
export D=${IMAGE_ROOTFS}
@@ -69,6 +66,8 @@ fakeroot rootfs_ipk_do_rootfs () {
export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS}
export OPKG_OFFLINE_ROOT=${IPKG_OFFLINE_ROOT}
package_install_internal_ipk
# Distro specific packages should create this
#mkdir -p ${IMAGE_ROOTFS}/etc/opkg/
#grep "^arch" ${IPKGCONF_TARGET} >${IMAGE_ROOTFS}/etc/opkg/arch.conf
@@ -76,22 +75,8 @@ fakeroot rootfs_ipk_do_rootfs () {
${OPKG_POSTPROCESS_COMMANDS}
${ROOTFS_POSTINSTALL_COMMAND}
runtime_script_required=0
for i in ${IMAGE_ROOTFS}${opkglibdir}/info/*.preinst; do
if [ -f $i ] && ! sh $i; then
runtime_script_required=1
opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .preinst`
fi
done
for i in ${IMAGE_ROOTFS}${opkglibdir}/info/*.postinst; do
if [ -f $i ] && ! sh $i configure; then
runtime_script_required=1
opkg-cl ${IPKG_ARGS} flag unpacked `basename $i .postinst`
fi
done
if ${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "true", "false" ,d)}; then
if [ $runtime_script_required -eq 1 ]; then
if grep Status:.install.ok.unpacked ${IMAGE_ROOTFS}${opkglibdir}status; then
echo "Some packages could not be configured offline and rootfs is read-only."
exit 1
fi

View File

@@ -20,8 +20,6 @@ do_rootfs[depends] += "opkg-native:do_populate_sysroot"
do_rootfs[recrdeptask] += "do_package_write_rpm"
AWKPOSTINSTSCRIPT = "${COREBASE}/scripts/rootfs_rpm-extract-postinst.awk"
RPM_PREPROCESS_COMMANDS = "package_update_index_rpm; package_generate_rpm_conf; "
RPM_POSTPROCESS_COMMANDS = ""
@@ -46,7 +44,7 @@ RPM="rpm ${RPMOPTS}"
do_rootfs[lockfiles] += "${DEPLOY_DIR_RPM}/rpm.lock"
fakeroot rootfs_rpm_do_rootfs () {
#set +x
set +x
${RPM_PREPROCESS_COMMANDS}
@@ -57,8 +55,7 @@ fakeroot rootfs_rpm_do_rootfs () {
export INSTALL_ROOTFS_RPM="${IMAGE_ROOTFS}"
export INSTALL_PLATFORM_RPM="${TARGET_ARCH}"
export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}"
export INSTALL_PACKAGES_NORMAL_RPM="${PACKAGE_INSTALL}"
export INSTALL_PACKAGES_MULTILIB_RPM="${MULTILIB_PACKAGE_INSTALL}"
export INSTALL_PACKAGES_RPM="${PACKAGE_INSTALL}"
export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${PACKAGE_INSTALL_ATTEMPTONLY}"
export INSTALL_PACKAGES_LINGUAS_RPM="${LINGUAS_INSTALL}"
export INSTALL_PROVIDENAME_RPM=""
@@ -109,19 +106,9 @@ EOF
${ROOTFS_POSTINSTALL_COMMAND}
mkdir -p ${IMAGE_ROOTFS}/etc/rpm-postinsts/
${RPM} --root ${IMAGE_ROOTFS} -D '_dbpath ${rpmlibdir}' -qa \
-D "__dbi_txn create nofsync private" \
--qf 'Name: %{NAME}\n%|POSTIN?{postinstall scriptlet%|POSTINPROG?{ (using %{POSTINPROG})}|:\n%{POSTIN}\n}:{%|POSTINPROG?{postinstall program: %{POSTINPROG}\n}|}|' \
> ${IMAGE_ROOTFS}/etc/rpm-postinsts/combined
awk -f ${AWKPOSTINSTSCRIPT} < ${IMAGE_ROOTFS}/etc/rpm-postinsts/combined
rm ${IMAGE_ROOTFS}/etc/rpm-postinsts/combined
for i in ${IMAGE_ROOTFS}/etc/rpm-postinsts/*.sh; do
if [ -f $i ] && sh $i; then
# rm $i
mv $i $i.done
fi
# Report delayed package scriptlets
for i in ${IMAGE_ROOTFS}/etc/rpm-postinsts/*; do
echo "Delayed package scriptlet: `head -n 3 $i | tail -n 1`"
done
install -d ${IMAGE_ROOTFS}/${sysconfdir}/rcS.d
@@ -129,11 +116,10 @@ EOF
i=\$i
cat > ${IMAGE_ROOTFS}${sysconfdir}/rcS.d/S${POSTINSTALL_INITPOSITION}configure << EOF
#!/bin/sh
for i in /etc/rpm-postinsts/*.sh; do
for i in /etc/rpm-postinsts/*; do
echo "Running postinst $i..."
if [ -f $i ] && sh $i; then
# rm $i
mv $i $i.done
if [ -f $i ] && $i; then
rm $i
else
echo "ERROR: postinst $i failed."
fi

View File

@@ -114,15 +114,16 @@ def sstate_install(ss, d):
for state in ss['dirs']:
oe.path.copytree(state[1], state[2])
for walkroot, dirs, files in os.walk(state[1]):
bb.debug(2, "Staging files from %s to %s" % (state[1], state[2]))
for file in files:
srcpath = os.path.join(walkroot, file)
dstpath = srcpath.replace(state[1], state[2])
bb.debug(2, "Staging %s to %s" % (srcpath, dstpath))
#bb.debug(2, "Staging %s to %s" % (srcpath, dstpath))
sharedfiles.append(dstpath)
for dir in dirs:
srcdir = os.path.join(walkroot, dir)
dstdir = srcdir.replace(state[1], state[2])
bb.debug(2, "Staging %s to %s" % (srcdir, dstdir))
#bb.debug(2, "Staging %s to %s" % (srcdir, dstdir))
if not dstdir.endswith("/"):
dstdir = dstdir + "/"
shareddirs.append(dstdir)
@@ -258,10 +259,15 @@ def sstate_clean(ss, d):
bb.utils.unlockfile(lock)
stfile = d.getVar("STAMP", True) + ".do_" + ss['task']
extrainf = d.getVarFlag("do_" + ss['task'], 'stamp-extra-info', True)
oe.path.remove(stfile)
oe.path.remove(stfile + "_setscene")
oe.path.remove(stfile + ".*")
oe.path.remove(stfile + "_setscene" + ".*")
if extrainf:
oe.path.remove(stfile + ".*" + extrainf)
oe.path.remove(stfile + "_setscene" + ".*" + extrainf)
else:
oe.path.remove(stfile + ".*")
oe.path.remove(stfile + "_setscene" + ".*")
CLEANFUNCS += "sstate_cleanall"
@@ -355,12 +361,12 @@ def sstate_package(ss, d):
for file in files:
srcpath = os.path.join(walkroot, file)
dstpath = srcpath.replace(state[1], sstatebuild + state[0])
bb.debug(2, "Preparing %s for packaging at %s" % (srcpath, dstpath))
make_relative_symlink(srcpath, dstpath, d)
for dir in dirs:
srcpath = os.path.join(walkroot, dir)
dstpath = srcpath.replace(state[1], sstatebuild + state[0])
make_relative_symlink(srcpath, dstpath, d)
bb.debug(2, "Preparing tree %s for packaging at %s" % (state[1], sstatebuild + state[0]))
oe.path.copytree(state[1], sstatebuild + state[0])
workdir = bb.data.getVar('WORKDIR', d, True)

View File

@@ -1,10 +1,9 @@
USERADDPN ?= "${PN}"
# base-passwd-cross provides the default passwd and group files in the
# target sysroot, and shadow -native and -sysroot provide the utilities
# and support files needed to add and modify user and group accounts
DEPENDS_append = " base-passwd shadow-native shadow-sysroot"
RDEPENDS_${USERADDPN}_append = " base-passwd shadow"
DEPENDS_append = "${USERADDDEPENDS}"
USERADDDEPENDS = " base-passwd shadow-native shadow-sysroot shadow"
USERADDDEPENDS_virtclass-nativesdk = ""
# This preinstall function will be run in two contexts: once for the
# native sysroot (as invoked by the useradd_sysroot() wrapper), and
@@ -37,7 +36,13 @@ if test "x$GROUPADD_PARAM" != "x"; then
opts=`echo "$GROUPADD_PARAM" | cut -d ';' -f 1`
remaining=`echo "$GROUPADD_PARAM" | cut -d ';' -f 2-`
while test "x$opts" != "x"; do
eval $PSEUDO groupadd -f $OPT $opts
groupname=`echo "$opts" | awk '{ print $NF }'`
group_exists=`grep "^$groupname:" $SYSROOT/etc/group || true`
if test "x$group_exists" = "x"; then
eval $PSEUDO groupadd $OPT $opts
else
echo "Note: group $groupname already exists, not re-creating it"
fi
if test "x$opts" = "x$remaining"; then
break
@@ -90,35 +95,38 @@ useradd_sysroot_sstate () {
fi
}
do_install[prefuncs] += "useradd_sysroot"
SSTATEPOSTINSTFUNCS += "useradd_sysroot_sstate"
do_install[prefuncs] += "${SYSROOTFUNC}"
SYSROOTFUNC = "useradd_sysroot"
SYSROOTFUNC_virtclass-nativesdk = ""
SSTATEPOSTINSTFUNCS += "${SYSROOTPOSTFUNC}"
SYSROOTPOSTFUNC = "useradd_sysroot_sstate"
SYSROOTPOSTFUNC_virtclass-nativesdk = ""
# Recipe parse-time sanity checks
def update_useradd_after_parse(d):
if not d.getVar('USERADD_PACKAGES', False):
if not d.getVar('USERADD_PARAM', False) and not d.getVar('GROUPADD_PARAM', False):
raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PARAM or GROUPADD_PARAM" % bb.data.getVar('FILE', d)
useradd_packages = d.getVar('USERADD_PACKAGES', True)
if not useradd_packages:
raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PACKAGES" % bb.data.getVar('FILE', d)
for pkg in useradd_packages.split():
if not d.getVar('USERADD_PARAM_%s' % pkg, True) and not d.getVar('GROUPADD_PARAM_%s' % pkg, True):
raise bb.build.FuncFailed, "%s inherits useradd but doesn't set USERADD_PARAM or GROUPADD_PARAM for package %s" % (bb.data.getVar('FILE', d), pkg)
python __anonymous() {
update_useradd_after_parse(d)
}
# Return a single [GROUP|USER]ADD_PARAM formatted string which includes the
# [group|user]add parameters for all packages in this recipe
# [group|user]add parameters for all USERADD_PACKAGES in this recipe
def get_all_cmd_params(d, cmd_type):
import string
param_type = cmd_type.upper() + "ADD_PARAM_%s"
params = []
pkgs = d.getVar('USERADD_PACKAGES', True)
if not pkgs:
pkgs = d.getVar('USERADDPN', True)
packages = (d.getVar('PACKAGES', True) or "").split()
if packages and pkgs not in packages:
pkgs = packages[0]
for pkg in pkgs.split():
useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
for pkg in useradd_packages.split():
param = d.getVar(param_type % pkg, True)
if param:
params.append(param)
@@ -141,16 +149,15 @@ fakeroot python populate_packages_prepend () {
preinst += d.getVar('useradd_preinst', True)
bb.data.setVar('pkg_preinst_%s' % pkg, preinst, d)
# We add the user/group calls to all packages to allow any package
# to contain files owned by the users/groups defined in the recipe.
# The user/group addition code is careful not to create duplicate
# entries, so this is safe.
pkgs = d.getVar('USERADD_PACKAGES', True)
if not pkgs:
pkgs = d.getVar('USERADDPN', True)
packages = (d.getVar('PACKAGES', True) or "").split()
if packages and pkgs not in packages:
pkgs = packages[0]
for pkg in pkgs.split():
update_useradd_package(pkg)
# RDEPENDS setup
rdepends = d.getVar("RDEPENDS_%s" % pkg, True) or ""
rdepends += " base-passwd shadow"
bb.data.setVar("RDEPENDS_%s" % pkg, rdepends, d)
# Add the user/group preinstall scripts and RDEPENDS requirements
# to packages specified by USERADD_PACKAGES
if not bb.data.inherits_class('nativesdk', d):
useradd_packages = d.getVar('USERADD_PACKAGES', True) or ""
for pkg in useradd_packages.split():
update_useradd_package(pkg)
}

View File

@@ -8,6 +8,7 @@
# Used by multilib code to change the library paths
baselib = "${BASELIB}"
baselib[vardepvalue] = "${baselib}"
BASELIB = "lib"
BASELIB_powerpc64 = "lib64"
@@ -159,7 +160,6 @@ ASSUME_PROVIDED = "\
python-native-runtime \
svn-native \
tar-native \
texinfo-native \
virtual/libintl-native \
"
@@ -170,6 +170,7 @@ ASSUME_PROVIDED = "\
PN = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[0] or 'defaultpkgname'}"
PV = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[1] or '1.0'}"
PR = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[2] or 'r0'}"
PRINC ?= "0"
PF = "${PN}-${EXTENDPE}${PV}-${PR}"
EXTENDPE = "${@['','${PE\x7d_'][bb.data.getVar('PE',d,1) > 0]}"
P = "${PN}-${PV}"
@@ -242,7 +243,7 @@ PROVIDES = ""
PROVIDES_prepend = "${P} ${PF} ${PN} "
RPROVIDES = ""
MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/libintl-nativesdk virtual/xserver"
MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/libintl-nativesdk virtual/xserver virtual/update-alternatives-native virtual/update-alternatives"
SOLIBS = ".so.*"
SOLIBS_darwin = ".*.dylib"
@@ -407,7 +408,7 @@ export PATH
CCACHE = "${@bb.which(bb.data.getVar('PATH', d, 1), 'ccache') and 'ccache '}"
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
export CCACHE_DIR = "${TMPDIR}/ccache/${HOST_SYS}/${PN}"
export CCACHE_DIR = "${TMPDIR}/ccache/${MULTIMACH_HOST_SYS}/${PN}"
export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
@@ -659,6 +660,7 @@ AUTO_LIBNAME_PKGS = "${PACKAGES}"
OVERRIDES = "${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}:${MACHINEOVERRIDES}:${DISTROOVERRIDES}:forcevariable"
DISTROOVERRIDES ?= "${DISTRO}"
MACHINEOVERRIDES ?= "${MACHINE}"
MACHINEOVERRIDES[vardepsexclude] = "MACHINE"
CPU_FEATURES ?= ""
CPU_FEATURES_arm ?= "vfp"
@@ -751,7 +753,7 @@ TRANSLATED_TARGET_ARCH ??= "${@d.getVar('TARGET_ARCH', True).replace("_", "-")}"
# Setup our default hash policy
BB_SIGNATURE_HANDLER ?= "basic"
BB_HASHTASK_WHITELIST ?= "(.*-cross$|.*-native$|.*-cross-initial$|.*-cross-intermediate$|^virtual:native:.*|^virtual:nativesdk:.*)"
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH USERNAME STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE"
BB_HASHBASE_WHITELIST ?= "TMPDIR FILE PATH PWD BB_TASKHASH BBPATH DL_DIR SSTATE_DIR THISDIR FILESEXTRAPATHS FILE_DIRNAME HOME LOGNAME SHELL TERM USER FILESPATH STAGING_DIR_HOST STAGING_DIR_TARGET COREBASE"
MLPREFIX ??= ""
MULTILIB_VARIANTS ??= ""

View File

@@ -348,6 +348,7 @@ BBCLASSEXTEND_append_pn-setserial = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-settings-daemon = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-sgml-common = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-shadow = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-shadow-sysroot = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-shared-mime-info = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-slang = " ${MULTILIBS}"
BBCLASSEXTEND_append_pn-speex = " ${MULTILIBS}"

View File

@@ -15,6 +15,7 @@
/dev/hda b 660 0 6 3 0 - - -
/dev/hda b 660 0 6 3 1 1 1 20
/dev/kmem c 640 0 15 1 2 - - -
/dev/kmsg c 600 0 0 1 11 - - -
/dev/mem c 640 0 15 1 1 - - -
/dev/null c 666 0 0 1 3 - - -
/dev/ram b 640 0 0 1 0 0 1 4

View File

@@ -15,4 +15,4 @@ def typed_value(key, d):
try:
return oe.maketype.create(d.getVar(key, True) or '', var_type, **flags)
except (TypeError, ValueError), exc:
bb.msg.fatal(bb.msg.domain.Data, "%s: %s" % (key, str(exc)))
bb.msg.fatal("Data", "%s: %s" % (key, str(exc)))

View File

@@ -358,7 +358,7 @@ class UserResolver(Resolver):
t = bb.data.getVar('T', self.patchset.d, 1)
if not t:
bb.msg.fatal(bb.msg.domain.Build, "T not set")
bb.msg.fatal("Build", "T not set")
bb.utils.mkdirhier(t)
import random
rcfile = "%s/bashrc.%s.%s" % (t, str(os.getpid()), random.random())
@@ -376,7 +376,7 @@ class UserResolver(Resolver):
os.environ['SHELLCMDS'] = "bash --rcfile " + rcfile
rc = os.system(bb.data.getVar('TERMCMDRUN', self.patchset.d, 1))
if os.WIFEXITED(rc) and os.WEXITSTATUS(rc) != 0:
bb.msg.fatal(bb.msg.domain.Build, ("Cannot proceed with manual patch resolution - '%s' not found. " \
bb.msg.fatal("Build", ("Cannot proceed with manual patch resolution - '%s' not found. " \
+ "Check TERMCMDRUN variable.") % bb.data.getVar('TERMCMDRUN', self.patchset.d, 1))
# Construct a new PatchSet after the user's changes, compare the

View File

@@ -57,6 +57,20 @@ class Gnome(XTerminal):
command = 'gnome-terminal --disable-factory -t "{title}" -x {command}'
priority = 2
class Xfce(XTerminal):
command = 'Terminal -T "{title}" -e "{command}"'
priority = 2
def __init__(self, command, title=None, env=None):
# Upstream binary name is Terminal but Debian/Ubuntu use
# xfce4-terminal to avoid possible(?) conflicts
distro = distro_name()
if distro == 'ubuntu' or distro == 'debian':
cmd = 'xfce4-terminal -T "{title}" -e "{command}"'
else:
cmd = command
XTerminal.__init__(self, cmd, title, env)
class Konsole(XTerminal):
command = 'konsole -T "{title}" -e {command}'
priority = 2
@@ -131,3 +145,12 @@ def check_konsole_version(konsole):
if ver.startswith('Konsole'):
vernum = ver.split(' ')[-1]
return vernum
def distro_name():
try:
p = Popen(['lsb_release', '-i'])
out, err = p.communicate()
distro = out.split(':')[1].strip().lower()
except:
distro = "unknown"
return distro

View File

@@ -34,7 +34,7 @@ INITSCRIPT_PARAMS = "defaults"
do_compile() {
# apmd doesn't use whole autotools. Just libtool for installation
oe_runmake "LIBTOOL=${STAGING_BINDIR_CROSS}/${TARGET_PREFIX}libtool" apm apmd
oe_runmake "LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool" apm apmd
}
do_install() {

View File

@@ -41,4 +41,4 @@ do_install_append () {
FILES_${PN}-doc = "${datadir}"
FILES_${PN} = "/usr /etc"
INSANE_SKIP_${PN} = "arch"

View File

@@ -14,8 +14,7 @@ SECTION = "network"
# python scripts are under GPLv2+
LICENSE = "GPLv2+ & LGPLv2.1+"
INC_PR = "r7"
INC_PR = "r9"
DEPENDS = "expat libcap libdaemon dbus glib-2.0"
SRC_URI = "http://avahi.org/download/avahi-${PV}.tar.gz \
@@ -23,7 +22,12 @@ SRC_URI = "http://avahi.org/download/avahi-${PV}.tar.gz \
file://99avahi-autoipd \
file://initscript.patch"
inherit autotools pkgconfig update-rc.d gettext
USERADD_PACKAGES = "avahi-daemon"
USERADD_PARAM_avahi-daemon = "--system --home /var/run/avahi-daemon \
--no-create-home --shell /bin/false \
--user-group avahi"
inherit autotools pkgconfig update-rc.d gettext useradd
EXTRA_OECONF = "--with-distro=debian \
--disable-introspection \
@@ -114,15 +118,12 @@ do_install_avahi-autoipd() {
install ${WORKDIR}/99avahi-autoipd ${D}${sysconfdir}/udhcpc.d
}
# At the time the postinst runs, dbus might not be setup so only restart if running
# At the time the postinst runs, dbus might not be setup so only restart if running
pkg_postinst_avahi-daemon () {
# can't do this offline
if [ "x$D" != "x" ]; then
exit 1
exit 0
fi
grep "^avahi:" /etc/group > /dev/null || addgroup avahi
grep "^avahi:" /etc/passwd > /dev/null || adduser --disabled-password --system --home /var/run/avahi-daemon --no-create-home avahi --ingroup avahi -g Avahi
DBUSPID=`pidof dbus-daemon`

View File

@@ -18,7 +18,12 @@ DEPENDS = "libgdbus dbus glib-2.0 hal iptables"
INITSCRIPT_NAME = "connman"
INITSCRIPT_PARAMS = "start 05 5 2 3 . stop 22 0 1 6 ."
inherit autotools pkgconfig update-rc.d
USERADD_PACKAGES = "${PN}"
USERADD_PARAM_${PN} = "--system --no-create-home \
--shell /bin/false --groups video,tty,audio \
--user-group xuser"
inherit autotools pkgconfig update-rc.d useradd
do_install_append() {
install -d ${D}${sysconfdir}/init.d/

View File

@@ -1,5 +1,5 @@
require connman.inc
PR = "r1"
PR = "r2"
EXTRA_OECONF += "\
ac_cv_path_WPASUPPLICANT=/usr/sbin/wpa_supplicant \

View File

@@ -16,11 +16,11 @@ DEPENDS = "glib-2.0 dbus bluez4 dbus-glib libxslt"
SRC_URI = "http://gypsy.freedesktop.org/releases/gypsy-${PV}.tar.gz \
file://fix-unused-but-set-variable-warning.patch \
"
PR = "r1"
PR = "r2"
inherit autotools pkgconfig
FILES_${PN} += "/usr/share/dbus-1/services/"
FILES_${PN} += "/usr/share/dbus-1/system-services/"
SRC_URI[md5sum] = "32b8db24db86d2dac87b391dd255f4bf"
SRC_URI[sha256sum] = "1986a58189614a950725c3bc7d05faa3b84695f35cb696326f340ef87fc3acaa"

View File

@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "avahi"
RDEPENDS_${PN} = "avahi-daemon"
PR = "r3"
PR = "r4"
SRC_URI = "http://0pointer.de/lennart/projects/nss-mdns/nss-mdns-${PV}.tar.gz"
@@ -26,14 +26,12 @@ EXTRA_OECONF = "--libdir=${base_libdir} --disable-lynx --enable-avahi"
# TODO: pattern based configuration update
pkg_postinst_${PN} () {
cat $D/etc/nsswitch.conf | grep "hosts:\s*files dns$" > /dev/null && {
cat $D/etc/nsswitch.conf | sed 's/hosts:\s*files dns/& mdns4/' > /tmp/nsswitch.conf
mv /tmp/nsswitch.conf $D/etc/nsswitch.conf
sed -i 's/hosts:\s*files dns/& mdns4/' $D/etc/nsswitch.conf
}
}
pkg_prerm_${PN} () {
cat /etc/nsswitch.conf | grep "hosts:\s*files dns mdns4$" > /dev/null && {
cat /etc/nsswitch.conf | sed 's/\(hosts:\s*files dns\) mdns4*/\1/' > /tmp/nsswitch.conf
mv /tmp/nsswitch.conf /etc/nsswitch.conf
sed -i 's/\(hosts:\s*files dns\) mdns4*/\1/' /etc/nsswitch.conf
}
}

View File

@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
# util-linux for libblkid
DEPENDS = "libcap libnfsidmap libevent util-linux tcp-wrappers"
RDEPENDS_${PN} = "portmap"
RDEPENDS_${PN} = "portmap python"
RRECOMMENDS_${PN} = "kernel-module-nfsd"
PR = "r2"

View File

@@ -29,6 +29,14 @@ PAM_SRC_URI = "file://sshd"
SRC_URI[md5sum] = "0541579adf9d55abb15ef927048d372e"
SRC_URI[sha256sum] = "5c35ec7c966ce05cc4497ac59c0b54a556e55ae7368165cc8c4129694654f314"
inherit useradd update-rc.d
USERADD_PACKAGES = "${PN}-sshd"
USERADD_PARAM_${PN}-sshd = "--system --no-create-home --home-dir /var/run/sshd --shell /bin/false --user-group sshd"
INITSCRIPT_PACKAGES = "${PN}-sshd"
INITSCRIPT_NAME_${PN}-sshd = "sshd"
INITSCRIPT_PARAMS_${PN}-sshd = "defaults 9"
inherit autotools
# LFS support:
@@ -91,16 +99,6 @@ RDEPENDS_${PN} += "${PN}-scp ${PN}-ssh ${PN}-sshd ${PN}-keygen"
DEPENDS_${PN}-sshd += "update-rc.d"
RDEPENDS_${PN}-sshd += "update-rc.d ${PN}-keygen"
pkg_postinst_${PN}-sshd () {
if [ "x$D" != "x" ]; then
exit 1
else
addgroup sshd
adduser --system --home /var/run/sshd --no-create-home --disabled-password --ingroup sshd -s /bin/false sshd
update-rc.d sshd defaults 9
fi
}
pkg_postinst_${PN}-scp () {
update-alternatives --install ${bindir}/scp scp scp.${PN} 90
}
@@ -117,16 +115,5 @@ pkg_postrm_${PN}-scp () {
update-alternatives --remove ${bindir}/scp scp.${PN}
}
pkg_postrm_${PN}-sshd () {
if [ "x$D" != "x" ]; then
exit 1
else
${sysconfdir}/init.d/sshd stop
deluser sshd
delgroup sshd
update-rc.d -f sshd remove
fi
}
CONFFILES_${PN}-sshd = "${sysconfdir}/ssh/sshd_config"
CONFFILES_${PN}-ssh = "${sysconfdir}/ssh/ssh_config"

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