Commit Graph

5997 Commits

Author SHA1 Message Date
Khem Raj
025343ed6e insane: Recognise BPF as a valid EM_MACHINE type
BPF Linux ELF objects are generated with kernel-selftests with
>= 4.18 kernel and when clang is enabled which packages BPF objects
into packages, therefore recongnise this as a valid ELF target

Add a selftest for BPF

Do not flag BPF objects in target, since they pretty much will be ok for
most of kernels architectures we care do support BPF

(From OE-Core rev: 3667a8ec016bae3f8026ef7b4c895546804f6368)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 17:38:07 +01:00
Kai Kang
1d5b01c956 target-sdk-provides-dummy: skip package_qa_multilib check
The rprovides of target-sdk-provides-dummy don't be updated with
multilib, so it fails package_qa_multilib check. Because
target-sdk-provides-dummy doesn't install any file to sysroot, it is
safe to skip package_qa_multilib check for target-sdk-provides-dummy.

Remove ${MLPREFIX}target-sdk-provides-dummy from TOOLCHAIN_TARGET_TASK
at same time in populate_sdk_base.bbclass.

(From OE-Core rev: 3197c086269a4b21fb807a9c552b56f23c5b86dc)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:28 +01:00
Kai Kang
d14fb25788 sstate.bbclass: update SSTATE_DUPWHITELIST
Update SSTATE_DUPWHITELIST in sstate.bbclass.

* remove ${DEPLOY_DIR_RPM}/noarch/ which is not overwritten any more
* add directories for package target-sdk-provides-dummy

(From OE-Core rev: 6d3ca476dbc2059f4b7fa3dfd73de6bbfed49198)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:28 +01:00
Kai Kang
d9ba0219b2 allarch: only enable allarch when multilib is not used
Some allarch packages rdepends non-allarch packages. when multilib is
used, it doesn't expand the dependency chain correctly, e.g.

core-image-sato -> ca-certificates(allarch) -> openssl

we expect dependency chain for lib32-core-image-sato:

lib32-core-image-sato -> ca-certificates(allarch) -> lib32-openssl

it should install lib32-openssl for ca-certificates but openssl is still
wrongly required.

Only enable allarch when multilib is not used to fix the issue.

(From OE-Core rev: a23c482cab4f874f4a6a6889716123569eb5ece9)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:28 +01:00
Leon Woestenberg
c2d00e2f83 kernel.bbclass: do not deploy fitImage; kernel-fitimage.bbclass does that.
kernel-fitimage.bbclass replaces an occurance of "fitImage" in
KERNEL_IMAGETYPE_FOR_MAKE by an image type that is buildable for the
architecture (such as zImage). The kernel-fitimage.bbclass packs that
image as sub-image in a flattened image tree image (fitImage) and
deploys this fitImage along with the image tree source file (.its).

kernel-fitimage.bbclass does not alter KERNEL_IMAGETYPES, which thus
also contains "fitImage", which kernel.bbclass will also deploy
redundantly with different naming.

The result is a dual deployment with slightly different naming,
each with a set of symlinks.

The solution chosen is to have fitImage deployment be handled by
kernel-fitimage.bbclass, and have kernel.bbclass ignore fitImage
types during deployment.

(From OE-Core rev: 65cded55fa96b1ba72149a31689c081ac27af7f7)

Signed-off-by: Leon Woestenberg <leon@sidebranch.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:28 +01:00
Luca Ceresoli
bb05e37d57 devicetree.bbclass: don't pad DT overlays
By default the devicetree class adds padding to the generated .dtb
files, which can be needed by the bootloader. However it also pads
.dtbo files, which is not useful.

Don't apply padding to the overlay devicetrees.

To achieve this:

 * move "-p ${DT_PADDING_SIZE}" to a new variable, DTB_BFLAGS (B for
   "base")
 * add "-p 0" to DTC_OFLAGS to disable padding for overlays

