Add a new Python module (oe.gpg_sign) for handling GPG signing
operations, i.e. currently package and package feed signing. The purpose
is to be able to more easily support various signing backends and to be
able to centralise signing functionality into one place (e.g. package
signing and sstate signing). Currently, only local signing with gpg is
implemented.
[YOCTO #8755]
(From OE-Core rev: 9b3dc1bd4b8336423a3f8f7db0ab5fa6fa0e7257)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Add a variable SDK_INCLUDE_PKGDATA which you can set to "1" to include
pkgdata for all recipes in the world target. There are a couple of uses
for this:
1) If you use "devtool add" to add a recipe that builds something which
depends on anything in world, the dependency can then be correctly
mapped to the recipe providing it and that recipe can be added to
DEPENDS, since we have the pkg-config and shared library dependency
data within pkgdata.
2) You'll be able to search for these recipes and any files they
package for the target with "devtool search" since that also uses
pkgdata
This of course assumes you've tailored world through EXCLUDE_FROM_WORLD
to only include recipes you'd want built in your distro, but I think
that's a reasonable assumption; failing that there is a
WORLD_PKGDATA_EXCLUDE variable that you can set to exclude any recipes
you don't want.
Note that this patch relies on functionality implemented in a recent
BitBake patch and will not work without it.
Implements [YOCTO #8600].
(From OE-Core rev: 67149ea097d6fab7496b43e85a40853f40bd527e)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Recent changes to this recipe caused automated PR increments
to break, regressing package feeds. The only way to recover
is to bump PR, so do this centrally to fix anyone affected.
(From OE-Core rev: dacdb499d31cb2e80cca33cba9d599c8ee983dc4)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"pseudo" does not build 32 bit library by default on 64 bit host, but the
32 bit library is needed when using 32 bit development tools (buildtools-tarball)
running on a 64 bit host. Building of the library can be forced if the
environment variable NO32LIBS is set to "0".
Hence for 32 bit buildtools we export the environment variable NO32LIBS="0"
and NO32LIBS is also added into BB_ENV_EXTRAWHITE (if not already there).
[YOCTO#8581]
(From OE-Core rev: 1c20e66428df10000741c25dddb7a2b1fd55ba42)
Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Turns out I did a silly thing in OE-Core revision
9b1831cf4a2940dca1d23f14dff460ff5a50a520 and forgot to remove the
explicit setting of PACKAGE_ARCH outside of the anonymous python
function; the original bug was apparently fixed but the functionality of
allarch.bbclass was being disabled because it was able to see that
PACKAGE_ARCH was not set to "all" - which was what I was trying to
ensure.
(From OE-Core rev: a25ab5449825315d4f51b31a634fe6cd8f908526)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This recipe produces an empty dummy package (in order to satisfy
dependencies on perl so we don't have perl within buildtools-tarball).
Because we were inheriting nativesdk here the recipe was being rebuilt,
but having forced PACKAGE_ARCH to a particular value the packages for
each architecture were stepping on eachother. Since the packages are
empty they can in fact be allarch (even though they won't actually go
into the "all" package feed). It turns out that nheriting nativesdk
wasn't actually necessary either, so drop that.
Fixes [YOCTO #8509].
(From OE-Core rev: 9b1831cf4a2940dca1d23f14dff460ff5a50a520)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Automatically export public key(s) of the signing key(s) from the gpg
keyring. Adds a new simple recipe that does the actual task of exporting
the keys. This patch makes the RPM_GPG_PUBKEY and PACKAGE_FEED_GPG
PUBKEY settings obsolete.
(From OE-Core rev: 23b30c34581948e1ea02c25cbf7b9194d7e49fb8)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With the modern checksum infrastructure, this is no longer needed
(much in the same way images no longer need this).
(From OE-Core rev: 30e83bbc3f90b4cd4caf8ad7ca847267ae50cf7e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The core class used to have this inherit but its being phased out, add
the inherit directly where we need it instead.
(From OE-Core rev: bdd546a8a492d386afdcc24e9540b0b88e9cd230)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The toolchain-scripts class was changed to assign to the variable using ??=
which allows users to override it. We therefore need to _append instead
of += to have the change take effect as intended.
(From OE-Core rev: d589777a4d423b1f0c9953900bd79772d15ee4af)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This task is meaningless for uninative-tarball as the package task
has been deleted. Besides, sometimes it would cause problems. To
reproduce, use the following command.
bitbake uninative-tarball -c cleansstate && bitbake uninative-tarball &&
bitbake uninative-tarball -c clean && bitbake uninative-tarball
The error is something like below.
File: 'sstate.bbclass', lineno: 33, function: sstate_installpkg
0029: bb.build.exec_func(f, d)
0030:
0031: for state in ss['dirs']:
0032: prepdir(state[1])
*** 0033: os.rename(sstateinst + state[0], state[1])
0034: sstate_install(ss, d)
0035:
0036: for plain in ss['plaindirs']:
0037: workdir = d.getVar('WORKDIR', True)
Exception: OSError: [Errno 2] No such file or directory
[YOCTO #7597]
(From OE-Core rev: 8f905077aaed3dbeeed04787add1cf725fa87bdc)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Show a friendly title when running the SDK installer, so the user knows
what SDK they are installing. The title is controlled by the
SDK_INSTALLER_TITLE variable and includes the distro name and SDK
version by default.
(From OE-Core rev: 0af913887f4c0a79c6b950bd5d57c06333520a14)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
DEPENDS doesn't actually add the dependency on patchelf-native to the
populate_sdk task. SDK_DEPENDS does this, but move the append to after
inheriting the base class so it does not get overwritten.
Without this, uninative-tarball fails to build in a clean workspace on a
system without patchelf.
[YOCTO #7467]
(From OE-Core rev: 0631c2b52432ddf86292351d605b65941d2a8be2)
Signed-off-by: Tyler Hall <tylerwhall@gmail.com>
Acked-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This bbclass will create an SDK with a copy of bitbake and the metadata
and sstate for the target specified for the task. The idea is to let
"system" developers both work on applications and then test adding them
to an image without having to switch between workspaces or having to
download separate items.
Rather than running bitbake directly however, the primary way of running
builds within the extensible SDK is to use the "devtool" command. The
rest of the build system is fixed via locked shared state signatures,
and thus only the recipes you have added get built.
(From OE-Core rev: bf81d6bb7f6df5405b8f2148e2a22e0030c12757)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
uninative.bbclass uses -xjf for decompression so actually run the data
through bzip2.
(From OE-Core rev: 84665b4e894a949591d812f1cdc1745a376bf95f)
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are some cases we want the manipulation cross-canadian performance
on TARGET_OS, there are also cases like meta-environment where we do not
want this manipulation.
We did try and use immediate expansion to avoid this problem and it
works in the non multilib case. If we have a multilib that used an
extension, like for example:
require conf/multilib.conf
MULTILIBS = "multilib:lib32 multilib:lib64"
DEFAULTTUNE = "mips32r2"
DEFAULTTUNE_virtclass-multilib-lib32 = "mips64-n32"
DEFAULTTUNE_virtclass-multilib-lib64 = "mips64"
then the n32 extension case will be misconfigured.
It turns out saving an unexpanded variable is hard. The best I could
come up with was:
SAVEDTOS := "${@d.getVar('TARGET_OS', False).replace("{", "*")}"
and then
localdata.setVar("TARGET_OS", d.getVar("SAVEDOS", False).replace('*','{'))
which is rather evil, I'd challenge someone to come up with a nicer way
of making it work though!
Rather than the above madness, we modify cross-canadian to make the
problamtic code conditional.
This fixes the original issue (where a linux-gnuspe target was seeing
'linux') of
http://cgit.openembedded.org/openembedded-core/commit/?id=0038634ee6e2b6035c023a2702547f20f67c103a
but also fixes the multilib one.
(From OE-Core rev: 85ff3d6491c54aa712ed238c561742cda4f4ba07)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
With siggen being changed to alter the signature of nostamp tasks on the
fly, having these tasks as nostamp results in the SDK being rebuilt
every time, which is not desirable. In any case this is just legacy from
the days before we used signatures to take care of ensuring these tasks
get re-run when they need to be.
(From OE-Core rev: e9a211321b4570282d0d65a0bb519e05a3d477bb)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Since the split out of git-perltools, some git tools (such as "git am",
"git send-email" and "git-submodule") have no longer been part of the
buildtools. We need these, so add them back in.
However, adding git-perltools to buildtools triggers perl itself being
brought into buildtools as well, and we don't want that; but we also
don't want to have to hack the git recipe or indeed anything else that
starts depending on perl. Thus, add a dummy package which gets installed
in its place, in a separate package architecture that is only enabled
for buildtools to ensure it doesn't start appearing in place of
nativesdk-perl anywhere else.
Fixes [YOCTO #7033].
(From OE-Core rev: 5b051d65e797624cca3a81fc6f5c924925f3493e)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #6951]
The TOOLCHAIN_CONFIGSITE_SYSROOTCACHE value was defaulting to the nativesdk
path and not the associated target path. Set the value in toolchain-scripts
to the target path.
Be sure to set the MLPREFIX within the meta-environment script as multilibs
are processed.
Update the config_site file name to use -BPN- not PN. Otherwise the
environment processing can't find the correct filename.
(From OE-Core rev: 1f05aaa4944ddac6c2b3ba440effdf1eaf732656)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Instead of cherry-picking pieces of Python to put into the buildtools tarball,
ship all of it. We can't predict what bits of Python will be needed in the
future.
(From OE-Core rev: 745dfbc869fd593d1b92e2bc9c01d589ab21ade3)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Some machines change TARGET_OS, cross-canadian resets this which
is not what we want in this specific case. This fixes spe toolchains
for example.
(From OE-Core rev: 0038634ee6e2b6035c023a2702547f20f67c103a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently libdir is coming from cross-canadian which is incorrect. We
need to reset this to target_libdir so that the toolchains contain the
correct value.
(From OE-Core rev: 41f8f32c8da705ead464ee69bc5a1e120b137693)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Firstly, when multilib builds were being used, the same output files
were used in each case, being overwritten each time due to the fact that
REAL_MULTIMACH_TARGET_SYS has been expanded. Instead of immediate
expansion, just use assignment. This overrides the problematic define
in toolchain-scripts.bbclass but allows the multilib code to work.
Secondly, the target sysroot was being defined incorrectly which
this patch fixes. This was breaking the toolchains.
(From OE-Core rev: 17229152453a8633b2cd63b429f98cc7c192f300)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These patches are the start of a new idea, a way of allowing a single set of
cross/native sstate to work over mutliple distros, even old ones.
The assumption is that our own C library is basically up to date. We build
and share a small tarball (~2MB) of a prebuilt copy of this along with a
patchelf binary (which sadly is C++ based so libstdc++ is in there). This
tarball can be generated from our usual SDK generation process through
the supplied recipe, uninative-tarball.
At the start of the build, if its not been extracted into the sysroot, this
tarball is extracted there and configured for the specified path.
When we install binaries from a "uninative" sstate feed, we change the
dynamic loader to point at this dynamic loader and C librbary. This works
exactly the same way as our relocatable SDK does. The only real difference
is a switch to use patchelf, so even if the interpreter section is too small,
it can still adjust the binary.
Right now this implements a working proof of concept. If you build the tarball
and place it at the head of the tree (in COREBASE), you can run a build from
sstate and successfully build packages and construct images.
There is some improvement needed, its hardcoded for x86_64 right now, its trivial
to add 32 bit support too. The tarball isn't fetched right now, there is just a
harcoded path assumption and there is no error handling. I haven't figured
out the best delivery mechanism for that yet. BuildStarted is probably not
the right event to hook on either.
I've merged this to illustrate how with a small change, we might make the
native/cross sstate much more reusable and hence improve the accessibility
of lower overhead builds. With this change, its possible the Yocto Project may
be able to support a configured sstate mirror out the box. This also has
positive implications for our developer workflow/SDK improvements.
(From OE-Core rev: e66c96ae9c7ba21ebd04a4807390f0031238a85a)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently we have the horrible situation where meta-environment packages
the toolchain environment files and they get included in the SDK but are
broken, then, the SDK code overwrites them with good versions. This is
suboptimal.
This change fixes the code in meta-environment to create working
files and adds in the multilib support from populate_sdk_base, then
we remove the code in that base bbclass and rely on the packages
being installed if/as/when needed. This removes the duplication
and the broken versions of the files, hopefully making all well.
[YOCTO #6608]
[YOCTO #6613]
(From OE-Core rev: 063355e5965439c7b3253d692d7ab0ed1189d123)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Due to the use of the cross-canadian inherit, TARGET_OS can be reset to
values other than the correct one, leading to generation of the wrong
files.
By expanding REAL_MULTIMACH_TARGET_SYS before the inherit, the correct
OS value is preserved and we generate the right environment files.
[YOCTO #6608]
[YOCTO #6613]
(From OE-Core rev: ae265973c96ff4b8b5580436647fc361490e134c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
export GIT_SSL_CAINFO so git can find the certs
(From OE-Core rev: 260ea7b85ecacf2fcd4d09fa2f602d3e4368ef69)
Signed-off-by: Fahad Usman <fahad.usman@gmail.com>
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
nativesdk-ca-certificates is needed in order to support oe/yocto builds with
buildtools-tarball on old hosts, as we provide libcurl, and that needs to be
able to find the certs, and there's no standard path or bundle path, so we
can't rely on the host.
(From OE-Core rev: 057954bcc4baf9194968169591537cd7584f8bcb)
Signed-off-by: Fahad Usman <fahad.usman@gmail.com>
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As the do_package_write() task is listed as deleted, remove the few
remaining references.
(From OE-Core rev: 201d572ab5c57cda1b332356a3b7711bc346696e)
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This allows them to co-exist together in the native sysroot, with one
set of cross tools per target architecture.
(From OE-Core rev: a2c5509520d5c3e082f55844e6545d0309565f8f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Other recipes dependencies and even some comments need to be updated
for the removal of unfs-server and the replacement with unfs3. The
unfs3 is a complete drop in replacement providing all the prior
functionality of NFSv2 but also adding NFSv3.
[YOCTO #5639]
(From OE-Core rev: d577c56519a448b142da5b43e46d5bd9d3a3b4bd)
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These recipes all had a long DESCRIPTION but no SUMMARY; since the
SUMMARY is often displayed alone by package managers and the default
value ("${PN} version ${PV}") isn't particularly useful, we should
always try to set SUMMARY.
(From OE-Core rev: db02edd2e9d7645592933cbb25ea0ca4d6561392)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
A lot of our recipes had short one-line DESCRIPTION values and no
SUMMARY value set. In this case it's much better to just set SUMMARY
since DESCRIPTION is defaulted from SUMMARY anyway and then the SUMMARY
is at least useful. I also took the opportunity to fix up a lot of the
new SUMMARY values, making them concisely explain the function of the
recipe / package where possible.
(From OE-Core rev: b8feee3cf21f70ba4ec3b822d2f596d4fc02a292)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As per discussion on the mailing list [1], remove this largely
unmaintained external toolchain support in favour of the maintained
version in meta-sourcery [2].
Also correct the example and documentation.conf entries for TCMODE to
match up with this change.
[1] http://lists.openembedded.org/pipermail/openembedded-core/2013-December/087133.html
[2] https://github.com/MentorEmbedded/meta-sourcery/
(From OE-Core rev: 7603b15415301679bccbcb89af688c211704a43a)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
GMAE (GNOME Mobile And Embedded) doesn't really exist anymore and these packages
were a subset of it anyway. Remove as they don't give the user anything useful
now that you can generate a SDK from an arbitrary image.
(From OE-Core rev: c44fa1206c965054e8e4d316969a8e291cfef590)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There was still duplicated code in toolchain-scripts, this further cleans
up the functions to remove it. The now unused includedir parameter is also
dropped.
The final scripts do end up reordered slightly and the sysroot is parametrised
for the IDE scripts which is an improvement but should have no functional
difference.
(From OE-Core rev: 1dbd65b4d14319e784a66776c1e9943d0179d3ee)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Having two scripts which do basically the same thing is a nightmare. This merges
them together. It also makes the sysroot location a variable in its own right
which may be more useful for end users wanting to change sysroot.
(From OE-Core rev: 213e0c67e938b802e6bb2246f00b7343a6f77b99)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When using the tar executable in the buildtools, tar will execute
gzip. If this happens before zlib-native is built, then the gzip
on the host will be used and can fail if the libz in the buildtools
is not compatible. Adding pigz to the build tools avoids this host
contamination.
(From OE-Core rev: af6424e8c2bf3a938fddabc669c0956d68964ed0)
Signed-off-by: Konrad Scherer <Konrad.Scherer@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, the package name contains just the TRANSLATED_TARGET_ARCH.
When compiling the toolchain for two machines, belonging to the same
architecture (for example: qemuarm and beagleboard), this package gets
overwritten and adt-installer repo will contain just one
meta-environment package... This leads to situations like installing the
toolchain for qemuarm and end up with meta-environment package with
beagleboard cpu options.
[YOCTO #4783]
(From OE-Core rev: 09a2b158818e2ec3c3e3b53b6d14fd3527c32c99)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed by some recently added automated QA tests so we should add it
to the buildtools tarball.
(From OE-Core rev: 7d93288117e7054472d8a01dde0b38bc0ff98c27)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
When building a qemu image inside the environment created by the
buildtools-tarball, the qemu image cannot be started, as the runqemu
script uses the tunctl binary which cannot be found inside the sysroot
directory of the buildtools-tarball.
The buildtools-tarball is inherently a tool set instead of a fully
functional SDK, so leaving the OECORE_NATIVE_SYSROOT variable in the
environment will mess things up.
However, we do need a line of 'OECORE_NATIVE_SYSROOT=xxx' in the environment
setup script so that the SDK can be extracted and relocated correctly.
Thus, instead of exporting OECORE_NATIVE_SYSROOT, we use a comment here.
[YOCTO #4939]
(From OE-Core rev: d4a4c764a844a7e61f866af9361f139684037336)
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Addess the issue with multiple .bb providers
ERROR: Multiple .bb files are due to be built which each provide virtual/libc (/srv/hdd/releases/dylan/meta/recipes-core/eglibc/eglibc_2.17.bb /srv/hdd/releases/dylan/meta/recipes-core/meta/external-sourcery-toolchain.bb).
This usually means one provides something the other doesn't and should.
ERROR: Multiple .bb files are due to be built which each provide virtual/arm-none-linux-gnueabi-libc-for-gcc (/srv/hdd/releases/dylan/meta/recipes-core/eglibc/eglibc_2.17.bb /srv/hdd/releases/dylan/meta/recipes-core/meta/external-sourcery-toolchain.bb).
This usually means one provides something the other doesn't and should.
ERROR: Multiple .bb files are due to be built which each provide virtual/libiconv (/srv/hdd/releases/dylan/meta/recipes-core/eglibc/eglibc_2.17.bb /srv/hdd/releases/dylan/meta/recipes-core/meta/external-sourcery-toolchain.bb).
This usually means one provides something the other doesn't and should.
Thanks to Kergoth (Chris Larson) and Lpapp (Lazslo)
[YOCTO #4908]
(From OE-Core rev: 09deeef20ee5a0c12ad4fd89cace6e0fb832d5b1)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The new testimage class needs the mmap python-module in the buildtools-tarball
on machines that use the tarball to provide the correct version of python.
(From OE-Core rev: 0b3574481cb8204513001570f5fa3cc8f50ba510)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
python-git is needed by buildhistory-diff and the OE layer index update
script, and on machines where buildtools-tarball is necessary given we
are providing python we must provide this module as well.
Fixes [YOCTO #4747].
(From OE-Core rev: d9bf76b4fafc0ddcb19bf393e5e22678e49367b3)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Recently it was discovered that many Fedora hosts have a broken version of
make 3.82. Add make to the buildtools-tarball, as well ad modify make to
support building a special nativesdk version.
(From OE-Core rev: ea972fc4ce2268f01be6beeafd27dd949d800f9d)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The previous method of shrinking down the scale of the environment-setup
file would not work properly when the target is configured with multilibs.
In addition, the configured machine name and similar settings could leak
into the SDK naming. This was resolved by clearing the SDK generated
files and generating our own custom files.
Note, the name of the environment-setup now is suffixed with the SDK_SYS.
(From OE-Core rev: 778cd8d2110ef2db5ff4ae4f0b55c52a8f1ea334)
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We've been seeing issues where some TERM values don't work well with the
tarball. These show up as escape codes coming from simple python calls such
as printing the python version. Adding the terminfo goes part way to addressing
the problem, the remainder is ensuring the relocation code correctly searches
the right path for it (which will be in a follow on patch).
(From OE-Core rev: 697e64c98affc4e0d8aa4828e74331c918b23a0e)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Needed for the unittest part of bitbake-selftest can work correctly.
(From OE-Core rev: fe744381e8844ad17dcc6e036650a442dbc9575d)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
We need unittest so bitbake-selftest can work, tarfile from the compression module
for opkg-utils and json for webkit builds.
(From OE-Core rev: bbcb7329ca4340dbd3d529567dc6b605347e3368)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Improve the DESCRIPTION for the recipe and add a SUMMMARY.
(From OE-Core rev: ecdccd0c19c1d27aee43a3cca8e4467f270d7f9c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The external-python-tarball was intended to provide python for those users who
didn't have python 2.6. It has been unloved for a while so this refreshes
it a bit. Specifically:
* Include git and tar since these can have version issues on some systems
* Rename to buildtools-tarball to better reflect its purpose
* Remove the site-config file from the tarball, its pointless
* Prune down the environment file to just cover PATH and OECORE_NATIVE
(which is needed to correctly install the tarball)
* Add missing grp module (used by do_package) from the unixadmin package
(From OE-Core rev: c8de009e96930709efe8f6aa4e65dd04a48081f2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are some left over tab characters in the python functions. This
removes them and resolves python 3 errors.
(From OE-Core rev: fafeb381c48291fa65c634c01c244843c8d7fad3)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Update TOOLCHAIN_OUTPUTNAME to rename the output package which is the
similiar style to name packages meta-toolchain-*.
[YOCTO #3996]
(From OE-Core rev: e40c36ff8610ebb9ce16a4d1c14c7cf94f87cd6a)
Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
There are various usages of ALLOW_EMPTY with no packages specified. This
is not recommended syntax, nor is it likely to be supported in the future.
This patch improves the references in OE-Core, either removing them if they're
pointless (e.g. when PACKAGES="") or specifying which package it applies to.
(From OE-Core rev: fe81bd4f600877e63433184cfc2e22c33bb77db6)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
external-python-tarball only can be built when inherit package_ipk now.
Update it to reuse existed populate sdk code that it could be built for
rpm and deb too.
Remove var DEPENDS, SDK_* and flags of do_populate_sdk because they are
already defined in populate_sdk bbclasses.
[Yocto 3006]
(From OE-Core rev: 57134958a2c6b74de8654600e33acdd265966638)
Signed-off-by: Kang Kai <kai.kang@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Currently, do_rootfs has a dependency on all the do_package output being present
due to its usage of the pkgdata directories. This means that if you run:
bitbake xxxx-image -c rootfs
you end up having to fetch and unpack all the do_package data which is usually
large and inefficient. It also means rm_work has to leave all the do_package
data lying around so rootfs works.
This patch splits the actual creation of the pkgdata directory off into a separate
task, "packagedata" which happens immediately after do_package. We can then remap
the dependencies so this task is depended upon, not do_package. Sstate can then be
programmed not to require do_package at the appropriate times.
Whilst this patch doesn't do so, it opens the possibility of rm_work wiping
out the do_package output from WORKDIR as long as it also removed the do_package
stamp (both normal and setscene variants) and allowing more space savings
with rm_work which has been regularly requested.
(From OE-Core rev: 6107ee294afde395e39d084c33e8e94013c625a9)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Having to include some dummy class is suboptimal and we no longer need to
do this. Also move this check to populate_sdk_base since we then don't
need to include it in toolchains specifically.
(From OE-Core rev: 2ee979ff71d31e497be856ea1443667c6d799d34)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
"Package group" is a much more appropriate name for these than task,
since we use the word task to describe units of work executed by
BitBake.
(From OE-Core rev: 424dcf7046e4ad09dcc664eb1992201195247fcf)
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
As discussed on the mailing lists, using a suffix to package names is
hard and has lead to many recipes having to do PKGSUFFIX games. Its
looking extremely hard to scale nativesdk much further without hacking
many recipes.
By comparison, using a prefix like multilib does works much better and
doesn't involve "hacking" as many recipes. This change converts nativesdk
to use a prefix using the existing multilib infrastructure.
(From OE-Core rev: 81813c0e322dc04ce4b069117188d8a54dfddb8c)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed because ipk tools and variables (specically
IPKGCONF_TARGET and IPKGCONF_SDK) are used from the rootfs_ipk.bbclass
I tried to inherit directly but it still fails to expand those.
[YOCTO #2814]
(From OE-Core rev: 161043782682cccd2efc2b349e8248ae084857c7)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #2761]
This patch fixed the issue that after "bitbake meta-ide-support" and try to start qemu and it will fail. This is due to the meta-ide-support lacking dependency for qemu native and ended up using qemu under /usr/bin. Fix the issue by adding dependency for qemu native in meta-ide-support and also add the path info in the environment-setup script.
(From OE-Core rev: 3ea597249c18d73417abe7d7a9d32bba00499914)
Signed-off-by: Jessica Zhang <jessica.zhang@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
If the usr/lib directory doesn't exist, the toolchain can fail to even try to
find crti.o in a completely different directory. This causes a failure for the
case where baselib is lib64.
(From OE-Core rev: 3c368f4c989bee68953b6d0fbf2adc44f97cc100)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Rather than hardcoding the multilib path in a map, and hardcoding dest sysroot
symlink creation in a hook, now we just use -print-sysroot for both, and pass
the appropriate multilib args to the toolchain for particular tunes.
(From OE-Core rev: b9a9c28f7052884b2a6a33cf73cb6d7e2e3d11ff)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is a rename per the purchase of CodeSourcery by Mentor Graphics
Corporation, and associated naming change.
(From OE-Core rev: dead1540d769fc91a5bd171070a5c96a9f00a2c7)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This silences one of the QA warnings.
(From OE-Core rev: 3412a1d69201951dd097e4d9a4abcec124d34d68)
Signed-off-by: Christopher Larson <kergoth@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This avoids a number of bogus preferred providers warnings too.
(From OE-Core rev: 823a2f96df84547216a26697838977a162f838c5)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Export PYTHONHOME to ${STAGING_DIR_NATIVE}/usr. In this way python will search
for modules in native sysroot.
[YOCTO #2134]
(From OE-Core rev: 230b235329bcaca1a95afd89801d28768aff483b)
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This is needed to ensure that the RDEPENDS_${PN}-dev,
RDEPENDS_${PN}-staticdev, and RRECOMMENDS_${PN}-dbg are accurate with respect
to the PKGV of the ${PN} package, and incidentally fixes an rpm packaging
issue, as rpm dislikes the recipe PV as PKGV.
(From OE-Core rev: 61d5fa2b7ae6b3ce49747a102b3817c36f6cf85d)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
The use of __packed, which isn't defined in userspace, caused busybox build
failures.
(From OE-Core rev: 9c44bb6434a1d2347ebbb38bde9671688b0ae447)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
CS puts optimized executables in usr/lib/bin, not usr/bin.
(From OE-Core rev: 25d22bfb0970f7152b678796f2282dced7230fe1)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Unfortunately, the CSL ia32 toolchain has non-prefixed binaries in its bindir
(e.g. gcc, ld). To avoid this messing up our build, we avoid adding this
bindir to our PATH, and instead add symlinks to the prefixed binaries to our
staging toolchain bindir.
(From OE-Core rev: c924d878b55cce7a0e98dc60acf706b5a1b4f404)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
- Rather than adjusting TARGET_VENDOR, which results in our TARGET_SYS
matching the external toolchain, override TARGET_PREFIX to match external,
and leave TARGET_SYS alone
- Grab the optimized files out of the toolchain if available
- Create a symlink in sysroot to ensure the sysroot layout matches toolchain
expectations (optimized files in a subdir)
(From OE-Core rev: a37298eb3421a44e88ec5a66b2fc5305ab18f453)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
These allow the recipe to build again:
- add compilerlibs, g++, libgcc to the provides
- add linux-libc-headers-dev to the packages
- in libc-package, only sed the ldd.bash.in file if it exists, as the external
toolchain is using that class as well
- shift the inherit location of the libc classes, as they were overriding the
recipe's do_install
- use ?= for EXTERNAL_TOOLCHAIN, so the user can set it
(From OE-Core rev: 8fb1c84f4cadf8d7a061fd6d90d270c19b474bfe)
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
I noticed with while grepping for usage of noexec. Replace
do_populage_sysroot with do_populate_sysroot.
(From OE-Core rev: 278febfc6d8f35f00f770db519e5a5d4040ae39c)
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #892]
Use the new cached site config files generation mechanism in
toolchain-script.bbclass.
(From OE-Core rev: 445d6426197579a9c0317498cc6919bb63e7f726)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1306] Fixing.
Added and unified version related variables in all environment files
generated by package meta-toolchain, meta-ide-support,
meta-environment-xxx.
(From OE-Core rev: 5fbea0f2614d5bc9aec0819a337cdec9b5331f71)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Fixed [BUGID #1299]. OLD_MULTIMACH_TARGET_SYS is no longer available.
Use new recipe-scope variable REAL_MULTIMACH_TARGET_SYS instead.
(From OE-Core rev: b69a2be2f30dc633597399d42d6c87d9f0910c1a)
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
*libc's do_package will cost a lot of time due to the locale handing,
which may delay the other recipe's do_package task and affect the build
performance.
This commit moves locale handling into a separate recipe *libc-locale.
[RP: Add fixup with recent eglibc commit conflict for FILES_pn-dbg and PACKAGES]
(From OE-Core rev: c6d3242f7642f537b02870bb4eb650f0e2094b85)
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
[YOCTO #1024]
Currently package-index.bb only supports ipk. This commit adds the support
for rpm and deb, too.
------------------------------
How to generate and use repos:
1) run "bitbake package-index" after building some target,
e.g., core-image-sato-sdk;
2) export ${DEPLOY_DIR_RPM}, ${DEPLOY_DIR_IPK} and ${DEPLOY_DIR_DEB} by a
webserver on the host, assuming the host IP is 192.168.7.1, at
http://192.168.7.1/rpmhttp://192.168.7.1/ipkhttp://192.168.7.1/deb
3) inside the target, according to the packaging system (rpm, ipk or deb) used
when we generate the target image, we can use different ways to manage
packages:
3.1) RPM
run "zypper addrepo http://192.168.7.1/rpm main; zypper refresh"
to retrieve info about the repo; next, we can use "zypper install/remove"
to manage packages.
3.2) IPK
add the repo info into opkg config file, i.e., in
/etc/opkg/arch.conf, we can add something like
"src i586 http://192.168.7.1/ipk/i586", and next, we run "opkg update" to
make opkg update the list of available packages. And later, we can use
"opkg install/remove" to manage packages.
3.3) DEB
Currently in target, some important config files, like
/var/lib/dpkg/status and /etc/apt/sources.list, for deb/apt are missing. So
we can't install/remove package in target at present.
(From OE-Core rev: 01e34bdb43e0cc27c1cfffd6730c384f40c404c1)
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Enable toolchain automation tests in qemuimagetest framework. 3 C/C++ test
projects are added to test toolchain - cvs, iptables and sudoku-savant. User
needs to set TEST_SCEN to "toolchain" in local.conf to enable tests. Test case
will check if toolchain tarball exists under "${DEPLOY_DIR}/sdk". And it will
extract toolchain tarball into /opt. It requires user to chown /opt to non-root
user, who will run qemuimagetest.
Signed-off-by Jiajun Xu <jiajun.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>