summaryrefslogtreecommitdiff
path: root/meta/classes
AgeCommit message (Collapse)AuthorFiles
2016-02-10bitbake.conf/base: Improve handling of SRCPVRichard Purdie1
If SRCPV is set, it can be expanded when SRC_URI doesn't support it leading to errors. Avoid doing this by setting it only when it makes sense. This patch depends on the bitbake python expansion patch series. [YCOTO #7772] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-07image_types.bbclass: Embed IMAGE_NAME in ubinize config fileDrew Moseley1
When using the FSTYPE multiubi, make sure that each image build has a unique config file. Without this there is a race condition when building multiple images in a single bitbake command which results in errors similar to: ERROR: Error: The image creation script 'blah/tmp/work/blah/core-image-base/1.0-r0/temp/create_image.multiubi' returned 1: iniparser: cannot open ubinize_normal.cfg ubinize: error!: cannot load the input ini file "ubinize_normal.cfg" mv: cannot stat 'ubinize_normal.cfg': No such file or directory WARNING: blah/tmp/work/blah/core-image-base/1.0-r0/temp/create_image.multiubi:1 exit 1 from mv ubinize${vname}.cfg blahtmp/deploy/images/blah/ Signed-off-by: Drew Moseley <drew_moseley@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-07toolchain-scripts: drop PYTHONHOMEChristopher Larson1
If this is set when nativesdk-python is not installed, it will break the host python, so it's better to handle this in python. Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-06uninative: Improve error handlingRichard Purdie1
We need to improve the error handling here, things were breaking and yet the user wasn't seeing the issues. We need to skip libraries as we process the files. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-06populate_sdk_ext: Make populate_sdk_ext depend on sdk_extra_confRandy Witt1
If a user changes sdk_extra_conf, it should cause populate_sdk_ext to run. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-06populate_sdk_ext: Add support for a "minimal" typeRandy Witt1
If the user sets the SDK_EXT_TYPE variable to "minimal" then the sdk won't contain any sstate. The sstate can come from an sstate mirror and be installed on demand as usual. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-06populate_sdk_ext: Don't set sdk_update_targets in the configRandy Witt1
sdk_update_targets isn't used by any code, so there is no reason to set it. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-06toolchain-scripts.bbclass: Use PYTHONPATH instead of PYTHONHOMERandy Witt1
In the extensible sdk it was originally intended that the native sstate would always be setscened as part of the sdk installation. However, the soon to come "minimal" sdk won't do that. A side effect of that is that pointing PYTHONHOME at the native sysroot within the "bitbake workspace" won't work. For now only set PYTHONPATH instead and continue using the python that comes from buildtools. Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-06bitbake.conf/native/nativesdk: Set PKG_CONFIG_SYSTEM_ at top levelRichard Purdie2
Setting PKG_CONFIG_SYSTEM_{HEADERS/INCLUDE}_PATH for nativesdk isn't enough, we also need to deal with multlib cases where libdir from pkg-config-native isn't correct. Native builds are about the only case where this variable shouldn't be set. Therefore move the code from nativesdk to bitbake.conf and unexport it in the native case. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-05nativesdk: Set PKG_CONFIG_SYSTEM_ variablesRichard Purdie1
When building nativesdk recipes, we noticed paths going into .pc files which should have been suppressed since these were standard library search paths. pkgconfig-native sets these variables to sane values for native recipes, we need it set to values for our specific library paths in the nativesdk case. Setting these values cleans up the .pc files and suppresses the paths. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04insane: Fix populate_sysroot sanity test pathRichard Purdie1
This was correct for native/cross paths but not for target ones which meant the tests weren't running in some cases. Fix the path to be correct in both cases. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04license.bbclass: add LICENSE_CREATE_PACKAGE to perform_packagecopy vardepsRoss Burton1
This class has a perform_packagecopy_prepend() that uses LICENSE_CREATE_PACKAGE, but the BitBake variable dependency code doesn't know that oe.data.typed_value() is a getter. Until BitBake knows this, add an explicit vardeps. [ YOCTO #5635 ] Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-04Revert "kernel/kernel-arch: Explicitly mapping between i386/x86_64 and x86 ↵Ioan-Adrian Ratiu2
for kernel ARCH" This reverts commit 8d310b24927d0f348fb431895f0583733db2aad0. That commit completely breaks KBUILD_DEFCONFIG because it relies on $ARCH to match between the target OE arch and the kernel subdirectory containing the defconfigs. In the kernel all defconfigs for everything x86-based (including x86_64) is stored in dir arch/x86/configs/ kernel-yocto.bbclass correctly searches for all the defconfigs inside ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} Commit 8d310b249 makes it search in wrong places and _only_ if you define TARGET_ARCH = "athlon" will it search x86 which is nonsensical. The commit further adds an if clause to hack the mungled kernel arches back to their original values (ugh) in do_shared_workdir which is run after do compile, but of course the build breaks before that in do_kernel_metadata because of the KBUILD_DEFCONFIG mentioned above (so that hack is useless). Please fix that corner case bug in another way which does not completely screw up the kernel arch mapping & defconfig logic. If 64bit configs are generated in the kernel for 32bit machines because the host is asked, then it it a bug in the kernel, it is of no use to hack around it in OE. Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-04toaster.bbclass: reinstate scan for artifacts in the sdk directoryElliot Smith1
During refactoring of the SDK/artifact scan code in toaster.bbclass, the code to find other non-image artifacts in the images/ directory was incorrectly removed. Reinstate that code and clean it up so it's clearer what's happening and so that non-image artifacts are correctly reported. [YOCTO #8956] Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04toaster.bbclass: attach image file scan postfunc to do_image_completeElliot Smith1
The postfunc for finding image files after completion of a build fails, as the image files we're interested in don't exist at the point when the scan is currently done (following do_rootfs). Attach the postfunc for scanning for image files to the new do_image_complete task, which definitely runs after the image files have been created. [YOCTO #8956] Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04meta: add ASSUME_PROVIDED dependency on wget-native for http fetchesRoss Burton1
For clarity and consistency, add a dependency on wget-native for any URIs that will be fetched using the wget fetcher, and add wget-native to ASSUME_PROVIDED. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-04classes/lib: Add expand parameter to getVarFlagRichard Purdie13
This sets the scene for removing the default False for expansion from getVarFlag. This would later allow True to become the default. On the most part this is an automatic translation with: sed -e 's:\(\.getVarFlag([^,()]*, [^,()]*\)):\1, True):g' -i `grep -ril getVar *` In this case, the default was False, but True was used since in most cases here expansion would be expected. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04sstate: Fix SSTATE_SWSPEC only used by populate_lic tasksRichard Purdie1
This variable is only used by populate_lic tasks (gcc-source overrides it) and refers to BPN. In recipes like gcc, where there are multiple variants, it is resulting in sstate objects which encode PN (they install into a PN subdir) but the sstate object reflects BPN. This leads to corruption between then and eventually, warnings from image builds like: WARNING: The license listed GPLv3 was not in the licenses collected for recipe gcc WARNING: The license listed GPL-3.0-with-GCC-exception was not in the licenses collected for recipe gcc WARNING: The license listed GPLv3 was not in the licenses collected for recipe gcc WARNING: The license listed NCSA was not in the licenses collected for recipe gcc-sanitizers WARNING: The license listed MIT was not in the licenses collected for recipe gcc-sanitizers WARNING: The license listed GPL-3.0-with-GCC-exception was not in the licenses collected for recipe gcc WARNING: The license listed GPLv3 was not in the licenses collected for recipe gcc WARNING: The license listed NCSA was not in the licenses collected for recipe gcc-sanitizers By referring to PN, as used by license.bbclass, this issue is resolved. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-04package.bbclass: Add data expansion to do_split_packages()Richard Purdie1
do_split_packages is often called with parameters which need expansion. This happens to work at the moment since python functions are expanded before execution but likely will not happen in future and isn't good code practise. Expand the common parameters do_split_packages() to avoid regressions. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-02populate_sdk_ext: Add SSTATE_MIRRORS to config blacklistRandy Witt1
SSTATE_MIRRORS used by the builder may not be the same as what the installer of the sdk will use. Therefore blacklist SSTATE_MIRRORS from the builder configuration. Note: the actual SSTATE_MIRRORS for the sdk can be added using sdk_extra_conf. 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>
2016-02-02insane: add test for -dev packaging containing real librariesRoss Burton1
PN-dev packages should generally contain the link-time symlinks from libfoo.so to the real libraries. If a recipe installs a real library named libfoo.so there's a very good chance that it's a loadable module and should be in another package. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-02-02remove-libtool: add new classRoss Burton1
This class adds a postfunc to do_install to remove all .la files installed by libtool, so that they are absent from both the sysroots and target packages. If a recipe needs these files to be installed then it can be overridden by setting REMOVE_LIBTOOL_LA. Note that this class isn't enabled by default. [ YOCTO #2380 ] Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-02-02gtk-immodules-cache.bbclass: fix immodules-cache pathMaxin B. John1
This commit in gtk+ moved the cache files below <libdir> " commit c8849046860a9b17fa943247d85ddadb29262b48 Author: Matthias Clasen <mclasen@redhat.com> Date: Thu Jul 4 09:27:17 2013 -0400 Move the module cache files below libdir These files contain architecture-dependent paths, and thus placing them into sysconfdir causes unnecessary hassle. Now the immodule cache file is looked for in libdir/gtk-2.0/2.10.0/immodules.cache. Belated backport of a change that was done in the run-up to 3.0.". Update gtk-immodules-cache.bbclass to use that path. The environment variable "GTK_IM_MODULE_FILE" can also be set to point GTK+ at the file to fix this problem. However, it causes problems for gtk3 apps. [YOCTO #6774] [YOCTO #8957] Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-31sstate: Revert using -m option to tar in sstateRichard Purdie1
In http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=2d89cff42af2bb0049224bfaaebaa2b21966169f we added a workaround for dealing with lack of time sync between build machines and their users. This has turned out to cause problems for people who rely on timestamps being preserved in sstate output. Since our autobuilders are all in time sync with ntp, revert the commit. [YOCTO #8996] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-31native.bbclass: Set CXXFLAGS from BUILD_CXXFLAGS not BUILD_CFLAGSPhil Blundell1
Although BUILD_CXXFLAGS, by default, expands to the same thing as BUILD_CFLAGS there is no guarantee that this will be true in all cases. When setting CXXFLAGS we should use the former. Signed-off-by: Phil Blundell <pb@pbcl.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-31externalsrc: use shared CONFIGURESTAMPFILE if B=SMarkus Lehtonen1
External source tree is used as the builddir even for different architectures in case ${B}=${S}. This may cause problems if MACHINE is changed as do_configure is not being re-run (which would run make clean). This patches changes externalsrc to use a common (per-recipe) CONFIGURESTAMPFILE under 'work-shared' if ${B}=${S}. In addition, do_configure will depend on changes of this stamp file. As a result, do_configure is re-run and the build dir is cleaned correctly if a rebuild for different MACHINE is done. [YOCTO #8950] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-31Make sure that the directory for CONFIGURESTAMPFILE existsMarkus Lehtonen2
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-31autotools.bbclass: use oe_runmake instead of ${MAKE}Markus Lehtonen1
Use oe_runmake like in base.bbclass so that EXTRA_OEMAKE will be respected. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-29base: Move COMPATIBLE_MACHINE out the scope of SOURCE_MIRROR_FETCHRichard Purdie1
Recipes setting COMPATIBLE_MACHINE are likely to have SRC_URI entries which can heavily depend on the configured machine. Skipping them for SOURCE_MIRROR_FETCH is therefore not advised and leads to build errors whilst not particularly improving source mirrors. [YOCTO #8802] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29autotools.bbclass: don't create subshell to delete configure scriptsAndre McCurdy1
Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29sstate: Add back packagedata on packagedata dependenciesRichard Purdie1
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29autotools_stage.bbclass: remove itRobert Yang1
Not needed any more, the autotools.bbclass can fully instead of it. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29sstate: Improve handling of useradd dependenciesRichard Purdie1
useradd has sstate [depends] for both do_package and do_populate_sysroot yet the dependency validation code only covers do_package. Add coverage of populate_sysroot, else the order inversion that [depends] creates means unexpected installation of users of useradd.bbclass (e.g. avahi do_populate_sysroot) in cases where it shouldn't be (e.g. libnss-mdns -c packagedata). The code needs to move above the other populate_sysroot intercept code since there are specific cases we need to cover before that code. The result of this change is more optimal installation of sstate objects in common usage scenarios. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29bash-completion.bbclass: add classGeorge McCollister1
Add bash-completion.bbclass which will package bash completion files in a subpackage ${PN}-bash-completion. Use of this class will ensure consitent handling of bash completions across recipes. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29qemu.bbclass: clarify QEMU_EXTRAOPTIONSAndre McCurdy1
QEMU_EXTRAOPTIONS is a way to add PACKAGE_ARCH specific options to the qemu_run_binary qemu commandline. The base QEMU_EXTRAOPTIONS variable (ie without a PACKAGE_ARCH suffix) is not used, so defining it, either directly or via an over-ride has no effect. Although previously an over-ride for _armv7a was used, it did nothing for most armv7a builds, which typically use PACKAGE_ARCH values such as "cortexa9hf-neon". In practice this worked OK since without a -cpu option, qemu-arm will default to emulating a CPU which supports all required architecture levels. qemu-arm (v2.5.0) with no -cpu option has been confirmed to successfully run binaries built for armv7ve. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29buildhistory: fix the check for existence of a git repoMarkus Lehtonen1
Previously, in order to determine the existence of an already initialized Git repository we checked if a directory named '.git' was present in the buildhistory dir. However, e.g. in the case of git submodules '.git' may also be a regular file referencing some other location which was causing unwanted behavior. This patch changes buildhistory.bbclass to check for any file named '.git' which fixes these problems. [YOCTO #8911] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29pth: DeleteKhem Raj1
replacement in npth is available in OE-core Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-29libc-package.bbclass: add LOCALE_UTF8_IS_DEFAULTRichard Tollerton1
python hard-codes the encoding of many locales; for instance, en_US is always assumed to be ISO-8859-1, regardless of the actual encoding of the en_US locale on the system. cf https://hg.python.org/cpython/file/7841e9b614eb/Lib/locale.py#l1049, getdefaultlocale(), etc. This code appears to date back to python 2.0. The source of this hard-coding is Xorg's locale.alias but is ultimately justified by glibc's SUPPORTED. This causes problems on OE, because any locale lacking an explicit encoding suffix (e.g. en_US) is UTF-8. It has been this way from the beginning (svn r1). That is not a bug, per se -- no specification prohibits this AFAIK. But it seems to be at odds with virtually every other glibc-based distribution in existence. To avoid needlessly aggravating hidden bugs that nobody else might hit, it makes sense to disable this behavior such that locales are named precisely as specified by SUPPORTED. I suppose that reasonable minds may disagree on whether or not the current behavior is prudent; at the very least, this is likely to break IMAGE_LINGUAS settings. So let's create a new distro variable LOCALE_UTF8_IS_DEFAULT to allow either behavior. Set it to 0 and all your locales get named exactly like they are in SUPPORTED. Leave it at 1 to preserve current OE locale naming conventions. Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26distutils-common-base: do not set PACKAGES - use defaults from bitbake.confAndreas Müller1
it took me a while to understand why PACKAGE_BEFORE_PN did not work... Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26insane: remove unused variable assignmentRoss Burton1
Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26image.bbclass: check INITRAMFS_MAXSIZERobert Yang1
Usually, the initramfs' maxsize can be 1/2 of ram size since modern kernel uses tmpfs as initramfs by dafault, and tmpfs allocates 1/2 of ram by default at boot time, which will be used to locate the initramfs. Set INITRAMFS_MAXSIZE to 131072K (128M) by default (ram 256M), the initramfs is small usually, for example, core-image-minimal-initramfs is about 21M (uncompressed, 17M * 1.3) by default, but if the user add a lot pkgs to initramfs, we can error and stop to let the user know ealier rather than fail to boot (e.g., OOM-killer) at boot time. Please see the bug for more info: https://bugzilla.yoctoproject.org/show_bug.cgi?id=5963 [YOCTO #5963] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26uninative: handle UNINATIVE_URL being file:///Ross Burton1
If the local fetcher is used then files are not actually fetched into DL_DIR, so check if this happened and if required add a symlink to the real file. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26uninative: fix path to patchelf-uninativeRoss Burton1
When uninative was changed to use it's own sysroot the path to patchelf lost ${bindir_native}, so add it back. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26meta/lib: new module for handling GPG signingMarkus Lehtonen2
Add a new Python module (oe.gpg_sign) for handling GPG signing operations, i.e. currently package and package feed signing. The purpose is to be able to more easily support various signing backends and to be able to centralise signing functionality into one place (e.g. package signing and sstate signing). Currently, only local signing with gpg is implemented. [YOCTO #8755] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-01-26image: Don't create tasks with '.' in the nameRichard Purdie1
Similarly to "-", "." doesn't work well in task names but is used in some real world image classes. Work around this with some replacements for now to unbreak layers. (Issues don't show themselves until runtime, e.g. with --dry-run) Tested-By: Otavio Salvador <otavio.salvador@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-26rootfs-postcommands: fix allow-empty-password on read-only rootfsRoss Burton1
When a read-only rootfs is being used sshd uses a different sshd_config file, which also needs to be editted. [ YOCTO #8680 ] Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-25kernel: Clean DEPLOYDIR before do_deploy runsRichard Purdie1
If we don't do this, the deploy sstate object contains an every increasing number of modules tarballs and kernel images, one per execution of "-c deploy -f". Cleaning the directory before we start makes things much tidier. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-23uninative: Fix conflicts with normal sysrootRichard Purdie1
Currently this code installs into the standard sysroot, however this causes some conflicts when linking since the linker can look specifically for versioned .so files (e.g. like libpthreads.so.0). This breaks builds of util-linux-native for example. The easiest solution is to install uninative into its own separate sysroot. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-23insane: Drop do_stage testRichard Purdie1
do_stage was obsoleted years ago, drop the test now. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-23populate_sdk: Use pixz instead of xzRichard Purdie1
xz is slow at compressing the SDKs, we can speed it up by using the parallel compressor, pixz. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>