summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* packaging: allow globs in CONFFILESChen Qi2015-02-194-21/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow globs in CONFFILES. This patch changes the way of CONFFILES handling. After this change, the CONFFILES can take the same form as FILES. That means, we don't have to list a bunch of files for CONFFILES. It will just be expanded like the FILES variable. We don't assume default value for CONFFILES in OE. But distro vendors could provide a default value for CONFFILES in their distro configuration file like below. CONFFILES = "${sysconfdir}" In this way, files under /etc are treated as configuration files by default. Of course, setting CONFFILES in recipes take precedence over the CONFFILES. For example, if the recipe author decides that package A should only treat files under ${sysconfdir}/default/ as config files, he/she can write like this. CONFFILES_A = "${sysconfdir}/default" [YOCTO #5200] (From OE-Core rev: 0d446ef0e5bbca7058eec7259e34f2a1637dfab1) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* license.bbclass: fix unexpected operator for LICENSE values with spaceMartin Jansa2015-02-171-1/+1
| | | | | | | | | | | * add quotes around pkged_lic so that it works correctly with spaces * fixes following error: run.license_create_manifest.50601: 193: [: GPLv2: unexpected operator (From OE-Core rev: 2bb8b2abb689d91b7b7e28e6bd528747bde94dd2) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* useradd.bbclass: avoid do_rootfs error for debian package backendChen Qi2015-02-171-0/+10
| | | | | | | | | | | | | | | | | | | | | | | If /etc/login.defs is treated as a configuration file, then we would meet errors at do_rootfs time telling us that useradd/groupadd cannot execute correctly. This is because the dpkg handles config file specially, the login.defs is temporarily renamed as login.defs.dpkg-new. How ubuntu deals the user/group adding problem? They do it at postinst of the package. And, the postinst script of a package would possibly do `chown' of its files or directories. The above strategy is not suitable for OE. Because we do chown in do_install and add user/group in preinst scripts of the packages. That's why we need this patch so that do_rootfs don't fail. (From OE-Core rev: d98e5ec575f542b3afaabd96b07ae9a21e1c22f4) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* update-rc.d: use '-f' option in updatercd_postrmChen Qi2015-02-171-2/+2
| | | | | | | | | | | | | | | | | | | | Use '-f' ('--force') option so that while removing packages using deb, we don't fail because of the following error: update-rc.d: $initd/$bn exists during rc.d purge (use -f to force) Using '-f' option would make this a warning but continue to execute. update-rc.d: $initd/$bn exists during rc.d purge (continuing) We need this option because dpkg package backend have special handling for configuration files. And if files under /etc/init.d are treated as configuration files, we will have errors. (From OE-Core rev: ebb2d557bbf410d98040cdaabbddd7e3ee0a9709) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* utils.bbclass: fix create_cmdline_wrapperJavier Viguera2015-02-171-2/+2
| | | | | | | | | | | | | | | | | | | Similar to commit 4569d74 for create_wrapper function, this commit fixes hardcoded absolute build paths in create_cmdline_wrapper. Otherwise we end up with incorrect paths in users of this function. For example the 'file' wrapper in current released toolchain: exec -a /home/pokybuild/yocto-autobuilder/yocto-worker/nightly-fsl-arm/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-file/5.18-r0/image//opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/bin/file `dirname $realpath`/file.real --magic-file /opt/poky/1.7.1/sysroots/x86_64-pokysdk-linux/usr/share/misc/magic.mgc "$@" (From OE-Core rev: 49ab89eb9f83388e99069a4b53bdc4cba22bb6f3) Signed-off-by: Javier Viguera <javier.viguera@digi.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk: Handle OLDEST_KERNELRichard Purdie2015-02-171-0/+1
| | | | | | | | | | | Add a check to the SDK so that it only runs on systems with kernel versions it supports. [YOCTO #6856] (From OE-Core rev: b4caa8085aa15674162ff5135b13409998db9510) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* bluetooth.bbclass: simplify recipe inference of bluetooth providerPeter A. Bigot2015-02-171-0/+14
| | | | | | | | | | | | | | | | | | Defines ${BLUEZ} to be the provider of bluez services as specified by DISTRO_FEATURES. Example recipe fragment: inherit bluetooth PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} PACKAGECONFIG[bluez4] = "--enable-bluetooth,--disable-bluetooth,bluez4" PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5" [YOCTO #5031] (From OE-Core rev: 045484283530bced19bb1d3aea229c8f138f510a) Signed-off-by: Peter A. Bigot <pab@pabigot.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* vala.bbclass: enable PARALLEL_MAKERobert Yang2015-02-151-3/+0
| | | | | | | | | The midori is built well now. (From OE-Core rev: 445135f4fdd5878a0660029d0876aec51f971e20) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: add new items to IMAGE_FEATURES[validitems] listSaul Wold2015-02-141-1/+1
| | | | | | | | | | | | | Add the new items to the validitems list, this is fully tested, initial testing had been done with a local change that did not make the original commit request [YOCTO #7308] (From OE-Core rev: 6e48bc5fbd834f19bdcac17007d27a750cc5f331) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* oe-pkgdata-util: improve command-line usagePaul Eggleton2015-02-142-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | * Use argparse instead of optparse for standardised help output, options and a much cleaner code structure * Look up pkgdata directory automatically so the user doesn't have to specify it * Use standard logging NOTE: this does mean a slight change in syntax - if you do want to specify the pkgdata directory (usually only necessary if you're calling it from within the build process) you need to use the parameter -p (or --pkgdata-dir) and specify this before the command, not after it. Examples: oe-pkgdata-util find-path /sbin/mke2fs oe-pkgdata-util lookup-recipe libelf1 oe-pkgdata-util read-value PKGSIZE libc6 oe-pkgdata-util -p /home/user/oe/build/tmp/sysroots/qemux86-64/pkgdata read-value PKGSIZE libc6 (From OE-Core rev: 04dc571ac7c26f0dcf1a1fcd466482e22519998d) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types: Error out if BTRFS image is too smallSaul Wold2015-02-141-2/+7
| | | | | | | | | | [YOCTO #6804] (From OE-Core rev: 14a1c035ba654aff1ec09d884f0b0acf7b83ab79) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qmake_base.bbclass: fix hardcoded paths in a generated qt.confTomas Novotny2015-02-141-3/+3
| | | | | | | | | | | | | The qmake_base class generates internal qt.conf for build with hardcoded qt4 target paths. This is ok for qt4-x11 as this is the default $QT_DIR_NAME, but it is wrong for qt4-embedded, because qtopia is its default directory. (From OE-Core rev: f4b8c0faa1cebda2a2742f8e4d622dcd024428e9) Signed-off-by: Tomas Novotny <tomas.novotny@tbs-biometrics.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools/siteinfo: Avoid races over siteinfo filesRichard Purdie2015-02-132-3/+12
| | | | | | | | | | | | | | | | | If a siteinfo enabled tasks re-executes at the wrong moment whilst something else is in do_configure, the _config files can be removed which upsets autoconf and causes build failures. Use the same approach as we do for dealing with the aclocal files. We already parse the manifests so look out any *_config files and if so, copy them, then reference the copy from siteinfo instead. This has the advantage of also being more deterministic. [YOCTO #7101] (From OE-Core rev: c8b7aad133c3e3319345d50f85a91cbd5116f842) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane.bbclass: Added QA test for expanded ${D}Alejandro Hernandez2015-02-081-1/+28
| | | | | | | | | | | | | | Checks in FILES and pkg_* variables, solves common mistake of using ${D} instead of $D and warns the user accordingly. [YOCTO #6642] (From OE-Core rev: e3ea62b370f69d2435e76f6e444f5d3a3b25eb17) Signed-off-by: Alejandro Hernandez <alejandro.hernandez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: don't let do_rootfs depend on BUILDNAMEChen Qi2015-02-081-1/+1
| | | | | | | | | | | | | | BUILDNAME is set by cooker as a string of current time. Letting do_rootfs task depend on this variable gets us no benefit. Besides, letting do_rootfs task depend on this variable will cause us trouble when executing `bitbake -S none core-image-minimal'. With current code, this command gives us error complaining about the different bashhash of do_rootfs task. (From OE-Core rev: eb6305d03723527830976c3a4ce2342a0e09eefc) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* core-image: split debug-tweaks into individual featuresSaul Wold2015-02-082-5/+8
| | | | | | | | | | | | | | | Split the debug-tweaks into a more fine tunable set of IMAGE_FEATURES which activate the component functions. Clean-up image-core and image bbclass by having the ROOTFS_POSTPROCESS_COMMANDs in in one place for the debug-tweaks related functions [YOCTO #5344] (From OE-Core rev: e52d8281eb98dbade2d82451fa9788285121437e) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: tweak license format messagesPaul Eggleton2015-02-081-7/+8
| | | | | | | | | | | | Strictly speaking not all of these characters are operators, so reword the message to describe them as separators. Also use the standard "recipename: message" format. (From OE-Core rev: 9e5da3e83f2a5d43620e07a31728b7427329d8f4) 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>
* binconfig-disabled.bbclass: fix echo commandRobert Yang2015-02-081-1/+1
| | | | | | | | | | | | | | | The ">" should be ">>". We had got something like the following in pcap-config: echo '--should-not-have-used-/usr/bin/pcap-config' exit 1 (Lacks of #!/bin/sh) (From OE-Core rev: d4adf9ac1b8318d4eb3f1c8dd82bbf04c6908eb5) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* uboot-config.bbclass: Allow multiple U-Boot config for machineChunrong Guo2015-02-081-23/+14
| | | | | | | | | | | | | | | | | | | | | This adds support to build multiple U-Boot configs for a machine; this is useful when we have support for different media boots which require different U-Boot configuration (e.g: eMMC and NAND). Below there's an usage example: ,----[ i.MX6Q SABRE AUTO based example ] | UBOOT_CONFIG ??= "sd eimnor nand spinor" | UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard" | UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config" | UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs" | UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config" `---- (From OE-Core rev: be997c70e4dec101786978b3ab5e49a1be87a85d) Signed-off-by: Chunrong Guo <B40290@freescale.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* opkg: Merge in opkg-collateralPaul Barker2015-02-031-1/+1
| | | | | | | | | | All non-arch-specific and non-distro-specific configuration is now kept in the main 'opkg' recipe and package. (From OE-Core rev: e8879cd1ec8914815c7a78f1d9b296b0e2b30fcf) Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: add unknown-configure-option to default WARN_QARoss Burton2015-02-031-0/+1
| | | | | | | | | | The unknown-configure-option check is generally useful and should be enabled by default. (From OE-Core rev: 2f1909a6a78dec943800a0e8a39f890c007165b7) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* native: remove PN from DEPENDS automaticallyRoss Burton2015-02-031-1/+3
| | | | | | | | | | | | | | | If a recipe (say, wayland) has DEPENDS=wayland-native and BBCLASSEXTEND=native, when built as wayland-native it has DEPENDS=wayland-native which results in a circular dependency. Typically this is resolved by having explicit DEPENDS_class-native statements but as this is duplication which can lead to inconsistent dependencies, automatically remove the circular dependency. (From OE-Core rev: 3e9392c0965166462e0993d46f4cc2fb1832f1e5) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: make kernel depmod data optionalDan McGregor2015-02-031-0/+1
| | | | | | | | | | | | | This allows an image to skip the creation of kernel depmod data. It is useful for creating an image that will run as a container image inside a host with no knowledge of the parent's kernel. (From OE-Core rev: ca641aedff5f6bd155796ead02cb2eb871f8c17a) Signed-off-by: Dan McGregor <dan.mcgregor@usask.ca> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/image: ensure uninstalled packages do not appear in manifestsPaul Eggleton2015-02-032-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the rewrite of the image construction code in python a few releases ago, we remove a couple of packages from the image as one of the final steps when constructing the image (notably update-rc.d and run-postinsts). However, because of the order of operations, these packages are still listed both in the buildhistory installed_package*.txt files and in the manifest file created next to the image, which is wrong. There were two possible solutions to this: (1) change the order such that the uninstallation occurs before calling ROOTFS_POSTPROCESS_COMMAND or (2) add another hook variable in such that we can have the package list collection code run at the right time. Because it's currently possible (but very much not recommended) to install additional packages within ROOTFS_POSTPROCESS_COMMAND, which may have postinstall scripts and thus require the packages we would otherwise uninstall if we were to take option 1, option 2 is really the least likely to cause problems. Therefore, add ROOTFS_POSTUNINSTALL_COMMAND and make the image and buildhistory classes use it. Fixes [YOCTO #6479]. (From OE-Core rev: b198a189228648057c3be7d068598f50841b3bf9) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/image: skip recipe on invalid IMAGE_FEATURES itemPaul Eggleton2015-02-031-1/+4
| | | | | | | | | | | | | | | | | | If you add an item to EXTRA_IMAGE_FEATURES in your local.conf that is not supported by image.bbclass itself (such as "tools-sdk" which is implemented in core-image.bbclass), it can be somewhat annoying to have the parse fall over if you have a recipe that inherits image.bbclass only. Change the error from bb.fatal to skip the recipe instead so that you only see the error when attempting to build the recipe, plus add a bit of logic to report if the feature is coming in via EXTRA_IMAGE_FEATURES. Fixes [YOCTO #5023]. (From OE-Core rev: cbe9d2f748125aa2dffc829570d46f8dbc1781a4) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/image: drop unused default of MACHINE_POSTPROCESS_COMMANDPaul Eggleton2015-02-031-1/+0
| | | | | | | | | | | | | | | | | In the daisy (1.6) timeframe, when we rewrote the image construction in Python, we neglected to reimplement the support for the little used and undocumented variable MACHINE_POSTPROCESS_COMMAND, and apparently nobody noticed. We have a better method for implementing machine-specific image formats that is in wider use (i.e. add a custom class which implements the new image type, add the class to IMAGE_CLASSES and the type to IMAGE_FSTYPES), and we now also have wic. Thus it makes more sense to just call this variable unsupported now and drop the sole remaining reference to it. (From OE-Core rev: 46fef857d6c4ac25d89b71b542b019d0ed068c19) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* report-error: Catch un-readable log dataMichael Wood2015-02-031-3/+7
| | | | | | | | | | | If a log data cannot be decoded to utf-8 or read then handle this gracefully. This can happen if a log file contains binary or something goes wrong with the file open process. (From OE-Core rev: 787ffc5e12f1639aa5e0917bb23deced53a0478e) Signed-off-by: Michael Wood <michael.g.wood@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sed-native: dropPaul Eggleton2015-02-021-1/+1
| | | | | | | | | | | | | | | | | This was added back in the depths of history (around 2006 in OE-Classic) when apparently the host sed couldn't always be relied upon. We now call the host sed all over the place without this dependency and don't have any problems. On the other hand, having it around can lead to races where we're calling sed in one task and staging it to the sysroot in another, the result being nasty failures compiling binutils for example. Since it isn't needed, let's just drop it completely. Fixes [YOCTO #7264]. (From OE-Core rev: 863a3966e1a200e7a15fbdbb8e04dce6e3f6c1a2) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* btrfs: create an empty file to build the fs inSaul Wold2015-02-021-2/+2
| | | | | | | | | | | | The newer btrfs-utils needs an empty file to build the filesystem in, so create an empty file and use it for the mkfs to build the fs in. [YOCTO #6804] (From OE-Core rev: 224c24d8a8ea6230ed56ea61cdb86e78c5ec4311) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel: Fix depmod for multilibRichard Purdie2015-01-291-15/+11
| | | | | | | | | | | | Using populate_sysroot for this data was a nice idea but flawed as it doesn't work in multilib builds. Instead we can use PKGDATA_DIR since this is consistent over multilib builds. It also turns out to be slightly neater code too. Hopefully this resolves the problem once and for all. (From OE-Core rev: 6cccae3ca54c1177a1d91d23c3e151d74e735ee9) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image: Add missing depends on virtual/kernel for depmod dataRichard Purdie2015-01-291-2/+4
| | | | | | | | | | | | | | | | | We need the depmod data so that the kernel depmod command works successfully at rootfs time. The fact this was working inconsistently is now highlighted after the command was made to error out. A simple test case is: bitbake virtual/kernel image bitbake vrituak/kernel -c clean bitbake image -c rootfs -f We fix it by adding the missing dependency, the data is in PKGDATA_DIR and hence we use packagedata. (From OE-Core rev: 41f0f86ec0a3e0b6f6c9bb4ef71a4215c00bf66c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* recipes-qt: add x11 to required DISTRO_FEATURESMartin Jansa2015-01-291-1/+4
| | | | | | | | | | | | * it's not complete, but recipes depending on virtual/libx11 are easiest to spot, I've long list of PNBLACKLIST for all recipes which cannot be built in distro without x11 in DISTRO_FEATURES (From OE-Core rev: fda535d5b5239b091c79e957f68a45d4eab0ab5d) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto.bbclass: Bug Fix inside do_kernel_checkout()Theodor Gherzan2015-01-291-1/+1
| | | | | | | | | | | | | | | | | --047d7b3a7fac0eebee050cb47483 Content-Type: text/plain; charset="UTF-8" After we check the existence of 'machine_branch' with 'git show-ref' the following if statement should change the 'machine_branch' to the default (i.e. master) if the 'git show-ref' has returned an exit code that is not 0, not the other way around. Signed-off-by: Theodor Gherzan <theodor@resin.io> (From OE-Core rev: cc95da21914d08bfbf1936830985f824e8813904) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* binconfig-disabled: install config scripts in sysrootPatrick Ohly2015-01-291-0/+10
| | | | | | | | | | | | | | | | | | | | | | The purpose of binconfig-disabled is to manipulate config scripts such that using them causes errors. But that only works when the modified config script really gets installed in the sysroot. That is not the case with the staging code in binconfig.bbclass. Only patched config files get staged. For that reason it seemed more appropriate to change binconfig-disabled instead of binconfig. The reason for the change was the observation that the swig recipe needs pcre-config installed on the host system. Staging pcre-config removes that host dependency. swig did not actually end up *using* the pcre-config from the host, because later during do_compile the patched configure.ac is used to re-generate configure. (From OE-Core rev: 822df6d23c9c24e131c38fda9f0012c47ad7af46) 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>
* binconfig-disabled: try harder to prevent usage of config scriptsPatrick Ohly2015-01-291-0/+3
| | | | | | | | | | | | | | | | | | | Returning a non-zero exit code is not enough to cause errors when configure scripts call the patched config scripts: for example, swig's configure script uses PCRE_LIBS=`$PCRE_CONFIG --libs` and does not abort on errors. Using empty output may then succeed, for example when the required library is available indirectly. Returning some nonsense command line arguments covers such cases, because using them will definitely lead to errors during compilation. The faked arguments were chosen such that these errors can be linked back to the root cause. (From OE-Core rev: d1ff61a16a3fcfdd7cf882bc89fb1d164cb1603a) 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>
* image_types.bbclass: manage 'cpio_append' directoryEnrico Scholz2015-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | For cpio images, do_rootfs() can operate on a dirty '${WORKDIR}/cpio_append' directory which contains e.g. files from previous builds. This can cause unwanted files in the image or can break the build. E.g. when there is a cpio_append/init -> /sbin/init symlink symlink, the 'ln -sf' can fail due to SELinux restrictions: | $ ls -la cpio_append/init | lrwxrwxrwx. 1 ensc ensc 10 22. Jan 16:26 cpio_append/init -> /sbin/init | | $ strace ln -sf /sbin/init cpio_append/init | ... | stat("cpio_append/init", 0x7fffbb9ca310) = -1 EACCES (Permission denied) | exit_group(1) = ? Patch cleans up 'cpio_append' before executing the 'do_rootfs' task by adding it to 'cleandirs'. An alternative implementation (which avoids creation of this empty dir for non-cpio images) might remove it within IMAGE_CMD_cpio, but this might break builds where people rely on the existence of this directory (e.g. to add local files). (From OE-Core rev: 4db3cc2360289c062fa0df4678f2f2ef990f0c1a) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types.bbclass: fixed 'init' creation for cpio imagesEnrico Scholz2015-01-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | When /init is a dangling symlink or a symlink to a file which can not be stated on the build system (e.g. due to SELinux restrictions), the '[ ! -e .../init ]' test will succeed which causes the manual creation of /init. E.g. here: | $ ls -la cpio_append/init | lrwxrwxrwx. 1 ensc ensc 10 22. Jan 16:26 cpio_append/init -> /sbin/init | | $ strace /bin/test -e cpio_append/init | stat("cpio_append/init", 0x7fff374a9db0) = -1 EACCES (Permission denied) | exit_group(1) = ? To test for the existence of a file, both '-L' and '-e' checks must be executed and to prevent SELinux noise, the '-L' should happen before '-e'. (From OE-Core rev: 2aa5d2880ee3578f4965f245addd365fb7b1c1ca) Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel/image/depmodwrapper: Fixups for depmodRichard Purdie2015-01-233-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | With the rpm package backend enabled, running: bitbake <image> bitbake virtual/kernel -c clean bitbake <image> -c rootfs -f results in an image with incorrect kernel module dependency information. The problem is that the System.map and kernel-abiversion files are needed for depmod and after the recent kernel changes, these are no longer in sstate. Its reasonable to require the kernel to unpack/build if you're about to build a module against it. It is not reasonable to require this just to build a rootfs. Therefore stash the needed files specifically for depmod. Also fix some STAGING_KERNEL_DIR references which were incorrect, found whilst sorting through his change. (From OE-Core rev: b851504dcf5e147c9efb1c7b6a4d22c1a1a87cd7) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Let PR server update PKGV, not PVMike Looijmans2015-01-231-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PV is the package version as we need it to be during the build. PKGV is the final version as it ends up in the package, and defaults to PV. The packager handled builds without PR-server by replacing the AUTOINC string in PKGV, but when the PR-server is being used, the script replaces the contents of PKGV with the PV if the PV contains "AUTOINC". Thus the packager overrides any change to PKGV the recipe might have made. This breaks classes like gitpkgv that provide a correctly numbered PKGV, the number as calculated by that class will simply be replaced with a 0-based index from the PR-server. This patch makes the packager look at the PKGV version instead of the PV, and update the PKGV only based on the PKGV contents as set by the recipe. See also the discussion here: http://lists.openembedded.org/pipermail/openembedded-core/2015-January/100329.html From investigating the history of the code and changes in the past year, the use of "pv" instead of "pkgv" appears to be just an oversight, introduced in: commit b27b438221e16ac3df6ac66d761b77e3bd43db67 "prs: use the PRServer to replace the BB_URI_LOCALCOUNT functionality" A later commit 865d001de168915a5796e5c760f96bdd04cebd61 "package/prserv: Merge two similar functions into one" silently fixed this only for the case without PR-server by using pkgv there. (From OE-Core rev: 7895c0a67d381ff66668fca5207bd196f36c91db) Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* fix '[[: not found' error message using dashVincent Génieux2015-01-231-1/+1
| | | | | | | | | | | | Remove bash specific syntax '[[ test ]]' replaced with '[ test ]'. Fixes [YOCTO #7112] (From OE-Core rev: f2ff849d5936d3dc5e24301e0620da265df50fea) Signed-off-by: Vincent Génieux <vincent2014@startigen.fr> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* base.bbclass: detect when S has been set incorrectlyPetter Mabäcker2015-01-231-4/+13
| | | | | | | | | | | | | | | | | | | | | Currently base.bbclass is creating S if it's not created by unpacking an archive or fetching a repository. If we avoid creating S we can detect when S hasn't been set correctly, since it will not exist. Then we can tell the user that they should set S to a proper value, instead of just failing with odd errors in later tasks. Besides removing the auto-creation of S this change will introduce a warning if S is set incorrectly. The reason for not display an error and return is due to all external layers that might have recipes that will fail otherwise and that might be a bit to hard to start with. So use a warning until people have had a chance to cleanup affected recipes. [YOCTO #5627] (From OE-Core rev: 0d84b9a8ba408d168cb8a92e895d2f7338d6da1b) Signed-off-by: Petter Mabäcker <petter@technux.se> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* autotools.bbclass: print make cleanRobert Yang2015-01-161-0/+1
| | | | | | | | | It makes us easier to see make clean failed. (From OE-Core rev: c34d9e66a1a97952965128ab84c691202a60985b) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Fix support for private libsMartin Jansa2015-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | * n is a tuple since this commit: commit d3aa7668a9f001044d0a0f1ba2de425a36056102 Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Mon Jul 7 18:41:23 2014 +0100 Subject package.bbclass: Improve shlibs needed data structure since then 'n in private_libs' was always false and private libs were always processed * this is bad when we have libfoo in private libs, but also some package providing libfoo, that way we ship own libfoo.so, but together with runtime dependency on package providing libfoo (From OE-Core rev: ec1d379683cedca4be1c252475d02c8041227142) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* icecc.bbclass: properly handle disabling of iceccDmitry Eremin-Solenikov2015-01-161-8/+7
| | | | | | | | | | | Always use use_icc to check if IceCC should be enabled. Move ICECC_DISABLED variable checking to use_icc function. Also while we are at it, fix condition in icc_is_allarch function. (From OE-Core rev: 20b0168da47d6e30fcbaf6adab3bde0d398d0d00) Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cross-canadian/meta-environment: Allow modification of TARGET_OS to be optionalRichard Purdie2015-01-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are some cases we want the manipulation cross-canadian performance on TARGET_OS, there are also cases like meta-environment where we do not want this manipulation. We did try and use immediate expansion to avoid this problem and it works in the non multilib case. If we have a multilib that used an extension, like for example: require conf/multilib.conf MULTILIBS = "multilib:lib32 multilib:lib64" DEFAULTTUNE = "mips32r2" DEFAULTTUNE_virtclass-multilib-lib32 = "mips64-n32" DEFAULTTUNE_virtclass-multilib-lib64 = "mips64" then the n32 extension case will be misconfigured. It turns out saving an unexpanded variable is hard. The best I could come up with was: SAVEDTOS := "${@d.getVar('TARGET_OS', False).replace("{", "*")}" and then localdata.setVar("TARGET_OS", d.getVar("SAVEDOS", False).replace('*','{')) which is rather evil, I'd challenge someone to come up with a nicer way of making it work though! Rather than the above madness, we modify cross-canadian to make the problamtic code conditional. This fixes the original issue (where a linux-gnuspe target was seeing 'linux') of http://cgit.openembedded.org/openembedded-core/commit/?id=0038634ee6e2b6035c023a2702547f20f67c103a but also fixes the multilib one. (From OE-Core rev: 85ff3d6491c54aa712ed238c561742cda4f4ba07) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: remove GUILT_BASE from terminal exportsBruce Ashfield2015-01-161-2/+1
| | | | | | | | | | | | guilt is no longer used to manage linux-yocto kernel pathes, so we no longer need to export variables that it needed to locate patches in the tree. (From OE-Core rev: eb0209360d14b57fbef6fa20bdd9948e8337f24b) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: Update cleandirs to remove new kernel staging dirsDarren Hart2015-01-161-1/+2
| | | | | | | | | | | | | | Fixes [YOCTO 6818] Update do_unpack[cleandirs] to include the STAGING_KERNEL_BUILDDIR, and add the same set of updated cleandirs for do_clean. (From OE-Core rev: 0726f8099c1407eea9e53a62be94defbab32265e) Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel: move source and build output to work-sharedBruce Ashfield2015-01-164-15/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 3b3f7e785e279 [kernel: Rearrange for 1.8] began the process of moving the kernel source and build artefacts out of sstate control and into a shared location. This changed triggered some workflow issues, as well as bugs related to the kernel source containing build output, and hence being dirty and breaking kernel rebuilds. To solve these issues, and to make it clear that the kernel is not under sstate control, we move the source and build outputs to: work-shared/MACHINE/kernel-source work-shared/MACHINE/kernel-build-artifacts Where kernel-build-artifacts is the kernel build output and kernel-source is kept "pristine". The build-artifacts contain everything that is required to build external modules against the kernel source, and includes the defconfig, the kernel-abiversion, System.map files and output from "make scripts". External module builds should either pass O= on the command line, or set KBUILD_OUTPUT to point to the build-artifacts. module-base.bbclass takes care of setting KBUILD_OUTPUT, so most existing external module recipes are transparently adapted to the new source/build layout. recipes that depend on the kernel source must have a depedency on the do_shared_workdir task: do_configure[depends] += "virtual/kernel:do_shared_workdir" With this dependency added, the STAGING_KERNEL_DIR will be populated and available to the rest of the build. (From OE-Core rev: 6a1ff0e7eacef595738f2fed086986fd622ec32a) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: When linux/version.h exists, copy itOtavio Salvador2015-01-161-0/+4
| | | | | | | | | | | | Old Linux kernel versions rely on linux/version.h for modules; this needs to be published for external modules to use. Copy it when available. (From OE-Core rev: 78226efe72c8221206594c70fa1d8742d4097af1) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* module.bbclass: Add KERNEL_SRC in EXTRA_OEMAKEOtavio Salvador2015-01-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | When the sstate hash changes for do_configure task, the do_configure default implementation triggers the 'clean' to be run. For it to succeed we need to have KERNEL_SRC defined in EXTRA_OEMAKE. Fixes following error: ,---- | DEBUG: Executing shell function do_configure | NOTE: make -e MAKEFLAGS= clean | make -C M=.../tmp/work/... clean | make[1]: *** M=.../tmp/work/...: No such file or directory. Stop. | Makefile:20: recipe for target 'clean' failed | make: *** [clean] Error 2 | ERROR: oe_runmake failed `---- (From OE-Core rev: bc0f58f0713ea7db3c4c24a7d321435934d745d7) Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>