summaryrefslogtreecommitdiffstats
path: root/meta/classes
AgeCommit message (Collapse)Author
2013-11-29image.bbclass: Depend on virtual/kernel:do_deployRichard Purdie
Now that none of the packagegroups depend on virtual/kernel, we have the problem that MACHINE=qemumips bitbake core-image-minimal doesn't put a kernel into the deploy directory. This breaks many common usecases and user expectations. To avoid this, add a dependency on the kernel deploy to image do_build tasks. This should avoid any circular dependency issues but equally ensure users have their expectations met. [YOCTO #5581] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-29base/gcc-common: Ensure umask setting is consistent for shared workdirRichard Purdie
gcc has cross and target components with a shared workdir. The unpack umask settings need to match for all of these. We need to use strings in each case to ensure the sstate code matches them correctly. This patch tweaks various things to ensure the change adding the unpack umask change doesn't break the compiler builds. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27base.bbclass: Set umask 022 also for do_unpack taskMartin Jansa
* when git checkouts files from fetched clone it respects system umask and creates files with different permissions, if such files are copied to packages, resulting target images have also different permissions on them. * we need reproducible builds across different builders with different system umask, so set 022 umask [YOCTO #5590] Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27module-base: Fix misleading commentRichard Purdie
The comment was originally written for module.bbclass and is now slightly misleading. This updates it to match the current code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27Revert "kernel: restore scripts in the sysroot"Richard Purdie
This reverts commit 6a6735cb98d529c8c5376aedb5c951339f54fe96. The module class already ensures the scripts are rebuilt correctly. Running this at sstate installation time is problematic since it can require the cross compiler. Adding such a dependency would cause issues of its own. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27chrpath: Improve crazy codeRichard Purdie
The current code is a little bit overcomplicated, deficient and also possibly broken. Issues include: a) Not maximally optisming rpaths (e.g. a lib in usr/lib might get an rpath of $ORIGIN/../../usr/lib) b) The return in the middle of the for loop look suspiciously like it might break on some binaries c) The depth function, loops of "../" prepending and so on can be replaced with a call to os.path.relpath This patch cleans up the above issues. Running binaries should result in less "../" resolutions which can't hurt performance either. [YOCTO #3989] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-27icecc: Disable icecc for allarch recipesMartin Jansa
* Fix icecc.bbclass failing with: ERROR: recipe-name NULL prefix when it's used with empty TARGET_PREFIX. * Allarch recipes cannot use compiler at all (even the local one) so there is no point of using icecc for them. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-26classes/image: write image manifestPaul Eggleton
Write a list of installed packages to a .manifest file next to the image, so we can find out what went into the image after it has been constructed without necessarily having to have buildhistory enabled (although that will provide more detail.) We can make use of this for example in the testimage class associated code that checks for installed packages for determining whether or not to run specific tests. Note: this replaces the previous ipk-specific manifest code with something that works for ipk, rpm and deb, and instead of a pruned status file, packages are listed one per line, in the following format: <packagename> <packagearch> <version> Tests for all three backends have shown that the performance impact of this change is negligible (about 1.5s max). Implements [YOCTO #5410] Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-25sanity: Use random filename for maximum path length testMike Crowe
check_create_long_filename used a fixed filename for its test files. This meant that os.remove(testfile) could fail with ENOENT if two instances were running at the same time against the same sstate directory. Using a randomly generated filename stops this from happening. (Although it might seem unlikely, this race did appear to occur multiple times with Jenkins - presumably because the matrix jobs were all kicked off at the same time.) Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-25sanity: Don't hard code value of ENAMETOOLONGMike Crowe
Although ENAMETOOLONG is 36 on Linux x86 and x86_64 it does isn't on other architectures so the value shouldn't be hard coded. Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22metadata_scm: Avoid crashing on new svn version layoutsRichard Purdie
This avoids crashing on newer svn layouts where the entries files don't contain three lines. If someone wants to fix this to get the right version on newer subversion checkouts, patches welcome but this at least stops things crashing. [YOCTO #5363] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22kernel.bbclass: Stop bundle_initramfs thwarting sstate cache and fix raceMike Crowe
The new do_bundle_initramfs task introduced in 609d5a9ab9e58bb1c2bcc2145399fbc8b701b85a defeats using the sstate cache. The kernel is resurrected from the sstate cache but ends up being built again since do_bundle_initramfs depends on do_compile. The task is no longer nostamp to avoid causing unnecessary rebuilds. The sstate checksum stamps should know when to rebuild. The task now runs before do_deploy and part of the work has been moved to do_deploy where it now writes to ${DEPLOYDIR} rather than ${DEPLOY_DIR_IMAGE} so that the files end up in sstate. The task can also race against do_install since both call into the kernel build system. This is fixed by making do_bundle_initramfs run after do_install (which therefore also fixes the problem that 3baa63b4d588c3262254528b406ede265dd117bf was addressing.) Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22Revert "kernel.bbclass: move bundle_initramfs after kernel_link_vmlinux"Mike Crowe
This reverts commit 3baa63b4d588c3262254528b406ede265dd117bf. It broke builds that aren't using kernel-yocto. Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22rootfs_*.bbclass: List which post-install scripts can not be runJeffrey C Honig
When preping a read-only rootfs and finding some post-install scripts that can not be run, list the names of said scripts to avoid having to look around the rootfs to find a list. Signed-off-by: Jeffrey C Honig <jeffrey.honig@windriver.com> Signed-off-by: Jeff Polk <jeff.polk@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22package_rpm.bbclass: Replace -linux-gnun32 with -linux.* in RPM platform fileLei Liu
On a multilib system when one of the multibs has a different OS then other multilibs a failure can occur during the install process because RPM assumes all systems have the same OS. When an n32 platform is selected as an alternative multilib, it shows up as mips64_n32-.*-linux-gnun32 in /etc/rpm/platform. This causes problems when the smart tool tries to add a channel for the multilib. RPM archScore call always returns zero for arch "mips64_n32" - after appending default vendor and os, it finds "mips64_n32-wrs-linux" doesn't match any predefined platforms. Fix this by removing the restriction of -gnun32 suffix in platform file. Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Jeff Polk <jeff.polk@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-22base.bbclass: Fix incorrect setting of multilib PREFERRED_PROVIDER_virtual_pkgLei Liu
PREFERRED_PROVIDER_virtual_pkg has been incorrectly set with more than one multilib prefixes. For example, if we have two alternative multilibs lib64 and lib32, PREFERRED_PROVIDER_virtual_pkg will be set to lib32-lib64-pkg or lib64-lib32-pkg, depending on which multilib shows up first in the list. Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-21buildhistory/distrodata: Adapt to updated fetcher APIRichard Purdie
The buildhistory code has fallback paths for older bitbakes for now. The distrodata class is much less used and it can be assumed a recent bitbake is used in that case rather than adding fallback code. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-20license.bbclass: fix missing of license files on ubuntu build hostChen Qi
The license_create_manifest function contains bashism, this will lead to unexpected results on ubuntu build host, as sh is linked to dash on ubuntu. Even if COPY_LIC_MANIFEST and COPY_LIC_DIRS are enabled, the license files will still be missing on target. This patch fixes the above problem. [YOCTO #5549] Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20image_types: newer btrfs.mkfs needs an empty file to build the disk inSaul Wold
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20kernel.bbclass: move bundle_initramfs after kernel_link_vmlinuxMing Liu
${KERNEL_OUTPUT} is being renamed/restored in bundle_initramfs task, so we must ensure bundle_initramfs run after kernel_link_vmlinux where the link of vmlinux is created as the bootable image. Signed-off-by: Ming Liu <ming.liu@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20xorg-driver: fix qa issue while multilib enabled - contains Xorg driver but ↵Hongxu Jia
no xorg-abi ... WARNING: QA Issue: Package lib32-xf86-video-vesa contains Xorg driver (vesa_drv.so) but no xorg-abi- dependencies WARNING: QA Issue: Package lib32-xf86-video-intel contains Xorg driver (intel_drv.so) but no xorg-abi- dependencies WARNING: QA Issue: Package lib32-xf86-video-omap contains Xorg driver (omap_drv.so) but no xorg-abi- dependencies WARNING: QA Issue: Package lib32-xf86-video-vmware contains Xorg driver (vmware_drv.so) but no xorg-abi- dependencies WARNING: QA Issue: Package lib32-xf86-video-fbdev contains Xorg driver (fbdev_drv.so) but no xorg-abi- dependencies WARNING: QA Issue: Package lib32-xf86-video-modesetting contains Xorg driver (modesetting_drv.so) but no xorg-abi- dependencies ... In oe-core 87be2314fe0e67a616b4f713106b4ae46931f5cb, it fixed add_abi_depends issue while enable multilib. We did the same thing for qa check: package_qa_check_xorg_driver_abi. [YOCTO #5545] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20kernel.bbclass: Use lzma not lzmash for decompressingPhil Blundell
If kernel_do_compile() encounters a .lzma image for the initramfs, it attempts to decompress it using the little-known "lzmash" utility. This may not be present, which will cause the build to fail. Fortunately, it appears that the more mainstream "lzma" tool is compatible so we can use that one instead. Signed-off-by: Phil Blundell <philb@gnu.org> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20icecc: Use bb.utils.which instead of calling whichTobias Henkel
The icecc class often calls 'which' for determining paths. This leads to many messages on stderr in case 'which' doesn't find the executable. Using bb.utils.which is more appropriate here and doesn't pollute stderr. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20distrodata.bbclass: Add fetch2 handlers to svn case in checkpkgIrina Patru
The existing code in checkpkg from distrodata.bbclass had similar functionality with fetch when searching for latest package version. For packages that use svn protocol that part was rewrote in order to use fetcher API. It now calls latest_revision method from Svn class in fetch2 so that it gets latest version. [ YOCTO #1813 ] Signed-off-by: Irina Patru <irina.patru@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-20kernel-grub.bbclass: support /boot area within root partitionHongxu Jia
Previously, it supported the situation that /boot area with separate boot partition: ... menuentry "Update bzImage-3.10.10-WR6.0.0.0_standard-3.10" { set root=(hd0,1) linux /bzImage-3.10.10-WR6.0.0.0_standard root=/dev/sdb1 rw ip=dhcp } ... But didn't consider the situation that /boot within root partition: ... menuentry "Update bzImage-3.10.10-WR6.0.0.0_standard-3.10" { set root=(hd0,1) linux /boot/bzImage-3.10.10-WR6.0.0.0_standard root=/dev/sdb1 rw ip=dhcp } ... This fix supported them both. [YOCTO #5514] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-11-16kernel.bbclass: fix hardlink testBruce Ashfield
The commit [kernel.bbclass: test for hardlinks before installing] doesn't work on all build machines without a space between the ! and the test for hardlink equivalance. The build continues, while the test fails and no copy is made into the sysroot. Eventually tasks like build_hdimg will fail with the missing kernel with the root cause being less than obvious. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-15kernel.bbclass: test for hardlinks before installingBruce Ashfield
commit df564c4 [kernel: Use hardlinks for do_populate_sysroot for speed] does indeed speed up the build, but it also means that the KERNEL_OUPUT and KERNEL_IMAGETYPE may be hardlinks. If they are hardlinks, install complains that they are actually the same file and stops the build. We can easily test and avoid the copy if the file is already in place. [YOCTO #5527] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/license: use "1" to set boolean variablesPaul Eggleton
The expected usage of COPY_LIC_MANIFEST and COPY_LIC_DIRS appears to be to set them to "1" to enable; however the test here is just testing whether they have a value at all, so setting them to "0" would also enable them which is somewhat disingenuous. Actually check if they are set to "1" instead in order to fix this. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/pkg_metainfo: removePaul Eggleton
This is very old, and we now have pkgdata which is much more complete. Nobody appears to be using this class, and even OE-Classic had no current references to it. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/pkg_distribute: removePaul Eggleton
This appears to be a very old way of archiving recipes and associated files. We have better ways of doing this now, and nobody appears to be using this class - even OE-Classic had no current references to it. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14systemd: fix commentsPaul Eggleton
It's DISTRO_FEATURES; DISTRO_FEATURE is invalid. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/license: fix commentsPaul Eggleton
It's LICENSE_FLAGS, LICENSE_FLAG is invalid. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14gtk-immodules-cache: fix error message to use correct namesPaul Eggleton
It's gtk-immodules-cache and GTKIMMODULES_PACKAGES. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/sanity: validate SDKMACHINE valuePaul Eggleton
If SDKMACHINE is set then check that a configuration file matching it actually exists, otherwise the user won't know that they've set it incorrectly. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/insane: improve LIC_FILES_CHKSUM messagesPaul Eggleton
* If the md5 parameter is specified with no value, report that the checksum is not specified instead of reporting that it has changed * If the md5 checksum has changed, point directly to the license file in a way that is easy to copy and paste and give the line numbers in an easy to read form, as well as asking the user to verify that the new contents matches the current LICENSE value. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14classes/image-empty: removePaul Eggleton
We don't actually need this dummy class; "inherit" can be used with an expression that evaluates to nothing with current BitBake. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-14staging: Use hardlinking for sysroot_stage_dirRichard Purdie
This saves about 2GB on a core-image-sato build so is worth doing and is consistent with our efforts to try and decrease our build footprint. Build time in my local test seemed unaffected but on more IO bound machines it should help. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12insane, license: Trap MalformedUrl exceptions when parsing LIC_FILES_CHKSUMPhil Blundell
bb.fetch.decodeurl() will throw if it doesn't like the look of the URL that it's given. (Bitbake's idea of what constitutes a valid URL is somewhat idiosyncratic so it is fairly easy to trip over this by mistake when writing a recipe.) If these exceptions are allowed to propagate all the way up to better_exec() then we will get a large amount of python stack trace spew when they are finally caught. Avoid that by catching them locally and throwing bb.build.FuncFailed() with a suitable explanation instead. Signed-off-by: Phil Blundell <philb@gnu.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12bitbake.conf: Default DISTRO to nodistroRichard Purdie
An empty distro value leads to OVERRIDES and FILESOVERRIDES containing "::" entries which causes odd issues such as files being included when they shouldn't be. We could put in anonymous python to guard against empty entries but its messy and setting a default value for DISTRO to something harmless is much easier. This patch adds a weak default and ensures the sanity test doesn't complain about it. DISTRO_VERSION and SDK_VERSION are also updated to match. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Fix race condition when packaging toolchainTobias Henkel
In the current implementation there can be a race condition while creating the toolchain archive causing the build to break. This is fixed by locking the toolchain archiving step using flock. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add package whitelistTobias Henkel
There are some recipes which parse the PARALLEL_MAKE variable by their own and set them to an empty string afterwards. This disables icecc for this recipe. Adding a whitelist for forcing icecc makes it possible to use icecc also with these recipes. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Support shell evaluation of KERNEL_CCTobias Henkel
In the current implementation a KERNEL_CC variable containing shell evaluation breaks the build process. Shell expansion is not happening before general expansion in get_cross_kernel_cc which results in a syntax error and an aborted parse process. Before expanding the KERNEL_CC variable get_cross_kernel_cc now checks for backticks or '$(' in the KERNEL_CC variable and performs a shell evaluation using a call to echo if it finds one. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Enable icecc also for install stepTobias Henkel
Some packages are calling the compiler in the install step. In this case either the build breaks or icecc is not used for building. The proper environment has to be set to enable icecc based building. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add dummy python version of set_icecc_envTobias Henkel
Bitbakes prepend mechanism for the tasks disregards the type of the function. Thus bitbaking recipes using python functions for configure, compile or install steps fail due to the missing python version of set_icecc_env. Assuming that icecc doesn't need to be used in such situations adding a dummy python version of set_icecc_env fixes this. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Add blacklist vars to BB_HASHBASE_WHITELISTTobias Henkel
Changing any of the ICECC blacklist variables should not change the sstate checksum as this doesn't influence the build result. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Reduce verbosity with empty PARALLEL_MAKETobias Henkel
Currently the icecc class prints a note for every package which disables parallel make at parse time. This is unneccessary as many packages don't support parallel building. Changing the log level from info to debug hides these messages in normal builds without removing the information when needed. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12icecc: Log reason in error casesTobias Henkel
The current implementation doesn't give a hint about the cause in case something went wrong in set_icecc_env. This makes it harder to find out why a package is not being built using icecc. Therefore warnings are inserted in the various error cases. Signed-off-by: Tobias Henkel <tobias.henkel@bmw-carit.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12image-mklibs: Fix grep pattern when mklibs collects executables in rootfsLei Liu
File command in some version could print extra space between "LSB" and "executable" - it causes mklibs can't find any executables using grep "LSB executable". Fix the grep pattern to catch multiple spaces. Signed-off-by: Lei Liu <lei.liu2@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12syslinux: add APPEND to dependency listRoss Burton
Changing APPEND wasn't causing syslinux to re-run, so add a manual dependency. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-11-12kernel: Use hardlinks for do_populate_sysroot for speedRichard Purdie
The kernel tree is large and doesn't need to be copied. Override the default sysroot handling function to use a hardlink copying function in python. This commit also drops the copying of the /lib directory which just contains the kernel modules. We never use those in the sysroot so there is little point in carrying those around. For linux-yocto this takes the do_populate_sysroot time 24s -> 14s. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>