summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* grub-efi.bbclass: make it can build vm and live togetherRobert Yang2016-03-252-5/+6
| | | | | | | | | | | | * Make it can build vm and live (e.g., iso + vmdk) together as we did for syslinux. * GRUBCFG -> GRUB_CFG as other GRUB_FOO vars (From OE-Core rev: e38039e43f22d55a443064efa91752e2943fda79) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bootimg.bbclass: fix settings for grub-efi.bbclassRobert Yang2016-03-257-23/+22
| | | | | | | | | | | | | | | | | Fixed: - Found potential conflicted var LABELS ... Set LABELS to "boot install" would build out broken images when build vm + live together, use set_live_vm_vars() to fix the problem. - Use ROOT and LABEL in boot-directdisk.bbclass and image-foo.bbclass, they are not only used by syslinux.bbclass, but also grub-efi.bbclass, add "SYSLINUX_" prefix would mislead users. (From OE-Core rev: d7d1e0193c94abb1cd2daf1c298c8c1788f3616d) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass cleanupBill Randle2016-03-251-3/+6
| | | | | | | | | | | | | | | | | | Limit search for a version var name to start at the beginning of a line, otherwise, if the var name is used in a comment, that comment line will be replaced, rather than the desired assignment line. Move bblayer update message into function where it's actually updated, rather than assuming all successful config file update are to the bblayers.conf file. Replace a stray tab with spaces for consistency. [Fixes YOCTO #9318] (From OE-Core rev: 7c1e53bb802f021f06231243077d0e007a64274c) Signed-off-by: Bill Randle <william.c.randle@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gpg_sign.py: get rid of pexpectRobert Yang2016-03-251-4/+6
| | | | | | | | | | | | | The python-expect is not installed on the distro such as Ubuntu by default, and we can get rid of it. Use RPM_GPG_PASSPHRASE to replace of RPM_GPG_PASSPHRASE_FILE which is more straightforward. (From OE-Core rev: 4a8a74c62836a20610daf029d4cec0b3087758b2) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: add: delete externalsrc files on npm recipe do_installPaul Eggleton2016-03-251-2/+4
| | | | | | | | | | | | | | The npm class just installs whatever is in ${S}; if you're using externalsrc in conjunction with it the symlinks (oe-workdir and oe-logs by default) plus singletask.lock will end up in the final package, which isn't really right. Introduce a variable so we know the path the files will be installed into within npm.bbclass, and append to do_install within the workspace bbappend to delete the files. (From OE-Core rev: 766845e06db9d7d595e836ea1364c16fa132a413) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/populate_sdk_ext: parse metadata on minimal SDK installPaul Eggleton2016-03-251-1/+1
| | | | | | | | | | | | 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. (From OE-Core rev: 6b38a991a3475fb82889428b94563968c7570473) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/distutils*: don't hide logs when setup script failsPaul Eggleton2016-03-253-12/+12
| | | | | | | | | | | | We need to see the output of the setup script in the error message because what we are having bbfatal print here doesn't completely describe what went wrong, thus we should use bbfatal_log here and not bbfatal. (From OE-Core rev: 970a02061b474a238f57cd0cc4db7b62e36dfa3d) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/packagegroup: drop complementary -ptest if ptest not in DISTRO_FEATURESPaul Eggleton2016-03-251-1/+4
| | | | | | | | | | If ptest isn't in DISTRO_FEATURES, there won't be any -ptest packages and thus no need for the -ptest package for the packagegroup either. (From OE-Core rev: 52f9b12601c02f1585438f890f847b4596170362) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/packagegroup: fix dbg/dev/ptest complementary packagesPaul Eggleton2016-03-251-3/+6
| | | | | | | | | | | | | OE-Core commit 8981ed20234c42dc1f5cdef802ebe7214bd55238 (from 2013) caused a regression where -dbg/-dev/-ptest packages weren't generated for packagegroups because we weren't setting ALLOW_EMPTY for them. Break out the code for adding complementary groups to its own conditional so we can set ALLOW_EMPTY at the same time. (From OE-Core rev: 340e9d619c881f320070474d5c4674dcaeabad35) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* externalsrc: use shared stamp directory if B=SMarkus Lehtonen2016-03-201-6/+4
| | | | | | | | | | | | | | | | | | | | | | | We have a common build directory for all target architectures if externalsrc is used and ${B}=${S}. In this case we also need to have a common stamp directory. The reason is that e.g. changing MACHINE will basically "invalidate" the artefacts in ${B} (wrt. to the new MACHINE) but old stamp files with matching hashes from an earlier build might be available in the machine-specific stamps directory and tasks would not be correctly re-run. Previous attempt in f44f12af346888bdeb3ae01a275cb5dd4396b505 to handle this correctly was faulty as it threw some spurious warnings and caused do_configure to be re-run in every build if that would not be necessary. [YOCTO #8950] [YOCTO #9237] (From OE-Core rev: f5031fb37ceef83c85f0dfec773da75c05b2a631) 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>
* gobject-introspection.bbclass: wrap comments at 80 columnsAndre McCurdy2016-03-201-14/+12
| | | | | | | | | | Whitespace and comment updates only, no functional changes. (From OE-Core rev: 738393ea98baec364d3da117a1307a39d348b660) Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: allow customizing config file update error messagesPatrick Ohly2016-03-201-3/+8
| | | | | | | | | | | | The default file pattern may be amiguous and "meld" might not always be the preferred tool, so allow distros to override those parts of the error messages. (From OE-Core rev: 98fc50436dfa5d0e5bee0930154a5563ffc8151d) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: fix success message when config file was updatedPatrick Ohly2016-03-201-1/+1
| | | | | | | | | | | The code now iterates over different config files, but always printed a message about conf/bblayers.conf for each file. (From OE-Core rev: af55727fc1920c4c23476304f57a3720835ec203) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sanity.bbclass: expand error messages for version checksPatrick Ohly2016-03-201-2/+5
| | | | | | | | | | | | | | | | | | | | | | The ${WORKDIR} variable was not getting expanded (anymore?), leading to less helpful error messages like: Exception: NotImplementedError: Your version of bblayers.conf has the wrong LCONF_VERSION (has 7, expecting 8). Please compare your file against bblayers.conf.sample and merge any changes before continuing. "meld conf/bblayers.conf ${COREBASE}/meta*/conf/bblayers.conf.sample" is a good way to visualise the changes. ERROR: Execution of event handler 'check_sanity_eventhandler' failed After adding expansion, embedding ${LCONF_VERSION} and ${LAYER_CONF_VERSION} in the error message seems a bit more readable and consistent. (From OE-Core rev: 7fd08497cf780018fa144a870bdea0e7a69dae20) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* useradd_base.bbclass: replace retry logic with flockKai Kang2016-03-202-125/+46
| | | | | | | | | | | | | | | | | When perform useradd during populate sysroot, it locks files passwd.lock and group.lock at same time. And then it meets a dead lock issue randomly. Use flock to reslove it by using an universal lock directory for all the user and group related operations. [YOCTO #9022] (From OE-Core rev: 2ebf697b46c42cee8bfa6d2e6087397f8cce385c) Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: track ROOTFS_POSTUNINSTALL_COMMAND in do_rootfs vardepsPatrick Ohly2016-03-201-1/+1
| | | | | | | | | | | | | The list of variables influencing do_rootfs was not updated when introducing ROOTFS_POSTUNINSTALL_COMMAND. As a result, making changes in commands listed there or the variables they depend on did not trigger a re-run of do_rootfs. (From OE-Core rev: 66b461ce9df7ed06d7651b9b54a49a950b97a1d4) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Add a fix for icu-native to use the correct ABIRichard Purdie2016-03-121-0/+5
| | | | | | | | | | | | | If no -std= option is passed to icu's configure, it defaults to CXX11. This isn't what we want for uninative, so pass an explicit option which selects an older ABI on newer versions of g++. This avoids the __cxa_bad_array_new_length@CXXABI_1.3.8 symbol being used. (From OE-Core rev: ac59063bee0e32d0737340974f657341717a6abe) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/buildhistory: record a few more variables for extensible SDKPaul Eggleton2016-03-121-1/+2
| | | | | | | | | | | | We've recently added SDK_EXT_TYPE and SDK_RECRDEP_TASKS and these will have an effect on the size and functionality of the SDK, so record them in sdk-info.txt. (From OE-Core rev: 1be0ae80f97bdee758232ec5397c09d73d57e1e0) 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>
* package-deb: Ignore circular dependenciesRicardo Ribalda Delgado2016-03-121-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a package depends on itself apt-get fails to install it with the error attached to this patch. This patch checks for this conditions and notifies the user so the recipe maintainer can fix his RDEPENDS variable. root@qt5022:~# apt-get install perl-module-cpan Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: perl-module-cpan 0 upgraded, 640 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/5964 kB of archives. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] E: Internal error: MaxLoopCount reached in SmartUnPack (2) for perl-module-cpan:amd64, aborting E: Internal error, packages left unconfigured. perl-module-cpan:amd64 root@qt5022:~# apt-get install perl-modules (From OE-Core rev: d8bf148c3b740254ed23d52cf244f0f6e9c7a4ab) Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_deb: Fix python runtime errorRicardo Ribalda Delgado2016-03-121-2/+2
| | | | | | | | | | | | | | | | The dictionary cannot be used for iteration if its size may change during the loop. ERROR: Error executing a python function in /home/ricardo/curro/qt5022/build-qt5022/repo/yocto/meta/recipes-devtools/perl/perl_5.22.0.bb: Exception: RuntimeError: dictionary changed size during iteration Acked-by: Aníbal Limón <anibal.limon@linux.intel.com> (From OE-Core rev: 04aa40be126e00e2eb97311510e4d3ea90bfe7eb) Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-buildinfo.bbclass: fix performance problemsPatrick Ohly2016-03-121-13/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | Inheriting image-buildinfo.bbclass primarily slowed down image building for two reasons: 1. The content of the shell command "buildinfo" gets expanded multiple times, each time again checking the state of all layers. 2. When expanded as part of the actual image creation, git is invoked under pseudo, which makes the check quite a bit slower (from a few seconds to a minute with many layers). To fix this, buildinfo now is a Python method which calls the checks only when really executed. Pseudo is told to unload itself when starting git. In addition, "git diff" is invoked with "--quiet", which avoids producing output that is just getting thrown away. As before, any kind of problem or output causes the layer to be marked as "modified". [Revision 2 of the change with some dead code removed] (From OE-Core rev: e59547e4154b772a36f4e58f1d454c0c38653c84) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gnomebase.bbclass: do not disable gobject introspectionAlexander Kanavin2016-03-121-3/+0
| | | | | | | (From OE-Core rev: 37b2c27b18115b5a7b0e7d46da246852d2f045ee) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* vala.bbclass: remove pre-packaged vapigen.m4 from tarballsAlexander Kanavin2016-03-121-0/+6
| | | | | | | | | We need to make sure that our fixed vapigen.m4 is used instead. (From OE-Core rev: 3086dbaabaa5eccd05e091bed9ff0bdf707113fa) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gobject-introspection.bbclass: add a class that enables gobject introspectionAlexander Kanavin2016-03-121-0/+39
| | | | | | | (From OE-Core rev: 142cd4399a742f5482c1f83efe77bd85069bd7a7) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sign_package_feed: add feed signature typeIoan-Adrian Ratiu2016-03-111-1/+11
| | | | | | | | | | Signing package feeds will default to ascii armored signatures (ASC) the other option being binary (BIN). This is for both rpm and ipk backends. (From OE-Core rev: 862a3892feb2628282e1d6f2e4498a7a3bd60cbf) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gpg_sign: add local ipk package signing functionalityIoan-Adrian Ratiu2016-03-112-0/+57
| | | | | | | | | | | | | | | | | | | | Implement ipk signing inside the sign_ipk bbclass using the gpg_sign module and configure signing similar to how rpm does it. sign_ipk uses gpg_sign's detach_sign because its functionality is identical to package feed signing. IPK signing process is a bit different from rpm: - Signatures are stored outside ipk files; opkg connects to a feed server and downloads them to verify a package. - Signatures are of two types (both supported by opkg): binary or ascii armoured. By default we sign using ascii armoured. - Public keys are stored on targets to verify ipks using the opkg-keyrings recipe. (From OE-Core rev: a40f27aa7802e8a0bd87a5417e35adbface62d05) Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* toaster.bbclass: show packages that were setscened into existence toobrian avery2016-03-111-2/+23
| | | | | | | | | | | | | | | | | We were previously ignoring pkgs that came in from a setscene like from an sstate mirror). With this patch we can use pkgs than come from sstate for image customisation as well. Also remove unused variable. [YOCTO #9137] (From OE-Core rev: 4ea7f96ae28ff53867f5ffa4158076761676d288) Signed-off-by: brian avery <brian.avery@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* siteinfo: Add ppc64le support.Chris Austen2016-03-101-0/+1
| | | | | | | | (From OE-Core rev: 00d3fd571a8d261d065b43f5cf3076a381843984) Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-mklibs: handle position independent binariesTyler Hall2016-03-101-7/+9
| | | | | | | | | | | | | | | | | | | Executables built with -fpie have the ELF type DYN rather than EXEC which makes them difficult to distinguish from shared libraries. Currently when building the list of executables we omit these binaries so they might fail to run on the resultant rootfs due to missing symbols. One of these is systemd which builds -fpie unconditionally, so mklibs breaks images containing systemd. Modify the search to catch all executable files that are ELF and have an interpreter set. Omit libc and libpthread as special cases because they have an interpreter and are directly executable but treating them as such is antithetical to the pupose of mklibs. (From OE-Core rev: 30da34ef032d5b4b2f694743715f2c8d64dd9849) Signed-off-by: Tyler Hall <tylerwhall@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: Correct commit 8b81bb56c69aabdea984352f8e267a9783c0bdbcRichard Purdie2016-03-091-1/+0
| | | | | | | | | | | | | | Commit 8b81bb56c69aabdea984352f8e267a9783c0bdbc was accidentally merged. The DL_DIR piece was simply incorrect and should be removed. The patch commit message should have mentioned that the changes were to update populate_sdk_ext after the changes to uninative now the download is placed into a specific directory in DL_DIR. We also need to specify the uninative tarball checksum. (From OE-Core rev: be177739b46d3296c0c0c01310b499ffc6782d43) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipetool: create: split npm module dependencies into packagesPaul Eggleton2016-03-091-0/+20
| | | | | | | | | | | | | | | | | | | | Rather than rolling all of an npm module's dependencies into the same package, split them into one module per package, setting the SUMMARY and PKGV values from the package.json file for each package. Additionally, mark each package with the appropriate license using the license scanning we already do, falling back to the license stated in the package.json file for the module if unknown. All of this is mostly in aid of ensuring all modules and their licenses now show up in the manifests for the image. Additionally we set the main LICENSE value more concretely once we've calculated the per-package licenses, since we have more information at that point. (From OE-Core rev: 8226805f83d21e7c1d2ba21969f3e8ee4b137496) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemu.bbclass: add qemu_wrapper_cmdline()Alexander Kanavin2016-03-091-9/+14
| | | | | | | | | | | | | The class had qemu_run_binary() which was not suitable for gobject-introspection, as it required the name of the binary to run. qemu_wrapper_cmdline() returns just the command line string needed to run binaries, and does not require the binary name. (From OE-Core rev: 0b68f0632312392cbd20bfcb9ed4895cfc9883ff) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* toaster.bbclass: improve how we gather buildstats for ToasterElliot Smith2016-03-091-25/+45
| | | | | | | | | | | | | | | | | | Clean up the code which gathers buildstats for Toaster, and modify the field names so that the correct parts of the buildstats files are used to derive the CPU usage values. Also derive elapsed time for the build here, rather than in Toaster, as we have ready access to the data in the correct format. [YOCTO #8842] (From OE-Core rev: c145624ccc77ffd07a0b4c368c0dfce525e17eac) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-prelink: use STAGING_*_NATIVE variablesRoss Burton2016-03-091-2/+2
| | | | | | | (From OE-Core rev: d78921e91ea1caf0154d544496a8aeabc2ec543d) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: Make populate_sdk_ext nostampRandy Witt2016-03-091-3/+4
| | | | | | | | | | | | | | | | | Since the metadata for multiple layers will be put into the sdk, anytime those layers change the sdk needs to be rebuilt. Ideally, this would use checksums to only rebuild when necessary. However, since this feature needs to be in the release, opt for a less intrusive change by setting the task to nostamp. Unnecessary rebuilds may occur, but it's better than a user wondering why their changes didn't get added. (From OE-Core rev: d801547f6fe4315da6476ed9fc4ccca2a6983421) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix host contamination warnings for license filesJagadeesh Krishnanjanappa2016-03-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We get below host contamination warnings of license files for each recipe, when we try to create a separate ${PN}-lic package (which contains license files), by setting LICENSE_CREATE_PACKAGE equal to "1" in local.conf. -- snip -- WARNING: QA Issue: libcgroup: /libcgroup-lic/usr/share/licenses/libcgroup/generic_LGPLv2.1 is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] WARNING: QA Issue: attr: /attr-lic/usr/share/licenses/attr/libattr.c is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] WARNING: QA Issue: bash: /bash-lic/usr/share/licenses/bash/COPYING is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated] -- CUT -- Since the license files from source and OE-core, are populated in a normal shell environment rather in pseudo environment (fakeroot); the ownership of these files will be same as host user running bitbake. During the do_package task (which runs in pseudo environment (fakeroot)), os.link preserves the ownership of these license files as host user instead of root user. This causes license files to have UID same as host user id and resulting in above warnings during do_package_qa task. Changing ownership of license files to root user (which has UID and GID as 0) under pseudo environment will solve above warnings, and on exiting pseudo environment the license files will continue to be owned by host user. Perform this manipulation within try/except statements, as tasks which are not exected under pseudo (such as do_populate_lic) result in OSError when trying to change ownership of license files. (From OE-Core rev: a411e96c3989bc9ffbd870b54cd6a7ad2e9f2c61) Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: Update after uninative changesRichard Purdie2016-03-091-4/+8
| | | | | | (From OE-Core rev: 8b81bb56c69aabdea984352f8e267a9783c0bdbc) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: support chaining compression (aka conversion) commandsPatrick Ohly2016-03-091-3/+24
| | | | | | | | | | | | | | | | | | | | | | | | | It makes sense to use the compression mechanism also for conversion, for example of a whole-disk image into .vdi (VirtualBox). That part already works, like this: COMPRESSIONTYPES_append = " vdi" COMPRESS_CMD_vdi = "qemu-img convert -O vdi ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type} ${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.${type}.vdi" IMAGE_DEPENDS_vdi = "qemu-native" But then it also makes sense to allow compressing the resulting image, which only works after enhancing the image.bbclass. For example, suppose a custom image command produces "dsk" images. Then it becomes possible to set IMAGE_FSTYPES = " dsk.xz dsk.vdi.xz" and do_image_dsk will automatically produce the intermediate images, convert to dsk.xz resp. dsk.vdi -> dsk.vdi.xz and delete all intermediate images. Symlinks are also set correctly. (From OE-Core rev: 588f14370372a66329b54606071175519ce88f1e) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: fix incomplete .rootfs customizationPatrick Ohly2016-03-071-1/+1
| | | | | | | | | | | | | | | The patch for making the .rootfs configurable was incomplete: in the python create_symlinks() method the new variable must be expanded explicitly. Not doing so broke the symlink creation and that led to hard build failures in image types depending on the boot-directdisk.bbclass (like qcow2) because the build_boot_dd() method relied on the symlink. (From OE-Core rev: 0d02159c8d66bb136f7da2c10fda7d1a57f40cec) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image creation: allow overriding .rootfs suffixPatrick Ohly2016-03-072-31/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | By default, the image file name contains ".rootfs" to distinguish the image file from other files created during image building. However, for certain image types (for example, .hddimg) the ".rootfs" suffix is redundant because the type suffix alone already uniquely identifies the main image file (core-image-minimal-intel-corei7-64.hddimg instead of core-image-minimal-intel-corei7-64.rootfs.hddimg). With this change, distros that prefer the shorter image name can override the .rootfs suffix unconditionally with IMAGE_NAME_SUFFIX ?= '' in their distro configuration or with some condition check like this: python () { if <whole-disk image format active>: d.setVar('IMAGE_NAME_SUFFIX', '') } The exact logic when to remove the extra suffix depends on the distro and how it enables its own image type. (From OE-Core rev: 380ee36811939d947024bf78de907e3c071b834f) Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/packageinfo: removePaul Eggleton2016-03-071-22/+0
| | | | | | | | | | This class was only used by Hob, and since Hob has now been removed we can drop it as well. (From OE-Core rev: b8db070926a7ec294816bc6648eb12db7f126f26) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Handle relocate of GCONV_PATH in libcRichard Purdie2016-03-071-1/+1
| | | | | | | | | uninative hand codes the list of files which need relocation, add the libc to that list to ensure GCONF_PATH is updated. (From OE-Core rev: f8a9819a2ef3ebf4b40633e9308b66671aa9af83) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Add checksum supportRichard Purdie2016-03-071-11/+18
| | | | | | | | | | | | | We need to be able to update uninative if the version changes. To do this, stash a checksum of the installed uninative tarball into a file. If this changes, we update uninative. For cleaner download messages, we place the tarballs into directories based on the checksum. (From OE-Core rev: f767f94295032792d84fd323bffee137a6467e01) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Refactor common codeRichard Purdie2016-03-071-4/+4
| | | | | | | | Move duplicate code into a common function (From OE-Core rev: 1a6b39ccd55e6b26f9eb4e05089b8b97396d53d5) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: Use CXX11 ABI for interoperation between gcc4 and gcc5Richard Purdie2016-03-071-0/+6
| | | | | | | | | | We may see binaries built with gcc5 run or linked into gcc4 environment so use the older libstdc++ standard for now until we don't support gcc4 on the host system. https://wiki.debian.org/GCC5 has more details about this. (From OE-Core rev: 1925ead3828dcd50ef96212c2d1ea9c35bc9f13c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uninative: correctly enable uninativeRoss Burton2016-03-071-40/+55
| | | | | | | | | | | | | | | | | The previous attempt at soft-failing when uninative was enabled didn't actually work, because the workers didn't evaluate the function that actually enabled uninative. In a BuildStarted handler we can check if we need to download or extract the uninative tarball. In a ConfigParsed handler on the workers we can check if the uninative loader is present, and if so enable it. (From OE-Core rev: 75fc9a8d408640d97481d310084b212a01dc5f8b) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sstate: Allow late expansion of NATIVELSBSTRINGRichard Purdie2016-03-071-2/+6
| | | | | | | | | | | uninative needs to adjust NATIVELSBSTRING fairly late in the configuration parsing process but the sstate code encodes it into variables. Since this string doesn't vary on a per recipe basis, we defer its expansion until usage time. (From OE-Core rev: fb680ab8b3cf7aba9b579403b1aeb96d30762320) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* linuxloader/image-prelink/image-mklibs: Fix non-standard path prelinkingRichard Purdie2016-03-073-21/+32
| | | | | | | | | | | | | | | | | | Prelinking on x86-64 wasn't working out the box as it uses /lib and not /lib64 for libs. Prelink was refusing to link as the dynamic loader didn't match its idea of the right path. Passing in the --dyanmic-linker option avoids this. We can share code from image-mklibs so abstract that into a new class, linuxloader.bbclass. This does break prelinking of multilib images, I've opened a bug so we can loop back and fix that problem, the code would need to iterate the dynamic loaders (and setup ld.so.conf files for it). (From OE-Core rev: 7c3f2f61536cc8e0322087558cdcfe29ee2fac6d) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane/prelink: Handle nonstandard library pathsRichard Purdie2016-03-072-1/+23
| | | | | | | | | | | | | | | | | | | | | | Prelink contains some hardcoded assumptions about the path layout of the target system. Unfortunately if the system doesn't match, prelink doesn't work. This breaks: a) prelink of those images b) the unsafe-references-in-binaries QA test (which uses prelink-rtld) One way to work around this is to construct an ld.so.conf file which lists the library paths in question. We do this in sanity QA check and in the rootfs prelink code, being careful not to trample any existing target ld.so.conf. There is an additional problem that $LIB references in RPATHs won't be handled correctly, I've not see any system use these in reality though so this change at least improves things. (From OE-Core rev: 7fd1d7e639c2ed7e0699937a5cb245c187b7c811) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* devtool: add build-sdk subcommandPaul Eggleton2016-03-071-59/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a build-sdk command which is only available within the extensible SDK that builds a derivative extensible SDK. The idea is recipes in the workspace become a part of the new SDK - for example, this allows taking a vendor provided SDK, adding a few libs and then producing a new SDK with those included. When normally building the extensible SDK, the workspace is excluded; here we need to copy into the new SDK (renaming it in the process); the recipes' task signatures become locked and thus the sources are no longer needed, so they are removed along with the workspace bbappends which would interfere with the locked signatures. Additionally we need to just copy the configuration files (i.e. local.conf and auto.conf) rather than filtering and appending to them since that work has already been done when constructing the original SDK. The extra sstate artifacts from workspace recipes are also determined and copied into the new SDK in minimal mode (on the assumption that you won't set up a new sstate mirror). This reuses some code from build-image, so that needed to be generalised to allow that. Implements [YOCTO #8892]. (From OE-Core rev: 59e207ff6dd4b50a8905e14bc9292cf2794f4e7a) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>