Cc: Nathan Rossi <nathan@nathanrossi.com>
(From OE-Core rev: 678fe8c66b19f141f6869859cf365aec037e89d9)

Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:28 +01:00
Emmanuel Roullit
a8948584c1 testimage.bbclass: fix qemu_use_kvm handling
QEMU_USE_KVM can either be a boolean or a whitespace separated list
of kvm supported machines.
For the 'intel-corei7-64' machine, defined in meta-intel, kvm could not be
used as the 'x86' substring is not part of its machine name.

By changing the order of this 'or' statement and setting
the 'QEMU_USE_KVM' variable to 'intel-corei7-64', it is possible to run the
'testimage' task with kvm support successfully.

(From OE-Core rev: a22789253aa653dc50fb159b40910248c2f98dd4)

Signed-off-by: Emmanuel Roullit <emmanuel.roullit@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-13 07:42:27 +01:00
Richard Purdie
1aa224368f staging: Fix broken debug code
The code currently only prints a single depchain due to overwriting data
instead of appending. Fix this.

(From OE-Core rev: 48af19cdfa92aa9d336da50afe4ed3dde92daecc)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-10 12:13:06 +01:00
Richard Purdie
bd3e4bb373 staging: Ensure we handle glibc-locale do_stash_locale correctly
Occasionally we see warnings like:

WARNING: core-image-sato-1.0-r0 do_populate_sdk: Manifest /home/pokybuild/yocto-worker/nightly-qa-extras/build/build/tmp/sstate-control/manifest-allarch-nativesdk-linux-libc-headers.populate_sysroot not found in i686_linux allarch (variant '')?

which occur when do_populate_sdk is run in an otherwise empty TMPDIR.

It occurs because do_stash_locale is not recognised as a setscene task
and is removed from the taskgraph meaning the dependency chains fed
through setscene_depvalid don't match what was actually setscene'd.

That task is recipe specific and not in the global SSTATETASKS so we
hardcode the value for now to stop the build warnings. This is going to
need to be revisited for a more generic solution.

(From OE-Core rev: d8d5b624058920113f9d297f7f711d6d3249ae39)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-10 12:13:06 +01:00
Richard Purdie
7a76bb5304 populate_base_sdk: Stop running gcc --version all the time
Running 'gcc --version' for every image recipe is slow and increases parsing
time/resource usage for no good reason. Only compute the value in when we're
really running the task/function.

