aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/populate_sdk_base.bbclass
AgeCommit message (Collapse)Author
2016-05-13conf: bump minimum kernel to 3.2.0Khem Raj
glibc 2.24 have raised the bar for minimum supported kernel for more details see http://repo.or.cz/glibc.git/commit/5b4ecd3f95695ef593e4474b4ab5a117291ba5fc Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-03-02populate_sdk_base: handle empty SDK_PACKAGING_FUNCChristopher Larson
Currently, the pre/post process command variables are parsed as shell, even though they're not shell anymore. As a result, an empty SDK_PACKAGING_FUNC results in a parsing error. Rather than manually adding their vardeps, only append its ; when the var is set. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-18image/populate_sdk: seprate variables to fix dependencyChen Qi
Previously, do_rootfs depends on variables like SDK_OS, SDK_OUTPUT, etc. And changing variables like POPULATE_SDK_POST_HOST_COMMAND doesn't cause do_populate_sdk to rerun. This patch separates variables so that do_rootfs and do_populate_sdk could correctly depend on their related variables. [YOCTO #8670] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-23populate_sdk: Use pixz instead of xzRichard Purdie
xz is slow at compressing the SDKs, we can speed it up by using the parallel compressor, pixz. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-22classes/populate_sdk*: add dependencies on script filesPaul Eggleton
If the script files we use to construct the SDK installer change then that really ought to trigger re-execution of the do_populate_sdk(_ext) task, so add file-checksums varflags to ensure that happens. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-20lib/oe/rootfs: Use list_pkgs() instead of list()Mariano Lopez
This patch changes the use list_pkgs() instead of list() from class RpmPkgsList. The change is in two functions, image_list_installed_packages from rootfs.py and sdk_list_installed_packages from sdk.py. With this change the functions calling the functions listed above, must format the output as they required. The formatting can be done using format_pkg_list() from oe.utils. The classes calling the afected functions are changed too with this patch, to keep the same functionality using the new data structure. [YOCTO #7427] Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-11populate_sdk: Switch from bzip2 to xzRichard Purdie
xz gives *much* faster decompression times for the SDK which in itself is a good reason to use it. It also gives better compression. One downside is its slower but we care about the end user case first, build performance secondary. It also assumes the SDK user has a tar capable of understanding a xz compressed file but that should be common enough now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-12-01populate_sdk_base: Add sysroot symlink checkHaris Okanovic
Add optional check to do_populate_sdk() that verifies SDK sysroots don't contain dangling or escaping symlinks before attempting to tar an archive. Such links may fail a `tar -h` operation (-h => follow symlinks) or archive the build system's files. Set CHECK_SDK_SYSROOTS = "1" to enable this check. Use case: The -h option may be set via SDKTAROPTS in some configurations to create symlink-less SDK archives for Windows file systems. Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-10-24populate_sdk_base: Ensure PKGDATA_DIR existsRichard Purdie
The code assumes that PKG_DATADIR exists and will fail if an image has not been generated which creates it. This occurs when something like buildtools-tarball is built which doesn't have target packages, only nativesdk ones. Since this shouldn't be fatal, workaround this by creating the missing directory. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-29populate_sdk_base: Simplify postprocess commandsRichard Purdie
When looking at and trying to build a slightly customised SDK, I realised the code could be simplified and written in a way which was more customisable. This patch moves various function calls into the SDK_POSTPROCESS_COMMAND which was intended for this kind of use. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-12populate_sdk_base: Fix aarch64 OLDEST_KERNEL sdk issuesRichard Purdie
aarch64 sets OLDEST_KERNEL to 3.14. This stops the aarch64 SDK installing on anything with an older kernel which is clearly incorrect. I attempted to extract the correct non-overridden version from the data store but it proved problematic and I was running into data store issues. Those are a separate problem but there isn't time to fix this right now. Instead just code the SDK kernel version separately to work around this for now (and fix the autobuilder tests and SDK usage). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-07toolchain-shar-extract.sh: better default install path for extensible SDKBrendan Le Foll
Extensible SDK cannot be installed as root so by default offer to install it in user's home directory under distro/distro_version replacing the normal SDK version '+' char with a '_' as that's a restricted character for bitbake Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-07-20extensible sdk: Error when trying to install as root.Randy Witt
Since the extensible sdk uses bitbake, which can't run as root, the sdk shouldn't be installed as root. Previously it would error out late into setup when bitbake errored saying not to run bitbake as root. Now the script errors with a message saying the extensible sdk can't be installed as root. [Yocto #7545] Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-07-12populate_sdk_base.bbclass: don't inherit toolchain-scripts.bbclassRobert Yang
Fixed when enable multilib: require conf/multilib.conf MULTILIBS = "multilib:lib32" DEFAULTTUNE_virtclass-multilib-lib32 = "x86" $ bitbake core-image-minimal No lib32 package should be built since we don't build lib32-core-image-minimal, but a lot them are built: lib32-opkg-utils lib32-cryptodev-linux lib32-sqlite3 lib32-libtool-cross lib32-ncurses lib32-db lib32-diffutils lib32-zlib lib32-gcc-cross-i686 lib32-gcc-cross-initial-i686 lib32-flex lib32-libgcc-initial lib32-libffi lib32-linux-libc-headers lib32-expat lib32-openssl lib32-glibc lib32-binutils-cross-i686 lib32-gcc-runtime The are introduced by toolchain-scripts.bbclass' anonymous function (the MULTILIB_VARIANTS), but it doesn't need toolchain-scripts.bbclass, in fact, so remove it to fix the problem. [YOCTO #7961] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-06-27populate_sdk_base.bbclass: use pbzip2 to compress SDK tarfilesAndre McCurdy
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-28populate_sdk_base: also record the host part into manifestChen Qi
For now, we can create manifest for the target part for SDK. I think it's nice to have a place for users to look into to examine contents of the host part of SDK. This also affects uninative-tarball and buildtools-tarball as they inherit populate_sdk.bbclass. After this change, we could have a manifest file created in the deploy directory containing a list of packages used to construct them. [YOCTO #7604] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-04-24populate_sdk_base: avoid executing empty functionChen Qi
`bitbake uninative-tarball' raises the following warning. WARNING: Function doesn't exist This is because SDK_PACKAGING_FUNC is set to "" in its recipe. Anyway, we need to check this variable to avoid executing empty function. [YOCTO #7598] Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
2015-04-24classes/populate_sdk_base: Show title in SDK installerPaul Eggleton
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. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-23toolchain-shar-template.sh: Make relocation optional.Randy Witt
If the buildsystem is copied into the sdk and its toolchain is to be used, then the relocation provided in toolchain-shar-template.sh isn't needed and will actually fail. So break the relocation aspect out and essentially make it another SDK_POST_INSTALL_COMMAND script. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-17populate_sdk: Handle OLDEST_KERNELRichard Purdie
Add a check to the SDK so that it only runs on systems with kernel versions it supports. [YOCTO #6856] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-02sed-native: dropPaul Eggleton
This was added back in the depths of history (around 2006 in OE-Classic) when apparently the host sed couldn't always be relied upon. We now call the host sed all over the place without this dependency and don't have any problems. On the other hand, having it around can lead to races where we're calling sed in one task and staging it to the sysroot in another, the result being nasty failures compiling binutils for example. Since it isn't needed, let's just drop it completely. Fixes [YOCTO #7264]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-22populate_sdk_base/meta-environment: Remove overlap from the twoRichard Purdie
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-11classes/populate_sdk_base: enable adding custom commands to SDK install scriptPaul Eggleton
Add an SDK_POST_INSTALL_COMMAND variable which allows additional commands to be added towards the end of the SDK install script, for e.g. additional processing that needs to be done as part of installing the SDK. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-28populate_sdk_base: Remap TOOLCHAIN_HOST_TASK variableRichard Purdie
Currently this variable isn't passed through the magic rename mangling. This means that if you try adding "nativesdk-eglibc" to an image directly, you can't since the package is renamed by debian.bbclass and nothing sees the renaming. This is annoying since I wanted to exactly that. This code change passes it through the standard renaming function, the tricky part is that we have to set PKGDATA_DIR to point to the correct sysroot during the call. We create a copy of the datastore for the purposes of the call to do this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-27classes/populate_sdk_base.bbclass: add a manifest for target sdkCorneliu Stoicescu
Similar to the way BSP images have rootfs a manifest, the toolchain now also has a manifest file created alongside the sdk image. Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15populate_sdk_base: Move toolchain installation script to a separate fileRichard Purdie
It makes sense to move the script to a separate file, making the bbclass clearer and allowing the end user to more easily customise or replace it. There are no functionality changes, just the addition of some substitution variables. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-08-15classes: Combine rootfs_<pkgtype> and populate_sdk_<pkgtype>Richard Purdie
There is no real reason to have these separate files any longer. It does mean in meta-toolchain type recipes some extra variables are defined but it also means the common code can be grouped and maintained together which I believe is more beneficial. We therefore merge the classes. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-29populate_sdk_base: Fix grep command usage on old hostsRichard Purdie
"man grep" on centos: -R, -r, --recursive Read all files under each directory, recursively; this is equivalent to the -d recurse option. "man grep" on a more recent ubuntu system: -r, --recursive Read all files under each directory, recursively, following symbolic links only if they are on the command line. This is equivalent to the -d recurse option. So we have an issue when the SDK installer (even with buildtools-tarball) is used on old hosts since it may try and dereference paths which it should not. This is caused by differences in the behaviour of grep -r on older systems. The fix is to wrap this in find so that only real files are found (as elsewhere in the script. [YOCTO #6577] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-27populate_sdk_base: Include do_rootfs depends for do_populate_sdkRichard Purdie
"bitbake core-image-minimal -c populate_sdk; rm tmp -rf; bitbake core-image-minimal -c populate_sdk" breaks due to missing dependencies on things like update-rc.d. Since we're effecitvely building a rootfs, we need all the same depends as do_rootfs has. The easiest was to achieve this is to simply load them. This resolves the failure when targeting the task from sstate. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-25populate_sdk_base: Extend TOOLCHAIN_TARGET_TASK to include multilib variantsRichard Purdie
Most people expect the toolchain from a multilib build to contain multilib components. This change makes that happen and is easy for users to override should they want something different. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-19populate_sdk_base: ensure that filenames with empty space character are handledJoão Henrique Ferreira de Freitas
When extracting toolchain, if the list $executable_files has filenames with empty space character, the list will created but relocate_sdk.sh will not handle it well. This will lead to the below erro: ./tmp/deploy/sdk/buildtools-mytools-x86_64-nativesdk-standalone-1.6.1.0.sh Enter target directory for SDK (default: /opt/mydistro/mytoolset/1.6.1.0): You are about to install the SDK to "/opt/mydistro/mytoolset/1.6.1.0". Proceed[Y/n]? Extracting SDK...done Setting it up.../opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: sintaxe error `token' `(' /opt/mydistro/mytoolset/1.6.1.0/relocate_sdk.sh: line 2: `e The same occurs with replacement of ${SDKPATH} in configs/scripts/etc files. We should ensure that full path is protected before relocate_sdk.sh and ${SDKPATH} replacement calls. Signed-off-by: João Henrique Ferreira de Freitas <joaohf@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-29populate_sdk_base: Remove confusing echoRichard Purdie
Remove a confusing echo after the previous commit, thanks for a suggestion from Laurentiu. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> A
2014-06-29populate_sdk_base: add auto-completion in setupDennis Meier
Signed-off-by: Dennis Meier <meier.dennis@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-25populate_sdk: Fix TOOLCHAIN_TARGET_TASK_ATTEMPTONLY implementationMark Hatle
The variable was only partially implemented, and the part that was there was named incorrectly to, missing the 'TASK' piece. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-17Revert "populate_sdk: verify executable or dynamically linked library"Roy Li
It is introduced a bug, since The return of "file ld-linux-x86-64.so.*" does not include "dynamically linked" in redhat 5.9/6.0(32 bit), and lead to that ld-linux-x86-64.so.* is not in executable file list. Signed-off-by: Roy Li <rongqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-04-04SDK default deploy directoryDavid Vincent
If the user changes the DEPLOY_DIR variable to set up a custom deploy directory for images, packages, SDKs as explained in the documentation, the variable SDK_DEPLOY does not take it into account and fallback to TMPDIR as default. Therefore, SDKs were not found in the correct location. Signed-off-by: David Vincent <freesilicon@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-03-28populate_sdk_base: add dependency of do_package_write_* tasksLaurentiu Palcu
nativesdk packages were created only for the first backend listed in PACKAGE_CLASSES. Hence, if one had it set to "package_rpm package_ipk" and did a 'bitbake -c populate_sdk core-image-something', the nativesdk packages were created only for rpm. This is particularily bad for adt-installer which is based on opkg repos. Credits go to richard.purdie@linuxfoundation.org who suggested me this fix. [YOCTO #5900] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-17classes/populate_sdk_base: optimise task dependenciesPaul Eggleton
We don't need to depend on do_package anymore after the split out of do_packagedata (which happened a while back in OE-Core commit 6107ee294afde395e39d084c33e8e94013c625a9). We do need dependencies on do_packagedata though since the SDK construction needs to make use of the pkgdata files. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-17classes/populate_sdk_base: fix race condition with do_rootfsPaul Eggleton
do_rootfs has ${S} in cleandirs, and during do_populate_sdk we call exec_func() several times, which by default uses ${B} as the working directory. If do_populate_sysroot and do_rootfs race against eachother, the directory may not exist at the exact instant that the setup code for do_populate_sdk tries to cd into it. We don't actually use ${B} for do_populate_sysroot so we can set it to something else just for that task to avoid the race. NOTE: because this task name contains an underscore, the override will not work; the BitBake patch that changes these to hyphens for the task override is required for this patch to work (but won't break things without it.) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-02-11image.bbclass/populate_sdk_base.bbclass: shift position of sdk complementary ↵Hongxu Jia
install definition The sdk complementary install operation was defined in image.bbclass, but the sdk recipe (such as meta-toolchain.bb) didn't inherit this bbclass but populate_sdk, and both of image and populate_sdk bbclass inherited populate_sdk_base bbclass, so move the sdk complementary install definition to populate_sdk_base bbclass fixed this issue. Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
2014-02-11populate_sdk_base.bbclass: activate the new python routinesLaurentiu Palcu
Lose the old shell populate_sdk_image() function and use the new python implementation. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
2014-02-08classes/populate_sdk_base: remove nostamp from do_populate_sdkPaul Eggleton
We've removed nostamp from do_rootfs in image.bbclass in OE-Core commit 8505008c115efb54d18e5f25441c7a938a32ffaf, and we should do the same for do_populate_sdk here for the same reason - we can now rely on task signatures so if nothing has changed, we don't need to re-run it. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-12-03populate_sdk: verify executable or dynamically linked libraryyzhu1
When toolchain directory is changed to execute mode, some non-executable files or empty files are sorted. This will result in some errors. Thus when sorting executable files or dynamically linked library, additional conditions are to exclude non-executable files or empty files. Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-09-20classes/imagetest-qemu: remove old image testing classPaul Eggleton
This has now been superseded by testimage. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
2013-09-10populate_sdk_base.bbclass: select the proper cross-canadian packageLaurentiu Palcu
Since packagegroup-cross-canadian package name has MACHINE in it, make the necessary changes here. [YOCTO #4783] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-08-22populate_sdk_base: Allow sdk tar options to be overriddenRichard Purdie
It can be useful to override or append options to the SDK tarball creation command so add a variable to allow this. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-07-18populate_sdk_base.bbclass: use new perm option for findStefan Stanacar
Old way find -perm +mode is no longer supported in newer versions of find (Fedora 19). Man page says: -perm +mode This is no longer supported (and has been deprecated since 2005). Use -perm /mode instead. [YOCTO #4853] Signed-off-by: Stefan Stanacar <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-07-09populate_sdk_base.bbclass: allow $OECORE_NATIVE_SYSROOT in sdk_env_scriptBernhard Guillon
Only grep for 'OECORE_NATIVE_SYSROOT=' otherwise things like toolchain_create_sdk_env_script_append() { echo 'export MY_DIR_FOO=$OECORE_NATIVE_SYSROOT/my/dir/foo' >> $script } trigger the following error while executing the install script: find: `$OECORE_NATIVE_SYSROOT/my/dir/foo': No such file or directory Signed-off-by: Bernhard Guillon <Bernhard.Guillon@hale.at> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-07-09populate_sdk_base: fix bashismLaurentiu Palcu
Only the printf bash builtin knows about %q format option for escaping spaces. The coreutils version doesn't. Unfortunately, neither dash nor sh have a printf builtin. So, escape the spaces using sed. [YOCTO #4811] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-06-25populate_sdk_base, adt_installer: abort install if path contains spacesLaurentiu Palcu
Spaces are not handled properly in some parts of oe-core and it's safer to abort toolchain installation if path contains spaces. Even though we fix space handling in the toolchain installation script, there are various other parts in the toolchain (perl scripts, sysroot path passed to toolchain binaries, shebang lines) that would need special handling. So, for now, just bail out if path contains spaces. The checking for spaces in the path is done after expanding relative paths to absolute and tilde conversion. [YOCTO #4488] Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>