summaryrefslogtreecommitdiff
path: root/meta/classes
AgeCommit message (Collapse)AuthorFiles
2017-03-21buildhistory.bbclass: add layer name to source recipe dataMikko Rapeli1
It is useful to know which layer provided a given recipe and its binary packages. Many projects combine a number of layers and some of them also provide same recipe names in which case bitbake can prioritize between them. buildhistory can record the decision by saving the layer from where the recipe was taken from. Also, if a project is split to sub projects which maintain recipes in different meta layers, then meta layer specific summaries of e.g. disk usage can be calculated if source recipes meta layer name is recorded for example in buildhistory. If source layer is not in build history, then layer providing the recipe can be exported from build environment using 'bitbake-layers show-recipes', but it takes a long time to execute since all recipes are parsed again and requires full source tree with correct build configuration. This patch exports the name of layer as configured in BBFILE_COLLECTIONS append of its layer.conf. 'bitbake-layers show-recipes' exports the meta layers directory path name. For several open source layers these are different, e.g. meta-openembedded/meta-perl/conf/layer.conf is perl-layer, poky/meta/conf/layer.conf is core, poky/meta-skeleton/conf/layer.conf is skeleton etc. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21insane: remove broken unsafe-references-in-binaries testRoss Burton1
This test aims to detect binaries in /bin which link to libraries in /usr/lib, for the case where the user has /usr on a separate filesystem to /. However it doesn't scan both image/ and the sysroot, so if a binary in /bin links to a library in /usr/lib that was built by the same recipe then it will error out. This test isn't enabled by default, and because of this serious bug I suspect nobody else is enabling it either. As /usr being on a separate partition to / is a very rare configuration these days I think we should delete the test: if someone cares sufficiently they should write a test that actually works. Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21package.bbclass: Add PRIVATE_LIBS to list of package specific variablesPeter Kjellerstedt1
Changes to PRIVATE_LIBS should change the sstate checksum. To make that happen, it needs to be listed in the list of package specific variables, therefore add it. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21image-buildinfo.bbclass: configurable location for build filePatrick Ohly1
In a stateless image, /etc is not a good place for the "build" file. By definining the location with a variable it becomes possible to have the file created elsewhere on a per-image basis. The default is the same as before. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21meta/lib/oeqa: change sdk test from cvs to cpiobrian avery1
We currently fetch,configure,build, and install cvs as our test for the sdk. cvs unfortunately, requires a default editor in order to run. The change in 94790a8254d6 that checks to see if you have something like vi installed is fragile since you may have a different default editor. This patch switches from using cvs as a test to using cpio. cpio also uses autotools so the functionality tested is equivalent. Signed-off-by: brian avery <brian.avery@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21rm_work.bbclass: re-enable recursive do_rm_work_allPatrick Ohly1
When rewriting the do_rm_work injection, do_rm_work_all had been removed because it seemed obsolete, as do_build now always triggers do_rm_work. However, do_build does not get triggered for all recipes and thus do_rm_work was not called for recipes that got built only partially. For example, zlib depends indirectly on zlib-native:do_populate_sysroot. Because of that dependency, zlib-native got compiled, but do_rm_work was never called for it. Re-introducing do_rm_work_all fixes that by making do_build depend on do_rm_work_all, which then recursively depends on do_rm_work of all dependencies. This has the unintended side-effect that do_rm_work then also triggers additional work (like do_populate_lic) that normally doesn't need to be done for a build. This seems like the lesser evil, compared to an incomplete cleanup because it mostly enables the lighter tasks after do_populate_sysroot. The real solution would be to have two kinds of relationships: a weak ordering relationship ("if A and B are enabled, A must run before B, but B can also run without A") and hard dependencies ("B cannot run unless A has run before"). Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21image_types_wic.bbclass: tighten dependency to help do_rm_work_allPatrick Ohly1
Depending on wic-tools:do_build pulls a lot of additional, indirect dependencies into the image sysroot during do_image_wic as soon as rm_work.bbclass is active, because then we have do_build->do_rm_work_all->[all dependencies]. One of those dependencies is libgcc-initial, which clashes with libgcc itself, leading to errors in extend_recipe_sysroot like this: Exception: FileExistsError: [Errno 17] File exists: '.../tmp/sysroots-components/corei7-64/glibc-initial/usr/include/fstab.h' -> '.../tmp/work/intel_corei7_64-poky-linux/core-image-minimal/1.0-r0/recipe-sysroot/usr/include/fstab.h' As the image recipe only needs the sysroot of wic-tools and does not need to wait for the build of wic-tools to finish, depending on do_populate_sysroot is the better choice and happens to avoid the problem above. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21kernel-fitimage: dtb sections named by their filenames and one config ↵Florian Wickert1
section for each dtb Before this, dtb sections were named by their position index in KERNEL_DEVICETREE. Also there was only one item in the config section, so only the first dtb was seen by the bootloader. This patch adds a config section for each dtb named by the dtb filename. This is what bootloaders usually know about the machine they run on. Signed-off-by: Florian Wickert <fw@javox-solutions.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21kernel: use ${nonarch_base_libdir} for kernel modules installation.Amarnath Valluri3
Replace hardcoded '/lib' in kernel modules installation path with ${nonarch_base_libdir}, which is meant exactly for this. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
2017-03-21useradd-staticids.bbclass: Always fail/warn for missing IDsPeter Kjellerstedt1
Previously, with USERADD_ERROR_DYNAMIC set to error/warn, if a static UID/GID was specified in the recipe, then no error/warning would be issued even if no ID was specified in the passwd/groups files. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21useradd-staticids.bbclass: Support recipes specifying static IDsPeter Kjellerstedt1
If this bbclass is used and a recipe specifies a static ID for a user/group as part of the USERADD_PARAM_${PN} or GROUPADD_PARAM_${PN}, the build would fail with and error like this if there was no corresponding ID in the passwd/group files specified via USERADD_UID_TABLES/USERADD_GID_TABLES: ERROR: meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb: meta-oe/recipes-support/postgresql/postgresql_9.4.11.bb inherits useradd but doesn't set USERADD_PARAM, GROUPADD_PARAM or GROUPMEMS_PARAM for package postgresql Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21classes/npm: allow installation of devDependenciesAnders Darander1
Often, eg when using angular2, there's a need to install also the devDependencies. The default is to keep the old behaviour, to not install devDependencies. Signed-off-by: Anders Darander <anders@chargestorm.se> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-21meta: replace uses of bb.data.expand(VARNAME, d) with d.expand(VARNAME)Joshua Lock3
bb.data.expand(x, d) is deprecated API. [YOCTO #10678] Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21image_types: increase filesystem size for BTRFSEd Bartosh1
16777216 bytes is a minimal possible filesystem size for BTRFS. mkfs.btrfs fails to create a filesystem if rootfs size is too small. Increased filesystem size to make it possible for mkfs.btrfs to create an image for small rootfs directories, e.g. for core-image-minimal. [YOCTO #11163] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-17ccache: Disable CCACHE_HASHDIR by defaultMike Crowe1
As of ccache-3.3, ccache tries to ensure that the paths in the debug information are always correct. It does this by including the current directory in the hash if debug output is enabled. It includes support for detecting remapping via a single -fdebug-prefix-map argument uses the remapped directory in the hash instead. The DEBUG_PREFIX_MAP in bitbake.conf remaps the source directory, target sysroot and native sysroot separately which results in multiple -fdebug-prefix-map arguments. Although ccache passes all these arguments through to the compiler, it only enables the special behaviour described above if the last one matches the current directory. (See https://github.com/ccache/ccache/issues/163 ) Even if ccache did correctly honour each of the remapping arguments, the hashes would still be different every time ${PV} or ${PR} change because the default DEBUG_PREFIX_MAP contains maps to paths including them. So it seems that for ccache to be of any use with this configuration, CCACHE_NOHASHDIR needs to be set. Signed-off-by: Mike Crowe <mac@mcrowe.com> Helped-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-17uninative.bbclass: split long commandLeonardo Sandoval1
Single long commands are difficult to read and maintain. Split it to make it more human-friendly. Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-17classes: Fix "U-boot", use proper spelling of "U-Boot".Robert P. J. Day2
U-Boot people are amazingly pedantic in their insistence on proper spelling of "U-Boot", so humour them. Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-17toaster.bbclass: Correct parsing of installed-package-sizes.txtPeter Kjellerstedt1
The recent change in buildhistory.bbclass to use a tab in installed-package-sizes.txt between "KiB" and the package name caused toaster_buildhistory_dump() to fail since it parses the file and expected a space there. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-17package.bbclass: Add SKIP_FILEDEPS to list of package specific variablesPeter Kjellerstedt1
Changes to SKIP_FILEDEPS should change the sstate checksum. To make that happen, it needs to be listed in the list of package specific variables, therefore add it. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16classes/base: reformat HOSTTOOLS errorPaul Eggleton1
Adjust the message slightly to make it clearer, in particular mentioning the HOSTTOOLS variable. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-16sanity.bbclass: modify check for shellJuro Bystricky1
Due to the recently implemented update-alternatives for bash binary, sanity checker may end up with a (false-positive) error such as: Error, /bin/sh links to /bin/bash.bash, must be dash or bash This patch modifies the test: presence of "/bash" or "/dash" in shell binary name results in pass. [YOCTO#11108] Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14go: Enable on muslKhem Raj1
Working fine for musl targets now Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14package: Fix various rpmdeps relocation issuesRichard Purdie1
There are several issues with rpmdeps after the rpm v5 -> v4 transition: * _rpmfc_magic_path is an invalid option for rpm4 * --rpmpopt is an invalid option for rpm4 * we need to use the path to rpmrc since otherwise it poitns at the original build path * we need to set MAGIC in the environment so libmagic can find its files. This patch addresses those and ensures rpmdeps works in relocated builds from sstate (or with rm_work). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-14testimage: Don't use systemd.log_level=debug loggingRichard Purdie1
This causes MBs of log messages which overload the standard 200kb syslog limit used by busybox syslog by default. This means some tests which rely on messages being detected in syslog, e.g. rpm.RpmInstallRemoveTest.test_check_rpm_install_removal_log_file_size fail (AssertionError: 54 not greater than or equal to 80 : Cound not find sufficient amount of rpm entries in /var/log/messages, found 54 entries). We enabled this to aid debugging of some systemd race issues, those are now resolved so we can disable this. Leave the log level parameter as a comment to save others having to look it up if they need debugging. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-13package.bbclass: don't exclude package groups from runtime mappingAlexander Kanavin1
This ensures that remapping happens correctly, particularly when package groups list noarch packages, and multilib is in use. Previously this was masked by rpm doing *another* layer of remapping on top of this. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: do not strip multilib prefixes from package names, do ↵Alexander Kanavin1
not add multilib prefix to package arch This is done for reasons I cannot establish, and greatly complicates the code that installs packages into rootfs. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: do not set the OS dynamically when building rpmsAlexander Kanavin1
Packages need to contain just one value for the os field, otherwise rpm will refuse to install them if they don't match what is in /etc/rpm/platform. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: add a /bin/sh Provides for nativesdk- packagesAlexander Kanavin1
nativesdk-* rpm packages all require /bin/sh because postinst scriptlets are run with it. We can either teach rpm4 and dnf to ignore that dependency (a lot of non-upstreamable work), or add auto-satisfy the dependency in each package. I've chosen to do the latter. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13run-postinsts: simplify the logic of whether to install it to imagesAlexander Kanavin4
The logic is scattered all over the place, but amounts to "install, unless the rootfs is read only". Let's express that directly. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: instruct rpm to not remove the buildroot directoryAlexander Kanavin1
This is the ${W}/package directory which may be reused in subsequent builds. Also clean up various default directories rpm 4 creates. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13testimage.bbclass: fix runtime test for rpm, port smart tests to dnfAlexander Kanavin1
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: no need to specify the magic file locationAlexander Kanavin1
It's handled by the rpm wrapper command, created in rpm recipe. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: replace createrepo reference with createrepo_cAlexander Kanavin1
Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13rootfs_rpm.bbclass: migrate image creation to dnfAlexander Kanavin1
To properly look at this patch, you probably need a side-by-side diff viewing tool. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: correctly map RRECOMMENDS and RSUGGESTS to rpm tagsAlexander Kanavin1
Previously they were swapped, not sure why. Their meaning, as far as rpm world goes, is different: - Recommends is a soft dependency and will be installed by default; there is an option not to do that. - Suggests is a suggestion to be picked up and presented to end user by package management tools; it has no special meaning otherwise. OE packages use RRECOMMENDS, which should be mapped to Recommends rpm tag, so that the packages will be picked up as dependencies. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package_rpm.bbclass: make architecture-independent .rpm packages "noarch" ↵Alexander Kanavin2
instead of "all" Too many places in dnf/rpm4 stack make that assumption; let's not fight against it. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13package.bbclass: fix locations of debugedit and rpmdeps utilitiesAlexander Kanavin1
rpm4 installs them in different locations than rpm5. This also replaces our custom rpmdeps-oecore with standard rpmdeps; I'm not seeing a significant performance penalty. Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com>
2017-03-13u-boot: add option to specify FDT argument in extlinux.confJack Mitchell1
Also fixes a use before defined bug with localdata. Signed-off-by: Jack Mitchell <jack@embed.me.uk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-13terminal: Use original PATH for terminalsRichard Purdie1
Now that we filter out PATH to only the utilities we rely upon, the devshel terminal was broken since it can no longer find the terminals. Even if we fix that, the user couldn't access any of their commands within devshell which somewhat defeats its purpose. Add the original PATH back to the environment to restore that behaviour since this is more in line with user expectations and it wouldn't be possible (or desireable) to whitelist all the commands a user might want to use from the shell. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-11uninative: remove unneeded call to sparse copyStephano Cetola1
As of this commit: 39f5a05152aa0c3503735e18dd3b4c066b284107 patchelf no longer inflates file sizes. Since the files are no longer inflated by patchelf, we can skip using cp with the --sparse option. More details as to how patchelf has changed are available in that commit log. Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-11classes: add devupstream classRoss Burton1
This class lets you use BBCLASSEXTEND to add a variant of the recipe that fetches from an alternative URI (such as git:) instead of a tarball. For example: BBCLASSEXTEND = "devupstream:target" SRC_URI_class-devupstream = "git://git.example.com/example" SRCREV_class-devupstream = "abcd1234" This variant will have DEFAULT_PREFERENCE set to -1 so it needs to be selected to be used, and any development-specific tweaks can be done with the class-devupstream override, for example: DEPENDS_append_class-devupstream = " gperf-native" do_configure_prepend_class-devupstream() { touch ${S}/README } It currently only supports creating a development variant of the target recipe, not native or nativesdk. The BBCLASSEXTEND syntax (devupstream:target) was chosen so that support for native and nativesdk can be added at a later date. Support for other version control systems such as subversion is limited, as bitbake's automatic fetch dependencies on for example subversion-native are not generated. [ YOCTO #10215 ] Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-11base/bitbake.conf: Filter contents of PATH to only allow whitelisted toolsRichard Purdie1
We currently have a determinism problem in that the host tools present in PATH can influence the build. In particular, the presence of pkg-config on the build host can mask missing pkgconfig class dependencies. This adds in a new HOSTTOOLS variable and then uses it to set up a directory of symlinks to the whitelisted host tools. This directory is placed as PATH instead of the usual /usr/bin:/bin and so on. This should improve determinism of builds and avoid the issues which have been particularly obvious since the introduction of recipe specific sysroots. If users find there is a tool missing, they can extend HOSTTOOLS from a global class or global conf file. Right now the settings should be enough to build everything in OE-Core. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-10go: Add recipes for golang compilers and toolsKhem Raj2
* This is converging the recipes for go from meta-virtualization and oe-meta-go * Add recipes for go 1.7 * go.bbclass is added to ease out writing recipes for go packages * go-examples: Add an example, helloworld written in go This should serve as temlate for writing go recipes * Disable for musl, at least for now * Disable for x32/ppc32 which is not supported Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-10license: don't assume source files are UTF-8Ross Burton1
We can't assume that source files are entirely UTF-8, so when copying the license blocks open the file as binary instead of text. [ YOCTO #11135 ] Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-10sanity.bbclass: allow s3 protocol when sanity checking MIRRORS, etcAndre McCurdy1
Bitbake now supports an Amazon AWS S3 fetcher: http://git.openembedded.org/bitbake/commit/?id=6fe07ed25457dd7952b60f4b2153d56b15d5eea6 Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-10sstate.bbclass: update .siginfo atimeEd Bartosh1
.siginfo files are not being accessed from local or NFS-mounted sstate mirrors when sstate package is installed, so their atime is not updated. If sstate mirror is cleaned based on access time, they get deleted, even though they are still being used. Updated atime of .siginfo symlinks with 'touch -a'. This command dereferences symlinks pointing to the local mirror and updates atime of the .siginfo file on the mirror. [YOCTO #10857] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-08useradd.bbclass: drop obsolete codeMaxin B. John1
Cleanup useradd class by removing the code made obsolete by the introduction of Recipe Specific Sysroot. Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-08kernel-arch: Lock the toolchain to use gcc compilerKhem Raj1
kernel and external modules are still using gcc to build Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-08base.bbclass: improve wording when skipping recipes with incompatible licensesAndre McCurdy1
The previous wording, e.g. ERROR: wget was skipped: incompatible with license GPLv3 isn't very clear and could be taken to imply that the recipe is incompatible with its own license. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-03-08module.bbclass: Add inherit of pkgconfigPeter Kjellerstedt1
This is needed for the make_scripts task. Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>