summaryrefslogtreecommitdiffstats
path: root/meta/classes
Commit message (Collapse)AuthorAgeFilesLines
* insane.bbclass: Warn if ${COREBASE}/LICENSE is usedSaul Wold2017-09-021-1/+4
| | | | | | | | | | | | | | The top level LICENSE file is not actually a license, it refers other licenses that are used by Bitbake and Meta-data. Relying on this file could cause problems for recipes when this file changes, which it is about to. (From OE-Core rev: a1948ab38c9cb7f0b16cce9dadc03ae6e2fe44ad) (From OE-Core rev: dd75644db2f662f0d88529a068bbfb599c9790a9) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_deb.bbclass: Handle colons in dependenciesPeter Kjellerstedt2017-09-021-4/+3
| | | | | | | | | | | | Perl dependencies may look as "Perl(Foo::Bar)", but dpkg does not support the non-alphanumeric characters. There was already special handling present for turning '(' and ')' into '__'. This change does the same for ':'. (From OE-Core rev: a34e397095a9c2f8d0af1168ceab295af659242d) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package: Change PACKAGE_BBCLASS_VERSIONRichard Purdie2017-09-021-1/+1
| | | | | | | | | The silent rpmdeps failures fixed in a preceeding commit mean we need to rerun all packaging. (From OE-Core rev: 77abe012c496a85f56191abc769a7da07e9f8c0e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Fix a logic error which caused dependency removalRichard Purdie2017-09-021-5/+6
| | | | | | | | | | | | | There was a logic error in the dependency cleanup code which meant it would remove dependencies which other tasks still depended upon. Fix the path names so the comparisions work as intended. This fixes dependencies accidentally disappearing from sysroots under certain reconfiguration situations. (From OE-Core rev: 1634fe5148b3501f2c1b75cf7fb704a2ef60424e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* classes/license: drop erroneous sha256 parameter in LIC_FILES_CHKSUMPaul Eggleton2017-08-311-1/+1
| | | | | | | | | | | | | | | | | | | In OE-Core commit a48fea275b08ff3d3dfc9a928aeb04768db35873, a check on the value of a "sha256" parameter was added, however there was no mention of this in the commit message and no corresponding code to actually verify the checksum as sha256 was added along with it either, so there's no point in getting the value. Additionally it was assuming that a sha256 value would be present without checking first, with the result that if you leave out the md5 value in a recipe intentionally in order to get it to tell you the correct value on the next build, you got a traceback instead of the appropriate error containing the information. Drop this entirely - if we want to implement this we need to do it properly. (From OE-Core rev: e9eaa7d15fe7ab643ab19556dab84051f8f1974e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image_types.bbclass: improve reproducibility of .gz filesJuro Bystricky2017-08-311-1/+1
| | | | | | | | | | When compressing with "gzip", do not save the time stamp in the compressed file metadata. (From OE-Core rev: a88c16c2dc5dd7e2fbf7ca908a8b48da7be8b34c) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemuboot.bbclass: create deterministic qemuboot.conf fileJuro Bystricky2017-08-311-1/+1
| | | | | | | | | | | | The lines in qemuboot.conf are in random order. This patch fixes this by printing the lines in sorted order. This makes it easier to compare two different builds for any differences. (From OE-Core rev: 0868edace0750862168abc8d504891646afc8c76) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* (PRE)MIRRORS: fix pattern for npm:// without slashOlaf Mandel2017-08-302-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | For URIs with the npm:// transport but with no other slash in it, the common MIRRORS and PREMIRRORS pattern of npm://.*/.* fails to match. Make the last slash in the pattern optional in the mirros.bbclass and own-mirrors.bbclass classes. Many URIs with the npm:// transport have no slash after the host part: npm://registry.npmjs.org;name=foo;version=0.1.2 This means that MIRRORS and PREMIRRORS containing entries like the first one will not match these URIs: npm://.*/.* # fails to match npm://.*/?.* # matches this and URIs with path components For normal regular expressions, a pattern like 'npm://.*(/.*)?' would probably be preferred, but that won't work here: the pattern gets split into the substrings 'npm', '.*(' and '/.*)?', which are not valid regular expressions individually. (From OE-Core rev: 0d1e2b4507af28fc451b8fa94130a39ac342637d) Signed-off-by: Olaf Mandel <o.mandel@menlosystems.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gettext.bbclass: do not add virtual/gettext to DEPENDSAlexander Kanavin2017-08-302-5/+3
| | | | | | | | | | | | | | | | | gettext has a notoriously slow configuration step, and so in my testing this greatly speeds up building core-image-minimal: from 21m36s to 19m2s (empty sstate and tmp, but pre-populated downloads). I have also built world, and core-image-sato to make sure it doesn't break or modify the build, and there is no difference whatsoever in packages and images content. Target gettext seems not to be used for anything. Also fix up insane.bbclass to remove the corresponding QA check. (From OE-Core rev: 1a7b843d575b290917d1e379c2ba106460988230) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: add qa check for uppercase recipe nameYeoh Ee Peng2017-08-301-2/+7
| | | | | | | | | | | | | | | | | Since we disabled uppercase characters in overrides a few releases ago, uppercase characters in recipe names (and for that matter, distro and machine names) cannot be supported due to their reliance upon overrides including the name. QA check will produce an warning message when it verify that recipe name is uppercase. [YOCTO# 11592] (From OE-Core rev: 4713f8b2c4f2c74239d284adcf1e59e61aa66576) Signed-off-by: Yeoh Ee Peng <ee.peng.yeoh@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Ensure dependencies are removed before being addedRichard Purdie2017-08-271-38/+39
| | | | | | | | | | | | | | | Currently items are added to the sysroot, the obsolete items are removed. If a change such as pkgconfig -> pkgconf is made, this leads to conflicts of overlapping files in the sysroot. In order to better support this, handle removing items before adding them. This requires some minor refactoring to construct the installed list before the main function loop, otherwise there are no changes in this patch other than reordering the operations. (From OE-Core rev: add4f107c151d32d9ea914bb0b93c3d3c17c776c) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: Avoid sysroot removal racesRichard Purdie2017-08-271-5/+20
| | | | | | | | | | | | | Currently a task could remove a dependency needed by another task leading to build failures, often due to missing dependencies (e.g. dynamic libraries not being found). This was often seen for all-arch recipes in package_write_rpm. When removing a dependency, first check that no other task active for the recipe has that same dependency. (From OE-Core rev: ff3617cc2cd5618f48a25aa4e3b2014430fcbe23) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_ext: Add BB_SERVER_TIMEOUT to SDK_LOCAL_CONF_BLACKLISTRichard Purdie2017-08-241-0/+1
| | | | | | | | | | | | Whilst this should work we see failures in testsdkext at the moment when this is set. Add this to the blacklist for now until we can fix these issues meaning we can at least test BB_SERVER_TIMEOUT in other scenarios. Bug 119733 has been opened to track this. (From OE-Core rev: 88cb174680cd37b5afb2b79e8248979895c35312) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: relax BSP definition testBruce Ashfield2017-08-241-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | commit 44aea7b873 [kernel-yocto: ensure that only valid BSPs are built] introduced a new check to ensure that a valid BSP definition was found, rather than building something that 'closely' matched the current MACHINE. This check breaks valid configurations which do not have a bsp definition but are otherwise completely configured machines. To allow both elements to co-exist (and not add warnings or errors to otherwise valid builds), we first check to see if an empty bsp definition was found, but then check to see if a defconfig was provided. If a defconfig has been provided, that is a sign that the board configuration is complete and we should continue the build without otherwise bothering the user. Tested on meta-raspberrypi and linux-yocto* (From OE-Core rev: 156cf9e25f875a50f907e570d9b62cbc2c051133) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: fix typo in error messageLuca Ceresoli2017-08-241-1/+1
| | | | | | | (From OE-Core rev: 92b4e043e9e2125105c697be2d0f75b3f01f91b1) Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory.bbclass: add ptest2.4_M3Robert Yang2017-08-231-0/+30
| | | | | | | | | | | | | | The ptest log will be saved to buildhistory/ptest, we can easily get the regression result between builds by: $ git show HEAD ptest/pass.fail.skip.* [YOCTO #11547] (From OE-Core rev: dcb6cd19fb8c639cb844d116fb83827267f37421) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* testimage.bbclass: update commentsRobert Yang2017-08-231-2/+2
| | | | | | | | | | | | | It's very important to add IMAGE_CLASSES += "testimage" in local.conf firstly, otherwise the var like TEST_LOG_DIR (defined in testimage.bbclass) will not be in testdata.json. [YOCTO #11547] (From OE-Core rev: 5663ed989f0af5b1c61c74288ec421cbca2261e7) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* buildhistory.bbclass: print message when no commitRobert Yang2017-08-231-0/+2
| | | | | | | | | | | This makes the user easier to know how to make commit in buildhistory. [YOCTO #11547] (From OE-Core rev: 164a0bd847f02ca65dcd53ddc789690060274191) Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* staging: add missing import errno to staging_populate_sysroot_dirMarko, Peter2017-08-231-0/+1
| | | | | | | | | | Fixes error "Exception: NameError: name 'errno' is not defined" during build-sysroots.bb:do_build_target_sysroot (From OE-Core rev: b1e482ae20b9c714f4089d4da6470d041242e441) Signed-off-by: Marko, Peter <peter.marko@siemens.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: external toolchain fixJuro Bystricky2017-08-231-5/+2
| | | | | | | | | | Refactor get_cc_option so it is simpler and also does not fail when using external toolchain. (From OE-Core rev: d4564ee59df907d1e01a3610ac88a35f9a78c1ce) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-yocto: ensure that only valid BSPs are builtBruce Ashfield2017-08-231-0/+3
| | | | | | | | | | | | | | | | | | | | | There was a bug in the search routines responsible for locating BSP definitions which returned a valid match if only the ktype matched. This meant that someone looking for "qemux86foo" (which is an invalid definition) would potentially end up building "qemuarm" and be none the wiser (until it didn't boot). With this fix to the tools search routine, and improved return code testing, we will now stop the build and report and error to the user. [YOCTO: #11878] (From OE-Core rev: 44aea7b87307795fe4e089c51d45afccaa2f6525) Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel-module-split: rrecommend kernel-image instead of rdependMartin Hundebøll2017-08-231-1/+6
| | | | | | | | | | | | | | | | Hard depending on the kernel makes it impossible to install kernel modules without getting the kernel image installed too. This is inconvenient in e.g. initramdisks, where the kernel is loaded from outside the initramdisk. Making the kernel modules rrecommend kernel-image-<version> instead of rdepending on it, makes it possible to install kernel modules without the kernel image by setting "kernel-image" in BAD_RECOMMENDATIONS. (From OE-Core rev: 5dd7ddb66a6846d9bb59dc7833e8318992d0e645) Signed-off-by: Martin Hundebøll <mnhu@prevas.dk> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* goarch: Disable build for muslx32sweeaun2017-08-181-0/+1
| | | | | | | | | Disable build for muslx32. (From OE-Core rev: 7f6e47b0d8aec9cb22db50ccb40ebb01677f01ea) Signed-off-by: sweeaun <swee.aun.khor@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands.bbclass: Filter out dangling symlinks in ↵Khem Raj2017-08-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | ssh_allow_empty_password() In images built with pam in DISTRO_FEATURES, we end up with dangling symlinks if su is not packaged into image $ ls /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/su-l -l lrwxrwxrwx 1 kraj users 2 Aug 9 07:56 /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/su-l -> su This causes image do_rootfs to fail | sed: can't read /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/rootfs/etc/pam.d/s u-l: No such file or directory | WARNING: /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/core-image-minimal/1.0-r0/temp/run.ssh_allow_empty_ password.19238:1 exit 2 from 'sed -i 's/nullok_secure/nullok/' /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi /core-image-minimal/1.0-r0/rootfs/etc/pam.d/*' Therefore we need to filter out dangling symlinks before sed'ing things out (From OE-Core rev: b92105e5a085c8cd3c650579644922ed97163e73) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rootfs-postcommands.bbclass: Prevent linking testdata to itselfMike Looijmans2017-08-181-3/+4
| | | | | | | | | | | | | testdata and testdata_link may point to the same file, in particular when IMAGE_LINK_NAME and IMAGE_NAME are equal. Check if this is the case before creating a symlink that points to itself and makes the next build fail. (From OE-Core rev: b516394f9e7858062aa7b042aa4a1bdef9d3a941) Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* qemuboot.bbclass: Prevent creating a link loopMike Looijmans2017-08-181-3/+4
| | | | | | | | | | | | When IMAGE_NAME and IMAGE_LINK_NAME are equal, do_write_qemuboot_conf will create a symlink that links to itself. Check if this is the case before creating the link. (From OE-Core rev: f46652e77f467861dc68c3a8e54f27d08659222d) Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* report-error: provide distro identifier string in case of uninative buildLeonardo Sandoval2017-08-181-1/+8
| | | | | | | | | | | | | Besides providing the NATIVELSBSTRING, include distro info when creating the (json) error report. This information provides better info than the standard 'universal*' string for uninative builds. [YOCTO #11824] (From OE-Core rev: fdfbfc954a3e0ad79dc2bed9828f9f5dc40d506f) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sign_rpm: Allow pkg signing by chunks through RPM_GPG_SIGN_CHUNKLeonardo Sandoval2017-08-181-1/+6
| | | | | | | | | | | | | Commit d58b1d196 moved from chunk to serial signing, but neither of both approaches allowed the user to select the chunks size. This patch allows the user to select a chunk size through RPM_GPG_SIGN_CHUNK defaulting to BB_NUMBER_THREADS, considered a good default. Indirectly, this change reduces the number of processes spawn to number-of-packages/RPM_GPG_SIGN_CHUNK. (From OE-Core rev: f7f78e73f1cd15f4233a231364b14438af758628) Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* packagefeed-stability.bbclass: change another bb.plain to bb.noteMing Liu2017-08-181-1/+1
| | | | | | | | | | | | | In commit 255caaad: [ packagefeed-stability.bbclass: change a bb.plain to bb.note ] I changed a bb.plain to bb.note to get a cleaner console, but there is still one more bb.plain left which I forgot to change. (From OE-Core rev: ccb96849e010883cb1cb4d384f017d05eb6bbcee) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* cross-canadian.bbclass: add ilp32 supportVishal Bhoj2017-08-181-1/+1
| | | | | | | | | Need to add ilp32 to known list of abi variants (From OE-Core rev: 6c5e50d26cbb9172d7264e7a8fed3edf0c0e8414) Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: support persistent /var/logChen Qi2017-08-181-1/+1
| | | | | | | | | | | | | | | Add a new file, fs-perms-persistent-log.txt, which treats /var/log as a directory instead of a link. Modify package.bbclass to use this file if VOLATILE_LOG_DIR is set to boolean false value. [YOCTO #6132] (From OE-Core rev: 6b22e247bf91f112401cad822cd7fe0b5621ffe0) Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package.bbclass: Restore functionality to detect RPM dependenciesPeter Kjellerstedt2017-08-181-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the transition to dnf and rpm4, the functionality to automatically make RPM determine dependencies was lost. Before the transition, an OE specific tool called rpmdeps-oecore had been added to the rpm suit. It was based on the rpmdeps tool that is part of rpm. For each file specified on its command line, it would output the provides and requires that RPM could determine. During the transition to rpm4, rpmdeps-oecore was replaced with the standard rpmdeps. However, what no one noticed was that unless rpmdeps is given options, e.g., -P or -R, to tell it what it should output, it will not output anything. Thus, it would do all the work to determine the requirements, but would keep silent about it. And since no output from rpmdeps is expected unless there are requirements, there were no warnings indicating that everything was not working as expected. Porting the old rpmdeps-oecore to work with rpm4 is not really possible since it relied on being able to access internals of RPM that are no longer available. However, it turned out that rpmdeps had a debug option, --rpmfcdebug, that would output exactly the information that we need, albeit in a different format and to stderr. To make this usable, rpmdeps has now received a new option, --alldeps, which sends the information we need to stdout. (From OE-Core rev: 958501b3d9201aaabb81ec644c6049e0c9b737e7) (From OE-Core rev: bf017930036f19b3d6df8e5b50d9979ee7045c5c) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: drop initramfs bundle related codeMing Liu2017-08-171-13/+0
| | | | | | | | | | | | | | | | | | | The original purpose of this code snippet was to repackage initramfs bundled kernel images before do_image_complete, to be able to be included by rootfs, but it's not going to achieve that since the initramfs bundled kernel images are not even installed to ${D}/boot after commit a49569e3a7534779bbe3f01a0647fd076c95798d: [ kernel.bbclass: do not copy bundled initramfs to /boot ] So there is not a initramfs bundled kernel package at all, we should drop the code, because it is leading kernel do_initramfs_bundle unnecessarily rerun and it's very time consuming and hence is impacting the performance a lot. (From OE-Core rev: eca501aeb4f2cc9255fabab14c68f6910367aaf9) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* package_rpm.bbclass: Filter out unwanted file deps for nativesdk packagesPeter Kjellerstedt2017-08-171-2/+23
| | | | | | | | | | | | | Filter out any file dependencies on absolute paths and any dependencies on Perl modules for nativesdk packages. It is assumed that they will be provided by the native host if needed, and they mess up the dependency handling if they are present. (From OE-Core rev: ce55e6c6d8b654b5fb21dec8180b471bfd33601a) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* sign_package_feed.bbclass: install signing key into rootfsMarkus Lehtonen2017-08-161-0/+3
| | | | | | | | | | | If package-management is enabled. [YOCTO #11209] (From OE-Core rev: 4f89a5629f876a833c0178d1ec687448d3ed8e71) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* packagefeed-stability.bbclass: change a bb.plain to bb.noteMing Liu2017-08-161-1/+1
| | | | | | | | | | | | I could see dozens of "Copying packages for recipe..." messages on the console during a image build, this is sort of annoying. I would like them to be dumped into the task log instead, so I can get a cleaner console and would not miss real important messages. (From OE-Core rev: 255caaad3574afec6ff5909c770eaee3f74a8155) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: support binary reproducibilityJuro Bystricky2017-08-161-1/+15
| | | | | | | | | | | | | | | | Added a new task "reproducible_final_image_task". If binary reproducibility is desired ($BUILD_REPRODUCIBLE_BINARIES" = "1"), then recursivley modify mtimes of all files to a reproducible vale. The value is obtained via REPRODUCIBLE_TIMESTAMP_ROOTFS. This task is executed as the very last step in image creation, once all the files in the image have been finalized. [YOCTO#11176] (From OE-Core rev: df8df5f907736c3e5b7f15ea11898a1d49726ca5) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* kernel.bbclass: improve reproducibilityJuro Bystricky2017-08-161-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Several tweaks to improve reproducibility: 1. If BUILD_REPRODUCIBLE_BINARIES == 1, set KBUILD_BUILD_TIMESTAMP to a reproducible value. This is either a non-zero SOURCE_DATE_EPOCH, or the value obtained from top entry of GIT repo, or (if there is no GIT repo) fallback to REPRODUCIBLE_TIMESTAMP_ROOTFS as the last resort. Also export KCONFIG_NOTIMESTAMP=1. 2. When compressing vmlinux.gz, use gzip "-n" option 3. Kernel and kernel modules contain hard coded paths referencing the host build system. This is usually because the source code contains __FILE__ at some place. This prevents binary reproducibility. However, some compilers allow remapping of the __FILE__ value. If we detect the compiler is capable of doing this, we replace the source path $(S) part of __FILE__ by a string "/kernel-source". For example: ​/data/master/build/tmp/work-shared/qemux86/kernel-source/drivers/media/v4l2-core/videobuf2-core.​c will be replaced by a reproducible value: /kernel-source/drivers/media/v4l2-core/videobuf2-core.c. (From OE-Core rev: 012a70da7ae0617740cd0cf807d01c3cd912c823) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-prelink.bbclass: support binary reproducibilityJuro Bystricky2017-08-161-1/+11
| | | | | | | | | | | | | | | Conditionally support binary reproducibility in built images. If BUILD_REPRODUCIBLE_BINARIES = 1 then: 1. Do not randomize library addresses 2. Set/export PRELINK_TIMESTAMP to a reproducible value. If REPRODUCIBLE_TIMESTAMP_ROOTFS is specified, then the value will be used. Otherwise the timestamp will be derived from the top git commit. (From OE-Core rev: 40ce3db222f8557a01d041f8115d531cc90a54e8) Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* externalsrc: Handle .git not being a directoryJoshua Watt2017-08-161-3/+11
| | | | | | | | | | | | Use git rev-parse to determine the location of the .git directory, in case it is not an immediate child of EXTERNALSRC (e.g. when using submodules). In the event git can't resolve the .git directory, fall back to the non-git method for hashing. (From OE-Core rev: 95e1341b49f7184d280a03f64f131a4468a06867) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image.bbclass: delete DATE variable tooStefan Agner2017-08-161-1/+2
| | | | | | | | | | | | | | | | | | | | When creating a custom image which uses the DATE variable the basehash seems to change every day and lead to errors such as: ERROR: console-tdx-image-2.7.6-r0 do_image_customimg: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:set_image_size(d) ... Add DATE to the variables which should not get expanded early and to the vardepsexclude list for the image task. (From OE-Core rev: 4af13a4855c74cea9cf6c168fd73165d7094bf93) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* rm_work: fix build break for do_image_completeMartin Jansa2017-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * since following commit: commit 2ff9d40dc88d43567472218cf3d3faf414398c71 Author: Richard Purdie <richard.purdie@linuxfoundation.org> Date: Sun Jul 30 16:06:57 2017 +0100 image/rm_work: Promote do_image_complete to be more sstate like all image rm_work tasks are failing with: mv: 1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3 and 1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3 are the same file it's because for $i 1.0-r0.do_image_complete.228730130ba309f85b73b72222ba11d7.raspberrypi3 there will be first SSTATETASK in $j do_deploy, so the sed call doesn't replace anything It might be different order of SSTATETASKS in my builds (it might work only when do_image_complete is the first one in the list), but here: SSTATETASKS="do_deploy do_image_complete do_image_qa do_package do_package_qa do_package_write_ipk do_packagedata do_populate_lic do_populate_sdk do_populate_sdk_ext do_populate_sysroot" (From OE-Core rev: 0c905d4e7fa8e5416945fa0d61ebc1d34409d1e6) Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* distrodata.bbclass: add UPSTREAM_VERSION_UNKNOWN and UPSTREAM_CHECK_UNRELIABLEAlexander Kanavin2017-08-161-34/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These are optional per-recipe variables with the following meaning: UPSTREAM_VERSION_UNKNOWN - set if the upstream version check fails reliably, e.g. absent git tags, or weird version format used on our or on upstream side. If this variable is not set and version check fails, or if it is set and the version check succeeds, then the checkpkg selftest for the recipe will fail. UPSTREAM_CHECK_UNRELIABLE - set if the upstream check cannot be reliably performed due to transient network failures, or server behaving weirdly. This one should be used sparingly, as it completely excludes a recipe from upstream checking, and thus we don't get automatically notified about new upstream releases. Also the upstream status string in the checkpkg csv output is clarified with the following possible values: MATCH - recipe is providing the latest upstream version UPDATE - there is a new version released by upstream, recipe should be updated CHECK_IS_UNRELIABLE - an upstream check was skipped as requested by recipe via UPSTREAM_CHECK_UNRELIABLE UNKNOWN - upstream version check was performed, but the upstream verison could not be determined. The recipe acknowledges this via UPSTREAM_VERSION_UNKNOWN setting. UNKNWON_BROKEN - same as previous, but the recipe does not include the acknowledgement and should be fixed. KNOWN_BROKEN - upstream check worked, but recipe claims it shouldn't; to fix this remove UPSTREAM_VERSION_UNKNOWN from recipe. [YOCTO #11896] (From OE-Core rev: 2a44ac1add0338cd7ff012cda96bf113c9a01bd6) Signed-off-by: Alexander Kanavin <alexander.kanavin@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* populate_sdk_base.bbclass: add handling package exclusions to do_populate_sdkYi Zhao2017-08-161-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is an error for populate_sdk when we exclude package by using PACKAGE_EXCLUDE. Reproduced steps: echo "PACKAGE_EXCLUDE = \"psplash\"" >> conf/local.conf bitbake core-image-sato -c populate_sdk Error log: ERROR: core-image-sato-1.0-r0 do_populate_sdk: Could not invoke dnf. Command '/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/recipe-sysroot-native/usr/bin/dnf -y -c /buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux/etc/dnf/dnf.conf --setopt=reposdir=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux/etc/yum.repos.d --repofrompath=oe-repo,/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/oe-rootfs-repo --installroot=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/sdk/image/opt/poky/2.3/sysroots/i586-poky-linux --setopt=logdir=/buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/temp -x psplash --nogpgcheck install run-postinsts dnf packagegroup-core-x11-base packagegroup-core-ssh-dropbear packagegroup-core-standalone-sdk-target packagegroup-base-extended packagegroup-core-x11-sato psplash packagegroup-core-boot rpm' returned 1: Unable to detect release version (use '--releasever' to specify release version) Added oe-repo repo from /buildarea1/poky/build/tmp/work/qemux86-poky-linux/core-image-sato/1.0-r0/oe-rootfs-repo Last metadata expiration check: 0:00:00 ago on Thu 10 Aug 2017 09:26:32 AM UTC. No package psplash available. Error: Unable to find a match Add handling package exclusions to do_populate_sdk. The code copies from do_rootfs in image.bbclass. (From OE-Core rev: 86db855da4ee000737281ef7cc893d56854b3952) Signed-off-by: Yi Zhao <yi.zhao@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* image-prelink: Disable for musl imagesRichard Purdie2017-08-131-1/+1
| | | | | | | | | | | | | | For some reason prelink was refusing to prelink musl images but now sometimes does modify the binaries. Since musl has no support for this, such images end up broken and unable to boot. To avoid this, be explicit and only apply prelinking for libc-glibc. [YOCTO #11913] (From OE-Core rev: 5a25ed1071f0d9b7d95edcc2b5b4545f960d5f95) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: remove last remnants of unsafe-references-in-binaries checkRoss Burton2017-08-131-9/+0
| | | | | | | | | | The test itself was removed but there were a few explicit checks and dependencies for it, so remove those too. (From OE-Core rev: 3a2feef644abff4feff371cc7175ac270f5fb671) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* insane: remove unsafe-references-in-scripts checkRoss Burton2017-08-131-65/+0
| | | | | | | | | | | | | | We've already removed unsafe-references-in-binaries (which was fundamentally broken) and nobody really cares about / and /usr being on different filesystems anymore (at least if they, they're keeping very quiet and not fixing the bugs). As this test was a minor detail in the scope of supporting separate / and /usr which we don't support, it can be removed. (From OE-Core rev: 5363a5e43462e22ed61e87923e00657b740f6823) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* gettext.bbclass: also search for files in target sysrootPatrick Ohly2017-08-091-0/+5
| | | | | | | | | | | | | | | | | fwupd contains polkit policy files that it translates using polkit.its and polkit.loc files that the next polkit release is going to install (see https://github.com/hughsie/fwupd/issues/107). In order to make that work with OE-core, the gettext tools must be told to look also for files in the recipe-sysroot. Otherwise it only uses the GETTEXTDATADIR set by the gettext-native tool wrappers, and that only points to the files provided by gettext-native itself. (From OE-Core rev: ebb706f9dafdbb7c4aa18e5595930bbc1a0497b1) 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>
* Revert "cml1.bbclass: wait until menuconfig terminal finishes"Leonardo Sandoval2017-08-091-21/+1
| | | | | | | | This reverts commit d2ebee7c3a0c8ab9a09ebad12a2fda51f8d10954. (From OE-Core rev: da7bc68c399bbcd1baf946931200eba72268b0b3) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
* meta: drop do_bootdirectdisk do_vmimg referencesMing Liu2017-08-034-11/+4
| | | | | | | | | | | | do_bootdirectdisk and do_vmimg had been dropped by commit 929ba563: [ image: Convert vmdk/vdi/qcow2 to strict CONVERSION_CMD types ] Also drop the references to them and image-vm. (From OE-Core rev: 609f7f4ecd17c8299b97d9face098e3cc44fa6eb) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>