Commit Graph

6348 Commits

Author SHA1 Message Date
Bruce Ashfield
236e36a38e package: check PKG_ variables before executing ontarget postinst
If a package uses PKG_ variables to map package names to version specific
variants, on target postinstall functionality will be broken.

i.e. something like the following casuses rootfs assembly errors:

  d.setVar('pkg_postinst_ontarget_linux-source', 'cd /usr/src/; ln -sf %s linux-source' % source_pkg)

This breakage is due to the fact that the original package name (as specified by
the PACKAGES variable) is logged by the intercept scripts, but the mapped /
specific version is actually installed to the rootfs (and hence logged by the
package manager).

When the runtime listing of on-target scripts is performed, we get a package
manager error due to a missing package, since it checks the generic version
logged by the intercept scripts.

We can fix this by ensuring that the PKG_ variable mapped package name
is logged by the intercept phase, and hence the package manager can locate
and execute the on target postinst script.

This variable check is consistent with other places in the code, and has
no impact if PKG_ variables are not used.

(From OE-Core rev: a6af0886d1be584974086c0ddb4a5bc566eb7984)

Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-11 09:32:50 +01:00
Chen Qi
43a08e1936 xmlcatalog: hold libxml2-native dependency
Put libxml2-native dependency in this class and remove
it from recipes inheriting this class.

In fact, if a recipe inherits this class and does not have
libxml2-native, the xmlcatalog_sstate_postinst would fail.

(From OE-Core rev: 5a72c6d5cc1c9896c7425ac20eaf82d3d489e5c7)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-11 09:32:50 +01:00
Mike Crowe
ecd8dad98f image.bbclass: Only append to IMAGE_LINK_NAME if it was already set
create_symlinks does not create any links if IMAGE_LINK_NAME is empty.
Unfortunately, setup_debugfs_variables unconditionally appends '-dbg' which
results in a previously-empty IMAGE_LINK_NAME containing just '-dbg'. Let's
check that it's not empty before appending.

(From OE-Core rev: e529c45f29bd9a1de21f31fef7acb23eb6e8ebdd)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-10 09:56:22 +01:00
Ross Burton
628c03af41 buildhistory: filter out the unexpected prefix for native/cross sysroots
For various technical reasons, native and cross builds have a prefix that
includes the full path to the sysroot.  As these are stripped away before the
files are used in the sysroot, we should also filter them out of the
buildhistory report.  This both removes noise when sharing a buildhistory
repository between different build directories, and improves the accuracy of the
reports.

