path: root/meta/files
Commit message (Collapse)AuthorAgeFilesLines
* pkgconf: add recipeMaxin B. John2017-08-231-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | pkgconf is a better replacement for pkg-config. Fedora 26 replaces the system pkg-config implementation with pkgconf because it "provides better support for handling .pc files and a stable library ABI/API for integrating into applications." and is actively maintained, unlike pkg-config. pkgconf aims to offer many improvements over pkg-config such as faster/more efficient dependency resolver which "allows for the user to more conservatively link their binaries -- which may be helpful in some environments, such as when prelink(1) is being used. pkgconf also aims to provide a more complete implementation of pkg-config. The features most likely to benefit the Yocto Project build system are the faster/more efficient dependency resolution and linker flag optimisation. Move pkgconf recipe to oe-core from meta-pkgconf: Links: 1. 2. 3. Signed-off-by: Christopher Larson <> Signed-off-by: Maxin B. John <> Signed-off-by: Richard Purdie <>
* package.bbclass: support persistent /var/logChen Qi2017-08-171-0/+66
| | | | | | | | | | | | | Add a new file, fs-perms-persistent-log.txt, which treats /var/log as a directory instead of a link. Modify package.bbclass to use this file if VOLATILE_LOG_DIR is set to boolean false value. [YOCTO #6132] Signed-off-by: Chen Qi <> Signed-off-by: Richard Purdie <>
* use quiet mode when preparing sysrootPaul Eggleton2017-04-191-1/+1
| | | | | | | | | | | | In order to have a shared sysroot usable within the eSDK after recipe specific sysroots were implemented, we need to run bitbake build-sysroots as a separate call. However, unlike the first call, --quiet wasn't being specified and that somewhat undermined the earlier effort to clean up the eSDK installation output. Make this second call quiet as well so that the output is tidier. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* fs-perms.txt: Two cleanup tweaks for consistency.Robert P. J. Day2017-03-171-4/+1
| | | | | | | | * Remove duplicate entry for /srv already defined earlier in file. * Use "${localstatedir}" rather than "/var" for consistency. Signed-off-by: Robert P. J. Day <> Signed-off-by: Ross Burton <>
* Ensure sbin directories are in PATH in clean ↵Richard Purdie2017-03-101-0/+14
| | | | | | | | | | | | environment For the PATH host tool whitelisting to work, the sbin directories need to be in PATH. In the cleaned SDK environment on some distros, this isn't the case and the SDK would then fail to setup there. This adds code to add such paths if they do happen to be missing, ugly, but unblocks the PATH whitelisting which I believe to be important. Signed-off-by: Richard Purdie <>
* kernel, license, sstate, Remove deploy directory READMEMike Crowe2017-02-281-8/+0
| | | | | | | | | | | | | | | | | | | | | | It isn't clear that the README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt file in the deploy directory warrants the complexity it brings elsewhere. Let's just remove it entirely. In particular, if two do_image_complete tasks run in parallel they risk both trying to put their image into ${DEPLOY_DIR_IMAGE} at the same time. Both will contain a README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt file. In theory this should be safe because "cp -alf" will just cause one to overwrite the other. Unfortunately, coreutils cp also has a race[1] which means that if one copy creates the file at just the wrong point the other will fail with: cp: cannot create hard link ‘..../tmp-glibc/deploy/images/pantera/README_-_DO_NOT_DELETE_FILES_IN_THIS_D.txt’ to +‘..../tmp-glibc/work/rage_against-oe-linux-gnueabi/my-own-image/1.0-r0/deploy-my-own-image-complete/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt’: File exists [1] Signed-off-by: Mike Crowe <> Signed-off-by: Ross Burton <>
* toolchain-shar-extract: compare SDK and host gcc versionsEd Bartosh2017-01-311-0/+8
| | | | | | | | | | | | | | | | | If ext sdk is built by gcc version higher than host gcc version and host gcc version is 4.8 or 4.9 the installation is known to fail due to the way uninative sstate package is built. It's a known issue and we don't have a way to fix it for above mentioned combinations of build and host gcc versions. Detected non-installable combinations of gcc versions and print an installation error. [YOCTO #10881] Signed-off-by: Ed Bartosh <> Signed-off-by: Ross Burton <>
* Switch to Recipe Specific SysrootsRichard Purdie2017-01-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is comparatively large and invasive. It does only do one thing, switching the system to build using recipe specific sysroots and where changes could be isolated from it, that has been done. With the current single sysroot approach, its possible for software to find things which aren't in their dependencies. This leads to a determinism problem and is a growing issue in several of the market segments where OE makes sense. The way to solve this problem for OE is to have seperate sysroots for each recipe and these will only contain the dependencies for that recipe. Its worth noting that this is not task specific sysroots and that OE's dependencies do vary enormously by task. This did result in some implementation challenges. There is nothing stopping the implementation of task specific sysroots at some later point based on this work but that as deemed a bridge too far right now. Implementation details: * Rather than installing the sysroot artefacts into a combined sysroots, they are now placed in TMPDIR/sysroot-components/PACKAGE_ARCH/PN. * WORKDIR/recipe-sysroot and WORKDIR/recipe-sysroot-native are built by hardlinking in files from the sysroot-component trees. These new directories are known as RECIPE_SYSROOT and RECIPE_SYSROOT_NATIVE. * This construction is primarily done by a new do_prepare_recipe_sysroot task which runs before do_configure and consists of a call to the extend_recipe_sysroot function. * Other tasks need things in the sysroot before/after this, e.g. do_patch needs quilt-native and do_package_write_deb needs dpkg-native. The code therefore inspects the dependencies for each task and adds extend_recipe_sysroot as a prefunc if it has populate_sysroot dependencies. * We have to do a search/replace 'fixme' operation on the files installed into the sysroot to change hardcoded paths into the correct ones. We create a fixmepath file in the component directory which lists the files which need this operation. * Some files have "postinstall" commands which need to run against them, e.g. gdk-pixbuf each time a new loader is added. These are handled by adding files in bindir with the name prefixed by "postinst-" and are run in each sysroot as its created if they're present. This did mean most sstate postinstalls have to be rewritten but there shouldn't be many of them. * Since a recipe can have multiple tasks and these tasks can run against each other at the same time we have to have a lock when we perform write operations against the sysroot. We also have to maintain manifests of what we install against a task checksum of the dependency. If the checksum changes, we remove its files and then add the new ones. * The autotools logic for filtering the view of m4 files is no longer needed (and was the model for the way extend_recipe_sysroot works). * For autotools, we used to build a combined m4 macros directory which had both the native and target m4 files. We can no longer do this so we use the target sysroot as the default and add the native sysroot as an extra backup include path. If we don't do this, we'd have to build target pkg-config before we could built anything using pkg-config for example (ditto gettext). Such dependencies would be painful so we haven't required that. * PKDDATA_DIR was moved out the sysroot and works as before using sstate to build a hybrid copy for each machine. The paths therefore changed, the behaviour did not. * The ccache class had to be reworked to function with rss. * The TCBOOTSTRAP sysroot for compiler bootstrap is no longer needed but the -initial data does have to be filtered out from the main recipe sysroots. Putting "-initial" in a normal recipe name therefore remains a bad idea. * The logic in insane needed tweaks to deal with the new path layout, as did the debug source file extraction code in package.bbclass. * The logic in sstate.bbclass had to be rewritten since it previously only performed search and replace on extracted sstate and we now need this to happen even if the compiled path was "correct". This in theory could cause a mild performance issue but since the sysroot data was the main data that needed this and we'd have to do it there regardless with rss, I've opted just to change the way the class for everything. The built output used to build the sstate output is now retained and installed rather than deleted. * The search and replace logic used in sstate objects also seemed weak/incorrect and didn't hold up against testing. This has been rewritten too. There are some assumptions made about paths, we save the 'proper' search and replace operations to fixmepath.cmd but then ignore this. What is here works but is a little hardcoded and an area for future improvement. * In order to work with eSDK we need a way to build something that looks like the old style sysroot. "bitbake build-sysroots" will construct such a sysroot based on everything in the components directory that matches the current MACHINE. It will allow transition of external tools and can built target or native variants or both. It also supports a clean task. I'd suggest not relying on this for anything other than transitional purposes though. To see XXX in that sysroot, you'd have to have built that in a previous bitbake invocation. * pseudo is run out of its components directory. This is fine as its statically linked. * The hacks for wayland to see allarch dependencies in the multilib case are no longer needed and can be dropped. * wic needed more extensive changes to work with rss and the fixes are in a separate commit series * Various oe-selftest tweaks were needed since tests did assume the location to binaries and the combined sysroot in several cases. * Most missing dependencies this work found have been sent out as separate patches as they were found but a few tweaks are still included here. * A late addition is that extend_recipe_sysroot became multilib aware and able to populate multilib sysroots. I had hoped not to have to add that complexity but the meta-environment recipe forced my hand. That implementation can probably be neater but this is on the list of things to cleanup later at this point. In summary, the impact people will likely see after this change: * Recipes may fail with missing dependencies, particularly native tools like gettext-native, glib-2.0-native and libxml2.0-native. Some hosts have these installed and will mask these errors * Any recipe/class using SSTATEPOSTINSTFUNCS will need that code rewriting into a postinst * There was a separate patch series dealing with roots postinst native dependency issues. Any postinst which expects native tools at rootfs time will need to mark that dependency with PACKAGE_WRITE_DEPS. There could well be other issues. This has been tested repeatedly against our autobuilders and oe-selftest and issues found have been fixed. We believe at least OE-Core is in good shape but that doesn't mean we've found all the issues. Also, the logging is a bit chatty at the moment. It does help if something goes wrong and goes to the task logfiles, not the console so I've intentionally left this like that for now. We can turn it down easily enough in due course. Signed-off-by: Richard Purdie <>
* sdk-installer: Fix unclear SDK installer messageTodor Minchev2016-10-111-1/+1
| | | | | | | | | | | | When the host and the SDK architectures are incompatible the SDK installer outputs an incomplete error message "Error: Installation machine not supported!". This commit adds a more verbose error message e.g "Error: Incompatible SDK installer! Your host is i686 and this SDK was built for x86_64 hosts." Signed-off-by: Todor Minchev <> Signed-off-by: Ross Burton <> Signed-off-by: Richard Purdie <>
* Fix typoRichard Purdie2016-09-231-1/+1
| | | | Signed-off-by: Richard Purdie <>
* Add error-handlingMariano Lopez2016-09-221-1/+19
| | | | | | | | | | | | The relocation script of the SDK doesn't have enough error handling when replacing host perl with SDK perl or changing the symlinks. This will add those checks along with a sanity check of xargs. [YOCTO #10114] Signed-off-by: Mariano Lopez <> Signed-off-by: Ross Burton <>
* classes/populate_sdk_ext: drop duplicated error messagePaul Eggleton2016-08-171-1/+1
| | | | | | | | | | | | | The preparation script itself prints out an error on failure, and we aren't redirecting its output anymore, so we no longer need to print out a message here when it fails. At the same time, make the message printed out by the script a little clearer - we're just writing the log out to the file, we shouldn't give the user an expectation that there will be extra details in there (other than the output produced by oe-init-build-env there won't be). Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* classes/populate_sdk_ext: add some pre-install checksPaul Eggleton2016-08-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check a number of things as early as possible in the eSDK installer script so that the user gets an error up front rather than waiting for the build system to be extracted and then have the error produced: * Check for missing utilities specified in SANITY_REQUIRED_UTILITIES (along with gcc and g++), taking into account that some of these are satisfied by buildtools which ships as part of the SDK. We use the newly added capability to list an SDK's contents to allow us to see exactly which binaries are inside the buildtools installer. * Check that Python is available (since the buildtools installer's relocate script is written in Python). * Check that locale value set by the script is actually available * Check that the install path is not on NFS This does duplicate some of the checks in sanity.bbclass but it's difficult to avoid that given that here they have to be written in shell and there they are written in Python, as well as the fact that we only need to run some of the checks here and not all (i.e. the ones that relate to the host system or install path, and not those that check the configuration or metadata). Given those issues and the fact that the amount of code is fairly small I elected to just re-implement the checks here. Fixes [YOCTO #8657]. Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* add option to list contentsPaul Eggleton2016-08-171-3/+12
| | | | | | | | | | | | Add a -l command-line option for SDK installers to get a list of files that will be extracted by the SDK - internally this just runs "tar tv" on the embedded tarball. This can be used to look at which files the SDK provides without actually installing it. The initial user of this is the extensible SDK build process which needs to know what binaries are going to be installed by the buildtools installer without installing it. Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* classes/populate_sdk_ext: show progress when preparing build systemPaul Eggleton2016-07-251-24/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the extensible SDK installation process the final step is to prepare the internal copy of the build system. This can take some time, especially if you have SDK_EXT_TYPE set to "minimal" (downloading sstate artifacts) and SDK_INCLUDE_PKGDATA set to "1" (restoring pkgdata for world). To make this a bit less painful, use BitBake's new quiet mode to display status during this operation so you have some idea of how it's progressing; instead of redirecting the output to preparing_build_system.log we grab the last console log and append it instead. One result of this change is that you get the errors printed on the console during normal output rather than this going to the preparing_build_system.log file first. In OE-Core revision 227d2cbf9e0b8c35fa6644e3d72e0699db9607fa, we changed to always print the contents of preparing_build_system.log on failure, but now at least the error contents of that log is duplicated. Besides, I intentionally didn't print out the contents of that log during normal usage because it's quite verbose - the bug that we were attempting to fix was about not getting this information when seeing failures in the automated tests, thus I've moved printing the log to the test handling code instead. Part of the implementation for [YOCTO #9613]. Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* classes/populate_sdk_ext: eliminate double execution on installPaul Eggleton2016-07-071-51/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Use the new BB_SETSCENE_ENFORCE functionality to avoid having to run bitbake twice on installing the extensible SDK - we can now do it all in one invocation which not only takes less time, but we should also get more meaningful errors for some types of failure, in particular where downloading from an sstate mirror fails. One result of this change is that you get the errors printed on the console during normal output rather than this going to the preparing_build_system.log file first. In OE-Core revision 227d2cbf9e0b8c35fa6644e3d72e0699db9607fa, we changed to always print the contents of preparing_build_system.log on failure, but now at least the error contents of that log is duplicated. Besides, I intentionally didn't print out the contents of that log during normal usage because it's quite verbose - the bug that we were attempting to fix was about not getting this information when seeing failures in the automated tests, thus I've moved printing the log to the test handling code instead. Part of the implementation of [YOCTO #9367]. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* allow TERM through into SDK installer envPaul Eggleton2016-07-071-0/+1
| | | | | | | | | | | | | | In order to show the task progress during the extensible SDK installation, knotty needs to know it is using a terminal it can support the "interactive" mode on (i.e. ncurses can be used), which means it needs access to the TERM variable value, so allow that through into the cleaned environment within the SDK installation script. Part of the implementation for [YOCTO #9613]. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* scripts: Replace basestring -> str for python3Ed Bartosh2016-06-021-1/+1
| | | | | | | Python 3 doesn't have basestring type as all string are unicode strings. Signed-off-by: Ed Bartosh <>
* bitbake.conf/toolchain-shar-extract: Use en_US.UTF-8 as localeRichard Purdie2016-05-211-0/+1
| | | | | | | | | | | | | | | | Under python 3, if we spawn python processes, we need to have a UTF-8 locale, else python's file access methods will use ascii. You can't change that mode once the interpreter is started so we have to ensure a locale is set. Ideally we'd use C.UTF-8 since OE already forces the C locale but not all distros support that and we need to set something so en_US.UTF-8 seems as standard we we can get. This matches the change in bitbake revision 8902c29638411d312e6fc4a197707e5742652e15 Also set this into the environment used when installing SDKs since python can be run and we need to ensure we use a standardised locale which is available from things like buildtools-tarball. Signed-off-by: Richard Purdie <>
* exclude do_rm_work from unexpected output; create unit testBill Randle2016-04-181-11/+16
| | | | | | | | | | | | | | When installing the esdk with INHERIT += "rm_work", the script complains about do_rm_work as unexpected output from the bitbake run. This patch ignores any output lines with do_rm_work and further refactors the output comparison into its own function creates a new unit test to verify the fix. The unit test can be run direct from the command line or via oe-selftest. [YOCTO #9019] Signed-off-by: Bill Randle <> Signed-off-by: Ross Burton <>
* fs-perms.txt: fix ROOT_HOME's permissionRobert Yang2016-04-151-0/+3
| | | | | | | | It should be 0700 rather than 0755. Reported-by: Charles Chan <> Signed-off-by: Robert Yang <> Signed-off-by: Ross Burton <>
* Revert "fs-perms.txt: fix ROOT_HOME's permission"Ross Burton2016-04-151-1/+0
| | | | This reverts commit eeae2ac4887298bcbab0e105798818414686dc97.
* fs-perms.txt: fix ROOT_HOME's permissionRobert Yang2016-04-141-0/+1
| | | | | | | | It should be 0700 rather than 0755. Reported-by: Charles Chan <> Signed-off-by: Robert Yang <> Signed-off-by: Ross Burton <>
* ensure all_proxy is allowed throughPaul Eggleton2016-03-311-1/+1
| | | | | | | | | all_proxy is referred to by oe-git-proxy so ensure it is allowed through into the installer environment in case the extensible SDK install process needs to query a remote git repository. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* oe-publish-sdk: exclude sstate-cache if publishing minimal SDKPaul Eggleton2016-03-311-2/+9
| | | | | | | | | | | | | | | | | | | | | If SDK_EXT_TYPE is set to "minimal" then the SDK won't contain many sstate artifacts, and you're required to set up an sstate mirror in this case anyway so there's no point publishing the "stub" sstate-cache directory from within the SDK since it won't be useful for update purposes and may be confused with the real sstate-cache. There is however a possibility that people might publish the real sstate-cache directory under the same output directory provided to oe-publish-sdk, thus deleting it after extracting (as we were doing with other files we wanted to clean up at the end) would be problematic, besides which extracting it and then deleting it is wasteful. Thus, introduce a "-p" command line option to the SDK installer that we can use to tell tar not to extract the items we don't want when publishing. This has the added benefit of mostly keeping references to these in the place they belong i.e. in populate_sdk_ext.bbclass. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* scripts, lib: Don't limit traceback lengths to arbitrary valuesRichard Purdie2016-03-311-1/+1
| | | | | | | | | | | | | | There appears to have been a lot of copy and pasting of the code which prints tracebacks upon failure and limits the stack trace to 5 entries. This obscures the real error and is very confusing to the user it look me an age to work out why some tracebacks weren't useful. This patch removes the limit, making tracebacks much more useful for debugging. [YOCTO #9230] Signed-off-by: Richard Purdie <>
* check the length for target_sdk_dirWenlin Kang2016-03-281-0/+6
| | | | | | | | Check the length for target_sdk_dir to ensure the relocation behaviour in is correct. Signed-off-by: Wenlin Kang <> Signed-off-by: Richard Purdie <>
* classes/populate_sdk_ext: parse metadata on minimal SDK installPaul Eggleton2016-03-231-3/+7
| | | | | | | | | | Instead of skipping the build system preparation step within the extensible SDK install process when SDK_EXT_TYPE is "minimal", run bitbake -p so that the cache is populated ready for the first time devtool is run. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* ParaTypeFFL-1.3: Add license fileIoan-Adrian Ratiu2016-03-201-0/+44
| | | | | | | | The ParaType Free Font License is used by various fonts, out of which a recipe will be added to meta-openembedded for ttf-pt-sans. Signed-off-by: Ioan-Adrian Ratiu <> Signed-off-by: Ross Burton <>
* meta: Fix for extracting SDK in the same ↵Zawadzki, Krzysztof (Nokia - PL/Wroclaw)2016-03-111-1/+1
| | | | | | | | | | | | directory as SDK script. If SDK will be extracted in the same folder as sdk shar script. The shar_relocate will substitute script SDKPATH with extract destination path. After that operation no one will be able use this sdk script as paths in it will be different. To fix this we need to filter out sdk script and relocate_sdk scripts from SDKPATH substitution Signed-off-by: Krzysztof Zawadzki <> Signed-off-by: Ross Burton <>
* ext-sdk-prepare: Catch setscene tasks which should have run but didn'tRichard Purdie2016-03-061-1/+3
| | | | | | | | | | When installing the eSDK, if setscene task fail for some reason, the tests would ignore this. This is bad since we assume they're working. This adds some sanity test code which detects if setscene tasks are needing to run and errors if there are any. Signed-off-by: Richard Purdie <>
* Add proxy variable to new env.Aníbal Limón2016-02-101-1/+3
| | | | | | | | Extensible SDK needs to do network operations so add proxies to environment. Signed-off-by: Aníbal Limón <> Signed-off-by: Ross Burton <>
* improve behaviour when xz is not installedPaul Eggleton2016-01-221-1/+6
| | | | | | | | | | Currently if xz isn't installed when installing the SDK you get an error from tar and then the SDK installation continues, cascading into a load of other failures since files are missing. Add a check to see if xz can be run and error out if it can't, and also exit if tar fails. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* meta/files/ Detect different python binaries and ↵Liam R. Howlett2016-01-221-2/+17
| | | | | | | | | | | | | select one that exists. Although the supports python3, fc23 does not symlink /usr/bin/python3 to /usr/bin/python. Using exec instead of a call to the correct interpreter causes a failure on fc23 when python2 is not present. This uses 'which' to locate python, python2, then python3 and uses the first one that's found. Signed-off-by: Liam R. Howlett <> Signed-off-by: Ross Burton <>
* classes/populate_sdk_ext: check that extensible SDK prepared correctlyPaul Eggleton2016-01-132-8/+92
| | | | | | | | | | | After the change to use --setscene-only when running bitbake to prepare the SDK at the end of installation, add a check that the SDK got prepared correctly by doing a dry-run and looking at the output for any real tasks that we don't expect. In order to make this easier, the preparation shell script was rewritten in python. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* populate_sdk: Switch from bzip2 to xzRichard Purdie2016-01-111-1/+1
| | | | | | | | | | | | | 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 <>
* populate_sdk_ext: Use new --setscene-only option to bitbake instead of ↵Richard Purdie2016-01-111-13/+1
| | | | | | | | | workarounds Rather than horrible workarounds, use the new --setscene-only option of bitbake to pre-populate the SDK structures. Signed-off-by: Richard Purdie <>
* fix ~ not working in pathPaul Eggleton2015-12-111-1/+1
| | | | | | | | | | | Fix a second regression in the extensible SDK installation caused by OE-Core revision 6d2074d477596971dc52027dd87b02af7f39138d - the HOME environment variable was being cleared, thus using ~/ in the install path (which is in the default path for the extensible SDK) resulted in a directory named '~' being created in the current directory. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* ensure cleaned environment will work for ext SDKPaul Eggleton2015-12-081-0/+2
| | | | | | | | | | | | | | | In OE-Core revision 6d2074d477596971dc52027dd87b02af7f39138d we added a line which re-executes the script with a cleaned environment using env -i; unfortunately that caused a regression in the extensible SDK on Ubuntu 14.04 - strangely, there it seems that the value you get for PATH under env -i contains '.' which triggers a sanity check failure when preparing the build system. Do a belt-and-braces fix - source /etc/environment if it exists (so you get a more complete PATH value) and then filter any nastiness out of PATH for good measure. (Ubuntu 15.04 doesn't seem to suffer from the same problem.) Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* proper fix for additional env setup scriptsPaul Eggleton2015-12-082-2/+11
| | | | | | | | | | buildtools-tarball uses a custom env setup script, which isn't named the same as the default; thus unfortunately OE-Core revision a36469c97c9cb335de1e95dea5141038f337df95 broke installation of buildtools-tarball. Revert that and implement a more robust mechanism. Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* Ensure it's ran in clean environmentGeorge Nita2015-12-011-0/+2
| | | | | | | | | | | | | | | | | | | Fixes [YOCTO #8698] -- If prior to running the toolchain installation script a toolchain environment script is sourced then the toolchain installation will fail. This because the environment is now set for the sourced toolchain and doesn't suit the installation. In particular PATH points to the toolchain executables. The fix makes the script recursively call itself a second time with a clean environment. Tested by sourcing a previous successfully installed environment, erasing the previous installation directory and then reinstalling in the same directory. Signed-off-by: George Nita <> Signed-off-by: Ross Burton <>
* do not allow $ in paths for ext SDKPaul Eggleton2015-12-011-2/+2
| | | | | | | | | | If you put an $ character in the path, SDK installation fails during the preparation stage, so add this to the disallowed characters. Fixes [YOCTO #8625]. Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* toolchain-shar-relocate: don't assume last state of env_setup_script is goodJean-Francois Dagenais2015-12-011-0/+2
| | | | | | | | | | | | | | | | | | In the case where many environment-setup-* files exist, the incorrect filename might be lastly set in env_setup_script, which leads to incorrect behaviour for the initialization of native_sysroot. The scenario I had was that our custom meta-toolchain-*.bb, which inherits populate_sdk, defined another environment-setup-* file to dump variable information for qt-creator. The file is named like so in order for the sdk shell script to pick it up and fix the SDK paths in the file. Since it (coincidentally) alphabetically comes after ...-core2, it was last set in env_setup_script and the grep OECORE_NATIVE_SYSROOT would simply be blank. The apparent symptom was " Argument list too long" since the find command would not be searching in the right path. Signed-off-by: Ross Burton <>
* print full-length title underlinePaul Eggleton2015-10-201-2/+3
| | | | | | | Print a line that's the full length of the title that it's underneath. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* classes/populate_sdk_ext: prevent image construction from executing on installPaul Eggleton2015-10-201-0/+20
| | | | | | | | | | | | | | | | | | | | | In order to prepare the build system within the extensible SDK, we actually go ahead and build the targets specified by SDK_TARGETS (by default the image the SDK was built for). Assuming that's an image, we don't actually need to build the image itself - we just need to have everything done up to the point before building the image, so that we have everything needed in the sysroot. In order to do this, create temporary bbappends for each of the targets in the workspace layer that stub out do_rootfs and related tasks if they exist. This is a little bit of a hack but is the least intrusive fix at this point. To make things a bit tidier, I have split out the preparation commands into a separate script so we can run that in the appropriate environment rather than all the commands separately. Fixes [YOCTO #7590]. Signed-off-by: Paul Eggleton <> Signed-off-by: Richard Purdie <>
* provide proper path for env_setup_scriptMaxin B. John2015-10-191-1/+1
| | | | | | | | | | | | | | | The toolchain install script suggest the user to source env_setup_script from wrong path now. eg: " Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g. $ . /opt/poky/2.0//opt/poky/2.0/environment-setup-armv5e-poky-linux-gnueabi " fix it. Signed-off-by: Maxin B. John <> Signed-off-by: Ross Burton <>
* common-licenses: use correct GFDL-1.1 license textPaul Eggleton2015-10-191-124/+82
| | | | | | | | | It seems that the GFDL 1.1 license file that was originally committed was actually the 1.2 version. Replace it with the 1.1 version fetched from Signed-off-by: Paul Eggleton <> Signed-off-by: Ross Burton <>
* toolchain-shar-extract: Correct environment-setup script names for multilibRichard Purdie2015-09-291-1/+3
| | | | | | | | | | | Currently a lib32-core-image-* SDK prints an incorrect environment-setup-* file name when installing the SDK. Instead of printing the wrong thing, list the environment setup files present in the SDK. As it happens this fixes the message printed with buildtools-tarball too which someone reported to me about the same time as I finished this patch! Signed-off-by: Richard Purdie <>
* make it fasterRobert Yang2015-09-291-14/+10
| | | | | | | | | | | | | | | | Make the extrating faster by: * Merge the two heavy "for .. find" loops into one * Move the commands out of for loop rather than inside, this can reduce the forking amount. As a result, when install: * buildtools-nativesdk-standalone: 14s -> 7s (50% saved) * core-image-minimal-core2-64-toolchain: 56s -> 47s (17% saved) [YOCTO #8404] Signed-off-by: Robert Yang <> Signed-off-by: Richard Purdie <>
* remove checkbashismRobert Yang2015-09-241-2/+2
| | | | | | | | | | | | | | | | Fixed when sh is bash: $ sh ./tmp/deploy/sdk/ Poky (Yocto Project Reference Distro) SDK installer version 1.8+snapshot =========================================================== ./tmp/deploy/sdk/ 77: read: Illegal option -e You are about to install the SDK to "/opt/poky/1.8+snapshot". Proceed[Y/n]? ../SDK2 Installation aborted! There is ony one bashism "read -e" in, but '-e' is useless here, so remove it and use /bin/sh. Signed-off-by: Robert Yang <> Signed-off-by: Richard Purdie <>