(From OE-Core rev: bf49316bb9913b7c89de64d6a194be31aa66e16b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-05 18:00:25 +01:00
Chen Qi
675d372205 autotools.bbclass: adjust indentation for consistency
All other functions in this class use TAB for indentation while
the do_compile function uses '4 spaces'. Adjust it for consistency.

(From OE-Core rev: c2829b74892633c554a5f8262d4cafbe0fa6c3a7)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-05 18:00:24 +01:00
Richard Purdie
25bac865de recipes: Update git.gnome.org addresses after upstream changes
git.gnome.org is no more. It has ceased to be. It's an ex-git.

Please see here:
https://about.gitlab.com/2018/05/31/welcome-gnome-to-gitlab/

Note that gitlab does not support git://, only https:// (and ssh).

[Commit message from Alexander Kanavin]

(From OE-Core rev: 8382cdc0888ca645a44aacaac1155afb8dcde979)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-04 11:03:56 +01:00
Chen Qi
352d1a4bfd package.bbclass: warn if perms conf file does not exist
It's possible that the perms conf file specified by FILESYSTEM_PERMS_TABLES
does not exist. Currently, this situation is silently ignored, which
is likely to lead to further do_rootfs failures.

So fix to output a warning, telling user that the specified file
in FILESYSTEM_PERMS_TABLES cannot be found.

(From OE-Core rev: e14b9f2a667889092251053933dc2f3c51f01ef0)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-04 11:03:55 +01:00
Khem Raj
4efc4517ef libc-package: Add risc-v specific options to cross-localedef invocation
It was otherwise being deferred until boot time

(From OE-Core rev: f8a4ce9b2d59a380d35305a2cd7f73b279bbd8f5)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-04 11:03:55 +01:00
Khem Raj
7a812523a7 distutils-common-base.bbclass: Define commonly used compiler variables
This is inspired from
https://github.com/python/cpython/blob/master/configure.ac

Helps cross compiling python C modules in some cases where they do
not respect normal CFLAGS

Errors like using gcc to link when compiler is clang is fixed

(From OE-Core rev: 0ab1b35172a41021f5e27c5d17d1e131ce5befd7)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-09-04 11:03:55 +01:00
Jens Rehsack
97885b2973 cpan.bbclass: make RPATH fix more general
Extract a general version of RPATH fix for libxml-parser-perl_2.44.bb
from
  292471701 libxml-parser-perl: fix "...contains bad RPATH"
into cpan.bbclass to catch most errors reported by Khem Raj via
  http://errors.yoctoproject.org/Errors/Build/66538/

Genrally, Perl 5 toolchain deals with cross-compile sysroots
as if a dependency is installed at an exostic place on a server.
This issue needs to be addressed wider into the community.

(From OE-Core rev: a5439ff9627d309f6980947f5ee573d85e672228)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Bruce Ashfield
c8bc6f29a7 kernel-yocto: restore BSP audit visibility
During the re-working of kernel fragments and status output cleanup the
visibility for BSP level errors was dropped/removed.

The audit phase can detect errors, redefinition and invalid
configuration fragments. We control the visibility of these reports via
the existing KCONF_BSP_AUDIT_LEVEL variable.

By default, errors and invalid configuration values will be displayed as
a warning. If redefinition values are to be shown the audit level must
be raised above the deafult value of '2'. We inhibit these by default,
since there are many valid reasons why a BSP will change a default /
base config .. and showing them offers no value to the BSP user.

(From OE-Core rev: 4933b686b0f75d6841630917a2d90832df41cac7)

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Joshua Watt
f13ff77f4d classes/kernel-yocto: Cleanup getstatusoutput usage
Replace usage of os.utils.getstatusoutput() with direct subprocess
calls. Pass a modified environment and working directory where necessary
to bypass the need to execute in a shell.

(From OE-Core rev: 21de5cc43cfedc703e5bc0515507a6dae36afb74)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Kai Kang
cd28f5fbf7 sstate.bbclass: make SSTATE_PRUNE_OBSOLETEWORKDIR could be overwritten
Define variable SSTATE_PRUNE_OBSOLETEWORKDIR with '?=' in sstate.bbclass,
then it could be overwritten by user configuration.

(From OE-Core rev: 22af59c9bfec31b31027ebd2a4da162f481aa6b5)

Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Hongxu Jia
b7fb4aee25 terminal.bbclass: use var-SHELL as the shebang of wrapper script
The devshell.bbclass set var-SHELL to var-DEVSHELL, and terminal.bbclass
initial var-SHELL with `bash'. Keep sync with it, use var-SHELL rather
than hardcoded `/bin/sh' as the shebang of wrapper script.

On Ubuntu host, default shell is dash (/bin/sh -> dash), even though
we assign var-SHELL with `/bin/bash', the wrapper script is still dashism.

(From OE-Core rev: 27e2ede65f1193e49f9483b08a55495d88740a65)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Hongxu Jia
c0abc412bc package.bbclass: only one hardlink of separated debug info file in each directory
While multiple hardlinks of binary located in different dirs,
there are also multiple hardlinks of separated debug info file
with the same binary name in same debug dirs. But in each dir,
only one debug file with original name works. Because all of
binary hardlinks have one `.gnu_debuglink' which is added in
`splitdebuginfo'. It caused gdb could not find debugging
symbols.

[Before the patch]
$ find .
./usr/bin/foo
./usr/bin/foo-hd1
./usr/bin/.debug
./usr/bin/.debug/foo
./usr/bin/.debug/foo-hd1
./usr/libexec/foo-hd2
./usr/libexec/.debug
./usr/libexec/.debug/foo-hd2

$ readelf --debug-dump usr/libexec/foo-hd2
Contents of the .gnu_debuglink section:
  Separate debug info file: foo

$ gdb usr/libexec/foo-hd2
Reading symbols from usr/libexec/foo-hd2...(no debugging symbols found)...done.
[Before the patch]

[Apply the patch]
$ find .
./usr/bin/foo
./usr/bin/foo-hd1
./usr/bin/.debug
./usr/bin/.debug/foo
./usr/libexec/foo-hd2
./usr/libexec/.debug
./usr/libexec/.debug/foo

$ gdb usr/libexec/foo-hd2
Reading symbols from usr/libexec/foo-hd2...Reading symbols from usr/libexec/.debug/foo...done.
[Apply the patch]

(From OE-Core rev: d4eaf42f7708f8d3a31a04d958bd7420dd7dd6b9)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-28 10:30:28 +01:00
Chen Qi
34ec08dc28 utils.bbclass: fix KeyError exception
The following statement was accidently removed. Add it back.

  values['ml'] = ['']

This patch fixes the following error.

  Exception: KeyError: 'ml'

(From OE-Core rev: 0791c4d39edbedaa493a9fc6aa6e7415f14980bb)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-24 07:53:14 +01:00
Robert Yang
9b0bc119b7 compress_doc.bbclass: Clean up getstatusoutput usage
Replace usage of oe.utils.getstatusoutput() with direct subprocess calls.

(From OE-Core rev: f1a1b31add242380490023c2ee7eec1b4fbcd85b)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 18:02:23 +01:00
Richard Purdie
00b360c75b utils: Fix patch merging error
The previous patch has duplicate split calls and one needs to be removed
to avoid failures

(From OE-Core rev: 02c8d048cbab38a48f698504d0f5e912d3d24a36)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 17:58:59 +01:00
Richard Purdie
99d40ac092 utils: Rely on get_multilib_datastore() to get the original datastore
get_multilib_datastore() should be able to handle the original datastore
correctly now so rely upon this rather than custom coding.

(From OE-Core rev: 2ae85af480066e252fca01f3005ecac2ff37a8d4)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 17:58:59 +01:00
Richard Purdie
516697bed6 linuxloader: Convert to python function
We could do with one decent general purpose python function to query the
path to the dynamic loader. Convert the shell code into python.

Also correct baremetal to return "None", not musl loaders.

(From OE-Core rev: 73fab4ede12d8ae31be72b5cb4ab29d7ef7dae17)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 17:58:59 +01:00
Rasmus Villemoes
9873b21e89 package.bbclass: use bb.utils.break_hardlinks helper
This does the same thing, but is more efficient in case st_nlinks
is (already) 1.

Depends on bitbake commit 7ae93cf40ab91965147055100432961436bce46c .

(From OE-Core rev: 38180b5c1044be13458fb927ad1babae61e4c51f)

Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 09:04:29 +01:00
Jens Rehsack
454443647a cpan.bbclass: adopt to recent EU::MM
The modern the time, the improvements in ExtUtils::MakeMaker.

Nowadays, .packlist and perllocal.pod aren't touched anymore when appropriate
flags set during configure stage. Controlling the flags globally avoids
dual-life recipes need share patching.

Further: remove prepending ${PERL_ARCHLIB} in PERL5LIB - it's wrong (search
order is site_lib, vendor_lib, core) - and ${PERL_ARCHLIB} contains core
libpath only ...

(From OE-Core rev: 2e61533e7c1b1cfd49dc771e907207f11a15c44f)

Signed-off-by: Jens Rehsack <sno@netbsd.org>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 07:50:00 +01:00
Yongxin Liu
4a95d573c3 sstate: add intel-microcode to SSTATE_DUPWHITELIST
intel-microcode multilib recipes can generate identical overlapping
files: microcode.cpio.

(From OE-Core rev: 4b27da3334aff7f9f03ae934bbab7e7af07df3f6)

Signed-off-by: Yongxin Liu <yongxin.liu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 07:50:00 +01:00
Joshua Watt
a24081dd28 classes/package: Clean up getstatusoutput
Replaces usage of the deprecated oe.utils.getstatusoutput() with Python
subprocess calls.

(From OE-Core rev: 7f9d2d16b8cdff9cbba2b3965c74d1c5b8ab1106)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-23 07:50:00 +01:00
Martin Jansa
2a72190ba7 kernel.bbclass: rename type variable to imageType
* to avoid confusion with "type" command in shell

(From OE-Core rev: 8d454ea754c96561257b1cc011fa638ceaa771db)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Martin Jansa
0fb0eea041 kernel-artifact-names.bbclass: Add 2 more variables to make it easier to change all names with one variable
* some people don't like the ${MACHINE} in the symlink, because now the DEPLOYDIR already
  contains ${MACHINE} subdirectory, add KERNEL_ARTIFACT_LINK_NAME variable to change it
  in one place without the need to list all variables for various artifacts

(From OE-Core rev: 416b58d84f1124212f114198d2fcb1f3a9bbd223)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Martin Jansa
b7d0d0b44f kernel-artifact-names.bbclass, kernel.bbclass: remove prefix and extension from MODULE_TARBALL_* variables
* for consistency with other artifacts variables, include only the version string, not the actual name or extension
* changing .tgz to something else in the MODULE_TARBALL_NAME variable only wouldn't make much sense
  because then kernel.bbclass still calls "tar -cvzf" to create it

(From OE-Core rev: 43bd7f39157da49f7fb0c2d6d9751059471c8d53)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Martin Jansa
f09947586c kernel*.bbclass: rename *_SYMLINK_NAME variables to *_LINK_NAME and *_BASE_NAME to *_NAME
* for consistency with IMAGE_NAME and IMAGE_LINK_NAME
  and to avoid confusion with IMAGE_BASENAME (which is the
  actual name of the artifact, e.g. PN while KERNEL_IMAGE_BASE_NAME
  was only the version suffix)

(From OE-Core rev: f952c8e08b4798aa0f8bf764cfd70bda0eae9b8b)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Martin Jansa
d0a8532abb kernel-artifact-names, kernel-fitimage: add KERNEL_FIT_BASE_NAME, KERNEL_FIT_SYMLINK_NAME variables
* use the same naming scheme for fitImage files like all other deployed artifacts
* remove unnecessary cd to DEPLOYDIR
* remove unnecessary cd to B

(From OE-Core rev: fd69f8b2d7dd950cee9e820ef91ea90521c95ace)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Martin Jansa
a65c1216d7 bitbake.conf, kernel-artifact-names.bbclass: introduce IMAGE_VERSION_SUFFIX instead of using DATETIME directly
* this makes it easier to use different version string than DATETIME, e.g. set from jenkins job
  while keeping the suffix consistent across all artifacts stored in DEPLOYDIR

(From OE-Core rev: 1245935b9bf32e0321d8ff12492983ba8506190a)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
André Draszik
8f16469e97 rootfs-postcommands: put image testdata under sstate control
The testdata.json is being written to DEPLOY_DIR_IMAGE directly,
thus bypassing sstate, which results in an ever growing list
of files.

Write them to IMGDEPLOYDIR instead, so as to benefit from the
automatic management via sstate.

(From OE-Core rev: 1f7399a5e5d12b7ca3faf399a70c1613d522c28d)

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-21 14:49:42 +01:00
Khem Raj
f98f7baa83 dos2unix.bbclass: Move to oe-core
- Import from meta-oe layer

- This is useful for many packages where CR-LF
  needs to be adjusted, many recipes depend on it
  e.g. meta-multimedia libebml and so on.

(From OE-Core rev: bd4a02d8d3cfb476a2da0f4616605c92604266c0)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-20 17:38:22 +01:00
Christopher Larson
762e6b7b45 populate_sdk_base.bbclass: inherit and use image-postinst-intercepts
(From OE-Core rev: fb83997ded3789c7447402a9fda03b1669cecae0)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
Christopher Larson
aa9d8e73bb image.bbclass: inherit and use image-postinst-intercepts
(From OE-Core rev: 73cccdb6942404961415e5939263686719b24061)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
Christopher Larson
bb3a1321cd image-postinst-intercepts.bbclass: add class
This class sets POSTINST_INTERCEPTS and POSTINST_INTERCEPTS_CHECKSUMS,
to allow us to pull intercepts from BBPATH. This is kept as a separate
class, as it's needed by both image construction and sdk construction,
the latter to support meta-toolchain & similar recipes.

(From OE-Core rev: 7a2044df4ae8d80cf25a6bfd9b71978ffefbfa33)

Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
Richard Purdie
59acf118fc sstate: Optimise SSTATE_EXCLUDEDEPS_SYSROOT handling
Using re.compile() is around six times faster than recompiling the regexp
each time so maintain a cache.

(From OE-Core rev: 41eb382737706e245f2b7104e313c8dfaa370945)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
André Draszik
6e362580a6 sstate: use SSTATE_EXCLUDEDEPS_SYSROOT for skipping base-passwd|shadow-sysroot recipes
Use the newly introduced SSTATE_EXCLUDEDEPS_SYSROOT for specifying
the base-passwd|shadow-sysroot recipes to be excluded from a recipe sysroot.

(From OE-Core rev: 68e502e9063a88532fe0154f152ba408f0091900)

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
André Draszik
e02176b5e6 sstate: use SSTATE_EXCLUDEDEPS_SYSROOT for skipping *-initial recipes
Use the newly introduced SSTATE_EXCLUDEDEPS_SYSROOT for specifying
the *-initial recipes to be excluded from a recipe sysroot.

(From OE-Core rev: 6706bad52f9311ea79c534ee90014c3216992999)

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
André Draszik
7b7aa56548 sstate: allow specifying indirect dependencies to exclude from sysroot
Currently, a dependency on any -native recipe will pull in
all dependencies of that -native recipe in the recipe
sysroot. This behaviour might not always be wanted, e.g.
when that -native recipe depends on build-tools that are
not relevant for the current recipe.

This change adds a SSTATE_EXCLUDEDEPS_SYSROOT variable,
which will be evaluated for such recursive dependencies to
be excluded. The idea is similar to
   http://lists.openembedded.org/pipermail/openembedded-core/2018-January/146324.html
except that the list is not hard-coded anymore.

SSTATE_EXCLUDEDEPS_SYSROOT is evaluated as two regular
expressions of recipe and dependency to ignore, e.g. in
the above flex-native / bison-native use-case, one would
specify

    SSTATE_EXCLUDEDEPS_SYSROOT = ".*->(flex|bison)-native"

in layer.conf.

The existing special handling of "-initial" as well as
"base-passwd" and "shadow-sysroot" could also be
streamlined:

    SSTATE_EXCLUDEDEPS_SYSROOT += "\
        .*->.*-initial.* \
        .*(base-passwd|shadow-sysroot)->.* \
    "

Another anticipated user is meta-java, where certain newer
JDKs can only be bootstrapped (built) using older JDKs,
but it doesn't make much sense to copy all those older
JDKs and their own build tools (ant, etc.) into the
sysroot of recipes wanting to be built using the newer JDK
(only), e.g.:

    SSTATE_EXCLUDEDEPS_SYSROOT += "\
        openjdk-8-native->(ant-native|attr-native|coreutils-native|icedtea7-native|libxslt-native|make-native|openssl-native|zip-native|unzip-native) \
    "

(From OE-Core rev: 92c5131a2feae2036c71a36c18bb9175bb2856dc)

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-16 09:49:39 +01:00
Konstantin Shemyak
f7e24cc377 cve-check.bbclass: do not download the CVE DB in package-specific tasks
Disable downloading of the vulnerability DB in do_check_cves() task.

When invoked in this task, cve-check-tool attempts re-download of the CVE DB
if the latter is older than certain threshold. While reasonable for a
stand-alone CVE checker, this behavior can cause errors in parallel builds
if the build time is longer than this threshold:
* Other tasks might be using the DB.
* Several packages can start the download of the same file at the same time.

This check is not really needed, as the DB has been downloaded by
cve_check_tool:do_populate_cve_db() which is a prerequisite of any do_build().
The DB will be at most (threshold + build_time) old.

(From OE-Core rev: 125789b6ee6d47ab84192230f63971c4e22418ba)

Signed-off-by: Konstantin Shemyak <konstantin.shemyak@ge.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 21:45:58 +01:00
Alex Kiernan
7f93c8bc4a image: Use ${COREBASE}/meta for timestamp, fallback to bitbake.conf
To handle the case where ${COREBASE} isn't the git directory, avoid
erroring out when the git command fails. If we don't have a timestamp
after this, fall back to the timestamp from conf/bitbake.conf.

(From OE-Core rev: 97b439469a45a089431ca9c31893288c855045f4)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 21:45:58 +01:00
Rasmus Villemoes
f163fd8ec4 package.bbclass: improve -dbg and -src package ordering
nativesdk-gpgme fails package_qa when setting PACKAGE_DEBUG_SPLIT_STYLE
= "debug-with-srcpkg".

ERROR: nativesdk-gpgme-1.10.0-r0 do_package_qa: QA Issue: non debug package contains .debug directory: nativesdk-python3-gpg path /work/x86_64-nativesdk-oesdk-linux/nativesdk-gpgme/1.10.0-r0/packages-split/nativesdk-python3-gpg/usr/local/oecore-x86_64/sysroots/x86_64-oesdk-linux/usr/lib/python3.5/site-packages/gpg/.debug/_gpgme.cpython-35m-x86_64-linux-gnu.so [debug-files]

This turns out to be because the automatic moving of the -dbg package to
the beginning of the package list is disabled in that case, so the
python3-gpg packages that the recipe prepends to PACKAGES ends up before
the -dbg package.

It's not clear why the "and not split_source_package" was added when
debug-with-srcpkg was introduced. Presumably the intention was to
prevent the -dbg package to end up before the -src package, which we of
course need to. But at the same time, we still need -dbg packages to end
up before all other packages.

Using list.insert(0, ...) also means that if there happens to more than
one -dbg package, their relative ordering gets inverted in the new list.

This tries to fix these issues by sorting the packages by (priority,
original position), where priority is 10 for -src, 30 for -dbg and 50
for everything else. That guarantees that packages of the same "type"
preserve their relative ordering, while also ensuring that -dbg always
preceed other packages. This scheme is also quite extensible, and,
should the need arise, one could even expose the priorities as a knob
the recipe author could use to ensure specific orderings of packages
instead of the somewhat fragile and coarse-grained method of "prepend or
append, and ensure you do that in a proper order".

Probably the autodebug condition needs to stay, but I think the
split_source_package condition in the preceding elif should be removed,
so that that logic applies to all packages called -src, not just the one
we might have created a few lines above.

(From OE-Core rev: 805edbc7dc9ceae00d991f9b4e185bbbe1d3ba45)

Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 21:45:58 +01:00
Richard Purdie
a1b4b7c0b4 sstate/lib.oe.path: Ensure file sparseness is preserved
Files when restored from sstate were missing their sparseness. Fix up various
functions to preserve this and make things more deterministic.

(From OE-Core rev: 055402e5504f041c346571e243c7cf0894955cad)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 09:44:33 +01:00
Richard Purdie
8ae762ada1 sstate: Ensure a given machine only removes things which it created
Currently if you build qemux86 and then generic86, the latter will
remove all of the former from deploy and workdir. This is because
qemux86 is i586, genericx86 is i686 and the architctures are compatible
therefore the sstate 'cleaup' code kicks in.

There was a valid reason for this to ensure i586 packages didn't get into
an i686 rootfs for example. With the rootfs creation being filtered now, this
is no longer necessary.

Instead, save out a list of stamps which a give machine has ever seen in
a given build and only clean up these things if they're no longer
"reachable".

In particular this means the autobuilder should no longer spend a load of time
deleting files when switching MACHINE, improving build times.

(From OE-Core rev: 5634f2fb1740732056d2c1a22717184ef94405bf)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-15 09:44:33 +01:00