aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes
AgeCommit message (Collapse)Author
2016-09-03lib/oe/patch: commit with a dummy user/email when PATCHTOOL=gitPaul Eggleton
When using PATCHTOOL = "git", the user of the system is not really the committer - it's the build system itself. Thus, specify "dummy" values for username and email instead of using the user's configured values. Various parts of the devtool code that need to make commits have also been updated to use the same logic. This allows PATCHTOOL = "git" and devtool to be used on systems where git user.name / user.email has not been set (on versions of git where it doesn't default a value under this circumstance). If you want to return to the old behaviour where the externally configured user name / email are used, set the following in your local.conf: PATCH_GIT_USER_NAME = "" PATCH_GIT_USER_EMAIL = "" Fixes [YOCTO #8703]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03kernel.bbclass: remove EXTRA_OEMAKE workaroundStefan Müller-Klieser
The default of EXTRA_OEMAKE is already empty since commit: OE-Core rev: aeb653861a0ec39ea7a014c0622980edcbf653fa bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03distutils-common-base.bbclass: remove EXTRA_OEMAKE workaroundStefan Müller-Klieser
The default of EXTRA_OEMAKE is already empty since commit: OE-Core rev: aeb653861a0ec39ea7a014c0622980edcbf653fa bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03autotools.bbclass: remove EXTRA_OEMAKE workaroundStefan Müller-Klieser
The default of EXTRA_OEMAKE is already empty since commit: OE-Core rev: aeb653861a0ec39ea7a014c0622980edcbf653fa bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03base, autotools: Append PACKAGECONFIG_CONFARGS to EXTRA_OECONF only in ↵Martin Jansa
autotools.bbclass * recipes which don't inherit autotools or cmake bbclass and want to use the configure options from PACKAGECONFIG need to handle PACKAGECONFIG_CONFARGS themselves. Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-30image_types: check COMPRESS_DEPENDS for backwards compatibilityMikko Ylinen
To complete the transition/renaming to chained image type CONVERSION while maintaining bacwards compatibility to COMPRESS(ION), make sure also COMPRESS_DEPENDS is checked. Without this, the dependencies for legacy COMPRESSIONTYPES do not get built. Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-25useradd.bblass: Simplify target overridesUlf Magnusson
The current style might be a leftover from when _class-target did not exist. Also change the assignment to SSTATECLEANFUNCS to an append, which makes more sense. useradd.bbclass is the only user of SSTATECLEANFUNCS as of writing, so it won't make any functional difference. Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-25bash-completion: add bash-completion to DEPENDS for target packagesRoss Burton
Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-25utils: check_app_exists: strip whitespace from binary when searchingRoss Burton
It's possible that the binary to be searched for contains whitespace which will cause the search to fail, so strip any whitespace before looking. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-25image_types: use COMPRESSIONTYPES variable for backward compatibilityEd Bartosh
Recent renaming of COMPRESSIONTYPES variable can break recipes that still use it. Including value of COMPRESSIONTYPES variable into CONVERSIONTYPES should prevent this. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-25license: simple verification of LICENSE_<pkg> valuesMarkus Lehtonen
LICENSE should be a superset of all LICENSE_<pkg> values. That is, LICENSE should contain all licenses and LICENSE_<pkg> can be used to "filter" this on a per-package basis. LICENSE_<pkg> shouldn't contain anything that isn't specified in LICENSE. This patch implements simple checking of LICENSE_<pkg> values. It does do not do advanced parsing/matching of license expressions, but, checks that all licenses mentioned in LICENSE_<pkg> are also specified in LICENSE. A warning is printed if problems are found. Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-25license.bbclass: do not process LICENSE_pn variablesMarkus Lehtonen
The loop iterating over LICENSE_pn variables has never worked. In addition, the LICENSE variable is supposed to contain all licenses defined in LICENSE_pn variables. Thus, it is simpler just to use LICENSE as the data we get is essentially the same. [YOCTO #9499] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23cmake.bbclass: call cmake with a relative pathThomas Witt
CMake wants a relative path for CMAKE_INSTALL_*DIR, an absolute path breaks cross-compilation. This fact is documented in the following ticket: https://cmake.org/Bug/view.php?id=14367 $sysconfdir and $localstatedir are not relative to $prefix, so they are still set as absolute paths. With his change ${PROJECT}Targets.cmake that are generated by cmakes "export" function will contain relative paths instead of absolute ones. Signed-off-by: Thomas Witt <Thomas.Witt@bmw.de> Signed-off-by: Clemens Lang <clemens.lang@bmw-carit.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23rm_work: don't remove timestamps of image tasksEd Bartosh
Excluded removal of do_bootimg, do_bootdirectdisk and do_vmimg timestamps to prevent unneeded rootfs rebuilds. [YOCTO #10159] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23useradd_base: avoid unintended expansion for useradd parametersMaxin B. John
Now, useradd dollar sign requires three prepending backslash characters to avoid unintended expansion. It used to be just one prepending backslash character before Krogoth. Restore that behaviour. [YOCTO #10062] Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Maxin B. John <maxin.john@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23insane: improve package_qa_clean_pathRoss Burton
Instead of just removing TMPDIR from the path for display, optionally allow a package to be passed and remove PKGDEST/package too. This means that messages that specify a package name can pass that name and the resulting path will be absolute inside that package. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-23grub-efi.bbclass: Fix path in startup.nsh for iso image.Pranav Tipnis
The path in startup.nsh for iso image is corrupted as follows: fs0:\EFI\BOOT^Hootx64.efi Using printf will emit correct path which is: fs0:\EFI\BOOT\bootx64.efi This happens because of echo command. Switching to printf like the one used in efi_populate() function. Signed-off-by: Pranav Tipnis <pranav.tipnis@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-20packagefeed-stability.bbclass: cleansstate should remove pkgs from deploy dirRobert Yang
"bitbake recipe -ccleansstate" should remove binary pkgs from deploy dir as normal cleansstate does without packagefeed-stability.bbclass. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-20image-vm.bbclass: remove old images if RM_OLD_IMAGE is enabledJonathan Liu
[YOCTO #10164] Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-20syslinux.bbclass: ensure creation of output directoryEd Bartosh
build_syslinux_cfg function creates syslinux configuration file. The code assumes that the output directory exists, which is not always the case. For example rm_work task removes rootfs directory structure and causes build_syslinux_cfg to fail with this error: Unable to open ../<image>-<version>/syslinux_vm.cfg Made build_syslinux_cfg depend on output directory to ensure that directory is created before running the function. [YOCTO #10159] Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-20sanity.bbclass: Ensure we expand BUILD_PREFIXRichard Purdie
This likely used to work when we expanded python functions and broke when we stopped. Since it defaults to "", it never caused an issue but is incorrect usage so fix it. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-18image.bbclass: rename COMPRESS(ION) to CONVERSIONPatrick Ohly
With the enhanced functionality, the term "compression" is no longer accurate, because the mechanism also gets used for conversion operations that do not actually compress data. It is possible to remove this naming problem in a backward-compatible manner by including COMPRESSIONTYPES in CONVERSIONTYPES and checking for the old COMPRESS_CMD/DEPENDS as fallbacks. [YOCTO #9346] Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-18kernel-yocto: streamline patch, configuration and audit phasesBruce Ashfield
We've been running with a set of kern-tools that were designed to work with build systems that knew nothing about git, trees, commits, etc. As such, there's been a set of shims/wrappers in place to work with within bitbake/oe-core. These were the *me scripts: createme, updateme, patchme and configme. With this commit, we strip that legacy code and use the tools directly. This means less complexity, fewer corner cases .. and no surprises when the tools are arunning. As another benefit, the tools consume much less time during a typical build and have no noticeable impact on the overall build time. Existing .scc files, features, and processing are not impacted as these tools are compatible with existing feature descriptions and kerne configuration fragments. The audit of kernel configuration fragments is now detached from the linux-yocto build structure and process. This means that they can eventually be tweaked to offer kernel audit to any type of kernel build and configuration process. Additionally, the kernel symbol audit phase can now resolve symbol dependencies and offer guidance when a symbol is missing: WARNING: linux-yocto-4.4.15+gitAUTOINC+b030d96c7b_f5e2c49d58-r0 do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration: ---------- CONFIG_BT_6LOWPAN ----------------- Config: CONFIG_BT_6LOWPAN From: /home/bruce/poky/build/tmp/work-shared/qemux86-64/kernel-source/.kernel-meta/configs/standard/features/bluetooth/bluetooth.cfg Requested value: CONFIG_BT_6LOWPAN=y Actual value: Config 'BT_6LOWPAN' has the following conditionals: BT_LE && 6LOWPAN (value: "n") Dependency values are: BT_LE [y] 6LOWPAN [n] Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17npm: npm.bbclass now adds nodejs to RDEPENDSHenry Bruce
We expect that any package that uses the npm bbclass will have a runtime dependency on node.js Signed-off-by: Henry Bruce <henry.bruce@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: drop duplicated error messagePaul Eggleton
The preparation script itself prints out an error on failure, and we aren't redirecting its output anymore, so we no longer need to print out a message here when it fails. At the same time, make the message printed out by the script a little clearer - we're just writing the log out to the file, we shouldn't give the user an expectation that there will be extra details in there (other than the output produced by oe-init-build-env there won't be). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: add some pre-install checksPaul Eggleton
Check a number of things as early as possible in the eSDK installer script so that the user gets an error up front rather than waiting for the build system to be extracted and then have the error produced: * Check for missing utilities specified in SANITY_REQUIRED_UTILITIES (along with gcc and g++), taking into account that some of these are satisfied by buildtools which ships as part of the SDK. We use the newly added capability to list an SDK's contents to allow us to see exactly which binaries are inside the buildtools installer. * Check that Python is available (since the buildtools installer's relocate script is written in Python). * Check that locale value set by the script is actually available * Check that the install path is not on NFS This does duplicate some of the checks in sanity.bbclass but it's difficult to avoid that given that here they have to be written in shell and there they are written in Python, as well as the fact that we only need to run some of the checks here and not all (i.e. the ones that relate to the host system or install path, and not those that check the configuration or metadata). Given those issues and the fact that the amount of code is fairly small I elected to just re-implement the checks here. Fixes [YOCTO #8657]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: properly determine buildtools filenamePaul Eggleton
Determine the name of the current buildtools installer ahead of time, set it in a variable and use that variable rather than the wildcarded version everywhere, since it's much tidier. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: properly handle buildtools install failurePaul Eggleton
If the buildtools installation failed, we were using a subshell instead of a compound command and thus the subshell exited but the script continued on, which is really not what we want to happen. Additionally log the buildtools installer output to a file and cat it if it fails so that you can actually see what went wrong, as well as amending the environment setup script to print a warning as we do when the preparation fails. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: sstate filtering fixesPaul Eggleton
A couple of fixes for the recent sstate filtering implemented in OE-Core revision 4b7b48fcb9b39fccf8222650c2608325df2a4507: * We shouldn't be deleting the downloads directory here, since it contains the uninative tarball that we will need * TMPDIR might not be named "tmp" - in OE-Core the default is tmp-glibc so use the actual name of TMPDIR here instead. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: handle lack of uninative when filtering sstatePaul Eggleton
If the build in which the eSDK is being built isn't using uninative, this will have an effect on NATIVELSBSTRING, which will mean that the eSDK installer won't be able to find any of the native sstate packages. To keep things simple, under this scenario just disable uninative temporarily while we run the SDK installer to help us check the presence of the sstate artifacts we need. Ideally I'd rather not have things like this that are artificial in this verification step, but on the other hand this was the least ugly way to solve the problem. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17classes/populate_sdk_ext: ensure eSDK can build without uninative enabledPaul Eggleton
We were relying on uninative being enabled in the build in which the eSDK was being produced, which is not the case for example for OE-Core's default configuration. Move the code that copies the uninative tarball and writes the checksum to copy_buildsystem so that it happens early enough for that part of the configuration to be set up when we do the filtering (which requires running bitbake). Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17ccache.bbclass: don't remove CCACHE_DIR as part of do_cleanAndre McCurdy
Removing the ccache directory as part of do_clean is unnecessarily conservative and defeats many of the benefits of ccache. The original justification for this behaviour was to avoid confusion in the corner case that the ccache directory becomes corrupted. However the standard approach for dealing with such highly unlikely corner cases (ie manually removing tmp) would also recover from corruption of the ccache directories, without the negative impact of defeating ccache during normal development. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17sanity.bbclass: Only verify /bin/sh link if it's a linkOlof Johansson
If /bin/sh is a regular file (and not a symlink), we assume it's a reasonable shell and allow it. Signed-off-by: Olof Johansson <olof.johansson@axis.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17cross-canadian.bbclass: Add BASECANADIANEXTRAOS to specify main extraosMark Hatle
By default the system will expand the extra os entries for uclibc and musl even if they are not enabled in the build. There was no way to prevent this behavior while still getting the expansion for things like x32 or spe. The change adds a new setting which a distribution creator can override easily, setting the base set of canadianextraos components. The other expansions are then based on this setting. Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-17report-error: Fix tracebacksRichard Purdie
Currently the code gives tracebacks if there are no recipes to be built in a BuildStarted event. Parse the list into a string rather than just taking the first item. There is nothing special about the first time. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-11Allow for simultaneous do_rootfs tasks with rpmStephano Cetola
Give each rootfs its own RPM channel to use. This puts the RPM metadata in a private subdirectory of $WORKDIR, rather than living in DEPLOY_DIR where other tasks may race with it. This allows us to reduce the time that the rpm.lock is held to only the time needed to hardlink the RPMs, allowing the majority of the rootfs operation to run in parallel. Also, this fixes the smart tests by generating an index for all packages at the time of the test, rather than using the one provided by the rootfs process. Original credit for the enhancement should go to Steven Walter stevenrwalter@gmail.com. Signed-off-by: Stephano Cetola <stephano.cetola@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-10uboot-sign: do_concat_dtb(): cd to $BGeorge McCollister
Prior to running oe_runmake make sure $B is the cwd. This is required due to bitbake commit 67a7b8b021badc17d8fdf447c250e79d291e75f7 "build: don't use $B as the default cwd for functions". Without this change, do_concat_dtb fails with: | ERROR: oe_runmake failed | make: *** No targets specified and no makefile found. Stop. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10uboot-sign: Handle .rom signing the same as .imgGeorge McCollister
Handle u-boot.rom signing (U-Boot as x86 BIOS replacement) the same way that u-boot.img signing is handled. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10kernel-fitimage: Add x86 supportGeorge McCollister
For x86, bzImage must be built instead of zImage. Include setup.bin (which is required to boot the kernel) in the fitimage and always use a load/boot address of 0x00090000. For details see: http://git.denx.de/?p=u-boot.git;a=blob;f=doc/uImage.FIT/x86-fit-boot.txt Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10kernel-fitimage: add initramfs supportGeorge McCollister
If INITRAMFS_IMAGE is set, build an additional fitImage containing the initramfs. Copy the additional fitImage and the source (*.its) file, used to create it to DEPLOYDIR. The fitImage containing the initramfs must be built before do_deploy and after do_install to avoid circular dependencies. UBOOT_RD_LOADADDRESS - Specifies the load address used by u-boot for the initramfs. UBOOT_RD_ENTRYPOINT - Specifies the entry point used by u-boot for the initramfs. Signed-off-by: George McCollister <george.mccollister@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10kernel-fitimage.bbclass: do_assemble_fitimage(): cd to $BAndrew Bradford
Prior to assembling the fitimage, ensure that $B is the cwd due to bitbake commit 67a7b8b021badc17d8fdf447c250e79d291e75f7 "build: don't use $B as the default cwd for functions". Without this change, do_assemble_fitimage() fails like: Log data follows: | DEBUG: Executing shell function do_assemble_fitimage | arm-ka-linux-gnueabi-objcopy: 'vmlinux': No such file | WARNING: exit code 1 from a shell command. | ERROR: Function failed: do_assemble_fitimage Signed-off-by: Andrew Bradford <andrew.bradford@kodakalaris.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10packagefeed-stability.bbclass: fix multilib + rpmRobert Yang
* Fix multilib + rpm since its multilib package name is special. * Update SSTATE_DUPWHITELIST to avoid shared location conflicted error. * Fix message when "not copying", now the messages are: Copying packages for recipe <foo> Not copying packages for recipe <foo> Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10package: correct subprocess.Popen.communicate() return valuesVladimir Zapolskiy
This is a non-functional change, which intends to correct element names of a tuple returned by Popen.communicate(). Both in python2 and python3 subprocess.Popen.communicate() method returns a tuple (stdoutdata, stderrdata), thus old assignments and collateral comments are incorrect from human's point of view, however formally there is no error in the code. The change is desired to have to avoid copy-paste errors in future. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10chrpath: correct subprocess.Popen.communicate() return valuesVladimir Zapolskiy
This is a non-functional change, which intends to correct element names of a tuple returned by Popen.communicate(). Both in python2 and python3 subprocess.Popen.communicate() method returns a tuple (stdoutdata, stderrdata), thus old assignments and collateral comments are incorrect from human's point of view, however formally there is no error in the code. The change is desired to have to avoid copy-paste errors in future. Signed-off-by: Vladimir Zapolskiy <vz@mleia.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10license: improve handling of license files with identical basenamesMarkus Lehtonen
Previously, find_license_files() in license.bbclass just blindly assumed that all different licenses specified in LIC_FILES_CHKSUM have unique filenames. As a consequence, only the last one of these similarly named license files was copied and the rest were "lost". This patch changes the behavior so that all license files get copied. However, if multiple identically named files are found, they are renamed to <file>.0, <file>.1 etc. The patch also changes the handling of NO_GENERIC_LICENSE slightly. Previously, only basenames of NO_GENERIC_LICENSE and LIC_FILES_CHKSUM were compared when searching for the correct license file. After this patch NO_GENERIC_LICENSE must have the full path, matching what is specified in LIC_FILES_CHKSUM. This is required in order to be able to handle identical filenames (basenames) consistently. For example, if you have: LICENSE = "my-custom-license" LIC_FILES_CHKSUM = "file://src/LICENCE;md5=d41d8cd98f00b204e9800998ecf8427e" you must specify: NO_GENERIC_LICENSE[my-custom-license] = "src/LICENCE" [YOCTO #9663] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
2016-08-10buildhistory: output package variables in a repeatable orderRoss Burton
This code was outputting variables by iterating a dictionary. In Py2 this always results in the same iteration order but with Py3 the order changes every execution, which resulted in buildhistory having to store diffs where fields were simply re-ordered. Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10package.bbclass: warn about files under symlinked directoriesMarkus Lehtonen
[YOCTO #9827] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10package.bbclass: better handling of middle-path dir symlinksMarkus Lehtonen
For example in a directory structure like this . ├── symlink -> foo/bar └── foo └── bar └── file 'file' could be referenced by specifying e.g. 'foo/bar/file' or 'symlink/file'. In cases like this populate_packages() might crash if the file was referenced (in FILES) via the symlinked directory. The outcome depends on how the user defined FILES_pn. This patch should make the function behave more consistently. It looks for files which are referenced via symlinked directories and handles them separately, failing if their parent directory is a non-existent path. For example, defining FILES_{PN} = "symlink/file" causes a build failure because symlinks target 'foo/bar' is not included at all. [YOCTO #9827] Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10package.bbclass: remove unneeded chmod() and chown()Robert Yang
* The mode and owner info are saved in inode, hardlink won't change them, so remove unneeded chmod() and chown(). * This can avoid the problem that when do_package re-run, the file's mode maybe different if it is 0444 (changed to 0644 when re-run), this is caused by pseudo adds 'w' on real file, and doesn't track linked source when hard link, Peter and Mark may fix pseudo, but the removed code is not needed, which can avoid the problem. * To reproduce the problem, for example, version.c from gzip's ${B}: 1) bitbake gzip 2) Edit rpm-native or package.bbclass to make do_package re-run. 3) bitbake gzip After the first build, build/version.c in gzip-dbg is 0444, but after the second build, it will be 0644, this because do_package does: $ ln ${B}/version.c gzip-dbg/version.c, $ chmod 0444 gzip-dbg/version.c (it runs chmod 0644 on the real filesystem) And in the second build, the gzip-dbg/version.c will be removed and created again, so that stat() can't get 0444 but 0644 since ${B}/version.c is not tracked by pseudo. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-08-10kernel.bbclass: add lzop dependencyTrevor Woerner
If the initramfs image is type lzo, then a native lzop is needed. Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>