(From OE-Core rev: 8bf53fbb62749b5d77c246fab6e1246b93f8c50f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-10 09:56:22 +01:00
Ross Burton
f74e8081ad buildhistory: don't output ownership for the sysroot
As the sysroot isn't ran inside pseudo the ownership is whoever is running the
builds.  In a setup where multiple builders all contribute to a shared
buildhistory writing the ownership data isn't useful, so just replace it with "-
-".

(From OE-Core rev: fadb7ae78876a7cf25c48481ff4ed3131e53415f)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-10 09:56:22 +01:00
Mingli Yu
70a862a367 go.bbclass: separate the ptest logic to go-ptest class
The current go class includes ptest logic by default
and will make the recipe which inherits go class
to support ptest automatically though maybe the
recipe which inherits go class doesn't plan to
support the ptest.

So separate the ptest logic to another specified
class go-ptest to make the recipe which needs to
inherit go class more flexible with regards to
ptest support.

(From OE-Core rev: 099a2a212fed61a24643da63c74c09cef3ba4030)

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-09 23:30:44 +01:00
Pierre Le Magourou
8073a9862e cve-check: Update unpatched CVE matching
Now that cve-update-db added CPE information to NVD database. We can
check for unpatched versions with operators '<', '<=', '>', and '>='.

(From OE-Core rev: bc0195be1b15bcffe60127bc5e8b7011a853c2ed)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-09 23:30:44 +01:00
Pierre Le Magourou
8f81d2e863 cve-check: Depends on cve-update-db-native
do_populate_cve_db is a native task.

(From OE-Core rev: 4078da92b49946848cddebe1735f301af161e162)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-09 23:30:44 +01:00
Pierre Le Magourou
4a68a44f56 cve-update-db: Catch request.urlopen errors.
If the NVD url is not accessible, print a warning on top of the CVE
report, and continue. The database will not be fully updated, but
cve_check can still run on the previous database.

(From OE-Core rev: 0325dd72714f0b447558084f481b77f0ec850eed)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-05 12:00:20 +01:00
Chen Qi
a61354e965 grub-efi.bbclass: take into consideration of multilib
When enabling multilib and building lib32-IMAGE which
uses grub-efi, the build fails with the following error.

  install: cannot stat '/PROJ_DIR/build/tmp-glibc/deploy/images/intel-x86-64/grub-efi-bootia32.efi': No such file or directory

The grub-efi is in NON_MULTILIB_SCRIPTS. That means we
will use 64bit grub-efi for lib32-IMAGE.

So take into consideration of multilib to fix this problem.

(From OE-Core rev: 3c7b6dfecd22eae369bba54437cdff91fa8542df)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-05 12:00:20 +01:00
Ross Burton
56c9e61f39 insane: use clean_path for the host contamination warnings
We've a nice function to clean up absolute build paths for display, so use it.

(From OE-Core rev: c2f2ea87592d14e7020eff19c11aae2fb644358a)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-05 12:00:20 +01:00
Ross Burton
6df5aa2cc2 multilib_script: fix whitespace
The blocks were intended with 3 spaces instead of 4.

(From OE-Core rev: 98fbf61287971319547cc462b7c81f54950df619)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-03 17:00:57 +01:00
Chen Qi
da263d9c7a image.bbclass: fix systemd_preset_all
Check the existence of systemd before using systemctl to preset units.
This is because even if 'systemd' is in DISTRO_FEATURES, it's possible
that systemd is not even installed. e.g. container-test-image in
meta-selftest layer.

As systemd DEPENDS on systemd-systemctl-native, the existence of systemd
also ensures the existence of systemd-systemctl-native.

This would fix the following test case when using systemd as the init
manager.

  containerimage.ContainerImageTests.test_expected_files

Also remove the IMAGE_EXTRADEPENDS setting, as nothing references this
variable.

(From OE-Core rev: c9854a4ab6af9e60b1a588a87b9a062624af6fae)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-07-02 08:13:07 +01:00
Richard Purdie
bc5f6725af Revert "pigz: Add debug for autobuilder errors"
This reverts commit b08976456c8ab7f29efd83644ce42746c0d6501b.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-30 23:33:45 +01:00
Richard Purdie
99206cb7b4 package: Build pkgdata specific to the current recipe
This switches the code to build pkgdata specific to the current recipe
which means that its filtered to the recipes dependencies and can perform
better as we can drop the lockfile.

It uses a similar method to the staging code to do this, using BB_TASKDEPDATA
to construct a list of packagedata task output which this recipe should "see".

The original pkgdata store is left unaltered so existing code works.

The lock file was there to prevent files disappearing as they were read or as
directories were listed. Since we have a copy of the data and only access output
from completed tasks (as per their manifests), we can remove the lock.

The lock was causing starvation issues on systems with parallelism.

There was also a potential determinism problem as the current code could "see"
data from recipes which it doesn't depend upon.

[YOCTO #13412]

(From OE-Core rev: 1951132576bfb95675b4879287f8b3b7c47524fa)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-30 22:40:52 +01:00
Richard Purdie
b9bf7d2682 staging: Code cleanup
multiconfig dependencies no longer appear in BB_TASKDEPDATA so we can drop
this code.

(From OE-Core rev: 288b04c8a31fcf257219a57e23663b74178c75f2)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-30 22:40:52 +01:00
Richard Purdie
267b2f26e5 pigz: Add debug for autobuilder errors
(From OE-Core rev: b08976456c8ab7f29efd83644ce42746c0d6501b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-30 22:40:52 +01:00
Robert Yang
dcce395782 package_rpm.bbclass: python2 -> python3
(From OE-Core rev: 8208fffc95b46e03bab967462c17d83e0a687d50)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-30 22:40:52 +01:00
Ross Burton
d533ffb82c buildhistory: write the contents of the sysroot
Changes to the sysroot are just as interesting during development, so write the
file listing for the sysroot to buildhistory too.

(From OE-Core rev: b3ac82a27ab70ed6996fe3087a578ac637820329)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-28 13:28:37 +01:00
Joël Esponde
0df6cef525 package.bbclass: fix directories setuid and setgid bits
populate_packages relies on ``mkdir`` to both create a directory and set
its permissions. However, ``mkdir`` honors the ``umask`` value.
Therefore, some bits may be lost in the operation. In our case, the
setgid bit on the directories were lost.

This commit fixes this by having a distinct call to create the directory
and to set the permissions.

(From OE-Core rev: 0f82b53a650e76e0129fae6ce7581a41d042315b)

Signed-off-by: Jean-Tiare Le Bigot <jean-tiare.le-bigot@easymile.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-28 13:28:37 +01:00
Robert Yang
8eb91205f6 multilib.bbclass: Reduce ALTERNATIVE_PRIORITY for extended recipes
Fixed:
MACHINE = "qemux86-64"
require conf/multilib.conf
MULTILIBS = "multilib:lib32"
DEFAULTTUNE_virtclass-multilib-lib32 = "x86"

$ bitbake core-image-minimal
update-alternatives: libtool has multiple providers with the same priority,
please check
/path/to/rootfs/usr/lib/opkg/alternatives/libtool for details

Both libtool and lib32-libtool have the same priority (as they're the same
recipe), so update-alternatives won't deterministically pick a provider. This
means you could end up with an image using a 32-bit pkgconfig and 64-bit
libtool, for example.

Make extended recipes reduce priority by 1 (or 2, 3 ... when there are multiple
variants in MULTILIB_VARIANTS) to fix the problem.

[YOCTO #13418]

(From OE-Core rev: a2f53255ed7fb3657c470cd6a4452d883edd11cc)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:36 +01:00
Robert Yang
8d22a45cdd update-alternatives.bbclass: run update-alternatives firstly in postinst script
Recipes like postfix run command newaliases in postinst, but newaliases is
installed as newaliases.postfix, it needs run update-alternatives to update it
to newaliases, so there was an error when installed postinst on target.

Fixed:
$ opkg install postfix
Configuring postfix.
///var/lib/opkg/info/postfix.postinst: line 4: newaliases: command not found

Run update-alternatives firstly will fix the problem.

(From OE-Core rev: 52c36dd869c605c0065c17f9ed502a319ce3dd84)

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:36 +01:00
Richard Purdie
403c9341d1 multilib_global: Fix KERNEL_VERSION expansion problems
KERNEL_VERSION gets expanded at runtime to contain the real kernel
version. There is code to ensure the signatures are determinisic but
the multilib expansion code breaks this.

Exclude the variable from the datastore used for expansion to avoid this.

(From OE-Core rev: c068f907fee16477f59b6e5b168208aa4f677544)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:36 +01:00
Richard Purdie
16cd4ae3d5 multilib_global: Fix multilib rebuild issue
Building lttng-modules for a "lib32" multilib, then changing to a "lib64"
multilib with "lib32" removed doesn't rebuild lttng-modules.

This is due to the multilib pieces in RPROVIDES being added after RecipeParsed
which is after the signatures are generated.

Changing this to RecipeTaskPreProcess allows the multilib components to be
accounted for correctly in the task hashes.

This addresses failures on the autobuilder seen in lib64-core-image-sato-sdk
builds where lttng-modules was being reused from qemux86 world build's lib32
version.

(From OE-Core rev: a8dc13d4e4e34b061be5c2dd71f26cc0ad92a72e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:36 +01:00
Ross Burton
e58f930df5 gtk-icon-cache: rename intercept to update_gtk_icon_cache
The intercept is called update_icon_cache which is vague: rename to
update_gtk_icon_cache to make it clearer what it is for, and add a comment
explaining what class caused it to be used.

(From OE-Core rev: 3158adbe684890adc56af11e19af872e90e09d41)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:36 +01:00
Ross Burton
db98b1ef48 cve-check: be idiomatic
Instead of generating a series of indexes via range(len(list)), just iterate the
list.

(From OE-Core rev: 27eb839ee651c2d584db42d23bcf5dd764eb33f1)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-27 12:20:35 +01:00
Ricardo Ribalda Delgado
1a82468d2d go: avoid host contamination by GOCACHE
By default GOCACHE is set to $HOME/.cache.

Fixes:
ERROR: go-cross-dbfp4-1.12.1-r0 do_compile: Function failed: do_compile (log file is located at /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120)
ERROR: Logfile of failure stored in: /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120
Log data follows:
| DEBUG: Executing shell function do_compile
| Building Go cmd/dist using /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/recipe-sysroot-native/usr/lib/go.
| failed to initialize build cache at /home/pokyuser/.cache/go-build: mkdir /home/pokyuser/.cache: permission denied
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /workdir/build/tmp/work/x86_64-linux/go-cross-dbfp4/1.12.1-r0/temp/log.do_compile.8120)
ERROR: Task (/workdir/repo/poky/meta/recipes-devtools/go/go-cross_1.12.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 23 tasks of which 16 didn't need to be rerun and 1 failed.

(From OE-Core rev: 9a6d208b9979035bbfc1def80fb6558db4bddb12)

Signed-off-by: Ricardo Ribalda Delgado <ricardo@ribalda.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-21 15:32:36 +01:00
Changqing Li
ed2a19f87e update-rc.d: support enable/disable options
* update-rc.d has added support of enable/disable options, which are
  expected to keep the previous configuration even after upgrade the packages.
  With support for these options, it will only create start/stop link
  when there are none, or it will keep the previous configuration.

  Our preinst uses "-f remove" to remove any links under the /etc/rcrunlevel.d
  which is conflicting behavior with disable/enable options, so remove it.

  For example, if a user disabled one service before upgrade,
  then after upgrade the service could be started. This happens because during preinst,
  all links have been deleted, then postinst may create the link to start service.

  With this change, we remove preinst and therefore keep the previous links
  so that after upgrade, if a link existed for the package, then the postinst
  will not create new start/stop links.

* remove '-f' for postinst. Previously, the keepalived recipe used 'remove'
  during postinst, so we needed the -f, but now the keepalived recipe has fixed
  this problem, so it's safe to remove '-f'.

[Yocto #12955]

(From OE-Core rev: 7981d5261429cfb06030280460086f9af91876d9)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-21 15:32:36 +01:00
Richard Purdie
70b6880c55 cmake: Clarify comment in cmake toolchain file
The comment is misleading and there was confusion in a bug report. In the native
case STAGING_DATADIR would be equal to the native value so there isn't any issue
but tweak the comment.

[YOCTO #12761]

(From OE-Core rev: 0fdf76305a3cb543c23d6122c523ce5c2af04a0c)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-20 13:14:22 +01:00
Pierre Le Magourou
9562ec9c36 cve-check: Consider CVE that affects versions with less than operator
In the NVD json CVE feed, affected versions can be strictly matched to a
version, but they can also be matched with the operator '<='.

Add a new condition in the sqlite query to match affected versions that
are defined with the operator '<='. Then use LooseVersion to discard all
versions that are not relevant.

(From OE-Core rev: 3bf63bc60848d91e90c23f6d854d22b78832aa2d)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-20 13:14:21 +01:00
Pierre Le Magourou
95f0d11e21 cve-check: Manage CVE_PRODUCT with more than one name
In some rare cases (eg. curl recipe) the CVE_PRODUCT contains more than
one name.

(From OE-Core rev: 7f62a20b32a3d42f04ec58786a7d0db68ef1bb05)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-20 13:14:21 +01:00
Pierre Le Magourou
05fb9db633 cve-check: Remove dependency to cve-check-tool-native
Use the new update-cve-db recipe to update database.

(From OE-Core rev: bc144b028f6f51252f4359248f6921028bcb6780)

Signed-off-by: Pierre Le Magourou <pierre.lemagourou@softbankrobotics.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-20 13:14:21 +01:00
Martin Jansa
6bb0cf46a1 base.bbclass: define PACKAGECONFIG_CONFARGS before only sometimes appending to it
* just to make sure it's expaned by bitbake before it gets
  executed in shell
* e.g. with cmake.bbclass and cmake recipe (any recipe without
  PACKAGECONFIG options have this issue) it looks like this:
  bitbake -e cmake | grep EXTRA_OECMAKE=
  EXTRA_OECMAKE="     -DCMAKE_DOC_DIR=share/doc/cmake-3.14
    -DCMAKE_USE_SYSTEM_LIBRARIES=1 -DCMAKE_USE_SYSTEM_LIBRARY_JSONCPP=0
    -DCMAKE_USE_SYSTEM_LIBRARY_LIBUV=0
    -DCMAKE_USE_SYSTEM_LIBRARY_LIBRHASH=0     -DKWSYS_CHAR_IS_SIGNED=1
    -DBUILD_CursesDialog=0     -DKWSYS_LFS_WORKS=1
    \${PACKAGECONFIG_CONFARGS}"

(From OE-Core rev: 745b63f4e11a6536cabd97013973562631a0e080)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:44 +01:00
Ross Burton
01bff84386 binconfig: don't try to fix up .la files
If we're going to clean buildpaths from installed .la files then we should do it
globally, not in a class that only six recipes in oe-core use.

(From OE-Core rev: bd4e2cd3f70243f52215f8c92bcd7eb088a9b9f6)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:44 +01:00
Ross Burton
dbf5d29c3d insane: remove empty test that does nothing
(From OE-Core rev: 5da7ad1a483d0840a9a2e3b95fa62a1901be73f2)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:44 +01:00
Ross Burton
ad3f53dfe4 insane: improve buildpath warning messages
Instead of reporting large chunks of the work directory and not the package
name:

"File /work/corei7-64-poky-linux/libidn2/2.2.0-r0/packages-split/libidn2-dev/usr/lib/pkgconfig/libidn2.pc in package contained reference to tmpdir"

We can clean up the paths and be more useful:

"File /usr/lib/pkgconfig/libidn2.pc in package libidn2-dev contains reference to TMPDIR"

(From OE-Core rev: 156329247b40e9ee97e6249468ac3b9af4dffb68)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:44 +01:00
Ayoub Zaki
5a0f3b18b2 kernel-fitimage: introduce FIT_HASH_ALG
sanitize fitImage hash algorithm selection with FIT_HASH_ALG
switch default hash algorithm from sha1 to sha256

(From OE-Core rev: 8c9d5d59cb1575fac17c461090937df4cbb3d3b5)

Signed-off-by: Ayoub Zaki <ayoub.zaki@embexus.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:44 +01:00
Martin Jansa
37e5436e1e buildhistory: show time spent writting buildhistory
* especially when pushing longer history to slow remote git server or when
  it timeouts during the push, it's useful to see where the time was actually
  spent

(From OE-Core rev: 96f1225d47985d94d9ed91eb5e7affdd70671c79)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-19 12:46:43 +01:00
Bonnans, Laurent
646b596c99 kernel-uboot: compress arm64 kernels
AArch64 images are not self-decompressing, thus usually much larger.
Boot times can be reduced by compressing them in FIT and uImages.

(From OE-Core rev: a725d188b5d6b5d3c5cf21cc2f3070a0fe711e18)

Signed-off-by: Laurent Bonnans <laurent.bonnans@here.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-18 11:23:48 +01:00
Jaewon Lee
68d6682398 devicetree.bbclass: Combine stderr into stdout to see actual dtc error
Previously the subprocess command to run dtc was not properly displaying
the error on console. Combining stderr into stdout for the dtc subprocess
so the actual error can be seen on console without having to open the
do_compile log.

For example, previously on a dtc error, just the following stack trace
and dtc command was being shown on console:

File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
     0001:
 *** 0002:devicetree_do_compile(d)
     0003:
File:
function: devicetree_do_compile
     0127:            if not(os.path.isfile(dtspath)) or
not(dts.endswith(".dts") or devicetree_source_is_overlay(dtspath)):
     0128:                continue # skip non-.dts files and non-overlay
files
     0129:        except:
     0130:            continue # skip if can't determine if overlay
 *** 0131:        devicetree_compile(dtspath, includes, d)

    ...

Exception: subprocess.CalledProcessError: Command '['dtc', '-R', '8',
'-b', '0', '-p', '0x1000', '-i', '${INCLUDES}, '-o', 'system-top.dtb',
'-I', 'dts', '-O', 'dtb', 'system-top.dts.pp']' returned non-zero exit
status 1

with this patch, the actual error from the dtc command will be appended
like the following:

Subprocess output:
Error: Label or path not found
FATAL ERROR: Syntax error parsing input tree

(From OE-Core rev: 1da43a558ffd5040a1b5aaebfc1c5118f5e59c01)

Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-14 22:48:22 +01:00
Anuj Mittal
53099ced25 scons: inherit python3native
scons tries to get build time vars by loading sysconfigdata. Inherit
python3native instead of using host python and unset
_PYTHON_SYSCONFIGDATA_NAME to avoid the need to depend on target
python3 for sysconfigdata when using scons to build.

Avoids build errors on still supported CentOS 7:

| DEBUG: Executing shell function do_compile
| scons: *** SCons version 3.0.5 does not run under Python version
3.4.8.
| Python 2.7 or >= 3.5 is required.

(From OE-Core rev: 44f303ba9fb193a985e8e4b7c6962883ae3970d1)

Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-14 22:48:22 +01:00
Alex Kiernan
2fca533f60 kernel-fitimage: uboot-sign: Check UBOOT_DTB_BINARY before adding deps
Since UBOOT_DTB_BINARY empty means we don't need to inject signatures
into the U-Boot DTB, we can remove the dependencies between consumers of
these two classes and resolve a circular dependency between u-boot and
kernel.

(From OE-Core rev: c6b49cb75285e71909d1f9e4bf636f186941b519)

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-12 21:08:52 +01:00
Changqing Li
21bd096d6c multilib: add override for image recipe
MACHINE set to qemux86-64
for lib32-core-image-sato, during do_rootfs, it will run
install_complementary, which will get localedir by
d.getVar("libdir"), without override, libdir will still be
lib64. add override to fix it.

(From OE-Core rev: 8ed0cf040abbfb0999ac92b59ca9b7067d340202)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-12 21:08:52 +01:00
Mike Crowe
03830e2eb9 cmake: Avoid passing empty prefix to os.path.relpath
With meta-micro, ${prefix} is the empty string. This means that
CMAKE_INSTALL_BINDIR:PATH and friends end up containing paths starting with
many instances of "../", presumably due to os.path.relpath attempting to
find its way to the current directory.

Let's avoid this by ensuring that the root path always ends in a slash. If
it already ends in a slash then adding another one shouldn't cause any
problems.

(From OE-Core rev: 67b19414c1c17f71f39c971b9f9fdd1f776516a1)

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-12 10:54:40 +01:00
Haiqing Bai
9729d05975 kernel.bbclass: Make task clean depend on cleaning of make-mod-scripts
The package 'make-mod-scripts' creates files in 'kernel-build-artifacts/include/config'
which are removed by 'cleanall/cleansstate' of 'virtual/kernel'. And this causes the
below error while building out of tree kernel module:
ERROR: Kernel configuration is invalid.
      include/generated/autoconf.h or include/config/auto.conf are missing.
      Run 'make oldconfig && make prepare' on kernel src to fix it.

Suggested-by: Jun Nie <jun.nie@linaro.org>

(From OE-Core rev: f79c95f6a883e999e0c2ecfd60b6b696b7595497)

Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-11 13:26:55 +01:00
Quentin Schulz
4b6ce4604c meta: license: fix non-SPDX license being removed from INCOMPATIBLE_LICENSE
A non-SPDX license (which is not an alias to an SPDX license) cannot
currently be marked as incompatible in INCOMPATIBLE_LICENSE.
In the current state, we take all INCOMPATIBLE_LICENSE and pass them
through expand_wildcard_licenses which is only adding SPDX licenses that
match the glob regexp of what is in INCOMPATIBLE_LICENSE (be it a direct
match to an SPDX license or via an alias).

This does not work well with custom licenses.

E.g.:

foo.bb:
LICENSE = "FooLicense"

conf/local.conf:
INCOMPATIBLE_LICENSE = "FooLicense"

`bitbake foo`

Gives no warning, no error, builds and packages successfully, because
INCOMPATIBLE_LICENSE is basically empty since FooLicense is neither in
SPDXLICENSEMAP nor in SRC_DISTRIBUTE_LICENSES.

Let's add the original licenses to the list returned by
expand_wildcard_licenses to be able to handle the aforementioned case.

INCOMPATIBLE_LICENSE = "FooLicense GPLv2 GPLv3+" used to "resolve" to
"GPLv2 GPLv3". It now resolves to "FooLicense GPLv2 GPLv3 GPLv3+" which
fixes the issue with custom licenses not being in SPDXLICENSEMAP or
SRC_DISTRIBUTE_LICENSES and thus being left out of the blacklisted
licenses.

I needed to pass a list to expand_wildcard_licenses from the
license_image class instead of the current output of map() because the
operator [:] does not work on this kind of type, and list(map()) or
anything that iterates over map() actually moves the iterator and breaks
the forloop right after in expand_wildcard_licenses.

(From OE-Core rev: 2d976587d703462db2b7b78661b05ac22fb93787)

Signed-off-by: Quentin Schulz <quentin.schulz@streamunlimited.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-11 13:26:55 +01:00
Chris Laplante
070218c1c5 base.bbclass: Add OE_EXTRA_IMPORTS
OE_IMPORTS is not intended to be touched by users, but there are cases
in which layers might want to make additional Python modules available
to Python functions. For example, Python modules defined in the layer
themselves (under meta-layer/lib).

(From OE-Core rev: 00fa8391365863fa7805ad61b2d1a8425b9ea040)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-08 16:01:41 +01:00
Adrian Freihofer
13aa3bea40 testimage: consider QB_DEFAULT_FSTYPE
testimage.bbclass starts qemu with the first image type found in
the IMAGE_FSTYPES list. It's weird: this ['wic', 'tar'] works but
this ['tar'. 'wic'] does not. If QB_DEFAULT_FSTYPE is defined,
this fstype is booted.

(From OE-Core rev: aedb6bf9b6ccf37f69372642bc4c5dbbca92d0d9)

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-08 16:01:41 +01:00
Tim Orling
35e4834904 scons.bbclass: use python3-scons
SCons has supported python3 since 3.0.0 release, use it.

[YOCTO #13381]

(From OE-Core rev: 2ce507d65cd2558edc9e7929aff7b80463c26998)

Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-08 16:01:41 +01:00
Peter Kjellerstedt
f5dd71ec52 package.bbclass: Clean up writing of runtime pkgdata files
This introduces a variable, PKGDATA_VARS, that contains the names of
the variables that are to be output in the runtime pkgdata files.

(From OE-Core rev: 43e55bfa040425cf93d94ac626a31f6fd00a7a74)

Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-06-07 09:11:48 +01:00